/* XW110.c: Demo program for XW110i Compiler: BC++ 3.1 Turbo C++ 1.01 (3.01) Compile mode: large Project: XW110.c ..\..\lib\upac5000.lib ..\..\lib\XWBoard\XW110.lib Hardware: uPAC-5000 + XW110i [Jul 02, 2014] by Liam */ /*****************************************************************/ /* XW110i: 16 channel D/I (Dry + Wet Contact, Sink/Source) */ /*****************************************************************/ #include #include "..\..\lib\uPAC5000.h" #include "..\lib\XW110.h" void main(void) { int i, iRet, iOption, iQuit=0; unsigned uLibVersion; char szLibDate[16]; int iChannel, iDOValue, iState; InitLib(); /* Initiate the XW110 library */ if((iRet=XW110_Init())!=0) { Print("XW110i initiate failed [%X]\r\n", iRet); return; } Puts("\n"); Puts("************************************************\n"); Puts("| Demo program for uPAC-5000 + XW110i |\n"); Puts("| |\n"); Puts("| [Jul 02, 2014] |\n"); Puts("************************************************\n"); /* Read the version information of XW110 library */ uLibVersion=XW110_GetLibVersion(); XW110_GetLibDate(szLibDate); Print("\nXW110.lib version %X.%02X, %s\r\n", uLibVersion>>8, uLibVersion&0xFF, szLibDate); while(!iQuit) { Puts("\n"); Puts("1) Read DI (all channels)\n"); Puts("2) Read DI (one channel)\n"); Puts("\n"); Puts("0) Quit demo program\n\n"); Puts("Choose an option and press [Enter]: "); Scanf("%d", &iOption); Puts("\n"); switch(iOption) { case 1: Print("Input state => 0x%04X\n", XW110_Read_All_DI()); break; case 2: Print("DI Channel (0~15): "); Scanf("%d", &iChannel); if(iChannel>15) { Puts("Unknow Channel Number!!\n"); break; } iDOValue=XW110_Read_One_DI(iChannel); Print("DI%d => %s\n", iChannel, iDOValue==0?"ON":"OFF"); break; case 0: iQuit=1; break; default: break; } if(!iQuit) { Puts("\nPress any key to continue...\n"); Getch(); } } }