G'day y'all,
Here's a tiny patch set for drivers/apcsmart.c and drivers/apcsmart.h.
Adds APC SmartUPS 1250 ("8QD" case) + 940-0024C recognition to
apcsmart. (Unpatched apcsmart.c v1.99.8 misidentifies the SmartUPS
1250 as a "dumb" UPS.) For NUT 2.0.5+.
NUT 2.0.5: Patches apply successfully. Builds successfully. Works as
expected under Ubuntu 7.04.
NUT 2.2: Patches apply successfully (with offset). Builds
successfully. Untested.
No changes to man pages.
-- Rob
[Sample output from upsc(8)]
Dumb upsc(8) output with unpatched apcsmart(8):
root at maya /root (4:1804) # -? upsc SmartUPS-1250 at localhost
driver.name: apcsmart
driver.parameter.cable: 940-0024C
driver.parameter.port: /dev/ups
driver.parameter.sdtype: 0
driver.version: 2.0.5
driver.version.internal: 1.99.8
input.voltage: 119.6
ups.mfr: APC
ups.model: Smart-UPS
ups.serial: 09000717
ups.status: OL
Not-so-dumb upsc(8) output with patched apcsmart(8):
root at maya /root (4:1805) # -? upsc SmartUPS-1250 at localhost
battery.alarm.threshold: 0
battery.charge: 100.0
battery.charge.restart: 00
battery.date: 07/12/94
battery.runtime: 3060
battery.runtime.low: 300
battery.voltage: 27.67
battery.voltage.nominal: 024
driver.name: apcsmart
driver.parameter.cable: 940-0024C
driver.parameter.port: /dev/ups
driver.parameter.sdtype: 0
driver.version: 2.0.5
driver.version.internal: 1.99.8
input.frequency: 60.00
input.quality: FF
input.sensitivity: H
input.transfer.high: 132
input.transfer.low: 103
input.transfer.reason: R
input.voltage: 119.6
input.voltage.maximum: 119.6
input.voltage.minimum: 119.6
output.voltage: 119.6
output.voltage.nominal: 115
ups.delay.shutdown: 020
ups.delay.start: 000
ups.id: UPS_IDEN
ups.load: 019.2
ups.mfr: APC
ups.mfr.date: 07/12/94
ups.model: Smart-UPS
ups.serial: 09000717
ups.status: OL
ups.temperature: 051.3
ups.test.interval: 0
ups.test.result: NO
[Patches follow]
--- drivers/apcsmart.c~ 2006-11-07 18:08:45.000000000 -0800
+++ drivers/apcsmart.c 2007-07-27 12:52:10.000000000 -0700
@@ -532,15 +532,14 @@
SER_WAIT_SEC, SER_WAIT_USEC);
/* found one, force the model information */
- if (!strcmp(buf, "6QD")) {
+ if(!strcmp(buf, "8QD") || /* (SmartUPS 1250, vintage 07/94.) */
+ !strcmp(buf, "6QD") || /* (APC600.) */
+ !strcmp(buf, "6TI")) { /* (APC600.) */
upsdebugx(1, "Found Smart-UPS");
dstate_setinfo("ups.model", "Smart-UPS");
}
- else if (!strcmp(buf, "6TI")) {
- upsdebugx(1, "Found Smart-UPS");
- dstate_setinfo("ups.model", "Smart-UPS");
- }
- else return 0;
+ else
+ return 0;
}
upsdebugx(2, "Firmware: [%s]", buf);
--- drivers/apcsmart.h~ 2006-11-24 23:57:56.000000000 -0800
+++ drivers/apcsmart.h 2007-07-27 12:51:30.000000000 -0700
@@ -260,6 +260,8 @@ struct {
{ "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+ /* SmartUPS 1250. */
+ { "8QD", "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
{ NULL, NULL, 0 },
};
rrgea1017 at rrgnet.com wrote:> Here's a tiny patch set for drivers/apcsmart.c and drivers/apcsmart.h. > Adds APC SmartUPS 1250 ("8QD" case) + 940-0024C recognition to > apcsmart. (Unpatched apcsmart.c v1.99.8 misidentifies the SmartUPS > 1250 as a "dumb" UPS.) For NUT 2.0.5+. > > NUT 2.0.5: Patches apply successfully. Builds successfully. Works as > expected under Ubuntu 7.04. > > NUT 2.2: Patches apply successfully (with offset). Builds > successfully. Untested. > > No changes to man pages. > > > -- RobIt looks clean to me so I committed your patch to the trunk. Thanks! Best regards, Arjen> [Sample output from upsc(8)] > > Dumb upsc(8) output with unpatched apcsmart(8): > > root at maya /root (4:1804) # -? upsc SmartUPS-1250 at localhost > driver.name: apcsmart > driver.parameter.cable: 940-0024C > driver.parameter.port: /dev/ups > driver.parameter.sdtype: 0 > driver.version: 2.0.5 > driver.version.internal: 1.99.8 > input.voltage: 119.6 > ups.mfr: APC > ups.model: Smart-UPS > ups.serial: 09000717 > ups.status: OL > > > Not-so-dumb upsc(8) output with patched apcsmart(8): > > root at maya /root (4:1805) # -? upsc SmartUPS-1250 at localhost > battery.alarm.threshold: 0 > battery.charge: 100.0 > battery.charge.restart: 00 > battery.date: 07/12/94 > battery.runtime: 3060 > battery.runtime.low: 300 > battery.voltage: 27.67 > battery.voltage.nominal: 024 > driver.name: apcsmart > driver.parameter.cable: 940-0024C > driver.parameter.port: /dev/ups > driver.parameter.sdtype: 0 > driver.version: 2.0.5 > driver.version.internal: 1.99.8 > input.frequency: 60.00 > input.quality: FF > input.sensitivity: H > input.transfer.high: 132 > input.transfer.low: 103 > input.transfer.reason: R > input.voltage: 119.6 > input.voltage.maximum: 119.6 > input.voltage.minimum: 119.6 > output.voltage: 119.6 > output.voltage.nominal: 115 > ups.delay.shutdown: 020 > ups.delay.start: 000 > ups.id: UPS_IDEN > ups.load: 019.2 > ups.mfr: APC > ups.mfr.date: 07/12/94 > ups.model: Smart-UPS > ups.serial: 09000717 > ups.status: OL > ups.temperature: 051.3 > ups.test.interval: 0 > ups.test.result: NO > > > [Patches follow] > > --- drivers/apcsmart.c~ 2006-11-07 18:08:45.000000000 -0800 > +++ drivers/apcsmart.c 2007-07-27 12:52:10.000000000 -0700 > @@ -532,15 +532,14 @@ > SER_WAIT_SEC, SER_WAIT_USEC); > > /* found one, force the model information */ > - if (!strcmp(buf, "6QD")) { > + if(!strcmp(buf, "8QD") || /* (SmartUPS 1250, vintage 07/94.) */ > + !strcmp(buf, "6QD") || /* (APC600.) */ > + !strcmp(buf, "6TI")) { /* (APC600.) */ > upsdebugx(1, "Found Smart-UPS"); > dstate_setinfo("ups.model", "Smart-UPS"); > } > - else if (!strcmp(buf, "6TI")) { > - upsdebugx(1, "Found Smart-UPS"); > - dstate_setinfo("ups.model", "Smart-UPS"); > - } > - else return 0; > + else > + return 0; > } > > upsdebugx(2, "Firmware: [%s]", buf); > > --- drivers/apcsmart.h~ 2006-11-24 23:57:56.000000000 -0800 > +++ drivers/apcsmart.h 2007-07-27 12:51:30.000000000 -0700 > @@ -260,6 +260,8 @@ struct { > { "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > { "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > { "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > + /* SmartUPS 1250. */ > + { "8QD", "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 }, > > { NULL, NULL, 0 }, > }; > > _______________________________________________ > Nut-upsdev mailing list > Nut-upsdev at lists.alioth.debian.org > http://lists.alioth.debian.org/mailman/listinfo/nut-upsdev >