2 #include <system_def.h>
8 // OBJECT INTERFACE VARIABLES
10 unsigned int oi_cid_fan;
11 unsigned int oi_slot_fan;
12 unsigned int oi_humidifier;
13 unsigned int oi_cid_humidifier;
14 unsigned int oi_slot_humidifier;
15 unsigned int oi_light;
16 unsigned int oi_cid_light;
17 unsigned int oi_slot_light;
18 unsigned int oi_period;
20 // OBJECT INTERFACE FUNCTIONS
21 int oi_cid_fan_wrfnc(ULOI_PARAM_coninfo void *context){
22 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
26 int oi_cid_humidifier_wrfnc(ULOI_PARAM_coninfo void *context){
27 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
31 int oi_cid_light_wrfnc(ULOI_PARAM_coninfo void *context){
32 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
36 int oi_slot_fan_wrfnc(ULOI_PARAM_coninfo void *context){
37 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
41 int oi_slot_humidifier_wrfnc(ULOI_PARAM_coninfo void *context){
42 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
46 int oi_slot_light_wrfnc(ULOI_PARAM_coninfo void *context){
47 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
51 int oi_period_wrfnc(ULOI_PARAM_coninfo void *context){
52 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
58 SET_OUT_PIN(OUT_PORT,P1_29_FAN);
59 printf("FAN PIN UP\n");
61 CLR_OUT_PIN(OUT_PORT,P1_29_FAN);
62 printf("FAN PIN DOWN\n");
66 void set_humidifier_PIN(){
67 if (oi_humidifier == 1) {
68 SET_OUT_PIN(OUT_PORT,P1_30_HUMIDIFIER);
69 printf("HUM PIN UP\n");
71 CLR_OUT_PIN(OUT_PORT,P1_30_HUMIDIFIER);
72 printf("HUM PIN DOWN\n");
78 SET_OUT_PIN(OUT_PORT,P1_31_LIGHT);
79 printf("LIGHT PIN UP\n");
81 CLR_OUT_PIN(OUT_PORT,P1_31_LIGHT);
82 printf("LIGHT PIN DOWN\n");
86 //*********************************************************
87 int oi_fan_wrfnc(ULOI_PARAM_coninfo void *context){
88 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
93 int oi_humidifier_wrfnc(ULOI_PARAM_coninfo void *context){
94 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
99 int oi_light_wrfnc(ULOI_PARAM_coninfo void *context){
100 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
104 //*********************************************************
110 static const int MAX_CID_CNT = 4;
111 cid_data_t cids[MAX_CID_CNT];
114 cids[cid_cnt].cid = HEART_CID;
115 cids[cid_cnt].value = status_val;
119 cids[cid_cnt].cid = oi_cid_fan;
120 cids[cid_cnt].value = oi_fan;
123 if (oi_cid_humidifier > 0) {
124 cids[cid_cnt].cid = oi_cid_humidifier;
125 cids[cid_cnt].value = oi_humidifier;
128 if (oi_cid_light > 0) {
129 cids[cid_cnt].cid = oi_cid_light;
130 cids[cid_cnt].value = oi_light;
138 uchar buf[cid_cnt * 6 + 3];
139 for (buff_len = 0; buff_len < 3; buff_len++) buf[buff_len] = 0;
141 for(i=0; i<cid_cnt; i++) {
142 int2buf(buf + buff_len, cids[i].cid);
144 int2buf(buf + buff_len, 2);
146 int2buf(buf + buff_len, cids[i].value);
150 msgsend = ul_send_query(ul_fd, 0, UL_CMD_PDO, UL_BFL_NORE, (void*) buf, buff_len);
151 printf("[I] DATA\n");
161 oi_cid_humidifier = 0;
162 oi_slot_humidifier = 0;
170 void check_PDO(int cid, int data){
171 printf("CID: %i\n", cid);
172 if (cid == oi_slot_fan){
176 if (cid == oi_slot_humidifier){
177 oi_humidifier = data;
178 set_humidifier_PIN();
180 if (cid == oi_slot_light){
186 void regulate(void){}
188 void work_with(void){
190 PINSEL1 &= 0xFFFFB3FF;
192 // u vetsi karbicky je SET z 0 do 3.3
193 // u mensi je SET z -3.3 do 0
196 // IO0SET = P0_21_BIT;
197 // IO0SET = P0_22_BIT;
199 SET_OUT_PIN(OUT_PORT, P1_29_FAN);
200 SET_OUT_PIN(OUT_PORT, P1_31_LIGHT);
201 SET_OUT_PIN(OUT_PORT, P1_30_HUMIDIFIER);
204 IO0SET = LED1_BIT; //vypinani LED
205 IO0CLR = LED2_BIT; //zapinani LED
207 // IO0CLR = LED1_BIT;
208 // IO0SET = LED2_BIT;