/* X107Demo.c: Demo program for X107 Compiler: BC++ 3.1, Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) Compile mode: large Project: X107Demo.c ..\..\Lib\7188xbl.lib ..\..\Lib\Xboard\X107.lib Hardware: 7188XB + X107 X107: Digital Input : 6 Channels Digital Output: 7 Channels [03/Sep/2002] [05/July/2005] by Liam */ #include #include "..\..\lib\7188xb.h" #include "..\..\lib\Xboard\X107.h" void main(void) { int iAction, iStatus, iDIValue, iDOValue=0, iRet=-1, quit; int iInChannel, iOutChannel; InitLib(); X107_Init(); //Initialize the X107 Print("\n\r"); Print("****************************************\n\r"); Print("| Demo program for 7188XB + X107 |\n\r"); Print("| |\n\r"); Print("| [05/July/2005] |\n\r"); Print("****************************************\n\r"); while(iAction!=7) { 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("\n\r"); Puts("7) Quits demo program\n\r\n\r"); Puts("Choose an option and press [Enter]:"); Scanf("%d",&iAction); Puts("\n\r"); switch(iAction) { //Read all DI ReadBack case 1: iDIValue=X107_Read_All_DI(); Print("Input value=> 0x%02x\r\n\r\n", iDIValue); break; //Read single DI ReadBack case 2: Print("Please select inport channel(0~5): "); Scanf("%d", &iInChannel); if(iInChannel>5) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iDIValue=X107_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 all DO channels case 3: Print("Please input Output value(0 ~ 0x7f): "); Scanf("%x", &iDOValue); X107_Write_All_DO(iDOValue); Print("Output value=> 0x%02x\r\n\r\n", iDOValue); break; //Write single DO channel case 4: Print("Please select outport channel(0~6) and status(0:OFF, 1:ON)\n\r"); Print("Channel number and status:"); Scanf("%d %d", &iOutChannel, &iStatus); if(iOutChannel>6) { Puts("Unknow Channel Number\r\n\r\n"); break; } X107_Write_One_DO(iOutChannel, iStatus); Print("Channel %d ==> %s\r\n\r\n", iOutChannel, (iStatus>=1)?"ON":"OFF"); break; //Read all DO ReadBack case 5: iDOValue=X107_Read_All_DO(); Print("Digital Output ReadBack=> 0x%02x\r\n\r\n", iDOValue); break; //Read single DO ReadBack case 6: Print("Please select outport channel(0~6): "); Scanf("%d", &iOutChannel); if(iOutChannel>6) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iRet=X107_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; case 7: default: quit=1; break; } if(!quit) { Puts("Press any key to continue...\n\r"); Getch(); } } }