コード例 #1
0
ファイル: rs232test.c プロジェクト: cjpl/midas
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;
}
コード例 #2
0
ファイル: prober.cpp プロジェクト: maiatec/psi46test
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; }
}