]> rtime.felk.cvut.cz Git - hydro.git/blob - app-stefic/control/hydroponieoi.c
Added regulator. Added accepting of PDO messages.
[hydro.git] / app-stefic / control / hydroponieoi.c
1 /*
2     OBJECT INTERFACE FOR CONTROL
3 */
4
5 #include "board.h"
6
7 #define I_FAN 400
8 #define I_FAN_CID 410
9 #define I_FAN_SLOT 420
10 #define I_HUMIDIFIER 500
11 #define I_HUMIDIFIER_CID 510
12 #define I_HUMIDIFIER_SLOT 520
13 #define I_LIGHT 600
14 #define I_LIGHT_CID 610
15 #define I_LIGHT_SLOT 620
16 #define I_PERIOD 700
17
18 unsigned int status_val;
19
20 int status_rdfnc(ULOI_PARAM_coninfo void *context)
21 {
22     return uloi_uint_rdfnc(ULOI_ARG_coninfo &status_val);
23 }
24
25 int errclr_wrfnc(ULOI_PARAM_coninfo void *context)
26 {
27     status_val=0; 
28     return 1;
29 }
30
31 /* description of input objects */
32 const ULOI_CODE uloi_objdes_t uloid_objdes_DOII =
33 ULOI_GENOBJDES_RAW(ULOI_DOII,NULL,NULL_CODE,NULL,uloi_doii_fnc,(void*)&uloi_objdes_main)
34 /* description of output objects */
35 const ULOI_CODE uloi_objdes_t uloid_objdes_DOIO =
36 ULOI_GENOBJDES_RAW(ULOI_DOIO,NULL,NULL_CODE,NULL,uloi_doio_fnc,(void*)&uloi_objdes_main)
37 /* ID numbers of recognized input objects */
38 const ULOI_CODE uloi_objdes_t uloid_objdes_QOII =
39 ULOI_GENOBJDES_RAW(ULOI_QOII,NULL,NULL_CODE,NULL,uloi_qoii_fnc,(void*)&uloi_objdes_main)
40 /* ID numbers of recognized output objects */
41 const ULOI_CODE uloi_objdes_t uloid_objdes_QOIO =
42 ULOI_GENOBJDES_RAW(ULOI_QOIO,NULL,NULL_CODE,NULL,uloi_qoio_fnc,(void*)&uloi_objdes_main)
43 /* object values read request */
44 const ULOI_CODE uloi_objdes_t uloid_objdes_RDRQ =
45 ULOI_GENOBJDES_RAW(ULOI_RDRQ,NULL,NULL_CODE,NULL,uloi_rdrq_fnc,(void*)&uloi_objdes_main)
46
47 ULOI_GENOBJDES(STATUS,ULOI_STATUS,"u2",status_rdfnc,&status_val,NULL_CODE,NULL)
48 ULOI_GENOBJDES(ERRCLR,ULOI_ERRCLR,"e",NULL_CODE,NULL,errclr_wrfnc,&status_val)
49
50 ULOI_GENOBJDES(FAN,I_FAN,"u2/bool",uloi_uint_rdfnc,&oi_fan,oi_fan_wrfnc,&oi_fan)
51 ULOI_GENOBJDES(FAN_CID,I_FAN_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_fan,oi_cid_fan_wrfnc,&oi_cid_fan)
52 ULOI_GENOBJDES(FAN_SLOT,I_FAN_SLOT,"u2/slot",uloi_uint_rdfnc,&oi_slot_fan,oi_slot_fan_wrfnc,&oi_slot_fan)
53
54 ULOI_GENOBJDES(HUMIDIFIER,I_HUMIDIFIER,"u2/bool",uloi_uint_rdfnc,&oi_humidifier,oi_humidifier_wrfnc,&oi_humidifier)
55 ULOI_GENOBJDES(HUMIDIFIER_CID,I_HUMIDIFIER_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_humidifier,oi_cid_humidifier_wrfnc,&oi_cid_humidifier)
56 ULOI_GENOBJDES(HUMIDIFIER_SLOT,I_HUMIDIFIER_SLOT,"u2/slot",uloi_uint_rdfnc,&oi_slot_humidifier,oi_slot_humidifier_wrfnc,&oi_slot_humidifier)
57
58 ULOI_GENOBJDES(LIGHT,I_LIGHT,"u2/bool",uloi_uint_rdfnc,&oi_light,oi_light_wrfnc,&oi_light)
59 ULOI_GENOBJDES(LIGHT_CID,I_LIGHT_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_light,oi_cid_light_wrfnc,&oi_cid_light)
60 ULOI_GENOBJDES(LIGHT_SLOT,I_LIGHT_SLOT,"u2/slot",uloi_uint_rdfnc,&oi_slot_light,oi_slot_light_wrfnc,&oi_slot_light)
61
62 ULOI_GENOBJDES(PERIOD,I_PERIOD,"u2",uloi_uint_rdfnc,&oi_period,NULL_CODE,NULL/*oi_period_wrfnc,&oi_period*/)
63
64 const uloi_objdes_t * ULOI_CODE uloi_objdes_main_items[]={
65     &uloid_objdes_DOII,
66     &uloid_objdes_DOIO,
67     &uloid_objdes_QOII,
68     &uloid_objdes_QOIO,
69     &uloid_objdes_RDRQ,
70
71     &uloid_objdes_STATUS,
72     &uloid_objdes_ERRCLR,
73     &uloid_objdes_FAN,
74     &uloid_objdes_FAN_CID,
75     &uloid_objdes_FAN_SLOT,
76     &uloid_objdes_HUMIDIFIER,
77     &uloid_objdes_HUMIDIFIER_CID,
78     &uloid_objdes_HUMIDIFIER_SLOT,
79     &uloid_objdes_LIGHT,
80     &uloid_objdes_LIGHT_CID,
81     &uloid_objdes_LIGHT_SLOT,
82     &uloid_objdes_PERIOD
83
84 };
85
86 const ULOI_CODE uloi_objdes_array_t uloi_objdes_main={
87     {
88         (uloi_objdes_t **)uloi_objdes_main_items,
89         sizeof(uloi_objdes_main_items)/sizeof(uloi_objdes_main_items[0]),
90         -1
91     }
92 };