uint8_t BT::dataMode(void) { if(!present) return 1; if(state == BT_ST_CONNECTED) { if(mode == BT_MODE_CMD) { sendP(PSTR("ATMD\r")); if(checkOK()) { mode = BT_MODE_DATA; return 1; } else { return 0; } } return 1; } return 0; }
uint8_t BT::sendCMD(const char* str) { if(!present) return 1; cmdMode(); return sendP(str); }
uint8_t BT::cmdMode(void) { if(!present) return 1; if(mode == BT_MODE_DATA) { sendP(PSTR("+++\r")); if(checkOK()) { mode = BT_MODE_CMD; return 1; } else { return 0; } } return 1; }
void handleKeydown (SDLKey key) { float tempin; // printf("keydown: %d\n", key); if (inputmode > 0 && key != 13) { userinputbuffer[userinputbufferpos] = (uint8_t)key; userinputbufferpos ++; if (userinputbufferpos == 128) { printf("\nuser input buffer overflow\n"); userinputbufferpos = 0; } } switch (key) { case SDLK_ESCAPE: break; case 112: /* P */ printf("\nType new P value: "); inputmode = 1; break; case 105: /* I */ printf("\nType new I value: "); inputmode = 2; break; case 100: /* D */ printf("\nType new D value: "); inputmode = 3; break; case 115: /* S */ printf("\nCurrent PID values: "); printf("P = %f, ", KPin); printf("I = %f, ", KIin); printf("D = %f\n", KDin); printf(" New PID values: "); printf("P = %f, ", KPout); printf("I = %f, ", KIout); printf("D = %f\n", KDout); fflush(stdout); break; case 103: /* G */ getPID(); break; case 13: /* enter */ parseuserinput(); break; case 113: /* Q */ sendP(); break; case 119: /* W */ sendI(); break; case 101: /* E */ sendD(); break; case 108: /* L */ startlog(); break; case 107: /* K */ printlog(); break; } }