diff options
| author | Manuel Traut <manut@mecka.net> | 2012-05-28 17:03:11 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2012-05-28 17:03:11 +0200 |
| commit | 379492ff3c10eef6479fd85418b797f97889d3f9 (patch) | |
| tree | 6ec8ee28aec613377fab4d9e75bc5afab152e1f5 | |
interfaces first draft
first idea of an interface description to control io s
Signed-off-by: Manuel Traut <manut@mecka.net>
| -rw-r--r-- | interfaces/common.idl | 22 | ||||
| -rw-r--r-- | interfaces/controller.idl | 17 | ||||
| -rw-r--r-- | interfaces/device.idl | 26 | ||||
| -rw-r--r-- | interfaces/io.idl | 22 |
4 files changed, 87 insertions, 0 deletions
diff --git a/interfaces/common.idl b/interfaces/common.idl new file mode 100644 index 0000000..c3ca769 --- /dev/null +++ b/interfaces/common.idl @@ -0,0 +1,22 @@ +module common { + + enum error_code { + SUCCESS, + EINVAL, + ENOTSUPPORTED + }; + + enum error_level { + DEBUG, + INFO, + WARNING, + NORMAL, + CRITICAL + }; + + struct error { + error_code code; + error_level level; + string description; + }; +}; diff --git a/interfaces/controller.idl b/interfaces/controller.idl new file mode 100644 index 0000000..b680742 --- /dev/null +++ b/interfaces/controller.idl @@ -0,0 +1,17 @@ +include common.idl +include io.idl + +module controller { + + common.error digital (out list<io.digial>); + common.error analog (out list<io.analog>); + common.error device (out list<device.device_base>); + + common.error register (in io.digital); + common.error register (in io.analog); + common.error register (in device.device_base); + + common.error unregister (in io.digital); + common.error unregister (in io.analog); + common.error unregister (in device.device_base); +}; diff --git a/interfaces/device.idl b/interfaces/device.idl new file mode 100644 index 0000000..1306639 --- /dev/null +++ b/interfaces/device.idl @@ -0,0 +1,26 @@ +include common.idl +include io.idl + +module device { + + enum function_id { + START; + STOP; + }; + + struct function { + string description; + int value; + enum fundtion_id id; + }; + + interface device { + common.error name (out string name); + common.error execute (in device.function); + common.error functions (out list <device.function>); + int id; + list <io.analog> analog; + list <io.digital> digital; + }; + +}; diff --git a/interfaces/io.idl b/interfaces/io.idl new file mode 100644 index 0000000..d2f95f8 --- /dev/null +++ b/interfaces/io.idl @@ -0,0 +1,22 @@ +#include "common.idl" + +module io { + + interface digital { + common.error name (out string name); + common.error set (); + common.error reset (); + common.error get (out int value); + attribute Int id; + }; + + interface analog { + common.error name (out string name); + common.error min (out int min); + common.error max (out int max); + common.error set (in int value); + common.error get (out int value); + attribute Integer id; + }; + +}; |
