UniSet  2.24.2
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 
57  struct SensorInfo
58  {
61  };
62 
63  long getValue(in uniset::ObjectId sid) raises(NameNotFound,Undefined);
64  void setValue(in uniset::ObjectId sid, in long value,
65  in uniset::ObjectId sup_id) raises(NameNotFound,Undefined);
66 
67  // установка неопределённого состояния
68  // (пока работает только для аналоговых датчиков)
69  void setUndefinedState(in uniset::ObjectId sid, in boolean undefined, in uniset::ObjectId sup_id )
70  raises(NameNotFound);
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);
74 
75  UniversalIO::IOType getIOType(in uniset::ObjectId sid) raises(NameNotFound);
76 
77  // --- Интерфейс для конфигурирования ---
78 
80  long getRawValue( in uniset::ObjectId sid ) raises(NameNotFound);
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  // --- Интерфейс получения информации о всех датчиках ---
96  struct SensorIOInfo
97  {
98  long value;
99  boolean undefined;
100  boolean blocked;
101  boolean frozen;
102  long real_value;
103  UniversalIO::IOType type;
104  long priority;
106  long default_val;
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 
143  struct ShortIOInfo
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 
197  in uniset::ConsumerInfo ci,
198  in UniversalIO::UIOCommand cmd );
199 
200 
203  {
206  HiThreshold
207  };
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