Legrand / Raritan / Server Technology Xerus™ JSON-RPC API
Loading...
Searching...
No Matches
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 */
19module 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 */
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
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 manager
229 *
230 * @return A GatewaySensorManager instance
231 */
233 };
234}
235
236#endif /* !__PERIPHERAL_DEVICE_MANAGER_IDL__ */
Peripheral Device Manager.
vector< PackageInfo > getDiscoveredPackageInfos()
Get the list of currently attached peripheral device packages.
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< DeviceSlot > getDeviceSlots()
Get the list of peripheral device slots.
vector< Device > getDiscoveredDevices()
Get the list of currently attached peripheral devices.
FirmwareUpdateState getFirmwareUpdateState()
Return the state of device firmware updates running on devices connected to this device manager.
vector< SensorHub > getSensorHubs()
Get the list of sensor hubs.
int setSettings(in Settings settings)
Change the peripheral DeviceManager's settings.
DeviceFirmwareUpdateState
Enumeration: State of device firmware update.
@ UPDATE_SUCCESSFUL
Update has finished successfully.
ZCoordMode
Z Coordinate Mode identifier.
@ RACKUNITS
Z coordinate of slot settings is in rack units.
GatewaySensorManager getGatewaySensorManager()
Get gateway sensors configuration manager.
vector< DeviceTypeInfo > getDeviceTypeInfos()
Get the list of all peripheral device type infos.
Peripheral Device Slot.
Gateway Sensor Configuration Interface.
Interface describing a controllable fuse for a device port.
Definition: PortFuse.idl:17
A sensor with numeric readings.
Sensor interface
Definition: Sensor.idl:15
Basic IDL definitions.
Definition: Event.idl:10
Peripheral Devices.
Ports.
Definition: Port.idl:16
Sensors Model.
Common base for all events.
Definition: Event.idl:13
Event: A peripheral device was added.
Event: A peripheral device was added or removed.
vector< Device > devices
Affected devices.
vector< Device > allDevices
New list of discovered devices after change.
Event: Firmware update on a device was started or has finished.
Event: A peripheral device was removed.
sensors::NumericSensor Range defaultRange
Default sensor range (numeric sensors only)
sensors::Sensor TypeSpec type
Device (sensor) type.
int defaultDecDigits
Default sensor precision (numeric sensors only)
Event: Firmware update state has changed This event will be sent to enclose one of more DeviceFirmwar...
int remaining
Number of peripheral devices that are still pending to be updated.
boolean active
true if any peripheral device is currently updated
Peripheral DeviceManager's metadata.
int onboardDeviceCount
Number of onboard peripheral devices.
Event: A peripheral device package was added.
Event: A peripheral device package was added or removed.
vector< PackageInfo > packageInfos
Information about affected packages.
vector< PackageInfo > allPackages
New list of discovered packages after change.
Event: A peripheral device package was removed.
Event: Peripheral device manager's settings have been changed.
peripheral DeviceManager's s settings
int presenceDetectionTimeout
Timeout for presence detection (sec)
map< string, sensors::NumericSensor.Thresholds > defaultThresholdsMap
Default thresholds by peripheral device type.
float deviceAltitude
Altitude of device in meters.
ZCoordMode zCoordMode
Z coordinate semantics.
boolean muteOtherAccessControlUnit
Mute other access control unit (door handle) enabled.
boolean autoManageNewDevices
Automatically manage newly detected devices.
int maxActivePoweredDryContacts
The maximum number of concurrently active powered dry contacts.
int fuseTripCnt
external ports fuse trip counter
int cSumErrCnt
CRC / checksum error counter.
vector< PosElement > position
Device position in the chain.
Range of possible sensor readings.
Numeric sensor thresholds.
Complete sensor type specification.
Definition: Sensor.idl:177