int main() { RS232_INFO info; char str[10000]; printf("Enter port [/dev/ttyS0]: "); fgets(str, sizeof(str), stdin); if (strchr(str, '\n')) *strchr(str, '\n') = 0; if (!str[0]) strcpy(str, "/dev/ttyS0"); info.fd = rs232_open(str, 9600, 'N', 8, 1, 0); if (info.fd < 0) { printf("Cannot open ttyS0\n"); return 0; } /* turn on debugging, will go to rs232.log */ rs232(CMD_DEBUG, TRUE); printf("Connected to ttyS0, exit with <ESC>\n"); do { memset(str, 0, sizeof(str)); str[0] = ss_getchar(0); if (str[0] == 27) break; if (str[0] > 0) rs232_puts(&info, str); rs232_gets(&info, str, sizeof(str), "", 10); printf(str); fflush(stdout); } while (1); ss_getchar(TRUE); rs232_exit(&info); return 1; }
void CProber::Read(int ms) { int cnt; result = -1; message = defAnswer; cnt = rs232_gets(rs232, readback, sizeof(readback)-1, "\n", ms); if (cnt>=2) readback[cnt-2] = 0; else { readback[0] = 0; return; } message = strchr(readback, ':'); if (message == 0) { message = defAnswer; result = -1; return; } message++; while (*message == ' ') message++; if (sscanf(readback, "%i", &result) != 1) { message = defAnswer; result = -1; return; } }