UniSet @VERSION@
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
48 exception AccessDenied
49 {
50 string err;
51 };
52
53
57 exception Undefined
58 {
59 long value; // текущее значение (может быть специальным undefined_value)
60 };
61
68
69 long getValue(in uniset::ObjectId sid, in uniset::ObjectId consumer_id) raises(NameNotFound,Undefined,AccessDenied);
70 void setValue(in uniset::ObjectId sid, in long value,
72
73 // установка неопределённого состояния
74 // (пока работает только для аналоговых датчиков)
75 void setUndefinedState(in uniset::ObjectId sid, in boolean undefined, in uniset::ObjectId sup_id )
77
78 // "заморозка"/"разморозка" значения. set=true - выставить value и не менять, пока не будет вызван set=false
79 void freezeValue(in uniset::ObjectId sid, in boolean set, in long value, in uniset::ObjectId sup_id ) raises(NameNotFound,IOBadParam,AccessDenied);
80
81 UniversalIO::IOType getIOType(in uniset::ObjectId sid) raises(NameNotFound,AccessDenied);
82
83 // --- Интерфейс для конфигурирования ---
84
87
89 {
90 long minRaw;
91 long maxRaw;
92 long minCal;
93 long maxCal;
94 short precision;
95 };
96
97 void calibrate( in uniset::ObjectId sid, in CalibrateInfo ci, in uniset::ObjectId adminId ) raises(NameNotFound,AccessDenied);
98 CalibrateInfo getCalibrateInfo( in uniset::ObjectId sid, in uniset::ObjectId consumer_id ) raises(NameNotFound,AccessDenied);
99
100 // --- Интерфейс получения информации о всех датчиках ---
120
121 typedef sequence<SensorIOInfo> SensorInfoSeq;
122
123 SensorInfoSeq getSensorsMap( in uniset::ObjectId consumer_id ) raises(AccessDenied);
124 SensorIOInfo getSensorIOInfo( in uniset::ObjectId sid, in uniset::ObjectId consumer_id ) raises(NameNotFound,AccessDenied);
125
126 // -- Функции работы со списком датчиков --
127
129 SensorInfoSeq getSensorSeq( in uniset::IDSeq lst, in uniset::ObjectId consumer_id ) raises(AccessDenied);
130
132 struct OutInfo
133 {
135 long value;
136 };
137
138 typedef sequence<OutInfo> OutSeq;
139
145 uniset::IDSeq setOutputSeq( in OutSeq lst, in uniset::ObjectId sup_id ) raises(AccessDenied);
146
147
150 {
151 long value;
152
153 // могут быть проблемы в 64bit-ных
154 unsigned long tv_sec;
155 unsigned long tv_nsec;
157 };
158
159 ShortIOInfo getTimeChange( in uniset::ObjectId sid, in uniset::ObjectId consumer_id ) raises(NameNotFound, AccessDenied);
160
161
163 struct ShortMap
164 {
165 UniversalIO::IOType type;
166 long value;
167 long id;
168 };
169
170 typedef sequence<ShortMap> ShortMapSeq;
171
172 ShortMapSeq getSensors( in uniset::ObjectId consumer_id ) raises(AccessDenied);
173};
174
175// --------------------------------------------------------------------------------------------------------------
186{
188 exception BadRange
189 {
190 };
191
195 void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam,AccessDenied);
196
204 in UniversalIO::UIOCommand cmd );
205
206
214
216 {
218 long hilimit;
219 long lowlimit;
220 ThresholdState state;
221 unsigned long tv_sec;
222 unsigned long tv_nsec;
223 boolean invert;
224 };
225
226 typedef sequence<ThresholdInfo> ThresholdInfoSeq;
227
238 in long lowLimit, in long hiLimit, in boolean invert,
239 in UniversalIO::UIOCommand cmd ) raises(NameNotFound, IOBadParam, BadRange);
240
241
246
248 {
250 UniversalIO::IOType type;
251 long value;
252 ThresholdInfoSeq tlist;
253 };
254
255 typedef sequence<ThresholdList> ThresholdsListSeq;
256
259
261 ThresholdsListSeq getThresholdsList( in uniset::ObjectId consumer_id ) raises(AccessDenied);
262};
263// --------------------------------------------------------------------------
264#endif
Definition IOController_i.idl:49
Definition IOController_i.idl:44
Definition IOController_i.idl:39
Definition IOController_i.idl:58
Definition IOController_i.idl:189
Базовый интерфейс для создания координаторов ввода/вывода
Definition IOController_i.idl:34
uniset::IDSeq setOutputSeq(in OutSeq lst, in uniset::ObjectId sup_id)
SensorInfoSeq getSensorSeq(in uniset::IDSeq lst, in uniset::ObjectId consumer_id)
long getRawValue(in uniset::ObjectId sid, in uniset::ObjectId consumer_id)
Базовый интерфейс для создания процессов рассылающих сообщения об изменении состояния
Definition IOController_i.idl:186
uniset::IDSeq askSensorsSeq(in uniset::IDSeq lst, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
ThresholdState
Definition IOController_i.idl:209
@ NormalThreshold
Definition IOController_i.idl:211
@ HiThreshold
Definition IOController_i.idl:212
@ LowThreshold
Definition IOController_i.idl:210
ThresholdsListSeq getThresholdsList(in uniset::ObjectId consumer_id)
ThresholdList getThresholds(in uniset::ObjectId sid, in uniset::ObjectId consumer_id)
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)
ThresholdInfo getThresholdInfo(in uniset::ObjectId sid, in uniset::ThresholdId tid, in uniset::ObjectId consumer_id)
void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
Интерфейс менеджера объектов
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:89
long maxRaw
Definition IOController_i.idl:91
long minRaw
Definition IOController_i.idl:90
long minCal
Definition IOController_i.idl:92
long maxCal
Definition IOController_i.idl:93
short precision
Definition IOController_i.idl:94
Definition IOController_i.idl:133
SensorInfo si
Definition IOController_i.idl:134
long value
Definition IOController_i.idl:135
Definition IOController_i.idl:103
uniset::ObjectId supplier
Definition IOController_i.idl:116
boolean dbignore
Definition IOController_i.idl:117
boolean frozen
Definition IOController_i.idl:107
unsigned long tv_sec
Definition IOController_i.idl:114
uniset::ObjectId depend_sid
Definition IOController_i.idl:118
boolean undefined
Definition IOController_i.idl:105
long default_val
Definition IOController_i.idl:112
CalibrateInfo ci
Definition IOController_i.idl:113
boolean blocked
Definition IOController_i.idl:106
long real_value
Definition IOController_i.idl:108
UniversalIO::IOType type
Definition IOController_i.idl:109
long priority
Definition IOController_i.idl:110
unsigned long tv_nsec
Definition IOController_i.idl:115
long value
Definition IOController_i.idl:104
Definition IOController_i.idl:64
uniset::ObjectId node
Definition IOController_i.idl:66
uniset::ObjectId id
Definition IOController_i.idl:65
Definition IOController_i.idl:150
unsigned long tv_sec
Definition IOController_i.idl:154
unsigned long tv_nsec
Definition IOController_i.idl:155
uniset::ObjectId supplier
Definition IOController_i.idl:156
Definition IOController_i.idl:164
Definition IOController_i.idl:216
unsigned long tv_sec
Definition IOController_i.idl:221
long lowlimit
Definition IOController_i.idl:219
boolean invert
Definition IOController_i.idl:223
long hilimit
Definition IOController_i.idl:218
unsigned long tv_nsec
Definition IOController_i.idl:222
Definition IOController_i.idl:248
Definition UniSetTypes_i.idl:75