Markus Pruehs
2013-Jan-30 03:00 UTC
[Nut-upsuser] bug report: apcsmart (WIN) 940-0024C connect fail, problem with command 'E'
Dear Ladies and Gentlemen, I have several old, yet functioning APC Smart-UPS (Model 600LS, Part AP600I, Firmware 6JI, no EEPROM, from 1991). They are not supported by Powerchute any more. I run NUT 2.6.5-4 on Windows XP SP3. I use COM1 port with cable 940-0024C. The connection fails with APC Smart protocol driver 3.0 (2.6.3-3534:3540M), APC command table version 3.0 or higher - it works with APC Smart protocol driver 2.1 (2.6.1-3057:3116M), APC command table version 2.2 or lower. Please fix the driver. Thank you. These units neither support the capabilities 'a', model '\001' nor new firmware 'b' commands. Because there is no compatibility entry for 6JI, NUT tests all commands thereby sending 'E' to the UPS which has a different meaning: It does not report the configured self test interval as expexted but results in 'OK', disables the alarm and freezes the battery voltage thus rendering the UPS almost useless. I contacted APC for an explanation of the purpose but have not received a response yet. The only way to leave this state seems to be switching off/on (resetting) the UPS. I would like to suggest to update NUT with a compatibility entry for firmware 6JI without command 'E'. However, command 'T' reports the UPS power on hours in decimal format xxx.x Thank you in advance, Markus Pruehs ups.conf: [600LS] driver=apcsmart port=COM1 C:\Programme\NUT\bin>apcsmart -a 600LS -DDDDD 0.000000 debug level is '5' 0.000000 w32_serial_open (COM1) 0.010014 setting initial state on COM1 0.010014 000007D0 = w32_serial_open (COM1) 0.010014 Warning: no locking method is available: No error [Der Vorgang wurde erfolgreich beendet. ] 0.020029 vmin_ 0, vtime_ 0 0.120173 action 0 0.120173 vtime 0, vmin 1 0.120173 ReadTotalTimeoutConstant -2, ReadIntervalTimeout -1, ReadTotalTimeoutMultiplier -1 0.120173 vmin_ 1, vtime_ 0 0.230331 action 0 0.230331 vtime 0, vmin -1 0.230331 ReadTotalTimeoutConstant -2, ReadIntervalTimeout -1, ReadTotalTimeoutMultiplier -1 0.230331 vmin_ -1, vtime_ 0 0.240345 COM1: device reports different attributes than what were set 0.240345 tcsetattr(): gfmt1:cflag=8bb:iflag=84:lflag=2:oflag=0: 0.240345 discard=0: 0.250360 eof=0: 0.250360 eol=2a: 0.250360 eol2=0: 0.250360 erase=0: 0.250360 intr=0: 0.250360 kill=0: 0.250360 lnext=0: 0.260374 min=1: 0.260374 quit=0: 0.260374 reprint=0: 0.260374 start=11: 0.260374 stop=13: 0.260374 susp=0: 0.260374 time=0: 0.260374 werase=0: 0.270389 ispeed=11:ospeed=11 0.270389 tcgetattr(): gfmt1:cflag=83b:iflag=4:lflag=2:oflag=0: 0.270389 discard=0: 0.270389 eof=0: 0.280403 eol=0: 0.280403 eol2=0: 0.280403 erase=0: 0.280403 intr=0: 0.280403 kill=0: 0.280403 lnext=0: 0.280403 min=0: 0.280403 quit=0: 0.290417 reprint=0: 0.290417 start=11: 0.290417 stop=13: 0.290417 susp=0: 0.290417 time=0: 0.290417 werase=0: 0.290417 ispeed=11:ospeed=11 0.300432 send_to_all: SETINFO device.type "ups" 0.300432 send_to_all: SETINFO driver.version "2.6.5-3780M" 0.300432 send_to_all: SETINFO driver.version.internal "3.04" 0.310446 send_to_all: SETINFO driver.name "apcsmart" 0.410590 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 0.470677 w32_serial_read : characters are available on input buffer 0.470677 w32_serial_read : Reading 1 characters 0.470677 w32_serial_read : total characters read = 1 0.480691 w32_serial_read : Reading 3 characters 0.480691 w32_serial_read : total characters read = 4 0.480691 w32_serial_read : characters are available on input buffer 0.490705 w32_serial_read : Reading 1 characters 1.992865 w32_serial_read : total characters read = 4 2.093009 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 3.605184 w32_serial_read : timeout 1500 ms ellapsed 3.705328 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 3.755400 w32_serial_read : characters are available on input buffer 3.765414 w32_serial_read : Reading 1 characters 3.765414 w32_serial_read : total characters read = 1 3.765414 w32_serial_read : Reading 3 characters 3.775429 w32_serial_read : total characters read = 4 3.775429 w32_serial_read : characters are available on input buffer 3.775429 w32_serial_read : Reading 1 characters 5.287603 w32_serial_read : total characters read = 4 5.387747 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 6.899921 w32_serial_read : timeout 1500 ms ellapsed 7.000065 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 7.060152 w32_serial_read : characters are available on input buffer 7.060152 w32_serial_read : Reading 1 characters 7.060152 w32_serial_read : total characters read = 1 7.070166 w32_serial_read : Reading 3 characters 7.070166 w32_serial_read : total characters read = 4 7.070166 w32_serial_read : characters are available on input buffer 7.080181 w32_serial_read : Reading 1 characters 8.582341 w32_serial_read : total characters read = 4 8.682485 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 10.194659 w32_serial_read : timeout 1500 ms ellapsed 10.294803 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 10.344875 w32_serial_read : characters are available on input buffer 10.344875 w32_serial_read : Reading 1 characters 10.354889 w32_serial_read : total characters read = 1 10.354889 w32_serial_read : Reading 3 characters 10.364904 w32_serial_read : total characters read = 4 10.364904 w32_serial_read : characters are available on input buffer 10.364904 w32_serial_read : Reading 1 characters 11.877078 w32_serial_read : total characters read = 4 11.977222 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 13.489397 w32_serial_read : timeout 1500 ms ellapsed 13.589541 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 13.649627 w32_serial_read : characters are available on input buffer 13.649627 w32_serial_read : Reading 1 characters 13.649627 w32_serial_read : total characters read = 1 13.659641 w32_serial_read : Reading 3 characters 13.659641 w32_serial_read : total characters read = 4 13.659641 w32_serial_read : characters are available on input buffer 13.669656 w32_serial_read : Reading 1 characters 15.171816 w32_serial_read : total characters read = 4 15.312017 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 16.824192 w32_serial_read : timeout 1500 ms ellapsed 16.824192 unable to detect an APC Smart protocol UPS on port COM1 check the cabling, port name or model name and try again 16.944365 w32_serial_read : ulen 512, vmin_ -1, vtime_ 0, hEvent 000007CC 19.968713 w32_serial_read : timeout 3000 ms ellapsed corresponding portmon capture log: 0 0.00000000 apcsmart.exe IRP_MJ_CREATE Serial0 Options: Open 0 0.00008269 SUCCESS 1 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 1 0.00001285 SUCCESS 2 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:0 RM:0 RC:0 WM:0 WC:0 2 0.00000531 SUCCESS 3 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 3 0.00000419 SUCCESS 4 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 4 0.00000419 SUCCESS 5 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 5 0.00000363 SUCCESS 6 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 6 0.00000363 SUCCESS 7 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 7 0.00000615 SUCCESS 8 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 8 0.00000419 SUCCESS 9 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 9 0.00000335 SUCCESS 10 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 10 0.00000363 SUCCESS 11 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 Rate: 9600 11 0.00001648 SUCCESS 12 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_RTS Serial0 12 0.00001006 SUCCESS 13 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 13 0.00001034 SUCCESS 14 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 StopBits: 1 Parity: NONE WordLength: 8 14 0.00000922 SUCCESS 15 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_CHAR Serial0 EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 15 0.00000670 SUCCESS 16 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 Shake:80000001 Replace:80000040 XonLimit:2048 XoffLimit:512 16 0.00001034 SUCCESS 17 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 17 0.00000810 SUCCESS 18 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 18 0.00000615 SUCCESS 19 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 19 0.00000391 SUCCESS 20 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 20 0.00000335 SUCCESS 21 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 21 0.00000363 SUCCESS 22 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 22 0.00001117 SUCCESS 24 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 24 0.00000643 SUCCESS 25 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 25 0.00000447 SUCCESS 26 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 26 0.00000391 SUCCESS 27 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 27 0.00000363 SUCCESS 28 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 28 0.00000419 SUCCESS 29 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 29 0.00000335 SUCCESS 30 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 30 0.00000335 SUCCESS 31 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 31 0.00000335 SUCCESS 32 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 Rate: 2400 32 0.00001620 SUCCESS 33 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_RTS Serial0 33 0.00001006 SUCCESS 34 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 34 0.00001006 SUCCESS 35 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 StopBits: 1 Parity: NONE WordLength: 8 35 0.00000978 SUCCESS 36 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_CHAR Serial0 EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 36 0.00000726 SUCCESS 37 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 Shake:80000001 Replace:80000040 XonLimit:2048 XoffLimit:512 37 0.00001117 SUCCESS 38 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 38 0.00000978 SUCCESS 39 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:-1 RC:-2 WM:0 WC:0 39 0.00000615 SUCCESS 40 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 40 0.00000447 SUCCESS 41 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 41 0.00000363 SUCCESS 42 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 42 0.00000307 SUCCESS 43 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 43 0.00000363 SUCCESS 44 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 44 0.00000810 SUCCESS 45 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 45 0.00000866 SUCCESS 47 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 47 0.00000615 SUCCESS 48 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 48 0.00000391 SUCCESS 49 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 49 0.00000363 SUCCESS 50 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 50 0.00000335 SUCCESS 51 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 51 0.00001034 SUCCESS 52 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:-1 RC:-2 WM:0 WC:0 52 0.00000615 SUCCESS 53 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 53 0.00000475 SUCCESS 54 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 54 0.00000335 SUCCESS 55 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 55 0.00000363 SUCCESS 56 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 56 0.00000363 SUCCESS 57 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 57 0.00000810 SUCCESS 58 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 58 0.00000866 SUCCESS 60 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 59 60 0.00003995 SUCCESS 61 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 61 0.00000559 SUCCESS 62 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 62 0.00000447 SUCCESS 63 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 63 0.00001090 SUCCESS 65 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 65 0.05029215 SUCCESS 66 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 66 0.00001341 SUCCESS Length 1: 53 68 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 68 0.00001173 SUCCESS Length 3: 4D 0D 0A 70 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 70 0.00001397 SUCCESS 71 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 71 1.50040187 TIMEOUT Length 0: 72 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 72 0.00001257 SUCCESS 73 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 73 0.00000866 SUCCESS 75 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 1B 75 0.00004889 SUCCESS 76 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 76 0.00000531 SUCCESS 77 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 77 0.00000475 SUCCESS 78 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 78 0.00001090 SUCCESS 80 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 80 1.49669944 CANCELLED 81 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 81 0.00001201 SUCCESS 82 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 82 0.00000866 SUCCESS 84 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 59 84 0.00003883 SUCCESS 85 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 85 0.00000559 SUCCESS 86 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 86 0.00000475 SUCCESS 87 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 87 0.00001173 SUCCESS 89 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 89 0.05590236 SUCCESS 90 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 90 0.00001341 SUCCESS Length 1: 53 92 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 92 0.00001201 SUCCESS Length 3: 4D 0D 0A 94 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 94 0.00001369 SUCCESS 95 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 95 1.49637147 TIMEOUT Length 0: 96 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 96 0.00001257 SUCCESS 97 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 97 0.00000866 SUCCESS 99 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 1B 99 0.00003632 SUCCESS 100 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 100 0.00000559 SUCCESS 101 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 101 0.00000503 SUCCESS 102 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 102 0.00001062 SUCCESS 104 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 104 1.49704250 CANCELLED 105 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 105 0.00001173 SUCCESS 106 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 106 0.00000894 SUCCESS 108 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 59 108 0.00003743 SUCCESS 109 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 109 0.00000503 SUCCESS 110 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 110 0.00000503 SUCCESS 111 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 111 0.00001062 SUCCESS 113 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 113 0.05300422 SUCCESS 114 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 114 0.00001397 SUCCESS Length 1: 53 116 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 116 0.00001173 SUCCESS Length 3: 4D 0D 0A 118 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 118 0.00001509 SUCCESS 119 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 119 1.49919445 TIMEOUT Length 0: 120 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 120 0.00001062 SUCCESS 121 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 121 0.00000894 SUCCESS 123 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 1B 123 0.00003604 SUCCESS 124 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 124 0.00000531 SUCCESS 125 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 125 0.00000475 SUCCESS 126 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 126 0.00001062 SUCCESS 128 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 128 1.50717005 CANCELLED 129 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 129 0.00001509 SUCCESS 130 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 130 0.00000894 SUCCESS 132 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 59 132 0.00003967 SUCCESS 133 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 133 0.00000531 SUCCESS 134 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 134 0.00000475 SUCCESS 135 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 135 0.00001201 SUCCESS 137 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 137 0.05666949 SUCCESS 138 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 138 0.00001397 SUCCESS Length 1: 53 140 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 140 0.00001201 SUCCESS Length 3: 4D 0D 0A 142 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 142 0.00001369 SUCCESS 143 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 143 1.49224664 TIMEOUT Length 0: 144 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 144 0.00001229 SUCCESS 145 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 145 0.00000922 SUCCESS 147 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 1B 147 0.00003827 SUCCESS 148 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 148 0.00000531 SUCCESS 149 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 149 0.00000475 SUCCESS 150 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 150 0.00001229 SUCCESS 152 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 152 1.49647818 CANCELLED 153 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 153 0.00001285 SUCCESS 154 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 154 0.00000894 SUCCESS 156 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 59 156 0.00003911 SUCCESS 157 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 157 0.00000531 SUCCESS 158 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 158 0.00000503 SUCCESS 159 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 159 0.00001145 SUCCESS 161 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 161 0.05359899 SUCCESS 162 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 162 0.00001872 SUCCESS Length 1: 53 164 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 164 0.00001201 SUCCESS Length 3: 4D 0D 0A 166 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 166 0.00001592 SUCCESS 167 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 167 1.50167745 TIMEOUT Length 0: 168 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 168 0.00001034 SUCCESS 169 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 169 0.00000866 SUCCESS 171 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 1B 171 0.00003743 SUCCESS 172 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 172 0.00000531 SUCCESS 173 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:1500 WM:0 WC:0 173 0.00000503 SUCCESS 174 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 174 0.00001173 SUCCESS 176 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 176 1.49659580 CANCELLED 177 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: TXABORT TXCLEAR 177 0.00001285 SUCCESS 178 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 178 0.00000866 SUCCESS 180 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: 52 180 0.00003855 SUCCESS 181 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 181 0.00000531 SUCCESS 182 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:3000 WM:0 WC:0 182 0.00000503 SUCCESS 183 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 183 0.00001117 SUCCESS 185 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 185 2.99880460 CANCELLED 186 0.00000000 apcsmart.exe IRP_MJ_CLEANUP Serial0 186 0.00000838 SUCCESS 187 0.00000000 apcsmart.exe IRP_MJ_CLOSE Serial0 187 0.04620950 SUCCESS
Michal Soltys
2013-Jan-31 11:15 UTC
[Nut-upsuser] bug report: apcsmart (WIN) 940-0024C connect fail, problem with command 'E'
On 2013-01-30 04:00, Markus Pruehs wrote:> > These units neither support the capabilities 'a', model '\001' nor new > firmware 'b' commands. Because there is no compatibility entry for 6JI, NUT > tests all commands thereby sending 'E' to the UPS which has a different > meaning: It does not report the configured self test interval as expexted > but results in 'OK', disables the alarm and freezes the battery voltage thus > rendering the UPS almost useless. I contacted APC for an explanation of the > purpose but have not received a response yet. The only way to leave this > state seems to be switching off/on (resetting) the UPS. I would like to > suggest to update NUT with a compatibility entry for firmware 6JI without > command 'E'. However, command 'T' reports the UPS power on hours in decimal > format xxx.xAbout this one: What does your ups respond to 'V' ? If 'E' is being send, then it looks like it matched something - as otherwise (if V/b/a all fail, only a very limited subset of commands is tried - 'E' is not among those). 'T' also means something entirely different in some other cases, hmmmm. Will have to think how to handle that.
Markus Pruehs
2013-Feb-05 13:50 UTC
[Nut-upsuser] bug report: apcsmart (WIN) 940-0024C connect fail, problem with command 'E'
Dear Ladies and Gentlemen, this is the response from APC concerning the smart protocol commands for UPS Model 600LS, Part AP600I, Firmware 6JI: (German) Leider haben wir keine Person, die seit eine so lange Zeit in der Firma gearbeitet gat, die uns mehr ?ber den Protokol dieser USV mitteilen kann. (English) No employee from 1991 still works for APC to know of this protocol. Thank you, Michal Soltys, for your answer. These are the APC Smart protocol driver 2.1 (2.6.1-3057:3116M), APC command table version 2.2 debug log (because newer drivers do not work) and the corresponding portmon capture log. Finally a list of all available commands/responses for this UPS (functional differences are indicated): ups.conf: [600LS] driver=apcsmart port=COM1 C:\Programme\NUT\bin>apcsmart -a 600LS -DDDDD Network UPS Tools - APC Smart protocol driver 2.1 (2.6.1-3057:3116M) APC command table version 2.2 0.000000 debug level is '5' 0.000000 w32_serial_open (COM1) 0.010014 setting initial state on COM1 0.010014 000007D8 = w32_serial_open (COM1) 0.010014 Warning: no locking method is available: No error [Der Vorgang wurde erfolgreich beendet. ] 0.020029 vmin_ 0, vtime_ 0 0.120173 action 0 0.140201 vtime 0, vmin 1 0.140201 ReadTotalTimeoutConstant -2, ReadIntervalTimeout -1, ReadTotalTimeoutMultiplier -1 0.140201 send_to_all: SETINFO device.type "ups" 0.150216 send_to_all: SETINFO driver.version "2.6.1-3057:3116M" 0.150216 send_to_all: SETINFO driver.version.internal "2.1" 0.160230 send_to_all: SETINFO driver.name "apcsmart" 0.160230 w32_serial_read : ulen 64, vmin_ 1, vtime_ 0, hEvent 000007D4 0.220317 w32_serial_read : characters are available on input buffer 0.220317 w32_serial_read : Reading 1 characters 0.220317 w32_serial_read : total characters read = 1 0.230331 w32_serial_read : Reading 3 characters 0.230331 w32_serial_read : total characters read = 4 0.230331 send_to_all: SETINFO ups.mfr "APC" 0.240345 Attempting firmware lookup using command 'V' 0.240345 w32_serial_read : ulen 64, vmin_ 1, vtime_ 0, hEvent 000007D4 0.240345 w32_serial_read : characters are available on input buffer 0.250360 w32_serial_read : Reading 1 characters 0.310446 w32_serial_read : total characters read = 1 0.310446 w32_serial_read : Reading 4 characters 0.310446 w32_serial_read : total characters read = 5 0.320461 Firmware: [6JI] 0.320461 Not found in table - trying normal method 0.320461 APC - Attempting to find command set 0.320461 w32_serial_read : ulen 64, vmin_ 1, vtime_ 0, hEvent 000007D4 0.330475 w32_serial_read : characters are available on input buffer 0.330475 w32_serial_read : Reading 1 characters 0.390561 w32_serial_read : total characters read = 1 0.390561 w32_serial_read : Reading 3 characters 0.390561 w32_serial_read : total characters read = 4 0.400576 APC - Parsing out command set 0.400576 Unable to split APC version string corresponding portmon capture log: 0 0.00000000 apcsmart.exe IRP_MJ_CREATE Serial0 Options: Open 0 0.00008521 SUCCESS 1 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 1 0.00001229 SUCCESS 2 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:0 RM:0 RC:0 WM:0 WC:0 2 0.00000531 SUCCESS 3 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 3 0.00000419 SUCCESS 4 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 4 0.00000391 SUCCESS 5 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 5 0.00000363 SUCCESS 6 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 6 0.00000335 SUCCESS 7 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 7 0.00000615 SUCCESS 8 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 8 0.00000363 SUCCESS 9 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 9 0.00000335 SUCCESS 10 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 10 0.00000335 SUCCESS 11 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 Rate: 9600 11 0.00001620 SUCCESS 12 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_RTS Serial0 12 0.00000950 SUCCESS 13 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 13 0.00001034 SUCCESS 14 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 StopBits: 1 Parity: NONE WordLength: 8 14 0.00000950 SUCCESS 15 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_CHAR Serial0 EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 15 0.00000670 SUCCESS 16 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 Shake:80000001 Replace:80000040 XonLimit:2048 XoffLimit:512 16 0.00000978 SUCCESS 17 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 17 0.00000810 SUCCESS 18 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 18 0.00000615 SUCCESS 19 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 19 0.00000391 SUCCESS 20 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 20 0.00000307 SUCCESS 21 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 21 0.00000307 SUCCESS 22 0.00000000 apcsmart.exe IOCTL_SERIAL_PURGE Serial0 Purge: RXABORT RXCLEAR 22 0.00001117 SUCCESS 23 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 23 0.00001285 SUCCESS 24 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 24 0.00000810 SUCCESS 25 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 25 0.00000447 SUCCESS 26 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 26 0.00000335 SUCCESS 27 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 27 0.00000335 SUCCESS 28 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 28 0.00000419 SUCCESS 29 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 29 0.00000335 SUCCESS 30 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_CHARS Serial0 30 0.00000335 SUCCESS 31 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 31 0.00000307 SUCCESS 32 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 Rate: 2400 32 0.00001564 SUCCESS 33 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_RTS Serial0 33 0.00000950 SUCCESS 34 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 34 0.00001062 SUCCESS 35 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 StopBits: 1 Parity: NONE WordLength: 8 35 0.00001006 SUCCESS 36 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_CHAR Serial0 EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 36 0.00000643 SUCCESS 37 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 Shake:80000001 Replace:80000040 XonLimit:2048 XoffLimit:512 37 0.00001062 SUCCESS 38 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_DTR Serial0 38 0.00000950 SUCCESS 39 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:-1 RC:-2 WM:0 WC:0 39 0.00000643 SUCCESS 40 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: Y 40 0.00004051 SUCCESS 41 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 41 0.00000503 SUCCESS 42 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:3000 WM:0 WC:0 42 0.00000419 SUCCESS 43 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 43 0.00001090 SUCCESS 44 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 44 0.00000782 SUCCESS 45 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 45 0.05105649 SUCCESS 46 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 46 0.00001313 SUCCESS Length 1: S 47 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 47 0.00000978 SUCCESS 48 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 48 0.00001145 SUCCESS Length 3: M.. 49 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 49 0.00000950 SUCCESS 50 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: V 50 0.00003324 SUCCESS 51 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 51 0.00000475 SUCCESS 52 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:3000 WM:0 WC:0 52 0.00000447 SUCCESS 53 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 53 0.00001034 SUCCESS 54 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 54 0.00000754 SUCCESS 55 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 55 0.00001285 SUCCESS 56 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 56 0.05458180 SUCCESS Length 1: 6 57 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 57 0.00001062 SUCCESS 58 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 4 58 0.00001145 SUCCESS Length 4: JI.. 59 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 59 0.00000950 SUCCESS 60 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: a 60 0.00003380 SUCCESS 61 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 61 0.00000475 SUCCESS 62 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 RI:-1 RM:0 RC:3000 WM:0 WC:0 62 0.00000419 SUCCESS 63 0.00000000 apcsmart.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 Mask: RXCHAR 63 0.00001006 SUCCESS 64 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 64 0.00000754 SUCCESS 65 0.00000000 apcsmart.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 65 0.00001369 SUCCESS 66 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 1 66 0.04943114 SUCCESS Length 1: C 67 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 67 0.00001006 SUCCESS 68 0.00000000 apcsmart.exe IRP_MJ_READ Serial0 Length 3 68 0.00001145 SUCCESS Length 3: C.. 69 0.00000000 apcsmart.exe IOCTL_SERIAL_GET_COMMSTATUS Serial0 69 0.00000950 SUCCESS 70 0.00000000 apcsmart.exe IRP_MJ_WRITE Serial0 Length 1: R 70 0.00003324 SUCCESS 71 0.00000000 apcsmart.exe IRP_MJ_CLEANUP Serial0 71 0.00000531 SUCCESS 72 0.00000000 apcsmart.exe IRP_MJ_CLOSE Serial0 72 0.06361144 SUCCESS smart protocol command table for firmware 6JI: command answer difference * NA meaning unknown 3 meaning unknown - values: 00-FF constant set at UPS startup 4 meaning unknown - values: 01-05 variable 7 0F dip switch: 0F if all off, 00 if all on 8 00 9 FF @xxx * A OK B 27.32 C 018.4 E OK meaning unknown - disables alarm and freezes battery voltage on discharge until low battery (power cycle to reset) F 50.00 G S K--K * L 225.1 M 226.2 N 224.0 O 225.1 P 020.2 Q 08 S OK T 001.1 hours since UPS startup in decimal format U OK V 6JI W no answer X OK Y SM Z--Z * a or c CB min line voltage - raw hex values (a+12%=N) b or d CB max line voltage - raw hex values (b+12%=M) f 100.0 g 024 suggested compatibility table entry: { "6JI", "@789ABCFGKLMNOPQSTUVWXYZfg", 0 }
Markus Pruehs
2013-Feb-25 15:13 UTC
[Nut-upsuser] bug report: apcsmart (WIN) 940-0024C connect fail, problem with command 'E'
Dear Ladies and Gentlemen, I would like to ask you to add the compatibility table entry { "6JI", "@789ABCFGKLMNOPQSTUVWXYZfg", 0 } for the APC Smart-UPS (Model 600LS, Part AP600I, Firmware 6JI). I successfully tested it on NUT 2.6.1.1 for Windows by patching / replacing the "D4"-"D9" entries which are responses to the 'b' (new firmware) and not the 'V' (old firmware) command and actually 8bit hex ADC values that are increased by 12.5% (1/8) to represent voltages above 255V (see smart protocol command table for firmware 6JI), thus they do not belong in the compatibility table. Unfortunately, later versions of NUT are incompatible with Windows due to switch to ICANON tty mode: The termios structure of the tcgetattr / tcsetattr functions has to be converted to the DCB structure of the GetCommState / SetCommState functions but there is no equivalent to the IGNCR bit of the c_iflag. As a result, "COM1: device reports different attributes than what were set" and all apc_read returns end with CR (\015). Please re-add this character to IGN_CHARS. Thank you in advance. Sincerely, Markus Pruehs
Reasonably Related Threads
- SeaClear II / Wine use 100% of the CPU
- battery.charge and other fixes needed for X-Power Tigra 1kVA
- blazer_ser problem on windows NUT 2.6.5-3780M
- blazer driver: Possible bugs with battery packs
- [windows port] blazer_ser issues, select_read() from serial semantics