Skip to content

Commit e432613

Browse files
authored
Merge fce3c1f into 7e9c6f3
2 parents 7e9c6f3 + fce3c1f commit e432613

File tree

2 files changed

+48
-21
lines changed

2 files changed

+48
-21
lines changed

Makefile.am

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,15 @@ SUBDIRS_ALL_LIBS_LOCAL = \
9494

9595
#all all-recursive all-am-local all-local: all-fanout-maybe
9696
all-recursive: all-fanout-maybe
97+
check-recursive install-recursive: generated-headers-with-a-touch
9798

98-
all: all-fanout-cleanup
99+
all check install: all-fanout-cleanup
100+
101+
generated-headers-with-a-touch: @dotMAKE@
102+
$(MAKE) $(AM_MAKEFLAGS) NUT_VERSION_H_GENERATED=false nut_version.h
103+
$(MAKE) $(AM_MAKEFLAGS) touch-include-all-nut_version-generated.timestamp
104+
$(MAKE) $(AM_MAKEFLAGS) libupsclient-version.h
105+
$(MAKE) $(AM_MAKEFLAGS) touch-clients-all-libupsclient_version-generated.timestamp
99106

100107
# Run as part of "all", but after the autotools-standard "all-recursive"
101108
# where we quiesce nut_version.h regeneration attempts for each subdir
@@ -129,10 +136,7 @@ all-fanout-maybe: @dotMAKE@
129136
if [ x"$(SUBDIR_MAKE_VERBOSE)" != x0 ] ; then \
130137
echo " SUBDIR-MAKE $@: skip optimization for parallel make - NUT_MAKE_SKIP_FANOUT is set" ; \
131138
fi ; \
132-
$(MAKE) $(AM_MAKEFLAGS) NUT_VERSION_H_GENERATED=false nut_version.h || exit ; \
133-
$(MAKE) $(AM_MAKEFLAGS) touch-include-all-nut_version-generated.timestamp || exit ; \
134-
$(MAKE) $(AM_MAKEFLAGS) libupsclient-version.h || exit ; \
135-
$(MAKE) $(AM_MAKEFLAGS) touch-clients-all-libupsclient_version-generated.timestamp || exit ; \
139+
$(MAKE) $(AM_MAKEFLAGS) generated-headers-with-a-touch || exit ; \
136140
exit 0 ; \
137141
fi ; \
138142
case "-$(MAKEFLAGS) $(AM_MAKEFLAGS)" in \
@@ -148,10 +152,7 @@ all-fanout-maybe: @dotMAKE@
148152
if [ x"$(SUBDIR_MAKE_VERBOSE)" != x0 ] ; then \
149153
echo " SUBDIR-MAKE $@: skip optimization for parallel make - we seem to run sequentially now, seen MAKEFLAGS='$(MAKEFLAGS)' AM_MAKEFLAGS='$(AM_MAKEFLAGS)'" ; \
150154
fi ; \
151-
$(MAKE) $(AM_MAKEFLAGS) NUT_VERSION_H_GENERATED=false nut_version.h || exit ; \
152-
$(MAKE) $(AM_MAKEFLAGS) touch-include-all-nut_version-generated.timestamp || exit ; \
153-
$(MAKE) $(AM_MAKEFLAGS) libupsclient-version.h || exit ; \
154-
$(MAKE) $(AM_MAKEFLAGS) touch-clients-all-libupsclient_version-generated.timestamp || exit \
155+
$(MAKE) $(AM_MAKEFLAGS) generated-headers-with-a-touch || exit ; \
155156
;; \
156157
esac
157158

drivers/mge-hid.c

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Copyright (C)
44
* 2003 - 2015 Arnaud Quette <arnaud.quette@free.fr>
55
* 2015 - 2024 Eaton / Arnaud Quette <ArnaudQuette@Eaton.com>
6-
* 2020 - 2025 Jim Klimov <jimklimov+nut@gmail.com>
6+
* 2020 - 2026 Jim Klimov <jimklimov+nut@gmail.com>
77
* 2024 - 2025 "DaRK AnGeL" <28630321+masterwishx@users.noreply.github.com>
88
*
99
* Sponsored by MGE UPS SYSTEMS <http://www.mgeups.com>
@@ -52,7 +52,7 @@
5252
# endif
5353
#endif /* WIN32 */
5454

55-
#define MGE_HID_VERSION "MGE HID 1.57"
55+
#define MGE_HID_VERSION "MGE HID 1.58"
5656

5757
/* (prev. MGE Office Protection Systems, prev. MGE UPS SYSTEMS) */
5858
/* Eaton */
@@ -2059,9 +2059,9 @@ static hid_info_t mge_hid2nut[] =
20592059
{ "ups.test.interval", ST_FLAG_RW | ST_FLAG_STRING, 8, "UPS.BatterySystem.Battery.TestPeriod", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
20602060
/* Duplicate data for some units (such as 3S) that use a different path
20612061
* Only the first valid one will be used */
2062-
{ "ups.beeper.status", 0 ,0, "UPS.BatterySystem.Battery.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info },
2063-
{ "ups.beeper.status", 0 ,0, "UPS.PowerSummary.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info },
2064-
{ "ups.beeper.status", 0 ,0, "UPS.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info }, /* yonesmit - support for Masterpower MF-UPS650VA */
2062+
{ "ups.beeper.status", 0, 0, "UPS.BatterySystem.Battery.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info },
2063+
{ "ups.beeper.status", 0, 0, "UPS.PowerSummary.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info },
2064+
{ "ups.beeper.status", 0, 0, "UPS.AudibleAlarmControl", NULL, "%s", HU_FLAG_SEMI_STATIC, beeper_info }, /* yonesmit - support for Masterpower MF-UPS650VA */
20652065
{ "ups.temperature", 0, 0, "UPS.PowerSummary.Temperature", NULL, "%s", 0, kelvin_celsius_conversion },
20662066
{ "ups.power", 0, 0, "UPS.PowerConverter.Output.ApparentPower", NULL, "%.0f", 0, NULL },
20672067
{ "ups.L1.power", 0, 0, "UPS.PowerConverter.Output.Phase.[1].ApparentPower", NULL, "%.0f", 0, NULL },
@@ -2227,7 +2227,9 @@ static hid_info_t mge_hid2nut[] =
22272227
{ "output.frequency.nominal", 0, 0, "UPS.Flow.[4].ConfigFrequency", NULL, "%.0f", HU_FLAG_STATIC, NULL },
22282228
{ "output.powerfactor", 0, 0, "UPS.PowerConverter.Output.PowerFactor", NULL, "%s", 0, mge_powerfactor_conversion },
22292229

2230-
/* Outlet page (using MGE UPS SYSTEMS - PowerShare technology) */
2230+
/* Outlet page (using MGE UPS SYSTEMS - PowerShare technology)
2231+
* Summary, the "main" or the only outlet group is seen in Outlet.[1].* values
2232+
*/
22312233
{ "outlet.id", 0, 0, "UPS.OutletSystem.Outlet.[1].OutletID", NULL, "%.0f", HU_FLAG_STATIC, NULL },
22322234
{ "outlet.desc", ST_FLAG_RW | ST_FLAG_STRING, 20, "UPS.OutletSystem.Outlet.[1].OutletID", NULL, "Main Outlet", HU_FLAG_ABSENT, NULL },
22332235
{ "outlet.switchable", 0, 0, "UPS.OutletSystem.Outlet.[1].PresentStatus.Switchable", NULL, "%s", HU_FLAG_STATIC, yes_no_info },
@@ -2241,14 +2243,14 @@ static hid_info_t mge_hid2nut[] =
22412243
{ "outlet.current", 0, 0, "UPS.OutletSystem.Outlet.[1].Current", NULL, "%.2f", 0, NULL },
22422244
{ "outlet.powerfactor", 0, 0, "UPS.OutletSystem.Outlet.[1].PowerFactor", NULL, "%.2f", 0, NULL }, /* "%s", 0, mge_powerfactor_conversion }, */
22432245

2244-
/* First outlet */
2246+
/* First outlet (group) [2] */
22452247
{ "outlet.1.id", 0, 0, "UPS.OutletSystem.Outlet.[2].OutletID", NULL, "%.0f", HU_FLAG_STATIC, NULL },
22462248
{ "outlet.1.desc", ST_FLAG_RW | ST_FLAG_STRING, 20, "UPS.OutletSystem.Outlet.[2].OutletID", NULL, "PowerShare Outlet 1", HU_FLAG_ABSENT, NULL },
22472249
{ "outlet.1.switchable", 0, 0, "UPS.OutletSystem.Outlet.[2].PresentStatus.Switchable", NULL, "%s", HU_FLAG_STATIC, yes_no_info },
2248-
/* FIXME: should better use UPS.OutletSystem.Outlet.[1].Status? */
2250+
/* FIXME: should better use UPS.OutletSystem.Outlet.[2].Status? */
22492251
{ "outlet.1.status", 0, 0, "UPS.OutletSystem.Outlet.[2].PresentStatus.SwitchOn/Off", NULL, "%s", 0, on_off_info },
2250-
{ "outlet.1.protect.status", 0, 0, "UPS.OutletSystem.Outlet.[1].Status", NULL, "%s", 0, eaton_outlet_protection_status_info },
2251-
{ "outlet.1.designator", 0, 0, "UPS.OutletSystem.Outlet.[1].iDesignator", NULL, NULL, HU_FLAG_STATIC, stringid_conversion }, /* FIXME */
2252+
{ "outlet.1.protect.status", 0, 0, "UPS.OutletSystem.Outlet.[2].Status", NULL, "%s", 0, eaton_outlet_protection_status_info },
2253+
{ "outlet.1.designator", 0, 0, "UPS.OutletSystem.Outlet.[2].iDesignator", NULL, NULL, HU_FLAG_STATIC, stringid_conversion }, /* FIXME */
22522254
/* For low end models, with 1 non backup'ed outlet */
22532255
{ "outlet.1.status", 0, 0, "UPS.PowerSummary.PresentStatus.ACPresent", NULL, "%s", 0, on_off_info },
22542256
/* FIXME: change to outlet.1.battery.charge.low, as in mge-xml.c?! */
@@ -2261,7 +2263,8 @@ static hid_info_t mge_hid2nut[] =
22612263
{ "outlet.1.powerfactor", 0, 0, "UPS.OutletSystem.Outlet.[2].PowerFactor", NULL, "%.2f", 0, NULL }, /* "%s", 0, mge_powerfactor_conversion }, */
22622264
/* 0: The outlet is not ECO controlled. / 1 : The outlet is ECO controlled. => Readonly! use some yes_no_info */
22632265
{ "outlet.1.ecocontrol", 0, 0, "UPS.OutletSystem.Outlet.[2].ECOControl", NULL, "%s", HU_FLAG_SEMI_STATIC, outlet_eco_yes_no_info},
2264-
/* Second outlet */
2266+
2267+
/* Second outlet (group) [3] */
22652268
{ "outlet.2.id", 0, 0, "UPS.OutletSystem.Outlet.[3].OutletID", NULL, "%.0f", HU_FLAG_STATIC, NULL },
22662269
{ "outlet.2.desc", ST_FLAG_RW | ST_FLAG_STRING, 20, "UPS.OutletSystem.Outlet.[3].OutletID", NULL, "PowerShare Outlet 2", HU_FLAG_ABSENT, NULL },
22672270
/* needed for Pegasus to enable master/slave mode:
@@ -2271,7 +2274,7 @@ static hid_info_t mge_hid2nut[] =
22712274
{ "outlet.2.switchable", 0, 0, "UPS.OutletSystem.Outlet.[3].PresentStatus.Switchable", NULL, "%s", 0, yes_no_info },
22722275
{ "outlet.2.status", 0, 0, "UPS.OutletSystem.Outlet.[3].PresentStatus.SwitchOn/Off", NULL, "%s", 0, on_off_info },
22732276
{ "outlet.2.protect.status", 0, 0, "UPS.OutletSystem.Outlet.[3].Status", NULL, "%s", 0, eaton_outlet_protection_status_info },
2274-
/* FIXME: should better use UPS.OutletSystem.Outlet.[1].Status? */
2277+
/* FIXME: should better use UPS.OutletSystem.Outlet.[3].Status? */
22752278
{ "outlet.2.autoswitch.charge.low", ST_FLAG_RW | ST_FLAG_STRING, 3, "UPS.OutletSystem.Outlet.[3].RemainingCapacityLimit", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
22762279
{ "outlet.2.delay.shutdown", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.OutletSystem.Outlet.[3].ShutdownTimer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
22772280
{ "outlet.2.delay.start", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.OutletSystem.Outlet.[3].StartupTimer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
@@ -2282,6 +2285,27 @@ static hid_info_t mge_hid2nut[] =
22822285
/* 0: The outlet is not ECO controlled. / 1 : The outlet is ECO controlled. => Readonly! use some yes_no_info */
22832286
{ "outlet.2.ecocontrol", 0, 0, "UPS.OutletSystem.Outlet.[3].ECOControl", NULL, "%s", HU_FLAG_SEMI_STATIC, outlet_eco_yes_no_info},
22842287

2288+
/* Third outlet (group) [4] */
2289+
{ "outlet.3.id", 0, 0, "UPS.OutletSystem.Outlet.[4].OutletID", NULL, "%.0f", HU_FLAG_STATIC, NULL },
2290+
{ "outlet.3.desc", ST_FLAG_RW | ST_FLAG_STRING, 20, "UPS.OutletSystem.Outlet.[4].OutletID", NULL, "PowerShare Outlet 2", HU_FLAG_ABSENT, NULL },
2291+
/* needed for Pegasus to enable master/slave mode:
2292+
* FIXME: rename to something more suitable (outlet.?) */
2293+
{ "outlet.3.switchable", ST_FLAG_RW | ST_FLAG_STRING, 3, "UPS.OutletSystem.Outlet.[4].PresentStatus.Switchable", NULL, "%s", HU_FLAG_SEMI_STATIC, pegasus_yes_no_info },
2294+
/* Generic version (RO) for other models */
2295+
{ "outlet.3.switchable", 0, 0, "UPS.OutletSystem.Outlet.[4].PresentStatus.Switchable", NULL, "%s", 0, yes_no_info },
2296+
{ "outlet.3.status", 0, 0, "UPS.OutletSystem.Outlet.[4].PresentStatus.SwitchOn/Off", NULL, "%s", 0, on_off_info },
2297+
{ "outlet.3.protect.status", 0, 0, "UPS.OutletSystem.Outlet.[4].Status", NULL, "%s", 0, eaton_outlet_protection_status_info },
2298+
/* FIXME: should better use UPS.OutletSystem.Outlet.[4].Status? */
2299+
{ "outlet.3.autoswitch.charge.low", ST_FLAG_RW | ST_FLAG_STRING, 3, "UPS.OutletSystem.Outlet.[4].RemainingCapacityLimit", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
2300+
{ "outlet.3.delay.shutdown", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.OutletSystem.Outlet.[4].ShutdownTimer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
2301+
{ "outlet.3.delay.start", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.OutletSystem.Outlet.[4].StartupTimer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
2302+
{ "outlet.3.power", 0, 0, "UPS.OutletSystem.Outlet.[4].ApparentPower", NULL, "%.0f", 0, NULL },
2303+
{ "outlet.3.realpower", 0, 0, "UPS.OutletSystem.Outlet.[4].ActivePower", NULL, "%.0f", 0, NULL },
2304+
{ "outlet.3.current", 0, 0, "UPS.OutletSystem.Outlet.[4].Current", NULL, "%.2f", 0, NULL },
2305+
{ "outlet.3.powerfactor", 0, 0, "UPS.OutletSystem.Outlet.[4].PowerFactor", NULL, "%.2f", 0, NULL }, /* "%s", 0, mge_powerfactor_conversion }, */
2306+
/* 0: The outlet is not ECO controlled. / 1 : The outlet is ECO controlled. => Readonly! use some yes_no_info */
2307+
{ "outlet.3.ecocontrol", 0, 0, "UPS.OutletSystem.Outlet.[4].ECOControl", NULL, "%s", HU_FLAG_SEMI_STATIC, outlet_eco_yes_no_info},
2308+
22852309
/* instant commands. */
22862310
/* splited into subset while waiting for extradata support
22872311
* ie: test.battery.start quick
@@ -2311,6 +2335,8 @@ static hid_info_t mge_hid2nut[] =
23112335
{ "outlet.1.load.on", 0, 0, "UPS.OutletSystem.Outlet.[2].DelayBeforeStartup", NULL, "0", HU_TYPE_CMD, NULL },
23122336
{ "outlet.2.load.off", 0, 0, "UPS.OutletSystem.Outlet.[3].DelayBeforeShutdown", NULL, "0", HU_TYPE_CMD, NULL },
23132337
{ "outlet.2.load.on", 0, 0, "UPS.OutletSystem.Outlet.[3].DelayBeforeStartup", NULL, "0", HU_TYPE_CMD, NULL },
2338+
{ "outlet.3.load.off", 0, 0, "UPS.OutletSystem.Outlet.[4].DelayBeforeShutdown", NULL, "0", HU_TYPE_CMD, NULL },
2339+
{ "outlet.3.load.on", 0, 0, "UPS.OutletSystem.Outlet.[4].DelayBeforeStartup", NULL, "0", HU_TYPE_CMD, NULL },
23142340

23152341
/* Command to switch ECO(HE), ESS Mode */
23162342
{ "experimental.ecomode.stop", 0, 0, "UPS.PowerConverter.Input.[5].Switchable", NULL, "0", HU_TYPE_CMD, NULL },

0 commit comments

Comments
 (0)