/****************************************** This demo show how to use i8172_WriteDOBit to write single bit digital output via FR-2057 i8172_WriteDOGroup to write digital output via FR-2057 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,iDOdata,iGroup,i,iBit,iMode,iStatus; 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); for(;;) { Print("Please select output data mode:\n\r"); Print("0. single channel output\n\r"); Print("1. Multi channel output\n\r"); LineInput(cTemp,10); sscanf(cTemp,"%d",&iMode); if(iMode) { Print("Input Data\n\r"); LineInput(cTemp,10); sscanf(cTemp,"%X",&iDOdata); i8172_WriteDOGroup(iSlot,iPort,iGroup,iDOdata); } else { Print("Please input channel number(1~16)\n\r"); LineInput(cTemp,10); sscanf(cTemp,"%d",&iBit); Print("Please input status(0.OFF, 1.ON )\n\r"); LineInput(cTemp,10); sscanf(cTemp,"%d",&iStatus); i8172_WriteDOBit(iSlot,iPort,iGroup,iBit,iStatus); } Print("Key the 'q' to quit or any key to continue.\n\r"); if(Getch()=='q') return; } }