Legrand / Raritan / Server Technology Xerus™ PDU JSON-RPC API
PeripheralDeviceManager.idl
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Copyright 2012 Raritan Inc. All rights reserved.
4  */
5 
6 #ifndef __PERIPHERAL_DEVICE_MANAGER_IDL__
7 #define __PERIPHERAL_DEVICE_MANAGER_IDL__
8 
9 #include <PeripheralDeviceSlot.idl>
10 #include <SensorHub.idl>
11 #include <PeripheralDevicePackage.idl>
12 #include <PortFuse.idl>
13 #include <NumericSensor.idl>
14 #include <Sensor.idl>
15 #include <UserEvent.idl>
16 #include <GatewaySensorManager.idl>
17 
18 /** Peripheral Devices */
19 module peripheral {
20 
21  /** Peripheral Device Manager */
22  interface DeviceManager {
23 
24  constant int ERR_INVALID_PARAMS = 1; ///< Invalid parameters
25  constant int ERR_NOT_ON_SECONDARY = 2; ///< Unsupported on secondary instance
26 
27  /** Z Coordinate Mode identifier */
28  enumeration ZCoordMode {
29  RACKUNITS, ///< Z coordinate of slot settings is in rack units
30  FREEFORM ///< Z coordinate of slot settings is free form text
31  };
32 
33  /** peripheral DeviceManager's s settings */
34  structure Settings {
35  ZCoordMode zCoordMode; ///< Z coordinate semantics
36  boolean autoManageNewDevices; ///< Automatically manage newly detected devices
37  float deviceAltitude; ///< Altitude of device in meters
38  int presenceDetectionTimeout; ///< Timeout for presence detection (sec)
39  map<string, sensors.NumericSensor.Thresholds> defaultThresholdsMap; ///< Default thresholds by peripheral device type
40  int maxActivePoweredDryContacts; ///< The maximum number of concurrently active powered dry contacts
41  boolean muteOtherAccessControlUnit; ///< Mute other access control unit (door handle) enabled
42  };
43 
44  /** Peripheral DeviceManager's metadata */
45  structure MetaData {
46  int oneWirePortCount; ///< Number of 1-wire ports
47  int onboardDeviceCount; ///< Number of onboard peripheral devices
48  };
49 
50  /** Peripheral device type info */
51  structure DeviceTypeInfo {
52  sensors.Sensor.TypeSpec type; ///< Device (sensor) type
53  boolean isActuator; ///< Is actuator or not
54  string identifier; ///< Device type identifier
55  string name; ///< Device type display name
56  sensors.NumericSensor.Range defaultRange; ///< Default sensor range (numeric sensors only)
57  int defaultDecDigits; ///< Default sensor precision (numeric sensors only)
58  };
59 
60  /** Firmware update status */
61  structure FirmwareUpdateState {
62  boolean active; ///< \c true if any peripheral device is currently updated
63  int remaining; ///< Number of peripheral devices that are still pending to be updated
64  };
65 
66  /** Event: Peripheral device manager's settings have been changed */
67  valueobject SettingsChangedEvent extends event.UserEvent {
68  Settings oldSettings; ///< Settings before change
69  Settings newSettings; ///< Settings after change
70  };
71 
72  /** Event: A peripheral device was added or removed */
73  valueobject DeviceEvent extends idl.Event {
74  vector<Device> devices; ///< Affected devices
75  vector<Device> allDevices; ///< New list of discovered devices after change
76  };
77 
78  /** Event: A peripheral device was added */
79  valueobject DeviceAddedEvent extends DeviceEvent { };
80 
81  /** Event: A peripheral device was removed */
82  valueobject DeviceRemovedEvent extends DeviceEvent { };
83 
84  /** Event: An unknown device was attached */
85  valueobject UnknownDeviceAttachedEvent extends idl.Event {
86  string romCode; ///< Device ROM code
87  vector<PosElement> position; ///< Device position in the chain
88  };
89 
90  /** Enumeration: State of device firmware update */
92  UPDATE_STARTED, ///< Update is running
93  UPDATE_SUCCESSFUL, ///< Update has finished successfully
94  UPDATE_FAILED ///< Update has failed
95  };
96 
97  /** Event: Firmware update on a device was started or has finished */
99  string oldVersion; ///< Firmware version before update
100  string newVersion; ///< Firmware version to be updated to
101  string serial; ///< Serial number of device
102  DeviceFirmwareUpdateState state; ///< Update state
103  };
104 
105  /** Event: Firmware update state has changed
106  * This event will be sent to enclose one of more {@link DeviceFirmwareUpdateStateChangedEvent}.
107  * That is, it will be sent before a series of firmware updates is started and after the
108  * firmware update series has ended. */
110  FirmwareUpdateState newState; ///< New update state
111  };
112 
113  /** Event: A peripheral device package was added or removed */
114  valueobject PackageEvent extends idl.Event {
115  vector<PackageInfo> packageInfos; ///< Information about affected packages
116  vector<PackageInfo> allPackages; ///< New list of discovered packages after change
117  };
118 
119  /** Event: A peripheral device package was added */
120  valueobject PackageAddedEvent extends PackageEvent { };
121  /** Event: A peripheral device package was removed */
122  valueobject PackageRemovedEvent extends PackageEvent { };
123 
124  /** Peripheral device statistics */
125  structure Statistics {
126  int cSumErrCnt; ///< CRC / checksum error counter
127  int fuseTripCnt; ///< external ports fuse trip counter
128  };
129 
130  /**
131  * Get the list of peripheral device slots.
132  *
133  * @return List of peripheral device slots
134  */
135  vector<DeviceSlot> getDeviceSlots();
136 
137  /**
138  * Get a DeviceSlot by its index
139  *
140  * @param idx index of the slot to get (0-based)
141  * @return the requested slot
142  */
144 
145  /**
146  * Get the list of sensor hubs.
147  *
148  * @return List of sensor hubs at ports of requested type
149  */
150  vector<SensorHub> getSensorHubs();
151 
152  /**
153  * Get the list of currently attached peripheral devices
154  *
155  * @return List of all discovered peripheral devices
156  */
157  vector<Device> getDiscoveredDevices();
158 
159  /**
160  * Get the list of currently attached peripheral device packages
161  *
162  * @return List of all discovered peripheral device packages
163  */
164  vector<PackageInfo> getDiscoveredPackageInfos();
165 
166  /**
167  * Retrieve the peripheral DeviceManager's settings.
168  *
169  * @return peripheral DeviceManager's settings
170  */
172 
173  /**
174  * Change the peripheral DeviceManager's settings.
175  *
176  * @param settings New peripheral DeviceManager's settings
177  *
178  * @return 0 if OK
179  * @return 1 if any parameters are invalid
180  * @return 2 if this is a secondary instance; use primary to set settings
181  */
182  int setSettings(in Settings settings);
183 
184  /**
185  * Retreive the Peripheral DeviceManager's metadata.
186  *
187  * @return Peripheral DeviceManager's metadata
188  */
190 
191  /**
192  * Get the list of all peripheral device type infos
193  *
194  * @return List of all peripheral device type infos
195  */
196  vector<DeviceTypeInfo> getDeviceTypeInfos();
197 
198  /**
199  * Return the state of device firmware updates running
200  * on devices connected to this device manager
201  *
202  * @return Firmware update state
203  */
205 
206  /**
207  * Retrieve statistics
208  *
209  * @return peripheral device statistics
210  */
212 
213  /**
214  * Get the list of currently attached peripheral device packages
215  *
216  * @return List of all discovered peripheral device packages
217  */
218  vector<Package> getDiscoveredPackages();
219 
220  /**
221  * Get the fuse for the sensor port
222  *
223  * @return A fuse instance, if available
224  */
226 
227  /**
228  * Get gateway sensors configuration
229  *
230  * @return A GatewaySensorManager instance
231  */
233  };
234 }
235 
236 #endif /* !__PERIPHERAL_DEVICE_MANAGER_IDL__ */
Peripheral Device Manager.
Definition: PeripheralDeviceManager.idl:22
Settings getSettings()
Retrieve the peripheral DeviceManager's settings.
MetaData getMetaData()
Retreive the Peripheral DeviceManager's metadata.
Statistics getStatistics()
Retrieve statistics.
DeviceSlot getDeviceSlot(in int idx)
Get a DeviceSlot by its index.
portsmodel::PortFuse getPortFuse()
Get the fuse for the sensor port.
vector< Package > getDiscoveredPackages()
Get the list of currently attached peripheral device packages.
vector< SensorHub > getSensorHubs()
Get the list of sensor hubs.
vector< DeviceTypeInfo > getDeviceTypeInfos()
Get the list of all peripheral device type infos.
vector< PackageInfo > getDiscoveredPackageInfos()
Get the list of currently attached peripheral device packages.
FirmwareUpdateState getFirmwareUpdateState()
Return the state of device firmware updates running on devices connected to this device manager.
int setSettings(in Settings settings)
Change the peripheral DeviceManager's settings.
vector< DeviceSlot > getDeviceSlots()
Get the list of peripheral device slots.
DeviceFirmwareUpdateState
Enumeration: State of device firmware update.
Definition: PeripheralDeviceManager.idl:91
@ UPDATE_STARTED
Update is running.
Definition: PeripheralDeviceManager.idl:92
@ UPDATE_SUCCESSFUL
Update has finished successfully.
Definition: PeripheralDeviceManager.idl:93
ZCoordMode
Z Coordinate Mode identifier.
Definition: PeripheralDeviceManager.idl:28
@ RACKUNITS
Z coordinate of slot settings is in rack units.
Definition: PeripheralDeviceManager.idl:29
GatewaySensorManager getGatewaySensorManager()
Get gateway sensors configuration.
vector< Device > getDiscoveredDevices()
Get the list of currently attached peripheral devices.
Peripheral Device Slot.
Definition: PeripheralDeviceSlot.idl:66
Gateway Sensor Configuration Interface.
Definition: GatewaySensorManager.idl:20
Interface describing a controllable fuse for a device port.
Definition: PortFuse.idl:17
A sensor with numeric readings.
Definition: NumericSensor.idl:17
Sensor interface
Definition: Sensor.idl:15
Basic IDL definitions.
Definition: Event.idl:10
Peripheral Devices.
Definition: GatewaySensorManager.idl:17
Ports.
Definition: Port.idl:15
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
Common base for all events.
Definition: Event.idl:13
Event: A peripheral device was added.
Definition: PeripheralDeviceManager.idl:79
Event: A peripheral device was added or removed.
Definition: PeripheralDeviceManager.idl:73
vector< Device > devices
Affected devices.
Definition: PeripheralDeviceManager.idl:74
vector< Device > allDevices
New list of discovered devices after change.
Definition: PeripheralDeviceManager.idl:75
Event: Firmware update on a device was started or has finished.
Definition: PeripheralDeviceManager.idl:98
string newVersion
Firmware version to be updated to.
Definition: PeripheralDeviceManager.idl:100
DeviceFirmwareUpdateState state
Update state.
Definition: PeripheralDeviceManager.idl:102
string oldVersion
Firmware version before update.
Definition: PeripheralDeviceManager.idl:99
string serial
Serial number of device.
Definition: PeripheralDeviceManager.idl:101
Event: A peripheral device was removed.
Definition: PeripheralDeviceManager.idl:82
Peripheral device type info.
Definition: PeripheralDeviceManager.idl:51
boolean isActuator
Is actuator or not.
Definition: PeripheralDeviceManager.idl:53
sensors::NumericSensor Range defaultRange
Default sensor range (numeric sensors only)
Definition: PeripheralDeviceManager.idl:56
sensors::Sensor TypeSpec type
Device (sensor) type.
Definition: PeripheralDeviceManager.idl:52
int defaultDecDigits
Default sensor precision (numeric sensors only)
Definition: PeripheralDeviceManager.idl:57
string name
Device type display name.
Definition: PeripheralDeviceManager.idl:55
string identifier
Device type identifier.
Definition: PeripheralDeviceManager.idl:54
Event: Firmware update state has changed This event will be sent to enclose one of more DeviceFirmwar...
Definition: PeripheralDeviceManager.idl:109
FirmwareUpdateState newState
New update state.
Definition: PeripheralDeviceManager.idl:110
Firmware update status.
Definition: PeripheralDeviceManager.idl:61
int remaining
Number of peripheral devices that are still pending to be updated.
Definition: PeripheralDeviceManager.idl:63
boolean active
true if any peripheral device is currently updated
Definition: PeripheralDeviceManager.idl:62
Peripheral DeviceManager's metadata.
Definition: PeripheralDeviceManager.idl:45
int onboardDeviceCount
Number of onboard peripheral devices.
Definition: PeripheralDeviceManager.idl:47
int oneWirePortCount
Number of 1-wire ports.
Definition: PeripheralDeviceManager.idl:46
Event: A peripheral device package was added.
Definition: PeripheralDeviceManager.idl:120
Event: A peripheral device package was added or removed.
Definition: PeripheralDeviceManager.idl:114
vector< PackageInfo > packageInfos
Information about affected packages.
Definition: PeripheralDeviceManager.idl:115
vector< PackageInfo > allPackages
New list of discovered packages after change.
Definition: PeripheralDeviceManager.idl:116
Event: A peripheral device package was removed.
Definition: PeripheralDeviceManager.idl:122
Event: Peripheral device manager's settings have been changed.
Definition: PeripheralDeviceManager.idl:67
Settings newSettings
Settings after change.
Definition: PeripheralDeviceManager.idl:69
Settings oldSettings
Settings before change.
Definition: PeripheralDeviceManager.idl:68
peripheral DeviceManager's s settings
Definition: PeripheralDeviceManager.idl:34
int presenceDetectionTimeout
Timeout for presence detection (sec)
Definition: PeripheralDeviceManager.idl:38
map< string, sensors::NumericSensor.Thresholds > defaultThresholdsMap
Default thresholds by peripheral device type.
Definition: PeripheralDeviceManager.idl:39
float deviceAltitude
Altitude of device in meters.
Definition: PeripheralDeviceManager.idl:37
ZCoordMode zCoordMode
Z coordinate semantics.
Definition: PeripheralDeviceManager.idl:35
boolean muteOtherAccessControlUnit
Mute other access control unit (door handle) enabled.
Definition: PeripheralDeviceManager.idl:41
boolean autoManageNewDevices
Automatically manage newly detected devices.
Definition: PeripheralDeviceManager.idl:36
int maxActivePoweredDryContacts
The maximum number of concurrently active powered dry contacts.
Definition: PeripheralDeviceManager.idl:40
Peripheral device statistics.
Definition: PeripheralDeviceManager.idl:125
int fuseTripCnt
external ports fuse trip counter
Definition: PeripheralDeviceManager.idl:127
int cSumErrCnt
CRC / checksum error counter.
Definition: PeripheralDeviceManager.idl:126
Event: An unknown device was attached.
Definition: PeripheralDeviceManager.idl:85
string romCode
Device ROM code.
Definition: PeripheralDeviceManager.idl:86
vector< PosElement > position
Device position in the chain.
Definition: PeripheralDeviceManager.idl:87
Range of possible sensor readings.
Definition: NumericSensor.idl:24
Numeric sensor thresholds.
Definition: NumericSensor.idl:111
Complete sensor type specification.
Definition: Sensor.idl:169