]> rtime.felk.cvut.cz Git - frescor/fna.git/blob - src_rtep/tests/test_c_frsh.c
send receive
[frescor/fna.git] / src_rtep / tests / test_c_frsh.c
1 #include <pthread.h>
2 #include <stdio.h>
3 #include <stdint.h>
4 #include <misc/error_checks.h>
5 #include <misc/load.h>
6 #include "../rtep.h"
7 #include "../frsh/fna/include/fna.h"
8
9 int main ()
10 {
11    uint16_t me;
12    int ret;
13
14    adjust ();
15    rtep_adainit();
16
17    // ret = pthread_setschedprio (pthread_self(),5);
18
19    // FRSH_Distributed.Init;
20    rtep_fna_init();
21
22    // Ada.Text_Io.Put_Line ("I am "&RTEP.Station_ID'Image (RP.Get_Station_ID));
23    me = rtep_get_station_id();
24    printf ("I am: %u\n", me);
25
26    // FRSH_Distributed.Set_Basic_Parameters
27    //    (Contract, Budget_Min, Period_Max, Deadline);
28    ret = frsh_contract_set_basic_parameters
29       (&contract, b_min, per_max_sec, per_max_nsec, deadline);
30
31    // FRSH_Distributed.Set_Priority (Contract, Prio);
32    ret = rtep_frsh_contract_set_priority (&contract, prio);
33
34    // FRSH_Distributed.Negotiate_Contract
35    //    (Contract, Vres, Accepted);
36    ret = rtep_fna_vres_create (&contract, &vres, &acccepted);
37
38    // if not Accepted then
39    //    Ada.Text_Io.Put_Line ("Contract Not Accepted");
40    //    return;
41    // end if;
42    if (!accepted) {
43       printf ("contract not accepted\n");
44       return -1;
45    }
46
47    // Ada.Text_Io.Put_Line ("Contract Accepted");
48    printf ("contract accepted\n");
49
50    // S_Id := FRSH_Distributed.Get_Server_Id (Vres);
51    // loop
52    //    RP.Send_Info
53    //       (Destination_Station_ID  => Dest_Id,
54    //       Channel_ID              => Chan,
55    //       Data => RTEP_Streams.To_Stream_Element_Array ("Hello World"),
56    //       Id                      => S_Id,
57    //       Blocking                => True);
58    //    Next_Time := Ada.Real_Time."+" (Next_Time, Period_Max);
59    //    delay until Next_Time;
60    // end loop;
61    ret = rtep_frsh_create_send_endpoint (&endpoint, dest, chan, vres);
62
63    while (1) {
64       ret = rtep_fna_send_async (&endpoint, msg, size);
65       ret = rtep_fna_receive_sync (&endpoint, msg, size, &received_bytes);
66    }
67    // finalization
68    rtep_adafinal();
69    return 0;
70 }