#include #include #include "..\lib\7188.h" /* Reading Register W100 */ /* Read 1 Registers range from W100 */ char cRegisterRead[40] ={0x05, /* ENQ code */ '0','0', /* Station no = 0 */ 'R','W', /* Reading Register command */ '0','0','6','4', /* Starting Register = 100 */ '0','1' /* 4 Register */ }; /* Reading Relays */ /* Read 1 Relays range from b0100 to b0115 */ char cRelayRead[40] ={0x05, /* ENQ code */ '0','0', /* Station no = 0 */ 'R','b', /* Reading Relays command */ '0','0','6','4', /* Starting Relay = 0 */ '1','0' /* 16 relays */ }; /* Writing Register */ /* Write 1 Registers to W0100 */ char cRegisterWrite[40] ={0x05, /* ENQ code */ '0','0', /* Station no = 0 */ 'W','W', /* Writing Register command */ '0','0','6','4', /* Starting Register = 10 */ '0','1', /* 4 Register */ '1','2','3','4', /* Data for Register#10 */ }; /* ------------------------------------------------------------------- */ int SendCmdToHitech(int iPort, char cCmd[], int iChksum); int ReceiveResponseFromHitech(int iPort,char cCmd[],long lTimeout,int iChksum); int read_w100(void); int read_b0100(void); void main() { int now_i1,now_i2,now_i3,now_i4,now_i7; int old_i1,old_i2,old_i3,old_i4,old_i7; int i,j; char c; InitLib(); /* driver initial */ InstallCom(1,9600L,8,1,1); /* COM1, RS-232, full-duplex mode, INT */ /* Note : JP1 must select RS-232 */ /* connect to HITECH PWS-1700 */ /* COM4, RS-232, connect to PC's COM port for download */ Init5DigitLed(); /* initial & blank the 5-digit LED */ LedOn(); /* red-LED on */ for (;;) { j++; j=j&0x01; if (j==0) LedOn(); else LedOff(); read_w100(); read_b0100(); DelayTimeMs(500); if (kbhit()) /* is user press PC's keyboard from COM4 */ { c=getch(); /* if this key is Q or Q --> exit this program */ if ((c=='q') || (c=='Q')) { RestoreCom(1); return; } } } } /* ------------------------------------------------------------------- */ int read_w100(void) { int i,j; int i1,i2,i3; char str[80]; SendCmdToHitech(1,cRegisterRead,1); j=0; while (IsCom(1)==0) { j++; if (j>100) return(1); /* time out */ DelayTimeMs(1); } i=ReceiveResponseFromHitech(1, str, 60000L, 0); if (i==NoError) { i1=ascii_to_hex(str[5]); Show5DigitLed(3,i1); i2=ascii_to_hex(str[6]); Show5DigitLed(4,i2); i3=ascii_to_hex(str[7]); Show5DigitLed(5,i3); printf("\nW100=%d%d%d",i1,i2,i3); } return NoError; } ascii_to_hex(char c) { if (c<='9') return(c-'0'); else return(c-'A'+10); } /* ------------------------------------------------------------------- */ int read_b0100(void) { int i,j; int i1,i2; char str[80]; SendCmdToHitech(1,cRelayRead,1); j=0; while (IsCom(1)==0) { j++; if (j>100) return(1); /* time out */ DelayTimeMs(1); } i=ReceiveResponseFromHitech(1, str, 60000L, 0); if (i==NoError) { i1=ascii_to_hex(str[4]); Show5DigitLed(1,i1); i2=ascii_to_hex(str[6]); Show5DigitLed(2,i2); printf(" * B100=%d, B102=%d",i1,i2); } return NoError; }