Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2
Loading...
Searching...
No Matches
KvmDevice.idl
1#ifndef __RADM_KVM_DEVICE_IDL__
2#define __RADM_KVM_DEVICE_IDL__
3
4#include <Device.idl>
5#include <KvmPort.idl>
6#include <LocalMonitor.idl>
7#include <LocalPort.idl>
8#include <TerminalBlock.idl>
9#include <UsbProfileSettings.idl>
10#include <VideoResolution.idl>
11
12module radm {
13
14 interface KvmDevice extends Device {
15
16 constant int ERR_EDID_DATA_IN_USE = 10; ///< EDID data is in use, cannot be deleted
17 constant int ERR_EDID_GENERATION_FAILED = 11; ///< Failed to generate custom EDID
18
19 structure CustomEdidLimits {
20 int maxWidth;
21 int maxHeight;
22 int minWidth;
23 int minHeight;
24 int maxFrameRate;
25 int minFrameRate;
26 double maxPixelClock;
27 double minPixelClock;
28 };
29
30 enumeration EdidInterfaceType {
31 DVI, ///< DVI EDID data
32 HDMI ///< HDMI EDID data
33 };
34
35 /** EDID data for a given resolution */
36 structure EdidData {
37 VideoResolution resolution; ///< Resolution described by the EDID data
38 string description; ///< Text describing the EDID data
39 EdidInterfaceType videoInterface; ///< Video interface type the EDID data is meant for
40 };
41
42 /** An uploaded USB profile */
43 structure UsbProfile {
44 long key; ///< Profile key
45 int id; ///< Profile ID
46 string name; ///< Profile name
47 string description; ///< Profile description
48 boolean systemProfile; ///< Whether the profile is a system (built-in) profile
49 UsbProfileSettings settings; ///< Profile settings
50 };
51
52 /** Device temperature reading */
54 boolean available; ///< Whether the reading data is valid
55 float currentValue; ///< Current device temperature (in degree Celsius)
56 float maximumValue; ///< Historical temperature maximum (in degree Celsius)
57 float minimumValue; ///< Historical temperature minimum (in degree Celsius)
58 };
59
60 /**
61 * Get KVM ports of this device
62 *
63 * @return List of KVM ports
64 */
65 vector<KvmPort> getKvmPorts();
66
67 /**
68 * Get monitor(s) locally attached to the device
69 *
70 * @return List of locally attached monitors
71 */
72 vector<LocalMonitor> getLocalMonitors();
73
74 /**
75 * Gets local control port of the device
76 *
77 * @return Local port if present on the device
78 */
80
81 /**
82 * Get the terminal block of the device
83 *
84 * @return Terminal block if present on the device
85 */
87
88 /**
89 * Get the device's internal temperature
90 *
91 * @return Device temperature reading
92 */
94
95 /**
96 * Get data of the video resolutions supported by the device
97 *
98 * @return List of EDID data built into the device
99 */
100 vector<EdidData> getSupportedResolutionData();
101
102 /**
103 * Get data of the video resolution data uploaded to the device
104 *
105 * @return List of custom EDID data
106 */
107 vector<EdidData> getCustomEdidData();
108
109 /**
110 * Delete previously uploaded custom EDID data
111 *
112 * @param resolution Video resolution to delete
113 * @param videoInterface Interface type to delete resolution for
114 *
115 * @return 0 on success
116 * @return 1 if the given resolution/interface combination could not be found
117 * @return 10 if the given resolution/interface combination currently is in use
118 */
119 int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface);
120
121 /**
122 * Create custom EDID
123 *
124 * @param resolution Resolution for custom EDID
125 *
126 * @return 0 if success
127 * @return 1 if no valid EDID can be generated from the provided resolution
128 * @return 2 if custom EDID data generation is not supported
129 * @return 11 if there was an internal error while generating the EDID data
130 */
132
133 /**
134 * Validate custom EDID argument and calculate pixel clock
135 *
136 * @param resolution Resolution for custom EDID
137 * @param resultingPixelClock Pixel clock calculated if valid (output)
138 *
139 * @return 0 if validation successful
140 * @return 1 if the provided resolution is not valid for EDID generation
141 * @return 2 if if custom EDID data generation is not supported
142 */
143 int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock);
144
145 /**
146 * Get limits for custom EDID generation
147 *
148 * @return limits
149 */
151
152 /**
153 * Get USB profiles available on the device
154 *
155 * @return USB profiles, or an empty list in case USB profiles are not supported
156 */
157 vector<UsbProfile> getUsbProfiles();
158
159 /**
160 * Delete a previously uploaded USB profile
161 *
162 * @param Profile ID of the profile to be deleted
163 *
164 * @return 0 on success
165 * @return 1 if the profile with the given ID could not be found
166 */
167 int deleteUsbProfile(in int profileId);
168
169 /** Event: The list of available USB profiles changed */
170 valueobject UsbProfilesChangedEvent extends event.UserEvent {
171 vector<UsbProfile> newUsbProfiles; ///< USB profile list after the change
172 };
173
174 /** Event: A USB profile was added */
176 UsbProfile profile; ///< Added profile
177 };
178
179 /** Event: A USB profile was deleted */
181 UsbProfile deletedProfile; ///< Deleted profile
182 };
183
184 /** Event: Custom EDID data changed */
185 valueobject CustomEdidDataChangedEvent extends event.UserEvent {
186 vector<EdidData> newCustomEdidData; ///< List of custom EDID data after the change
187 };
188
189 /** Event: Device temperature has changed */
190 valueobject TemperatureChangedEvent extends idl.Event {
191 TemperatureReading newReading; ///< Device temperature reading after the change
192 };
193 };
194
195}
196
197#endif //__RADM_KVM_DEVICE_IDL__
int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock)
Validate custom EDID argument and calculate pixel clock.
vector< LocalMonitor > getLocalMonitors()
Get monitor(s) locally attached to the device.
LocalPort getLocalPort()
Gets local control port of the device.
constant int ERR_EDID_DATA_IN_USE
EDID data is in use, cannot be deleted.
Definition KvmDevice.idl:16
vector< UsbProfile > getUsbProfiles()
Get USB profiles available on the device.
vector< EdidData > getSupportedResolutionData()
Get data of the video resolutions supported by the device.
constant int ERR_EDID_GENERATION_FAILED
Failed to generate custom EDID.
Definition KvmDevice.idl:17
TemperatureReading getInternalTemperature()
Get the device's internal temperature.
vector< EdidData > getCustomEdidData()
Get data of the video resolution data uploaded to the device.
TerminalBlock getTerminalBlock()
Get the terminal block of the device.
int createCustomEdid(in VideoResolution resolution)
Create custom EDID.
@ DVI
DVI EDID data.
Definition KvmDevice.idl:31
@ HDMI
HDMI EDID data.
Definition KvmDevice.idl:32
vector< KvmPort > getKvmPorts()
Get KVM ports of this device.
int deleteUsbProfile(in int profileId)
Delete a previously uploaded USB profile.
CustomEdidLimits getCustomEdidLimits()
Get limits for custom EDID generation.
int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface)
Delete previously uploaded custom EDID data.
Interface for local user interface.
Definition LocalPort.idl:12
TerminalBlock interface
Basic IDL definitions.
Definition Event.idl:10
Radm Model.
Definition AccessPort.idl:8
Common base for all events.
Definition Event.idl:13
Event: Custom EDID data changed.
vector< EdidData > newCustomEdidData
List of custom EDID data after the change.
EDID data for a given resolution.
Definition KvmDevice.idl:36
VideoResolution resolution
Resolution described by the EDID data.
Definition KvmDevice.idl:37
string description
Text describing the EDID data.
Definition KvmDevice.idl:38
EdidInterfaceType videoInterface
Video interface type the EDID data is meant for.
Definition KvmDevice.idl:39
Event: Device temperature has changed.
TemperatureReading newReading
Device temperature reading after the change.
Device temperature reading.
Definition KvmDevice.idl:53
float currentValue
Current device temperature (in degree Celsius)
Definition KvmDevice.idl:55
boolean available
Whether the reading data is valid.
Definition KvmDevice.idl:54
float minimumValue
Historical temperature minimum (in degree Celsius)
Definition KvmDevice.idl:57
float maximumValue
Historical temperature maximum (in degree Celsius)
Definition KvmDevice.idl:56
Event: A USB profile was added.
UsbProfile profile
Added profile.
Event: A USB profile was deleted.
UsbProfile deletedProfile
Deleted profile.
An uploaded USB profile.
Definition KvmDevice.idl:43
string description
Profile description.
Definition KvmDevice.idl:47
boolean systemProfile
Whether the profile is a system (built-in) profile.
Definition KvmDevice.idl:48
UsbProfileSettings settings
Profile settings.
Definition KvmDevice.idl:49
string name
Profile name.
Definition KvmDevice.idl:46
Event: The list of available USB profiles changed.
vector< UsbProfile > newUsbProfiles
USB profile list after the change.