]> rtime.felk.cvut.cz Git - frescor/fna.git/blob - tests/tests_frescan/test_frescan_servers_destroy.c
aff29ba4c5b36d9a5e6d9cd43749bc416a52e0cf
[frescor/fna.git] / tests / tests_frescan / test_frescan_servers_destroy.c
1 // mgcc test_frescan_servers_send_basic.c -L. -lfrescan -o mprogram_wifi2
2 // mgcc test_frescan_servers_send_basic.c -DSENDER -L. -lfrescan -o mprogram_wifi1
3
4 #include <stdio.h>  // perror
5 #include <stdlib.h> // exit
6 #include <unistd.h>   // sleep
7
8 #include "frescan.h"
9 #include "frescan_servers.h"
10
11 #define PUT_ERROR(s) {perror (s); exit (-1);}
12
13 #define NETWORK 0
14
15 #define SENDER
16 // #define ENABLE_LOGGING
17
18 #ifdef SENDER
19
20 #define LOCAL_NODE 0
21
22 #ifdef ENABLE_LOGGING
23
24 #include <drivers/console_switcher.h>
25 #include <misc/logger.h>
26 #include <assert.h>
27 #define LOG_DEVICE LOG_ETHERNET
28
29 #endif
30
31 static void pause(){
32         char key;
33         printf(" press Enter...");
34         key = getchar();
35 }
36
37 int main ()
38 {
39         int i, ret;
40         frescan_send_params_t params;
41         char msg[200];
42         int written;
43         frescan_init_params_t init_params;
44         frescan_server_params_t server_params;
45
46 #ifdef ENABLE_LOGGING
47         ret = logger_init(LOG_DEVICE);
48         assert(ret == 0);
49         printf("Changing to membuffer console\n");
50         MEMBUFFER_CONSOLE_INIT();
51 #endif
52
53         printf(">> Initializing FRESCAN\n");
54
55         init_params.net = NETWORK;
56         init_params.node = LOCAL_NODE;
57         init_params.tx_fp_max_prio = 10;
58         init_params.rx_num_of_channels = 5;
59         init_params.rx_channel_max_prio = NULL;
60
61         ret = frescan_init(&init_params);
62         if (ret != 0) PUT_ERROR ("could not init FRESCAN");
63
64         printf(">> Creating a Server\n");
65
66         server_params.budget = 3;
67         server_params.period.tv_sec  = 3;
68         server_params.period.tv_nsec = 0;
69         server_params.prio = 4;
70
71         ret = frescan_servers_create(NETWORK,
72                                      &server_params,
73                                      &params.ss);
74         if (ret != 0) PUT_ERROR ("could not create server");
75
76         printf(">> Destroy the Server\n");
77
78         ret = frescan_servers_destroy(NETWORK, params.ss);
79         if (ret != 0) PUT_ERROR ("could not destroy server");
80
81         printf(">> Creating a Server\n");
82
83         server_params.budget = 3;
84         server_params.period.tv_sec  = 3;
85         server_params.period.tv_nsec = 0;
86         server_params.prio = 7;
87
88         ret = frescan_servers_create(NETWORK,
89                                      &server_params,
90                                      &params.ss);
91         if (ret != 0) PUT_ERROR ("could not create server");
92
93         printf(">> Enter in loop for sending packets\n");
94
95         params.net      = NETWORK;
96         params.to       = 1;
97         params.channel  = 0;
98         params.flags    = FRESCAN_SS | FRESCAN_ASYNC;
99
100         while(1) {
101                 pause();
102                 for (i=0; i<=2; i++) {
103                         written = snprintf(msg, sizeof(msg), "his number is: %d", i);
104                         ret = frescan_send(&params, (uint8_t *)msg, written);
105                         if (ret != 0) PUT_ERROR ("could not send message\n");
106                         printf("SENT: %d\n", i);
107                 }
108 #ifdef ENABLE_LOGGING
109                 while (logger_manual_call() > 0);
110 #endif
111         }
112
113         return 0;
114 }
115
116 #else
117
118 #define LOCAL_NODE 1
119
120 int main ()
121 {
122         int ret;
123         frescan_recv_params_t params;
124         uint8_t msg[3000];
125         size_t recv_bytes;
126         frescan_node_t from;
127         frescan_init_params_t init_params;
128         frescan_prio_t prio;
129
130         init_params.net = NETWORK;
131         init_params.node = LOCAL_NODE;
132         init_params.tx_fp_max_prio = 10;
133         init_params.rx_num_of_channels = 5;
134         init_params.rx_channel_max_prio = NULL;
135
136         ret = frescan_init(&init_params);
137         if (ret != 0) PUT_ERROR ("could not init FRESCAN");
138
139         printf("FRESCAN initialized\n");
140
141         params.net      = NETWORK;
142         params.channel  = 0;
143         params.flags    = FRESCAN_SYNC;
144
145         while (1) {
146                 printf("RECEIVING...\n");
147                 ret = frescan_recv(&params, (uint8_t *)msg, sizeof(msg),
148                                    &recv_bytes, &from, &prio);
149                 if (ret != 0) PUT_ERROR ("could not send message");
150
151                 msg[recv_bytes] = '\0';
152                 printf("RECEIVED: %s with prio:%u\n", msg, prio);
153
154 //                 for (i=0; i<recv_bytes; i++) {
155 //                         printf("msg[%d] = 0x%X;\n", i, msg[i]);
156 //                 }
157         }
158
159         return 0;
160 }
161
162 #endif