]> rtime.felk.cvut.cz Git - can-usb1.git/blob - ulan/embedded/libs4c/ulan/uloi_lt/uloi_testlt.c
Initializing repo
[can-usb1.git] / ulan / embedded / libs4c / ulan / uloi_lt / uloi_testlt.c
1 #include <string.h>
2 #include <uloi_base.h>
3 #ifdef UL_WITHOUT_HANDLE
4 #include <system_def.h>
5 #endif  /*UL_WITHOUT_HANDLE*/
6
7 extern const ULOI_CODE uloi_objdes_array_t uloi_objdes_main;
8
9 #define I_TEST 230
10
11 unsigned status_val=0x1234;
12 int test_val;
13
14 int status_rdfnc(ULOI_PARAM_coninfo void *context)
15 {
16   return uloi_uint_rdfnc(ULOI_ARG_coninfo &status_val);
17 }
18
19 int errclr_wrfnc(ULOI_PARAM_coninfo void *context)
20 {
21   if(status_val<0)
22     status_val=0;
23   else
24     status_val++;
25   return 1;
26 }
27
28
29 /* description of input objects */
30 const ULOI_CODE uloi_objdes_t uloid_objdes_DOII =
31 ULOI_GENOBJDES_RAW(ULOI_DOII,NULL,NULL_CODE,NULL,uloi_doii_fnc,(void*)&uloi_objdes_main)
32 /* description of output objects */
33 const ULOI_CODE uloi_objdes_t uloid_objdes_DOIO =
34 ULOI_GENOBJDES_RAW(ULOI_DOIO,NULL,NULL_CODE,NULL,uloi_doio_fnc,(void*)&uloi_objdes_main)
35 /* ID numbers of recognized input objects */
36 const ULOI_CODE uloi_objdes_t uloid_objdes_QOII =
37 ULOI_GENOBJDES_RAW(ULOI_QOII,NULL,NULL_CODE,NULL,uloi_qoii_fnc,(void*)&uloi_objdes_main)
38 /* ID numbers of recognized output objects */
39 const ULOI_CODE uloi_objdes_t uloid_objdes_QOIO =
40 ULOI_GENOBJDES_RAW(ULOI_QOIO,NULL,NULL_CODE,NULL,uloi_qoio_fnc,(void*)&uloi_objdes_main)
41 /* object values read request */
42 const ULOI_CODE uloi_objdes_t uloid_objdes_RDRQ =
43 ULOI_GENOBJDES_RAW(ULOI_RDRQ,NULL,NULL_CODE,NULL,uloi_rdrq_fnc,(void*)&uloi_objdes_main)
44
45 ULOI_GENOBJDES(STATUS,ULOI_STATUS,"u2",status_rdfnc,&status_val,NULL_CODE,NULL)
46 ULOI_GENOBJDES(ERRCLR,ULOI_ERRCLR,"e",NULL_CODE,NULL,errclr_wrfnc,&status_val)
47 ULOI_GENOBJDES(TEST,I_TEST,"s2",uloi_uint_rdfnc,&test_val,uloi_uint_wrfnc,&test_val)
48
49 const uloi_objdes_t * ULOI_CODE uloi_objdes_main_items[]={
50   &uloid_objdes_DOII,
51   &uloid_objdes_DOIO,
52   &uloid_objdes_QOII,
53   &uloid_objdes_QOIO,
54   &uloid_objdes_RDRQ,
55
56   &uloid_objdes_STATUS,
57   &uloid_objdes_ERRCLR,
58   &uloid_objdes_TEST
59 };
60
61 const ULOI_CODE uloi_objdes_array_t uloi_objdes_main={
62   {
63     uloi_objdes_main_items,
64     sizeof(uloi_objdes_main_items)/sizeof(uloi_objdes_main_items[0]),
65     -1
66   }
67 };
68
69
70 uloi_coninfo_t uloi_coninfo_global;
71
72 int main()
73 {
74  #ifndef UL_WITHOUT_HANDLE
75   uloi_coninfo_t *coninfo=&uloi_coninfo_global;
76   ul_msginfo msginfo;
77  #endif  /*UL_WITHOUT_HANDLE*/
78
79  #ifdef UL_WITHOUT_HANDLE
80   ul_drv_set_adr(3);
81   ul_drv_set_bdiv(BAUD2BAUDDIV(19200));
82   ul_drv_init();
83   ul_fd=ul_open(0,0);
84  #else  /*UL_WITHOUT_HANDLE*/
85   coninfo->ul_fd=ul_open(NULL,NULL);
86   if(coninfo->ul_fd==UL_FD_INVALID)
87     return 1;
88   coninfo->ul_fd1=ul_open(NULL,NULL);
89   if(coninfo->ul_fd1==UL_FD_INVALID){
90     ul_close(coninfo->ul_fd1);
91     return 1;
92   }
93   memset(&msginfo, 0, sizeof(msginfo));
94   msginfo.cmd=UL_CMD_OISV;
95   ul_addfilt(coninfo->ul_fd, &msginfo);
96  #endif  /*UL_WITHOUT_HANDLE*/
97
98   coninfo->cmd=UL_CMD_OISV;
99   coninfo->sn=0;
100   coninfo->bsn=0;
101
102   while(1){
103   
104     if((ul_inepoll(coninfo->ul_fd)>0)||(ul_fd_wait(coninfo->ul_fd,100)>0)){
105       uloi_process_msg(ULOI_ARG_coninfo &uloi_objdes_main, NULL);
106     }
107   }
108 }