UniSet 2.32.1
IOController_i.idl
1/*
2 * Copyright (c) 2015 Pavel Vainerman.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as
6 * published by the Free Software Foundation, version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Lesser Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16// --------------------------------------------------------------------------
20// --------------------------------------------------------------------------
21#ifndef BaseIOController_i_IDL_
22#define BaseIOController_i_IDL_
23// --------------------------------------------------------------------------
24#include "../UniSetTypes/UniSetTypes_i.idl"
25#include "../UniSetTypes/UniSetManager_i.idl"
26// --------------------------------------------------------------------------------------------------------------
27
34{
35 // исключения
36
38 exception NameNotFound
39 {
40 string err;
41 };
42
43 exception IOBadParam
44 {
45 string err;
46 };
47
51 exception Undefined
52 {
53 long value; // текущее значение (может быть специальным undefined_value)
54 };
55
62
63 long getValue(in uniset::ObjectId sid) raises(NameNotFound,Undefined);
64 void setValue(in uniset::ObjectId sid, in long value,
66
67 // установка неопределённого состояния
68 // (пока работает только для аналоговых датчиков)
69 void setUndefinedState(in uniset::ObjectId sid, in boolean undefined, in uniset::ObjectId sup_id )
71
72 // "заморозка"/"разморозка" значения. set=true - выставить value и не менять, пока не будет вызван set=false
73 void freezeValue(in uniset::ObjectId sid, in boolean set, in long value, in uniset::ObjectId sup_id ) raises(NameNotFound,IOBadParam);
74
75 UniversalIO::IOType getIOType(in uniset::ObjectId sid) raises(NameNotFound);
76
77 // --- Интерфейс для конфигурирования ---
78
81
83 {
84 long minRaw;
85 long maxRaw;
86 long minCal;
87 long maxCal;
88 short precision;
89 };
90
91 void calibrate( in uniset::ObjectId sid, in CalibrateInfo ci, in uniset::ObjectId adminId ) raises(NameNotFound);
92 CalibrateInfo getCalibrateInfo( in uniset::ObjectId sid ) raises(NameNotFound);
93
94 // --- Интерфейс получения информации о всех датчиках ---
97 {
98 long value;
99 boolean undefined;
100 boolean blocked;
101 boolean frozen;
103 UniversalIO::IOType type;
104 long priority;
108 unsigned long tv_sec;
109 unsigned long tv_nsec;
111 boolean dbignore;
113 };
114
115 typedef sequence<SensorIOInfo> SensorInfoSeq;
116
117 SensorInfoSeq getSensorsMap();
118 SensorIOInfo getSensorIOInfo( in uniset::ObjectId sid ) raises(NameNotFound);
119
120 // -- Функции работы со списком датчиков --
121
123 SensorInfoSeq getSensorSeq( in uniset::IDSeq lst );
124
126 struct OutInfo
127 {
129 long value;
130 };
131
132 typedef sequence<OutInfo> OutSeq;
133
139 uniset::IDSeq setOutputSeq( in OutSeq lst, in uniset::ObjectId sup_id );
140
141
144 {
145 long value;
146
147 // могут быть проблемы в 64bit-ных
148 unsigned long tv_sec;
149 unsigned long tv_nsec;
151 };
152
153 ShortIOInfo getTimeChange( in uniset::ObjectId sid ) raises(NameNotFound);
154
155
157 struct ShortMap
158 {
159 UniversalIO::IOType type;
160 long value;
161 long id;
162 };
163
164 typedef sequence<ShortMap> ShortMapSeq;
165
166 ShortMapSeq getSensors();
167};
168
169// --------------------------------------------------------------------------------------------------------------
180{
182 exception BadRange
183 {
184 };
185
189 void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam);
190
198 in UniversalIO::UIOCommand cmd );
199
200
208
210 {
212 long hilimit;
213 long lowlimit;
214 ThresholdState state;
215 unsigned long tv_sec;
216 unsigned long tv_nsec;
217 boolean invert;
218 };
219
220 typedef sequence<ThresholdInfo> ThresholdInfoSeq;
221
232 in long lowLimit, in long hiLimit, in boolean invert,
233 in UniversalIO::UIOCommand cmd ) raises(NameNotFound, IOBadParam, BadRange);
234
235
240
242 {
244 UniversalIO::IOType type;
245 long value;
246 ThresholdInfoSeq tlist;
247 };
248
249 typedef sequence<ThresholdList> ThresholdsListSeq;
250
253
255 ThresholdsListSeq getThresholdsList();
256};
257// --------------------------------------------------------------------------
258#endif
Definition IOController_i.idl:44
Definition IOController_i.idl:39
Definition IOController_i.idl:52
Definition IOController_i.idl:183
Базовый интерфейс для создания координаторов ввода/вывода
Definition IOController_i.idl:34
uniset::IDSeq setOutputSeq(in OutSeq lst, in uniset::ObjectId sup_id)
SensorInfoSeq getSensorSeq(in uniset::IDSeq lst)
long getRawValue(in uniset::ObjectId sid)
Базовый интерфейс для создания процессов рассылающих сообщения об изменении состояния
Definition IOController_i.idl:180
uniset::IDSeq askSensorsSeq(in uniset::IDSeq lst, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
ThresholdState
Definition IOController_i.idl:203
@ NormalThreshold
Definition IOController_i.idl:205
@ HiThreshold
Definition IOController_i.idl:206
@ LowThreshold
Definition IOController_i.idl:204
ThresholdsListSeq getThresholdsList()
void askThreshold(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in uniset::ThresholdId tid, in long lowLimit, in long hiLimit, in boolean invert, in UniversalIO::UIOCommand cmd)
void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
ThresholdInfo getThresholdInfo(in uniset::ObjectId sid, in uniset::ThresholdId tid)
ThresholdList getThresholds(in uniset::ObjectId sid)
Интерфейс менеджера объектов
Definition UniSetManager_i.idl:41
long ThresholdId
Definition UniSetTypes_i.idl:31
sequence< ObjectId > IDSeq
Definition UniSetTypes_i.idl:89
long ObjectId
Definition UniSetTypes_i.idl:30
Definition IOController_i.idl:83
long maxRaw
Definition IOController_i.idl:85
long minRaw
Definition IOController_i.idl:84
long minCal
Definition IOController_i.idl:86
long maxCal
Definition IOController_i.idl:87
short precision
Definition IOController_i.idl:88
Definition IOController_i.idl:127
SensorInfo si
Definition IOController_i.idl:128
long value
Definition IOController_i.idl:129
Definition IOController_i.idl:97
uniset::ObjectId supplier
Definition IOController_i.idl:110
boolean dbignore
Definition IOController_i.idl:111
boolean frozen
Definition IOController_i.idl:101
unsigned long tv_sec
Definition IOController_i.idl:108
uniset::ObjectId depend_sid
Definition IOController_i.idl:112
boolean undefined
Definition IOController_i.idl:99
long default_val
Definition IOController_i.idl:106
CalibrateInfo ci
Definition IOController_i.idl:107
boolean blocked
Definition IOController_i.idl:100
long real_value
Definition IOController_i.idl:102
UniversalIO::IOType type
Definition IOController_i.idl:103
long priority
Definition IOController_i.idl:104
unsigned long tv_nsec
Definition IOController_i.idl:109
long value
Definition IOController_i.idl:98
Definition IOController_i.idl:58
uniset::ObjectId node
Definition IOController_i.idl:60
uniset::ObjectId id
Definition IOController_i.idl:59
Definition IOController_i.idl:144
unsigned long tv_sec
Definition IOController_i.idl:148
unsigned long tv_nsec
Definition IOController_i.idl:149
uniset::ObjectId supplier
Definition IOController_i.idl:150
Definition IOController_i.idl:158
Definition IOController_i.idl:210
unsigned long tv_sec
Definition IOController_i.idl:215
long lowlimit
Definition IOController_i.idl:213
boolean invert
Definition IOController_i.idl:217
long hilimit
Definition IOController_i.idl:212
unsigned long tv_nsec
Definition IOController_i.idl:216
Definition IOController_i.idl:242
Definition UniSetTypes_i.idl:75