/* X116Demo.c: Demo program for X116 Compiler: MSC 6.0 MSVC 1.52 Compile mode: large Project: X116Demo.c ..\..\Lib\7188xbl.lib ..\..\lib\Xboard\X116.lib Hardware: 7188XB + X116 X116: 4 channels Digital Input 6 channels Relay Output [09/Oct/2003] [14/July/2005] by Liam */ #include #include "..\..\lib\7188xb.h" #include "..\..\lib\Xboard\X116.h" void main(void) { int iAction, iStatus, iDIValue, iDOValue=0, iRet, quit; int iInChannel, iOutChannel; char buf[100]; InitLib(); X116_Init(); //Initialize the X116 Print("\r\n"); Print(" ****************************************\r\n"); Print(" | Demo program for 7188XB + X116 |\r\n"); Print(" | |\r\n"); Print(" | [14/July/2005] |\r\n"); Print(" ****************************************\r\n"); while(iAction!=7) { iAction=0; quit=0; Puts("\r\n"); Puts("1) Read DI (all channels)\r\n"); Puts("2) Read DI (one channel)\r\n"); Puts("3) Write Relay output (all channels)\r\n"); Puts("4) Write Relay output (one channels)\r\n"); Puts("5) Relay output Readback (all channels)\r\n"); Puts("6) Relay output Readback (one channel)\r\n"); Puts("\r\n"); Puts("7) Quits demo program\r\n\r\n"); Puts("Choose an option and press [Enter]:"); LineInput(buf, 99); sscanf(buf, "%d", &iAction); Puts("\r\n"); switch(iAction) { // Read DI (all channels) case 1: iDIValue=X116_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~3): "); LineInput(buf, 99); sscanf(buf, "%d", &iInChannel); if(iInChannel>3) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iDIValue=X116_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 Relay output (all channels) case 3: Print("Please input Output value(0 ~ 0x3f): "); LineInput(buf, 99); sscanf(buf, "%x", &iDOValue); X116_Write_All_DO(iDOValue); Print("Output value=> 0x%02x\r\n\r\n", iDOValue); break; // Write Relay output (one channels) case 4: Print("Please select outport channel(0~5) and status(0:OFF, 1:ON)\r\n"); Print("Channel number and status:"); LineInput(buf,99); sscanf(buf, "%d %d", &iOutChannel, &iStatus); if(iOutChannel>5) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } X116_Write_One_DO(iOutChannel, iStatus); Print("Channel %d ==> %s\r\n\r\n", iOutChannel, (iStatus>=1)?"ON":"OFF"); break; // Relay output Readback (all channels) case 5: iDOValue=X116_Read_All_DO(); Print("Digital Output ReadBack=> 0x%02x\r\n\r\n", iDOValue); break; // Relay output Readback (one channels) case 6: Print("Please select outport channel(0~5): "); LineInput(buf,99); sscanf(buf, "%d", &iOutChannel); if(iOutChannel>5) { Puts("Unknow Channel Number!!\r\n\r\n"); break; } iRet=X116_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...\r\n"); Getch(); } } }