source: branches/fscctrl_safety_limits/dim/src/examples/test_client.c@ 19365

Last change on this file since 19365 was 15282, checked in by tbretz, 12 years ago
Updated to v20r7.
File size: 3.2 KB
Line 
1
2#include <dic.h>
3#include <time.h>
4#include <string.h>
5#include <stdio.h>
6
7char str[80];
8char str_res[10][80];
9char client_str[80];
10int no_link = -1;
11float no_link_float = -1.0;
12char buff[80];
13
14typedef struct {
15 int i;
16 int j;
17 int k;
18 double d;
19 short s;
20 char c;
21 short t;
22 float f;
23 char str[20];
24}TT;
25
26TT t;
27
28void big_rout( int *tag, int *buf, int *size )
29{
30
31 if(size){}
32 printf("Received %d for TestMem_%d\n", *buf, *tag);
33}
34
35
36void got_servers( int *tag, char *list, int *size)
37{
38 if(tag){}
39 if(size){}
40 printf("%s",list);
41}
42
43void got_services( int *tag, char *list, int *size)
44{
45 if(tag){}
46 if(size){}
47 printf("%s",list);
48}
49/*
50void rout_list( int *tag, char *buf, int *size )
51{
52 printf("Received list %d: %s\n",*size, buf);
53}
54*/
55
56void version_rout( int *tag, int *buf, int *size)
57{
58 if(tag){}
59 printf("Received VERSION %lx, %d\n", (dim_long)buf, *size);
60}
61
62void rout( tag, buf, size )
63char *buf;
64int *tag, *size;
65{
66/*
67 char *format;
68 format = dic_get_format(0);
69 printf("Received format = %s %08x, %d\n",format, format, *size);
70*/
71 if(*tag == 1100)
72 {
73 printf("Received ONCE_ONLY : %s\n",buff);
74 return;
75 }
76 if(*tag == 1200)
77 {
78 char node[128], str[256];
79 int secs, millis;
80 time_t tsecs;
81
82 dic_get_dns_node(node);
83 printf("DNS node = %s\n",node);
84 printf("size = %d\n",*size);
85 memcpy(&t, buf, (size_t)*size);
86 printf("t.i = %d, t.d = %2.2f, t.s = %d, t.c = %c, t.f = %2.2f, t.str = %s\n",
87 t.i,t.d,t.s,t.c,t.f,t.str);
88 dic_get_timestamp(0, &secs, &millis);
89 tsecs = secs;
90 my_ctime(&tsecs, str, 128);
91 str[(int)strlen(str)-1] = '\0';
92 printf("timestamp = %s.%d\n",str,millis);
93
94 return;
95 }
96 else
97 printf("%s Received %s for Service%03d\n",client_str,buf,*tag);
98
99/*
100 if(conn_id = dic_get_server(server))
101 printf("received from %d, %s\n",conn_id, server);
102*/
103
104}
105
106int main(int argc, char **argv)
107{
108 int i;
109 char aux[80];
110 int id = 123;
111
112/*
113 dic_set_debug_on();
114*/
115/*
116 dic_set_dns_node("pclhcb99.cern.ch");
117*/
118 if(argc){}
119 sprintf(str,"%s/SET_EXIT_HANDLER",argv[2]);
120 dic_cmnd_service(str, &id, 4);
121 dic_get_id(aux);
122 printf("%s\n",aux);
123 strcpy(client_str,argv[1]);
124
125 for(i = 0; i< 10; i++)
126 {
127 sprintf(str,"%s/Service_%03d",argv[2],i);
128 dic_info_service( str, TIMED, 10, 0, 0, rout, i,
129 "No Link", 8 );
130 }
131
132 sprintf(aux,"%s/TEST_SWAP",argv[2]);
133 dic_info_service_stamped( aux, TIMED, 5, 0, 0, rout, 1200,
134 &no_link, 4 );
135
136 sprintf(str,"%s/VERSION_NUMBER",argv[2]);
137 dic_info_service( str, MONITORED, 0, 0, 0, version_rout, 0,
138 NULL, 0 );
139/*
140 for(i = 0; i < 20; i++)
141 {
142 sprintf(aux,"%s/TestMem_%d",argv[2], i);
143 dic_info_service( aux, MONITORED, 0, 0, 0, big_rout, i,
144 &no_link, 4 );
145 }
146*/
147/*
148 sprintf(aux,"DIS_DNS/SERVER_LIST");
149 dic_info_service( aux, MONITORED, 0, 0, 0, rout_list, 0,
150 "DEAD", 5 );
151 sprintf(aux,"%s/SERVICE_LIST",argv[2]);
152 dic_info_service( aux, MONITORED, 0, 0, 0, rout_list, 0,
153 "DEAD", 5 );
154*/
155/*
156 dic_info_service("DIS_DNS/SERVER_LIST",MONITORED, 0, 0, 0, got_servers, 0,
157 "not there", 10);
158 dic_info_service("xx/SERVICE_LIST",MONITORED, 0, 0, 0, got_services, 0,
159 "not there", 10);
160*/
161 sprintf(aux,"%s/TEST_CMD",argv[2]);
162 while(1)
163 {
164 sleep(10);
165 printf("Sending Command, size = %d, i = %d\n",(int)sizeof(t), t.i);
166 dic_cmnd_service(aux,&t,(int)sizeof(t));
167 }
168 return 1;
169}
Note: See TracBrowser for help on using the repository browser.