[Nut-upsdev] Proposed apcsmart driver patch

Arjen de Korte nut+devel at de-korte.org
Tue Jul 31 19:40:39 UTC 2007


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.
> 
> 
>      -- Rob

It 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
> 




More information about the Nut-upsdev mailing list