blob: 435ea014eead1cf56ffbb4246c817ce6e777c151 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#ifndef DISTIO_IO_IDL
#define DISTIO_IO_IDL
#include "common.idl"
module IO {
interface Device;
enum Digital_trigger {
TRIGGER_EDGE,
TRIGGER_RISING_EDGE,
TRIGGER_FALLING_EDGE
};
interface Digital {
Common::Error name (out string name);
Common::Error set ();
Common::Error reset ();
Common::Error get (out long value);
Common::Error register_callback (in Device dev, in Digital_trigger trigger);
attribute long id;
};
typedef sequence<Digital> Digital_list;
struct Analog_trigger {
long last_value;
long jitter;
};
interface Analog {
Common::Error name (out string name);
Common::Error min (out long min);
Common::Error max (out long max);
Common::Error set (in long value);
Common::Error get (out long value);
Common::Error register_callback (in Device dev, in Analog_trigger trigger);
attribute long id;
};
typedef sequence<Analog> Analog_list;
enum Dev_function_id {
DEV_START,
DEV_STOP
};
struct Dev_function {
string description;
long value;
Dev_function_id id;
};
typedef sequence<Dev_function> Dev_function_list;
interface Device {
Common::Error name (out string name);
Common::Error execute (in Dev_function func);
Common::Error functions (out Dev_function_list funcs);
Common::Error callback_digital (in Digital io_dig);
Common::Error callback_analog (in Analog io_ana);
attribute Analog_list io_ana;
attribute Digital_list io_dig;
attribute long id;
};
typedef sequence<Device> Device_list;
};
#endif
|