WIENER_SNMP  1.1
A C/C++ library for MPOD crate access via SNMP
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WIENER_SNMP.h
Go to the documentation of this file.
1 
3 #ifndef WIENER_SNMP_H
4 #define WIENER_SNMP_H
5 
6 #ifdef _MSC_VER
7 #define EXPORT extern "C" _declspec(dllexport)
8 #else
9 #define EXPORT extern "C"
10 #endif
11 
12 #define WIN32_LEAN_AND_MEAN
13 
14 #include <net-snmp/net-snmp-config.h>
15 #define NET_SNMP_SNMPV3_H // we don't need SNMPV3 (one include file is missing)
16 #include <net-snmp/net-snmp-includes.h>
17 
18 typedef void *HSNMP; // SNMP handle (like FILE)
19 
20 // DLL functions
21 EXPORT void snmpSetStdErrLog(void);
22 EXPORT void snmpSetFileLog(const char * const fileName);
23 EXPORT unsigned int snmpGetVersion(void);
24 EXPORT char *snmpGetVersionString(void);
25 
26 EXPORT int snmpInit(void);
27 EXPORT void snmpCleanup(void);
28 EXPORT void snmpSetReadCommunityName(const char * const readCommunityName);
29 EXPORT void snmpSetWriteCommunityName(const char * const writeCommunityName);
30 
31 EXPORT HSNMP snmpOpen(const char * const ipAddress);
32 EXPORT void snmpClose(HSNMP session);
33 EXPORT char *snmpGetLastError(void);
34 
35 // System Functions
36 EXPORT char *getSysDescr(HSNMP session);
37 EXPORT int getMainSwitch(HSNMP session);
38 EXPORT int setMainSwitch(HSNMP session, int value);
39 EXPORT int getMainStatus(HSNMP session);
40 EXPORT int getVmeReset(HSNMP session);
41 EXPORT int setVmeReset(HSNMP session);
42 EXPORT int getIpStaticAddress(HSNMP session);
43 EXPORT int setIpStaticAddress(HSNMP session, int value);
44 EXPORT char *getPsSerialNumber(HSNMP session);
45 
46 // Output Counts
47 EXPORT int getOutputNumber(HSNMP session);
48 EXPORT int getOutputGroups(HSNMP session);
49 
50 //Output Channel Information
51 //std::string getOutputName(HSNMP session, int channel);
52 EXPORT int getOutputGroup(HSNMP session, int channel);
53 EXPORT int getOutputStatus(HSNMP session, int channel);
54 EXPORT int getChannelStatus(HSNMP m_sessmp, int channel);
55 EXPORT double getOutputSenseMeasurement(HSNMP session, int channel);
56 EXPORT double getOutputTerminalMeasurement(HSNMP session, int channel);
57 EXPORT double getCurrentMeasurement(HSNMP session, int channel);
58 EXPORT int getTemperatureMeasurement(HSNMP session, int channel);
59 EXPORT int setChannelSwitch(HSNMP session, int channel, int value);
60 EXPORT int setOutputSwitch(HSNMP session, int channel, int value);
61 EXPORT int getChannelSwitch(HSNMP session, int channel);
62 EXPORT int getOutputSwitch(HSNMP session, int channel);
63 EXPORT int setHighVoltageGroupsSwitch(HSNMP session, int value);
65 EXPORT int setLowVoltageGroupsSwitch(HSNMP session, int value);
67 EXPORT double getOutputVoltage(HSNMP session, int channel);
68 EXPORT double setOutputVoltage(HSNMP session, int channel, double value);
69 EXPORT double getOutputCurrent(HSNMP session, int channel);
70 EXPORT double setOutputCurrent(HSNMP session, int channel, double value);
71 EXPORT double getOutputRiseRate(HSNMP session, int channel);
72 EXPORT double setOutputRiseRate(HSNMP session, int channel, double value);
73 EXPORT double getOutputFallRate(HSNMP session, int channel);
74 EXPORT double setOutputFallRate(HSNMP session, int channel, double value);
75 EXPORT double getOutputCurrentRiseRate(HSNMP session, int channel);
76 EXPORT double setOutputCurrentRiseRate(HSNMP session, int channel, double value);
77 EXPORT double getOutputCurrentFallRate(HSNMP session, int channel);
78 EXPORT double setOutputCurrentFallRate(HSNMP session, int channel, double value);
79 EXPORT int getOutputSupervisionBehavior(HSNMP session, int channel);
80 EXPORT int setOutputSupervisionBehavior(HSNMP session, int channel, int value);
81 EXPORT double getOutputSupervisionMinSenseVoltage(HSNMP session, int channel);
82 EXPORT double setOutputSupervisionMinSenseVoltage(HSNMP session, int channel, double value);
83 EXPORT double getOutputSupervisionMaxSenseVoltage(HSNMP session, int channel);
84 EXPORT double setOutputSupervisionMaxSenseVoltage(HSNMP session, int channel, double value);
85 EXPORT double getOutputSupervisionMaxTerminalVoltage(HSNMP session, int channel);
86 EXPORT double setOutputSupervisionMaxTerminalVoltage(HSNMP session, int channel, double value);
87 EXPORT double getOutputSupervisionMaxCurrent(HSNMP session, int channel);
88 EXPORT double setOutputSupervisionMaxCurrent(HSNMP session, int channel, double value);
89 EXPORT int setOutputSupervisionMaxTemperature(HSNMP session, int channel, int value);
90 EXPORT double getOutputConfigMaxSenseVoltage(HSNMP session, int channel);
91 EXPORT double getOutputConfigMaxTerminalVoltage(HSNMP session, int channel);
92 EXPORT double getOutputConfigMaxCurrent(HSNMP session, int channel);
93 EXPORT double getOutputSupervisionMaxPower(HSNMP session, int channel);
94 EXPORT int getOutputTripTimeMaxCurrent(HSNMP session, int channel);
95 EXPORT int setOutputTripTimeMaxCurrent(HSNMP session, int channel, int delay);
96 
97 //Sensor Information functions
98 EXPORT int getSensorNumber(HSNMP session);
99 EXPORT int getSensorTemp(HSNMP session, int sensor);
100 EXPORT int getSensorWarningTemperature(HSNMP session, int sensor);
101 EXPORT int setSensorWarningTemperature(HSNMP session, int sensor, int value);
102 EXPORT int getSensorFailureTemperature(HSNMP session, int sensor);
103 EXPORT int setSensorFailureTemperature(HSNMP session, int sensor, int value);
104 
105 //SNMP Community Name Functions
106 //std::string getSnmpCommunityName(HSNMP session, int index);
107 //std::string setSnmpCommunityName(HSNMP session, int index , int value);
108 
109 //Power Supply Detail Functions
110 //std::string getPsFirmwareVersion(HSNMP session);
111 //std::string getPsSerialNumber(HSNMP session);
112 EXPORT int getPsOperatingTime(HSNMP session);
113 EXPORT double getPsAuxVoltage(HSNMP session, int auxIndex);
114 EXPORT double getPsAuxCurrent(HSNMP session, int auxIndex);
115 //std::string getPsDirectAccess(HSNMP session);
116 //std::string setPsDirectAccess(HSNMP session);
117 
118 //Fan Tray Functions
119 //std::string getFanFirmwareVersion(HSNMP session);
120 //std::string getFanSerialNumber(HSNMP session);
121 EXPORT int getFanOperatingTime(HSNMP session);
122 EXPORT int getFanAirTemperature(HSNMP session);
123 EXPORT int getFanSwitchOffDelay(HSNMP session);
124 EXPORT int setFanSwitchOffDelay(HSNMP session, int value);
125 EXPORT int getFanNominalSpeed(HSNMP session);
126 EXPORT int setFanNominalSpeed(HSNMP session, int value);
127 EXPORT int getFanNumberOfFans(HSNMP session);
128 EXPORT int getFanSpeed(HSNMP session, int fan);
129 
130 // Module functions
131 EXPORT char *getModuleDescription(HSNMP session, int slot);
132 EXPORT double getModuleSupply24(HSNMP session, int slot);
133 EXPORT double getModuleSupply5(HSNMP session, int slot);
134 EXPORT double getModuleAuxTemperature(HSNMP session, int slot, int index);
135 EXPORT double getModuleHardwareLimitVoltage(HSNMP session, int slot);
136 EXPORT double getModuleHardwareLimitCurrent(HSNMP session, int slot);
137 EXPORT double getModuleRampSpeedVoltage(HSNMP session, int slot);
138 EXPORT double setModuleRampSpeedVoltage(HSNMP session, int slot, double value);
139 EXPORT double getModuleRampSpeedCurrent(HSNMP session, int slot);
140 EXPORT double setModuleRampSpeedCurrent(HSNMP session, int slot, double value);
141 EXPORT int getModuleStatus(HSNMP session, int slot);
142 EXPORT int getModuleEventStatus(HSNMP session, int slot);
143 EXPORT int setModuleDoClear(HSNMP session, int slot);
144 
148 typedef enum MaximumCrateValues {
152  MaxFans = 6,
155  MaxSensors = 12,
159 
165 typedef struct SnmpDoubleBuffer {
166  int size;
169 
175 typedef struct SnmpIntegerBuffer {
176  int size;
179 
180 // Functions for multiple data transfer in one SNMP packet
181 EXPORT SnmpIntegerBuffer *getMultipleChannelStatuses(HSNMP session, int start, int size);
182 EXPORT SnmpIntegerBuffer *getMultipleOutputStatuses(HSNMP session, int start, int size);
183 EXPORT SnmpIntegerBuffer *getMultipleOutputSwitches(HSNMP session, int start, int size);
185 EXPORT SnmpDoubleBuffer *getMultipleOutputVoltages(HSNMP session, int start, int size);
190 EXPORT SnmpDoubleBuffer *getMultipleOutputCurrents(HSNMP session, int start, int size);
192 EXPORT SnmpDoubleBuffer *getMultipleMeasurementCurrents(HSNMP session, int start, int size);
194 EXPORT SnmpDoubleBuffer *getMultipleOutputConfigMaxCurrents(HSNMP session, int start, int size);
199 
200 #endif