6 #include <system_def.h>
8 #include <ul_lib/ulan.h>
10 #include <uloi_base.h>
12 #include <uldy_base.h>
13 #include <keyval_loc.h>
14 #include <lpciap_kvpb.h>
15 #include <hal_machperiph.h>
16 #include "light_switch.h"
19 LT_TIMER_DEC(lt_100msec)
20 LT_TIMER_IMP(lt_100msec)
22 /***********************************/
24 kvpb_block_t kvpb_block_global;
25 uloi_coninfo_t uloi_coninfo_global;
26 ul_dyac_t ul_dyac_global;
29 kvpb_block_t *kvpb_block=&kvpb_block_global;
30 uloi_coninfo_t *coninfo=&uloi_coninfo_global;
31 ul_dyac_t *ul_dyac=&ul_dyac_global;
37 unsigned char ubuff[30];
38 unsigned int DATA uaddr;
39 unsigned long DATA usn;
42 //object interface variables
43 unsigned int oi_led_state;
45 /****************************************************************************/
46 int uloi_led_state_wrfnc(ULOI_PARAM_coninfo void *context)
48 uloi_uint_wrfnc(ULOI_ARG_coninfo context);
49 if (oi_led_state==1) {
50 SET_OUT_PIN(LED_PORT,LED4_BIT);
56 /***********************************/
57 char ul_save_sn(uint32_t usn)
59 kvpb_set_key(kvpb_block,KVPB_KEYID_ULAN_SN,sizeof(unsigned long),&usn);
63 /***********************************/
64 char ul_save_adr(uint8_t uaddr)
67 kvpb_set_key(kvpb_block,KVPB_KEYID_ULAN_ADDR,sizeof(unsigned int),&v);
80 /***********************************/
84 /***********************************/
88 /***********************************/
90 kvpb_block->base=(uint8_t CODE*)KEYVAL_START;
91 kvpb_block->size=KEYVAL_PAGE_LEN;
92 kvpb_block->flags=KVPB_DEFAULT_FLAGS;
93 kvpb_block->chunk_size=KVPB_CHUNK_SIZE;
94 kvpb_block->erase=kvpb_erase;
95 kvpb_block->copy=kvpb_copy;
96 kvpb_block->flush=kvpb_flush;
97 if (kvpb_check(kvpb_block,1)<0) sys_err();
99 // read data from kvpb
103 kvpb_get_key(kvpb_block,KVPB_KEYID_ULAN_ADDR,sizeof(unsigned int),&uaddr);
104 kvpb_get_key(kvpb_block,KVPB_KEYID_ULAN_SN,sizeof(unsigned long),&usn);
106 //********************
108 ul_fd=ul_open(NULL,NULL);
109 if (ul_fd==UL_FD_INVALID) sys_err();
110 ul_fd1=ul_open(NULL,NULL);
111 if (ul_fd1==UL_FD_INVALID) sys_err();
112 ul_setidstr(ul_fd,ul_idstr);
113 ul_setmyadr(ul_fd,uaddr);
117 ul_addfilt(ul_fd,&msginfo);
120 /***********************************/
121 // uLan object interface init
122 coninfo->cmd=UL_CMD_OISV;
125 coninfo->ul_fd=ul_fd;
126 coninfo->ul_fd1=ul_fd1;
128 /***********************************/
130 uldy_init(ul_dyac,ul_fd,ul_save_sn,ul_save_adr,(char*)ul_idstr,usn);
132 //********************
136 /* processing of ulan messages */
137 if ((ul_inepoll(ul_fd)>0) && (ul_acceptmsg(ul_fd, &msginfo)>=0)) {
138 if (!(msginfo.flg&(UL_BFL_PROC|UL_BFL_FAIL))) {
139 if (uloi_process_msg(ULOI_ARG_coninfo (uloi_objdes_array_t*)&uloi_objdes_main, &msginfo)<0) {
140 if (uldy_process_msg(ULDY_ARG_ul_dyac &msginfo)<0) {
149 if (lt_100msec_expired(100)) {
154 CLR_OUT_PIN(LED_PORT,LED4_BIT);
158 CLR_OUT_PIN(LED_PORT,LED1_BIT);
159 CLR_OUT_PIN(LED_PORT,LED2_BIT);
160 CLR_OUT_PIN(LED_PORT,LED3_BIT);
163 case 1:SET_OUT_PIN(LED_PORT,LED1_BIT);break;
164 case 2:SET_OUT_PIN(LED_PORT,LED2_BIT);break;
165 case 3:SET_OUT_PIN(LED_PORT,LED3_BIT);break;
169 #ifdef WATCHDOG_ENABLED
171 #endif /* WATCHDOG_ENABLED */