[Nut-upsdev] test.battery.start.deep vs. calibrate.start

Edgar Fuß ef at math.uni-bonn.de
Thu Jun 6 17:04:19 BST 2024


I'm unsure about the intended semantic of test.battery.start.deep and calibrate.start.

The Masterguard UPSen I wrote nutdrv_qx_masterguard for provide, apart from the usual ten-second (T) and n-Minute (Tn) battery tests, a "Test until battery low" (TL) as well as a "Test until battery is depleted" command.

TL will, according to my experiment, stop around 20% (or 10 minutes left), TUD will only stop at 0%.
The description of TUD suggests it's for battery ageing factor calibration.

Is it OK to use test.battery.start.deep for TL and calibrate.start for TUD?

The way to stop TUD seems to be CT, the same as to stop T, Tn and TL.
Is it OK to issue CT for calibrate.stop, e.g. doing the same thing as for test.battery.stop?

The attached patch would implement this (NB: the current test.battery.start.deep doesn't work as I forgot TUD needs the "slave address" in the command).
-------------- next part --------------
--- drivers/nutdrv_qx_masterguard.c.orig	2024-06-06 17:49:08.971092263 +0200
+++ drivers/nutdrv_qx_masterguard.c	2024-06-06 17:51:12.001081299 +0200
@@ -864,11 +864,11 @@ static item_t masterguard_qx2nut[] = {
 	/* test.failure.stop */
 	{ "test.battery.start",		0,	NULL,	NULL,		"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	masterguard_test_battery },
 	{ "test.battery.start.quick",	0,	NULL,	"T\r",		"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
-	{ "test.battery.start.deep",	0,	NULL,	"TUD\r",	"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
+	{ "test.battery.start.deep",	0,	NULL,	"TL\r",		"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
 	{ "test.battery.stop",		0,	NULL,	"CT\r",		"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
 	/* test.system.start */
-	/* calibrate.start */
-	/* calibrate.stop */
+	{ "calibrate.start",		0,	NULL,	"TUD,XX\r",	"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	masterguard_add_slaveaddr,	NULL,	NULL },
+	{ "calibrate.stop",		0,	NULL,	"CT\r",		"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL }, /* same as test.battery.stop */
 	{ "bypass.start",		0,	NULL,	"FOFF\r",	"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
 	{ "bypass.stop",		0,	NULL,	"FON\r",	"",	0,	'\0',	"",	0,	0,	NULL,	QX_FLAG_CMD,	NULL,				NULL,	NULL },
 	/* reset.input.minmax */


More information about the Nut-upsdev mailing list