RBAPI(bool) com_ServoTRX(int com, unsigned char* cmd, int csize, unsigned char* buf, int bsize) { com_ClearRFIFO(com); if (com_Send(com, cmd, csize) == false) return false; if (COM_duplex[com] == COM_HDUPLEX) // discard the first-received csize bytes in case of TX/RX-short { int i; unsigned int tmpbyte; for (i=0; i<csize; i++) { if ((tmpbyte = com_Read(com)) == 0xffff) return false; if ((unsigned char)tmpbyte != cmd[i]) { err_SetMsg(ERROR_COM_FAIL, "receive a wrong self-feedback byte"); return false; } } } // end if (COM_duplex[com] ... if (buf != NULL) //&& if (com_Receive(com, buf, bsize) == false) return false; return true; }
RBAPI(unsigned int) com_getch(int com) { int numbytes; while ((numbytes = check_rfifo(com)) <= 0) if (numbytes < 0) return 0xffff; return (int)com_Read(com); }
int readCommandChr(void) { int c = com_Read(Serial); return (c == 0xFFFF) ? (-1) : (c); }