UniSet  2.8.0
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  UniversalIO::IOType getIOType(in uniset::ObjectId sid) raises(NameNotFound);
73 
74  // --- Интерфейс для конфигурирования ---
75 
77  long getRawValue( in uniset::ObjectId sid ) raises(NameNotFound);
78 
80  {
81  long minRaw;
82  long maxRaw;
83  long minCal;
84  long maxCal;
85  short precision;
86  };
87 
88  void calibrate( in uniset::ObjectId sid, in CalibrateInfo ci, in uniset::ObjectId adminId ) raises(NameNotFound);
89  CalibrateInfo getCalibrateInfo( in uniset::ObjectId sid ) raises(NameNotFound);
90 
91  // --- Интерфейс получения информации о всех датчиках ---
93  struct SensorIOInfo
94  {
95  long value;
96  boolean undefined;
97  boolean blocked;
98  long real_value;
99  UniversalIO::IOType type;
100  long priority;
102  long default_val;
104  unsigned long tv_sec;
105  unsigned long tv_nsec;
107  boolean dbignore;
108  };
109 
110  typedef sequence<SensorIOInfo> SensorInfoSeq;
111 
112  SensorInfoSeq getSensorsMap();
113  SensorIOInfo getSensorIOInfo( in uniset::ObjectId sid ) raises(NameNotFound);
114 
115  // -- Функции работы со списком датчиков --
116 
118  SensorInfoSeq getSensorSeq( in uniset::IDSeq lst );
119 
121  struct OutInfo
122  {
124  long value;
125  };
126 
127  typedef sequence<OutInfo> OutSeq;
128 
134  uniset::IDSeq setOutputSeq( in OutSeq lst, in uniset::ObjectId sup_id );
135 
136 
138  struct ShortIOInfo
139  {
140  long value;
141 
142  // могут быть проблемы в 64bit-ных
143  unsigned long tv_sec;
144  unsigned long tv_nsec;
146  };
147 
148  ShortIOInfo getTimeChange( in uniset::ObjectId sid ) raises(NameNotFound);
149 
150 
152  struct ShortMap
153  {
154  UniversalIO::IOType type;
155  long value;
156  long id;
157  };
158 
159  typedef sequence<ShortMap> ShortMapSeq;
160 
161  ShortMapSeq getSensors();
162 };
163 
164 // --------------------------------------------------------------------------------------------------------------
175 {
177  exception BadRange
178  {
179  };
180 
184  void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam);
185 
192  in uniset::ConsumerInfo ci,
193  in UniversalIO::UIOCommand cmd );
194 
195 
198  {
202  };
203 
205  {
207  long hilimit;
208  long lowlimit;
209  ThresholdState state;
210  unsigned long tv_sec;
211  unsigned long tv_nsec;
212  boolean invert;
213  };
214 
215  typedef sequence<ThresholdInfo> ThresholdInfoSeq;
216 
227  in long lowLimit, in long hiLimit, in boolean invert,
228  in UniversalIO::UIOCommand cmd ) raises(NameNotFound, IOBadParam, BadRange);
229 
230 
235 
237  {
239  UniversalIO::IOType type;
240  long value;
241  ThresholdInfoSeq tlist;
242  };
243 
244  typedef sequence<ThresholdList> ThresholdsListSeq;
245 
248 
250  ThresholdsListSeq getThresholdsList();
251 };
252 // --------------------------------------------------------------------------
253 #endif
uniset::ObjectId supplier
Definition: IOController_i.idl:106
unsigned long tv_nsec
Definition: IOController_i.idl:211
Базовый интерфейс для создания координаторов ввода/вывода
Definition: IOController_i.idl:33
ThresholdsListSeq getThresholdsList()
uniset::ObjectId supplier
Definition: IOController_i.idl:145
Definition: IOController_i.idl:93
short precision
Definition: IOController_i.idl:85
long default_val
Definition: IOController_i.idl:102
Definition: IOController_i.idl:236
void askSensor(in uniset::ObjectId sid, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
long minCal
Definition: IOController_i.idl:83
unsigned long tv_sec
Definition: IOController_i.idl:210
Definition: IOController_i.idl:204
long ThresholdId
Definition: UniSetTypes_i.idl:31
Интерфейс менеджера объектов
Definition: UniSetManager_i.idl:40
unsigned long tv_nsec
Definition: IOController_i.idl:144
long maxRaw
Definition: IOController_i.idl:82
SensorInfoSeq getSensorSeq(in uniset::IDSeq lst)
UniversalIO::IOType type
Definition: IOController_i.idl:99
boolean undefined
Definition: IOController_i.idl:96
ThresholdState
Definition: IOController_i.idl:197
ThresholdInfo getThresholdInfo(in uniset::ObjectId sid, in uniset::ThresholdId tid)
Definition: UniSetTypes_i.idl:74
sequence< ObjectId > IDSeq
Definition: UniSetTypes_i.idl:89
long value
Definition: IOController_i.idl:124
unsigned long tv_sec
Definition: IOController_i.idl:104
Definition: IOController_i.idl:199
Definition: IOController_i.idl:152
uniset::ObjectId node
Definition: IOController_i.idl:60
boolean dbignore
Definition: IOController_i.idl:107
Definition: IOController_i.idl:43
Definition: IOController_i.idl:138
long minRaw
Definition: IOController_i.idl:81
long lowlimit
Definition: IOController_i.idl:208
Definition: IOController_i.idl:201
long priority
Definition: IOController_i.idl:100
uniset::IDSeq setOutputSeq(in OutSeq lst, in uniset::ObjectId sup_id)
boolean blocked
Definition: IOController_i.idl:97
Базовый интерфейс для создания процессов рассылающих сообщения об изменении состояния
Definition: IOController_i.idl:174
long maxCal
Definition: IOController_i.idl:84
SensorInfo si
Definition: IOController_i.idl:123
uniset::IDSeq askSensorsSeq(in uniset::IDSeq lst, in uniset::ConsumerInfo ci, in UniversalIO::UIOCommand cmd)
Definition: IOController_i.idl:79
long getRawValue(in uniset::ObjectId sid)
long hilimit
Definition: IOController_i.idl:207
Definition: IOController_i.idl:38
Definition: IOController_i.idl:177
long real_value
Definition: IOController_i.idl:98
Definition: IOController_i.idl:51
Definition: IOController_i.idl:121
Definition: IOController_i.idl:57
Definition: IOController_i.idl:200
ThresholdList getThresholds(in uniset::ObjectId sid)
boolean invert
Definition: IOController_i.idl:212
CalibrateInfo ci
Definition: IOController_i.idl:103
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)
unsigned long tv_nsec
Definition: IOController_i.idl:105
long value
Definition: IOController_i.idl:95
long ObjectId
Definition: UniSetTypes_i.idl:30
unsigned long tv_sec
Definition: IOController_i.idl:143
uniset::ObjectId id
Definition: IOController_i.idl:59