void waitForPrompt() { //writeNewLine(); //writeNewLine(); //writeNewLine(); delay_ms( 20 ); writeNewLine(); waitForByte( '*' ); }
int readHCIResponse(int portFD, unsigned char packet[], int maxBytes){ unsigned char c; int i,ret,n; do{ if(!waitForByte(portFD,&packet[0]))return 0; if(packet[0] != 0x04) output(1,"OOP[%02x] ",c); //report out of place character }while(packet[0] != 0x04); //read two opcode byte if(!waitForByte(portFD,&packet[1]))return 0; //read length byte if(!waitForByte(portFD,&packet[2]))return 0; //read packet data for(i=0;i<packet[2];i++){ if((3+i) >= maxBytes)return maxBytes; //don't overrun the buffer if(!waitForByte(portFD,&packet[3+i]))return 0; } return packet[2] + 3; }