Kомманды получения статической информации.

Эта группа команд дает статичную информацию о устройстве (например, тип, ревизию фирмваре, и др);

Name W Result
Command :W#13
Response :W#13#10[XX]#13#10
Comment Позволяет определить, имеем мы Smart или Unison Ups (см ниже)

Name Model Number
Command :L#13
Response :L#13#10[XX]#13#10
Comment Позволяет определить номер модели (см ниже)

Name Firmware Revision Level
Command :V#13
Response :V#13#10[XX]#13#10
Comment Позволяет определить версию Firmvare (см ниже)

Name Firmware Checksum
Command :X#13
Response :X#13#10[XXXX]#13#10
Comment Из этого мы можем выципить информацию о возможностях аппарата (см ниже)

В общем случае, если Ups ответил на первые две команды, то у нас smart ups.

Из этих команд можно так же извлечь некоторую полезную информацию. Далее я приведу формулы с комментариями из *.drv файлов от PoweAlert.

Name=Firmware Version1
Command=Firmware Revision Level
Units=A,B,C,D,E,F,G,H,I,J
Formula=$A2I($LEFT([X],1))

Name=Firmware Version2
Command=Firmware Revision Level
Units=A,B,C,D,E,F,G,H,I,J
Formula=$A2I($MID([X],1,1))

Name=Firmware Generation
Command=Firmware Checksum
Formula=($A2I($LEFT([X],1))<8)*($A2I($MID([X],1,1))<8)+1

Name=UPS Firmware Version
Command=Firmware Revision Level
Formula="Rev "&[V:*Firmware Version1]&[V:*Firmware Version2]&" (Gen "&$I2A([V:Firmware Generation])&")"

При помощи этих вычислений мы получим строку типа "Rev AH (Gen 2)", показывающую нам версию встроенного программного обеспечения UPS`а (firmware)

Name=L Result
Command=Model Number
Formula=$A2H([X])

Name=W Result
Command=W Result
Formula=$A2H([X])

Name=Unit Type
Command=W Result
Formula=([V:W Result]<<1)>>7
Units=Smart,Unison

Name=VA Rating New
Command=Model Number
Formula=((([V:W Result]<<2)*8)+([V:L Result]>>3))*5

Name=VA Rating Old
Command=Model Number
Formula=[V:L Result]/2

Name=VA Rating
Command=Model Number
Formula=(([V:W Result]<128)*[V:VA Rating Old])+(([V:W Result]>=128)*[V:VA Rating New])

Name=Model
Command=Model Number
Formula=[V:*Unit Type]&" "&$I2A([V:VA Rating])

В результате мы получим что-то типа "Smart 250"

Name=Controllable Receptacles
Command=Firmware Checksum
Formula=$A2I($LEFT([X],1))-(($A2I($MID([X],1,1))>=8)*8)

Некоторые UPS позволяют раздельно управлять отдельными выходными разъемами (Receptacles). По этому, при переходе на батареи для их экономии возможно отключить не особо важные устройства. Предыдущая формула позволяет определить наличие и количество управляемых разъемов. Если полученное число больше нуля - то это количество разъемов. Если меньше или ноль - таковые отсутствуют.

Name Request Power Rating
Command :P#13
Response :P#13#10[XX]#13#10
Comment Из этого мы можем определить мощность в W

Name=VA Rating
Command=Request Power Rating
Formula=$A2I($MID([X],0,2))*10

Эта команда под вопросом - у меня мощность получилась 200W при номинальной 175W и описана только применительно к некоторым UPS c USB - интерфейсом. В исходниках под "Пингвина" ее нет.

P.S. Все эти команды чисто информативного плана и если писать что-то для себя, то толк от них не велик - только выдать строчки "Супер-пупер ПУПС 250 варь ХХХ"

Неизвестные команды

Назначение этих коммакоманд определить не удалось.

Name Unknown
Command :U#13
Response :U#13#10[XXX]#13#10
Comment У меня всегда возвращает "000" назначение неизвестно, недокументированно!

Name Unknown
Command :Z#13
Response :Z#13#10[XX]#13#10
Comment У меня всегда возвращает "000" назначение неизвестно, недокументированно!