Imported Upstream version 2.7.1

This commit is contained in:
Laurent Bigonville 2013-11-24 16:00:12 +01:00
parent a1fa151fc7
commit 0121794af9
451 changed files with 41339 additions and 10887 deletions

View file

@ -2,7 +2,7 @@
*
* Copyright (C) 1999 Russell Kroll <rkroll@exploits.org>
* (C) 2000 Nigel Metheringham <Nigel.Metheringham@Intechnology.co.uk>
* (C) 2011 Michal Soltys <soltys@ziu.info>
* (C) 2011+ Michal Soltys <soltys@ziu.info>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -32,10 +32,10 @@ apc_vartab_t apc_vartab[] = {
{ "ups.delay.shutdown", 'p', APC_F_SECONDS },
{ "ups.id", 'c', APC_STRING },
{ "ups.contacts", 'i', APC_POLL|APC_F_HEX },
{ "ups.display.language", '\014', 0 },
{ "ups.display.language", '\014' },
{ "input.voltage", 'L', APC_POLL|APC_F_VOLT },
{ "input.frequency", 'F', APC_POLL|APC_F_DEC },
{ "input.sensitivity", 's', 0 },
{ "input.sensitivity", 's', },
{ "input.quality", '9', APC_POLL|APC_F_HEX },
{ "input.transfer.low", 'l', APC_F_VOLT },
{ "input.transfer.high", 'u', APC_F_VOLT },
@ -46,29 +46,32 @@ apc_vartab_t apc_vartab[] = {
{ "output.voltage", 'O', APC_POLL|APC_F_VOLT },
{ "output.voltage.nominal", 'o', APC_F_VOLT },
{ "ambient.humidity", 'h', APC_POLL|APC_F_PERCENT },
{ "ambient.humidity.high", '{', APC_F_PERCENT },
{ "ambient.humidity.low", '}', APC_F_PERCENT },
{ "ambient.0.humidity", 'H', APC_POLL|APC_PACK|APC_F_PERCENT },
{ "ambient.0.humidity.high", '{', APC_POLL|APC_PACK|APC_F_PERCENT },
{ "ambient.0.humidity.low", '}', APC_POLL|APC_PACK|APC_F_PERCENT },
{ "ambient.temperature", 't', APC_POLL|APC_F_CELSIUS },
{ "ambient.temperature.high", '[', APC_F_CELSIUS },
{ "ambient.temperature.low", ']', APC_F_CELSIUS },
{ "ambient.0.temperature", 'T', APC_MULTI|APC_POLL|APC_PACK|APC_F_CELSIUS, "^[0-9]{2}\\.[0-9]{2}$" },
{ "ambient.0.temperature.high", '[', APC_POLL|APC_PACK|APC_F_CELSIUS },
{ "ambient.0.temperature.low", ']', APC_POLL|APC_PACK|APC_F_CELSIUS },
{ "battery.date", 'x', APC_STRING },
{ "battery.charge", 'f', APC_POLL|APC_F_PERCENT },
{ "battery.charge.restart", 'e', APC_F_PERCENT },
{ "battery.voltage", 'B', APC_POLL|APC_F_VOLT },
{ "battery.voltage.nominal", 'g', 0 },
{ "battery.voltage.nominal", 'g', },
{ "battery.runtime", 'j', APC_POLL|APC_F_MINUTES },
{ "battery.runtime.low", 'q', APC_F_MINUTES },
{ "battery.packs", '>', APC_F_DEC },
{ "battery.packs.bad", '<', APC_F_DEC },
{ "battery.alarm.threshold", 'k', 0 },
{ "ups.serial", 'n', 0 },
{ "ups.mfr.date", 'm', 0 },
{ "ups.model", '\001', 0 },
{ "ups.firmware.aux", 'v', 0 },
{ "ups.firmware", 'b', APC_MULTI },
{ "battery.alarm.threshold", 'k', },
{ "device.uptime", 'T', APC_MULTI|APC_POLL|APC_F_HOURS, "^[0-9]{3}\\.[0-9]{1}$" },
{ "ups.serial", 'n', },
{ "ups.mfr.date", 'm', },
{ "ups.model", '\001' },
{ "ups.firmware.aux", 'v', },
{ "ups.firmware", 'b', APC_MULTI, "^[[:alnum:]]+\\.[[:alnum:]]+\\.[[:alnum:]]+$" },
{ "ups.firmware", 'V', APC_MULTI },
{ 0, 0, 0 }
{ NULL }
/* todo:
I = alarm enable (hex field) - split into alarm.n.enable
@ -81,27 +84,29 @@ apc_vartab_t apc_vartab[] = {
};
/*
* apc commands mapped to nut's instant commands extra values are either
* exactly 2-char prefix, or longer than 2-char extended regex
* APC commands mapped to NUT's instant commands
* the format of extra values is matched by extended posix regex
* APC_CMD_CUSTOM means that the instant command is handled by separate
* function, thus the actual APC cmd in the table is ignored
*/
apc_cmdtab_t apc_cmdtab[] = {
{ "shutdown.return", "^[Aa][Tt]:[0-9]{1,3}$",
APC_CMD_GRACEDOWN, APC_NASTY },
{ "shutdown.return", "^([Cc][Ss]|)$",
APC_CMD_SOFTDOWN, APC_NASTY },
{ "shutdown.stayoff", 0, APC_CMD_SHUTDOWN, APC_NASTY|APC_REPEAT },
{ "load.off", 0, APC_CMD_OFF, APC_NASTY|APC_REPEAT },
{ "load.on", 0, APC_CMD_ON, APC_REPEAT },
{ "calibrate.start", 0, APC_CMD_CALTOGGLE, 0 },
{ "calibrate.stop", 0, APC_CMD_CALTOGGLE, 0 },
{ "test.panel.start", 0, APC_CMD_FPTEST, 0 },
{ "test.failure.start", 0, APC_CMD_SIMPWF, 0 },
{ "test.battery.start", 0, APC_CMD_BTESTTOGGLE, 0 },
{ "test.battery.stop", 0, APC_CMD_BTESTTOGGLE, 0 },
{ "shutdown.return", "^at:[0-9]{1,3}$",
APC_CMD_GRACEDOWN, APC_NASTY },
{ "shutdown.return", "cs", APC_CMD_SOFTDOWN, APC_NASTY },
{ "shutdown.return", 0, APC_CMD_SOFTDOWN, APC_NASTY },
{ "shutdown.stayoff", 0, APC_CMD_SHUTDOWN, APC_NASTY|APC_REPEAT },
{ "load.off", 0, APC_CMD_OFF, APC_NASTY|APC_REPEAT },
{ "load.on", 0, APC_CMD_ON, APC_REPEAT },
{ "bypass.start", 0, APC_CMD_BYPTOGGLE, 0 },
{ "bypass.stop", 0, APC_CMD_BYPTOGGLE, 0 },
{ "calibrate.start", 0, APC_CMD_CALTOGGLE, 0 },
{ "calibrate.stop", 0, APC_CMD_CALTOGGLE, 0 },
{ 0, 0, 0, 0 }
{ NULL }
};
/* compatibility with hardware that doesn't do APC_CMDSET ('a') */
@ -122,11 +127,16 @@ apc_compattab_t apc_compattab[] = {
{ "7QI", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
{ "7TD", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
{ "7TI", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
/* SmartUPS 600I */
{ "6JI", "@789ABCFGKLMNOPQSTUVWXYZfg", 0 },
/* SmartUPS 900I */
{ "7II", "@79ABCEFGKLMNOPQSUVWXYZcfg", 0 },
{ "7II", "@79ABCEFGKLMNOPQRSUVWXYZcfg", 0 },
/* SmartUPS 2000I */
{ "9II", "@79ABCEFGKLMNOPQSUVWXYZcfg", 0 },
{ "9GI", "@79ABCEFGKLMNOPQSUVWXYZcfg", 0 },
{ "9II", "@79ABCEFGKLMNOPQRSUVWXYZcfg", 0 },
{ "9GI", "@79ABCEFGKLMNOPQRSUVWXYZcfg", 0 },
/* SmartUPS 1250I */
{ "8II", "@79ABCEFGKLMNOPQRSUVWXYZcfg", 0 },
{ "8GI", "@79ABCEFGKLMNOPQRSUVWXYZfg", 0 },
/* SmartUPS 1250 */
{ "8QD", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
{ "8QI", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
@ -134,22 +144,18 @@ apc_compattab_t apc_compattab[] = {
{ "8TI", "@79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
/* CS 350 */
{ "5.4.D", "@\1ABPQRSUYbdfgjmnx9", 0 },
/* Smart-UPS 600 */
{ "D9", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D8", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D7", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D6", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D5", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D4", "@789ABCEFGKLMNOPQRSUVWXYZ", 0 },
/*
* certain set of UPSes returning voltage > 255V through 'b'; "set\1"
* is matched explicitly (fake key); among the UPS models - some old
* APC 600 ones
*/
{ "set\1", "@789ABCFGKLMNOPQRSUVWXYZ", 0 },
{ 0, 0, 0 }
{ NULL }
};
upsdrv_info_t apc_tab_info = {
"APC command table",
APC_TABLE_VERSION,
0,
0,
{ 0 }
APC_TABLE_VERSION
};