// Get the index LED, property int SerialOsc_IntPropertyGet( int property ) { int value = 0; switch ( property ) { case 0: value = Serial_GetActive( ); break; case 1: value = Serial_GetChar( ); break; case 2: value = Serial_GetBaud( ); break; case 3: value = Serial_GetBits( ); break; case 4: value = Serial_GetStopBits( ); break; case 5: value = Serial_GetParity( ); break; case 6: value = Serial_GetHardwareHandshake( ); break; case 7: value = Serial_GetReadable( ); break; } return value; }
// simple line entry only handles backspace void Serial_GetLine(char *buffer, size_t length) { size_t cursor = 0; buffer[cursor] = '\0'; for (;;) { char c = Serial_GetChar(); if ('\010' == c || 127 == c) { if (cursor > 0) { buffer[--cursor] = '\0'; Serial_print("\010 \010"); } else { Serial_print("\007"); } } else if (c >= ' ' && c < 127) { if (cursor < length - 1) { // remember space for the '\0' buffer[cursor++] = c; buffer[cursor] = '\0'; Serial_PutChar(c); } else { Serial_print("\007"); } } else if ('\r' == c || '\n' == c) { return; } } }
/** Clear out the serial port. Ensures that there are no bytes in the incoming buffer. @param index Which serial port - SERIAL_0 or SERIAL_1 \b Example \code Serial_SetActive(SERIAL_0, 1); Serial_Flush(SERIAL_0); // after starting up, make sure there's no junk in there \endcode */ void Serial_Flush( int index ) { char c; if ( index < 0 || index >= SERIAL_PORTS ) return; while( Serial_GetReadable( index ) ) c = Serial_GetChar( index ); }
int fgetc (FILE *f) { return (Serial_GetChar()); }