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 >