/****************************************** This demo show how to use i8172_ReadDIGroup to read digital input via FR-2053 i8172_ReadDIBit to read single bit digital input via FR-2053 For more detail information about how to use these function, please refer to RFnet.h Compiler: BC++ 3.1, Turbo C++ 1.01 (free from http://community.borland.com/museun) Compile mode: Large [Jun, 2010] by Martin ******************************************/ #include #include "..\lib\8000A.h" #include "..\lib\8172.h" void main(void) { int iSlot,iPort,iDIdata,iGroup,i,iChannel,iMode,iStatus,iRet; int ID; char cTemp[10]; char libDate[32]; InitLib(); Print("\n****************************"); Print("\nLibrary Version =: %04X",i8172_GetLibVersion()); i8172_GetLibDate(libDate); Print("\nBuild Date =: %s",libDate); Print("\n****************************\n"); start: Print("Please input slot number (0 ~ %d): ",GetNumberOfSlot()-1); LineInput(cTemp,10); sscanf(cTemp,"%d",&iSlot); ID=i8172_Init(iSlot); if(ID<0) { Print("There is no I-8172 at slot %d\n",iSlot); goto start; } Print("Please input port number (0 ~ 1): "); LineInput(cTemp,10); sscanf(cTemp,"%d",&iPort); Print("Please input Group:"); LineInput(cTemp,10); sscanf(cTemp,"%d",&iGroup); Print("Key the 'q' to quit or any key to continue.\n\r"); for(;;) { // return 0 off line, 1 on line iStatus = i8172_ReadInputGroupStatus(iSlot,iPort, iGroup); if(!iStatus) { Print("Connection between Input I/O and 8172 is broken, Check the wiring ! \r"); } else { Print("Please input read mode:\n\r"); Print("0. Read single channel\n\r"); Print("1. Read all channel\n\r"); LineInput(cTemp,10); sscanf(cTemp,"%d",&iMode); if(iMode) { iDIdata=i8172_ReadDIGroup(iSlot,iPort,iGroup); Print("DIdata %X\n\r",iDIdata); } else { for(iChannel=0;iChannel<16;iChannel++) Print("CH[%d]= %d \n\r", iChannel,i8172_ReadDIBit(iSlot,iPort,iGroup,iChannel)); } } if(Getch()=='q') return; } }