/* X520Demo.c: Demo program for X520 Compiler: BC++ 3.1, Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) Compile mode: large Project: X520Demo.c ..\..\Lib\7188el.lib ..\..\lib\Xboard\X520.lib Hardware: 7188EX + X520 X520: 2 D/O channels 1 D/I channel COM3 (RS-232) COM4 (RS-232) COM5 (RS-232) COM6 (RS-232) */ #include #include #include #include #include "..\..\lib\7188e.h" #include "..\..\lib\Xboard\X520.h" #define BUFSIZE 1024 char InpBuf[BUFSIZE],OutpBuf[BUFSIZE]; void main(void) { int iRet, iAction, i, quit, idata; int iValue, iInChannel, iDIValue, iOutChannel, iDOValue, iStatus; unsigned char cValue; InitLib(); X520_Init(); Print("\n\r"); Print("****************************************\n\r"); Print("| 7188EX + X520 |\n\r"); Print("****************************************\n\r"); while(iAction!=11) { iAction=0; quit=0; Puts("\n\r"); Puts("1) Read DI (all channels)\n\r"); Puts("2) Read DI (one channel)\n\r"); Puts("3) Write DO (all channels)\n\r"); Puts("4) Write DO (one channel)\n\r"); Puts("5) DO Readback (all channels)\n\r"); Puts("6) DO Readback (one channel)\n\r"); Puts("7) Test COM3 Port (3-wire RS-232)\n\r"); Puts("8) Test COM4 Port (3-wire RS-232)\n\r"); Puts("9) Test COM5 Port (3-wire RS-232)\n\r"); Puts("10) Test COM6 Port (3-wire RS-232)\n\r"); Puts("\n\r"); Puts("11) Quits Demo program\n\r\n\r"); Puts("Choose an option and press [Enter]:"); Scanf("%d",&iAction); Puts("\n\r"); switch(iAction) { // Read DI (all channels) case 1: iDIValue=X520_Read_All_DI(); Print("Input value=> 0x%02x\r\n\r\n", iDIValue); break; // Read DI (one channel) case 2: Print("Please select inport channel(0): "); Scanf("%d", &iInChannel); if(iInChannel>0) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iDIValue=X520_Read_One_DI(iInChannel); if(iDIValue) Print("Channel %d ==> OFF\r\n\r\n", iInChannel); else Print("Channel %d ==> ON\r\n\r\n", iInChannel); break; // Write DO (all channels) case 3: Print("Please input Output value(0 ~ 0x03): "); Scanf("%x", &iDOValue); X520_Write_All_DO(iDOValue); Print("Output value=> 0x%02x\r\n\r\n", iDOValue); break; // Write DO (one channels) case 4: Print("Please select outport channel(0~1) and status(0:OFF, 1:ON)\n\r"); Print("Channel number and status:"); Scanf("%d %d", &iOutChannel, &iStatus); if(iOutChannel>1) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } X520_Write_One_DO(iOutChannel, iStatus); Print("Channel %d ==> %s\r\n\r\n", iOutChannel, (iStatus>=1)?"ON":"OFF"); break; // DO Readback (all channels) case 5: iDOValue=X520_Read_All_DO(); Print("Digital Output ReadBack=> 0x%02x\r\n\r\n", iDOValue); break; // DO Readback (one channel) case 6: Print("Please select outport channel(0~1): "); Scanf("%d", &iOutChannel); if(iOutChannel>1) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iRet=X520_Read_One_DO(iOutChannel); if(iRet) Print("Channel %d ==> ON\r\n\r\n", iOutChannel); else Print("Channel %d ==> OFF\r\n\r\n", iOutChannel); break; // Test COM3 Port case 7: InstallCom3(115200L,8,0,1); Print("Enter a string to COM port:"); Scanf("%s",&OutpBuf); ToComStr(3,OutpBuf); Delay(2); idata=ReadComn(3,InpBuf,BUFSIZE); InpBuf[idata]=0x0; Print("Read COM port==>%s,idata=%d\r\n",InpBuf,idata); if(!strcmp(OutpBuf,InpBuf)) Print("Send COM3 <==> Receiv COM3 -->Test OK\n\r\n\r"); else Print("Send COM3 <==> Receiv COM3 -->Test error\n\r\n\r"); RestoreCom3(); break; // Test COM4 Port case 8: InstallCom4(115200L,8,0,1); Print("Enter a string to COM port:"); Scanf("%s",&OutpBuf); ToComStr(4,OutpBuf); Delay(2); idata=ReadComn(4,InpBuf,BUFSIZE); InpBuf[idata]=0x0; Print("Read COM port==>%s,idata=%d\r\n",InpBuf,idata); if(!strcmp(OutpBuf,InpBuf)) Print("Send COM4 <==> Receiv COM4 -->Test OK\n\r\n\r"); else Print("Send COM4 <==> Receiv COM4 -->Test error\n\r\n\r"); RestoreCom4(); break; // Test COM5 Port case 9: InstallCom5(115200L,8,0,1); Print("Enter a string to COM port:"); Scanf("%s",&OutpBuf); ToComStr(5,OutpBuf); Delay(2); idata=ReadComn(5,InpBuf,BUFSIZE); InpBuf[idata]=0x0; Print("Read COM port==>%s,idata=%d\r\n",InpBuf,idata); if(!strcmp(OutpBuf,InpBuf)) Print("Send COM5 <==> Receiv COM5 -->Test OK\n\r\n\r"); else Print("Send COM5 <==> Receiv COM5 -->Test error\n\r\n\r"); RestoreCom5(); break; // Test COM6 Port case 10: InstallCom(6,115200L,8,0,1); Print("Enter a string to COM port:"); Scanf("%s",&OutpBuf); ToComStr(6,OutpBuf); Delay(2); idata=ReadComn(6,InpBuf,BUFSIZE); InpBuf[idata]=0x0; Print("Read COM port==>%s,idata=%d\r\n",InpBuf,idata); if(!strcmp(OutpBuf,InpBuf)) Print("Send COM6 <==> Receiv COM6 -->Test OK\n\r\n\r"); else Print("Send COM6 <==> Receiv COM6 -->Test error\n\r\n\r"); RestoreCom(6); break; case 11: default: quit=1; break; } if(!quit) { Puts("Please press any key to continue...\r\n"); Getch(); } } }