]> rtime.felk.cvut.cz Git - hydro.git/blob - app-stefic/regulator/hydroponieoi.c
f6e4f2a3e2a7b3d3345c39b280eb9e1046969a7a
[hydro.git] / app-stefic / regulator / hydroponieoi.c
1 /*
2     OBJECT INTERFACE FOR SENSOR
3 */
4
5 #include "board.h"
6
7 #define I_FAN_CID 800
8 #define I_HUMIDIFIER_CID 810
9 #define I_LIGHT_CID 820
10 #define I_TEMPERATURE_SLOT 900
11 #define I_HUMIDITY_SLOT 910
12 #define I_PERIOD 1000
13
14 #define I_WANT_TEMP 1100
15 #define I_WANT_HUM 1200
16
17 unsigned int status_val;
18
19 int status_rdfnc(ULOI_PARAM_coninfo void *context)
20 {
21     return uloi_uint_rdfnc(ULOI_ARG_coninfo &status_val);
22 }
23
24 int errclr_wrfnc(ULOI_PARAM_coninfo void *context)
25 {
26     status_val=0; 
27     return 1;
28 }
29
30 /* description of input objects */
31 const ULOI_CODE uloi_objdes_t uloid_objdes_DOII =
32 ULOI_GENOBJDES_RAW(ULOI_DOII,NULL,NULL_CODE,NULL,uloi_doii_fnc,(void*)&uloi_objdes_main)
33 /* description of output objects */
34 const ULOI_CODE uloi_objdes_t uloid_objdes_DOIO =
35 ULOI_GENOBJDES_RAW(ULOI_DOIO,NULL,NULL_CODE,NULL,uloi_doio_fnc,(void*)&uloi_objdes_main)
36 /* ID numbers of recognized input objects */
37 const ULOI_CODE uloi_objdes_t uloid_objdes_QOII =
38 ULOI_GENOBJDES_RAW(ULOI_QOII,NULL,NULL_CODE,NULL,uloi_qoii_fnc,(void*)&uloi_objdes_main)
39 /* ID numbers of recognized output objects */
40 const ULOI_CODE uloi_objdes_t uloid_objdes_QOIO =
41 ULOI_GENOBJDES_RAW(ULOI_QOIO,NULL,NULL_CODE,NULL,uloi_qoio_fnc,(void*)&uloi_objdes_main)
42 /* object values read request */
43 const ULOI_CODE uloi_objdes_t uloid_objdes_RDRQ =
44 ULOI_GENOBJDES_RAW(ULOI_RDRQ,NULL,NULL_CODE,NULL,uloi_rdrq_fnc,(void*)&uloi_objdes_main)
45
46 ULOI_GENOBJDES(STATUS,ULOI_STATUS,"u2",status_rdfnc,&status_val,NULL_CODE,NULL)
47 ULOI_GENOBJDES(ERRCLR,ULOI_ERRCLR,"e",NULL_CODE,NULL,errclr_wrfnc,&status_val)
48
49 ULOI_GENOBJDES(FAN_CID,I_FAN_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_fan,oi_cid_fan_wrfnc,&oi_cid_fan)
50 ULOI_GENOBJDES(HUMIDIFIER_CID,I_HUMIDIFIER_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_hum,oi_cid_hum_wrfnc,&oi_cid_hum)
51 ULOI_GENOBJDES(LIGHT_CID,I_LIGHT_CID,"u2/cid",uloi_uint_rdfnc,&oi_cid_light,oi_cid_light_wrfnc,&oi_cid_light)
52
53 ULOI_GENOBJDES(TEMPERATURE_SLOT,I_TEMPERATURE_SLOT,"u2/slot",uloi_uint_rdfnc,&oi_slot_temp,oi_slot_temp_wrfnc,&oi_slot_temp)
54 ULOI_GENOBJDES(HUMIDITY_SLOT,I_HUMIDITY_SLOT,"u2/slot",uloi_uint_rdfnc,&oi_slot_hum,oi_slot_hum_wrfnc,&oi_slot_hum)
55
56 ULOI_GENOBJDES(PERIOD,I_PERIOD,"u2",uloi_uint_rdfnc,&oi_period,oi_period_wrfnc,&oi_period)
57
58 ULOI_GENOBJDES(WANT_TEMP,I_WANT_TEMP,"u2/.1",uloi_uint_rdfnc,&oi_want_temp,oi_want_temp_wrfnc,&oi_want_temp)
59 ULOI_GENOBJDES(WANT_HUM,I_WANT_HUM,"u2/.1",uloi_uint_rdfnc,&oi_want_hum,oi_want_hum_wrfnc,&oi_want_hum)
60
61 const uloi_objdes_t * ULOI_CODE uloi_objdes_main_items[]={
62     &uloid_objdes_DOII,
63     &uloid_objdes_DOIO,
64     &uloid_objdes_QOII,
65     &uloid_objdes_QOIO,
66     &uloid_objdes_RDRQ,
67
68     &uloid_objdes_STATUS,
69     &uloid_objdes_ERRCLR,
70     &uloid_objdes_FAN_CID,
71     &uloid_objdes_HUMIDIFIER_CID,
72     &uloid_objdes_LIGHT_CID,
73     &uloid_objdes_TEMPERATURE_SLOT,
74     &uloid_objdes_HUMIDITY_SLOT,
75     &uloid_objdes_PERIOD,
76     &uloid_objdes_WANT_TEMP,
77     &uloid_objdes_WANT_HUM
78 };
79
80 const ULOI_CODE uloi_objdes_array_t uloi_objdes_main={
81     {
82         (uloi_objdes_t **)uloi_objdes_main_items,
83         sizeof(uloi_objdes_main_items)/sizeof(uloi_objdes_main_items[0]),
84         -1
85     }
86 };