Filter:   InfoImg
download mgemib.h
Language: C
License: GPL
Copyright: (C) 2002-2003
LOC: 87
Project Info
nut
Server: Debian-SVN
Type: svn
...an‑SVN\n\nut\trunk\drivers\
   al175.c
   al175.h
   apc-hid.c
   apc-hid.h
   apccmib.h
   apcsmart.c
   apcsmart.h
   bcmxcp.c
   bcmxcp.h
   bcmxcp_io.h
   bcmxcp_ser.c
   bcmxcp_usb.c
   belkin-hid.c
   belkin-hid.h
   belkin.c
   belkin.h
   belkinunv.c
   belkinunv.h
   bestfcom.c
   bestfcom.h
   bestuferrups.c
   bestuferrups.h
   bestups.c
   bestups.h
   cpsups.c
   cpsups.h
   cyberpower.c
   cyberpower.h
   dstate-hal.c
   dstate-hal.h
   dstate.c
   dstate.h
   dummy-ups.c
   dummy-ups.h
   energizerups.c
   etapro.c
   etapro.h
   everups.c
   everups.h
   explore-hid.c
   explore-hid.h
   gamatronic.c
   gamatronic.h
   genericups.c
   genericups.h
   hidparser.c
   hidparser.h
   hidtypes.h
   ietfmib.h
   isbmex.c
   isbmex.h
   libhid.c
   libhid.h
   libshut.c
   libshut.h
   libusb.c
   libusb.h
   liebert.c
   liebert.h
   main-hal.c
   main-hal.h
   main.c
   main.h
   Makefile.am
   masterguard.c
   masterguard.h
   megatec.c
   megatec.h
   megatec_usb.c
   metasys.c
   metasys.h
   mge-hid.c
   mge-hid.h
   mge-shut.c
   mge-shut.h
   mge-utalk.c
   mge-utalk.h
   mgemib.h
   netvisionmib.h
   nitram.c
   nitram.h
   nut_usb.c
   nut_usb.h
   oneac.c
   oneac.h
   optiups.c
   optiups.h
   powercom.c
   powercom.h
   powerpanel.c
   powerpanel.h
   pwmib.h
   rhino.c
   safenet.c
   safenet.h
   serial.c
   serial.h
   skel.c
   snmp-ups.c
   snmp-ups.h
   solis.c
   solis.h
   tripplite-hid.c
   tripplite-hid.h
   tripplite.c
   tripplite.h
   tripplite_usb.c
   tripplitesu.c
   tripplitesu.h
   upscode2.c
   upscode2.h
   upsdrvctl.c
   usbhid-ups.c
   usbhid-ups.h
   victronups.c
   victronups.h

/*  mgemib.h - data to monitor MGE UPS SYSTEMS SNMP devices with NUT
 *
 *  Copyright (C) 2002-2003 
 *  			Arnaud Quette <arnaud.quette@free.fr>
 *  			J.W. Hoogervorst <jeroen@hoogervorst.net>
 *
 *  Sponsored by MGE UPS SYSTEMS <http://www.mgeups.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 */

#define MGE_MIB_VERSION	"0.3"

/* SNMP OIDs set */
#define MGE_OID_UPS_MIB			".1.3.6.1.4.1.705"
#define MGE_OID_MODEL_NAME		".1.3.6.1.4.1.705.1.1.1.0"
#define MGE_OID_SERIAL			".1.3.6.1.4.1.705.1.1.7.0"
#define MGE_OID_LOBATTPCT		".1.3.6.1.4.1.705.1.4.8.0"
#define MGE_OID_BATT_RUNTIME 	".1.3.6.1.4.1.705.1.5.1.0"
#define MGE_OID_BATT_CHARGE		".1.3.6.1.4.1.705.1.5.2.0"
#define MGE_OID_BATTVOLT		".1.3.6.1.4.1.705.1.5.5.0"
#define MGE_OID_LOWBATT_STATUS	".1.3.6.1.4.1.705.1.5.14.0"
info_lkp_t mge_lowbatt_info[] = {
	{ 1, "LB" },
	{ 2, "" },
	{ 0, "NULL" }
};
#define MGE_OID_INVOLT			".1.3.6.1.4.1.705.1.6.2.1.2.0"
#define MGE_OID_INFREQ			".1.3.6.1.4.1.705.1.6.2.1.3.0"
#define MGE_OID_INVOLTMIN		".1.3.6.1.4.1.705.1.6.2.1.4.0"
#define MGE_OID_INVOLTMAX		".1.3.6.1.4.1.705.1.6.2.1.5.0"
#define MGE_OID_OUTVOLT			".1.3.6.1.4.1.705.1.7.2.1.2.0"
#define MGE_OID_OUTFREQ			".1.3.6.1.4.1.705.1.7.2.1.3.0"
#define MGE_OID_LOADPCT			".1.3.6.1.4.1.705.1.7.2.1.4.0"
#define MGE_OID_ONBATT_STATUS	".1.3.6.1.4.1.705.1.7.3.0"
info_lkp_t mge_onbatt_info[] = {
	{ 1, "OB" },
	{ 2, "OL" },
	{ 0, "NULL" }
};

#define MGE_OID_BYPASS_STATUS	".1.3.6.1.4.1.705.1.7.4.0"
info_lkp_t mge_bypass_info[] = {
	{ 1, "BYPASS" },
	{ 2, "" },
	{ 0, "NULL" }
};

#define MGE_OID_BOOST_STATUS	".1.3.6.1.4.1.705.1.7.8.0"
info_lkp_t mge_boost_info[] = {
	{ 1, "BOOST" },
	{ 2, "" },
	{ 0, "NULL" }
};

#define MGE_OID_OVERBATT_STATUS	".1.3.6.1.4.1.705.1.7.10.0"
info_lkp_t mge_overbatt_info[] = {
	{ 1, "OVER" },
	{ 2, "" },
	{ 0, "NULL" }
};

#define MGE_OID_FIRMREV			".1.3.6.1.4.1.705.1.12.12.0"

#define MGE_OID_BATT_TEST		".1.3.6.1.4.1.705.1.10.4.0"

#define MGE_NOTHING_VALUE		1
#define MGE_START_VALUE			2
#define MGE_STOP_VALUE			3

/* TODO: PowerShare (per plug .1, .2, .3) and deals with delays */
#define MGE_OID_GRACEDELAY 		""
#define MGE_OID_REBOOT_CTRL		"1.3.6.1.4.1.705.1.9.1.1.9.1"
#define MGE_OID_OFF_CTRL 		"1.3.6.1.4.1.705.1.9.1.1.6.1"
#define MGE_OID_ON_CTRL 		"1.3.6.1.4.1.705.1.9.1.1.3.1"

/* Snmp2NUT lookup table */
snmp_info_t mge_mib[] = {
	/* UPS page */
	{ "ups.mfr", ST_FLAG_STRING, SU_INFOSIZE, NULL, "MGE UPS SYSTEMS",
		SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK, NULL },
	{ "ups.model", ST_FLAG_STRING, SU_INFOSIZE, MGE_OID_MODEL_NAME,
		"Generic SNMP UPS", SU_FLAG_STATIC | SU_FLAG_OK, NULL },
	{ "ups.serial", ST_FLAG_STRING, SU_INFOSIZE, MGE_OID_SERIAL, "",
		SU_FLAG_STATIC | SU_FLAG_OK, NULL },
	{ "ups.firmware.aux", ST_FLAG_STRING, SU_INFOSIZE, MGE_OID_FIRMREV, "",
		SU_FLAG_STATIC | SU_FLAG_OK, NULL },
	{ "ups.status", ST_FLAG_STRING, SU_INFOSIZE, MGE_OID_ONBATT_STATUS, "",
		SU_FLAG_OK | SU_STATUS_BATT, &mge_onbatt_info[0] },
	{ "ups.status", ST_FLAG_STRING, SU_INFOSIZE, IETF_OID_POWER_STATUS, "OFF",
		SU_FLAG_OK | SU_STATUS_PWR, &ietf_pwr_info[0] },
	{ "ups.status", ST_FLAG_STRING, SU_INFOSIZE, MGE_OID_LOWBATT_STATUS, "",
		SU_FLAG_OK | SU_STATUS_BATT, &mge_lowbatt_info[0] },
		
	{ "ups.load", 0, 1, MGE_OID_LOADPCT, "", SU_FLAG_OK, NULL },
	/* Input page */	
	{ "input.voltage", 0, 0.1, MGE_OID_INVOLT, "", SU_FLAG_OK, NULL },
	{ "input.voltage.minimum", 0, 0.1, MGE_OID_INVOLTMIN, "", SU_FLAG_OK, NULL },
	{ "input.voltage.maximum", 0, 0.1, MGE_OID_INVOLTMAX, "", SU_FLAG_OK, NULL },
	{ "input.frequency", 0, 0.1, MGE_OID_INFREQ, "", SU_FLAG_OK, NULL },
	/* Output page */
	{ "output.voltage", 0, 0.1, MGE_OID_OUTVOLT, "", SU_FLAG_OK, NULL },
	{ "output.frequency", 0, 0.1, MGE_OID_OUTFREQ, "", SU_FLAG_OK, NULL },
	/* Battery page */
	{ "battery.charge", 0, 1, MGE_OID_BATT_CHARGE, "", SU_FLAG_OK, NULL },
 	{ "battery.runtime", 0, 1, MGE_OID_BATT_RUNTIME, "", SU_FLAG_OK, NULL },
 	{ "battery.charge.low", ST_FLAG_STRING | ST_FLAG_RW, 2, MGE_OID_LOBATTPCT, "",
 		SU_TYPE_INT | SU_FLAG_OK, NULL },	
 	{ "battery.voltage", 0, 0.1, MGE_OID_BATTVOLT, "", SU_FLAG_OK, NULL },

/*	{ "ups.delay.shutdown", ST_FLAG_STRING | ST_FLAG_RW, 3, MGE_OID_GRACEDELAY, "",
		SU_FLAG_OK, NULL },
*/
	/* Outlet page */
	{ "outlet.id", 0, 1, NULL, "0", SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK, NULL },
	{ "outlet.desc", ST_FLAG_RW | ST_FLAG_STRING, 20, NULL, "Main Outlet", 
		SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK, NULL },
	/* instant commands. */
	{ "test.battery.start", 0, MGE_START_VALUE, MGE_OID_BATT_TEST, "", SU_TYPE_CMD | SU_FLAG_OK, NULL },
/*	{ "load.off", 0, MGE_START_VALUE, MGE_OID_OFF_CTRL, "", SU_TYPE_CMD | SU_FLAG_OK, NULL },
	{ "load.on", 0, MGE_START_VALUE, MGE_OID_ON_CTRL, "", SU_TYPE_CMD | SU_FLAG_OK, NULL },
	{ "shutdown.return", 0, MGE_START_VALUE, MGE_OID_REBOOT_CTRL, "", SU_TYPE_CMD | SU_FLAG_OK, NULL },
*/	
	/* end of structure. */
	{ NULL, 0, 0, NULL, NULL, 0, NULL }
};