📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Pcomm.h"
//---------------------------------------------------------------------------
#pragma argsused
//--------------------------------------------------------------------------
void help()
{
printf("RS232 Loopback Test V1.0\n");
printf("Copy Right by Tatung 2003-June-26\n");
printf("\n");
printf("Usage:\n");
printf("winrs232 [port]\n");
}
//--------------------------------------------------------------------------
int BaudRateTable(int br)
{
switch (br)
{
case 9 : br=2400;
break;
case 10: br=4800;
break;
case 11: br=7200;
break;
case 12: br=9600;
break;
case 13: br=19200;
break;
case 14: br=38400;
break;
case 15: br=57600;
break;
case 16: br=115200;
break;
default :
br=9600;
break;
}
return (br);
}
//--------------------------------------------------------------------------
int COMTEST(int comport, int baud)
{
char tbuf[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char rbuf[80];
memset(rbuf,0x0,80);
if (sio_open (comport) == 0)
{
// baud = 9 Real Baud Rate is 2400
// baud = 10 Real Baud Rate is 4800
// baud = 11 Real Baud Rate is 7200
// baud = 12 Real Baud Rate is 9600
// baud = 13 Real Baud Rate is 19200
// baud = 14 Real Baud Rate is 38400
// baud = 15 Real Baud Rate is 57600
// baud = 16 Real Baud Rate is 115200
sio_ioctl ( comport, baud, P_NONE | BIT_8 | STOP_1 );
sio_flowctrl ( comport, 0xc );
sio_flush ( comport, 2 );
int baud_ret = sio_getbaud ( comport );
if ( (baud_ret - BaudRateTable(baud)) == 0 )
{
sio_write( comport, tbuf, strlen(tbuf));
// Deley about 0.5 sec
//for (int j=0;j<10000;j++) { for (int k=0;k<10000;k++) { } }
Sleep(500);
sio_read( comport, rbuf, strlen(tbuf));
if ( strcmp(rbuf,tbuf) == 0)
{
printf("Baud Rate: %d, Result=%s\n",baud_ret,rbuf);
sio_DTR ( comport, 1 );
sio_RTS ( comport, 1 );
if (sio_lstatus ( comport ) == 15)
{
printf("DTR=1: DSR=1 RI=1 , RTS=1: DCD=1 CTS=1\n");
sio_DTR ( comport, 0 );
sio_RTS ( comport, 0 );
if (sio_lstatus ( comport ) == 0)
printf("DTR=0: DSR=0 RI=0 , RTS=0: DCD=0 CTS=0\n");
}
else
return -1;
return 0;
}
else
return -1;
}
else
return -1;
}
else
return -1;
}
//----------------------------------------------------------------------
int main(int argc, char* argv[])
{
char *testrlt;
bool test_status; // true --> pass, false --> fail
if (argc == 2)
{
for (int brate=9; brate < 17; brate++)
{
if (COMTEST(atoi(argv[1]), brate) == 0)
{
sio_close ( atoi(argv[1]) );
testrlt="Test OK";
test_status=true;
}
else
{
testrlt="Test Fail or port number is not exist in system";
test_status=false;
}
}
printf("%s\n",testrlt);
if (test_status)
exit(0);
else
exit(1);
}
else
{
help();
exit(1);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -