CPAL Playground

x
 
1
/* Copyright (C) 2015, RealTime-at-Work, All Rights Reserved
2
 *
3
 * You may use, copy, reproduce, and distribute this sample cource code for any non-commercial purpose.
4
 * Some purposes which can be non-commercial are teaching, academic research,
5
 * public demonstrations and personal experimentation. You may also distribute this Software
6
 * with books or other teaching materials, or publish the Software on websites,
7
 * that are intended to teaching for academic or other non-commercial purposes.
8
 *
9
 * In return, we simply require that you agree: 
10
 * 1. That you will not remove any copyright or other notices from the Software.
11
 * 2. THAT THE SOFTWARE COMES "AS IS", WITH NO WARRANTIES. THIS MEANS NO EXPRESS, 
12
 *    IMPLIED OR STATUTORY WARRANTY.
13
 * @keywords udp, network; linuxmbed
14
 */ 
15
16
/* 
17
 * This is a simple UDP client: it sends a request to the server 
18
 * and wait for the server answer
19
 */
20
21
/*
22
 * A CPAL UDP packet is a struct made up of two UINT8 arrays: 
23
 * - the first 4-byte array is reserved for either the sender 
24
 *   or destination IP address, 
25
 * - the rest is the data payload field. 
26
 */
27
struct UDP_Datagram
28
{
29
    uint8: address[4];
30
    uint16: size;
31
    uint8: data[100];
32
};
33
34
/* helper function to display address */
35
display_sender(
36
  in uint8: m0,
37
  in uint8: m1,
38
  in uint8: m2,
39
  in uint8: m3)
40
{
41
  IO.print("%u.%u.%u.%u", m0, m1, m2, m3);
42
}
43
44
/* client process definition */
45
processdef PID_Sender(
46
  in channel<UDP_Datagram>: rcv,
47
  out channel<UDP_Datagram>: snd)
48
{
49
  static  var bool: wait_for_answer = false;
50
  static var uint8: alive_counter = 0;
51
  
52
  /* send request */
53
  state Requesting {
54
    var UDP_Datagram : p;
55
    /* server's IP address - broadcast would be 255.255.255.255 */
56
    p.address[0] = 127;
57
    p.address[1] = 0;
58
    p.address[2] = 0;
59
    p.address[3] = 1;
60
    p.size = 2;
61
    p.data[0] = uint8.as(self.pid);
62
    p.data[1] = alive_counter;
63
    snd.push(p);
64
    alive_counter = alive_counter + 1;
65
    wait_for_answer = true;
66
  }
67
  on (true) to Waiting_Answer;
68
  
69
  /* wait for answer */
70
  state Waiting_Answer {
71
    while(not rcv.is_empty()) {
72
      /* received something from server */
73
      var UDP_Datagram: p =  rcv.pop();
74
      IO.print("rcv from ");
75
      display_sender(p.address[0], p.address[1], p.address[2], p.address[3]);
76
      IO.println(" : %u", p.data[0]);
77
      wait_for_answer = false;
78
    }
79
    /* keep waiting till answer received */
80
  }
81
  on (not wait_for_answer) to Requesting;
82
}
83
84
85
/* 
86
 * A CPAL UDP stream is a queue of packets
87
 */
88
/* comm port to server */
89
var queue<UDP_Datagram>: udp_out_client[20];
90
/* comm port from server */
91
var queue<UDP_Datagram>: udp_in_client[20];
92
93
/* client instanciation */
94
process PID_Sender: p_client[10ms](udp_in_client, udp_out_client);
95
96
include "annotations/hardware/hw_udp.cpal"
97
98
@cpal:hardware:udp_in_client
99
{
100
    var UDP : udp1;
101
    udp1.port = 12346;
102
    udp1.direction = Hw_Direction.HW_INPUT;
103
     
104
    
105
}  
106
@cpal:hardware:udp_out_client
107
{
108
    var UDP : udp1;
109
    udp1.port = 12345;
110
    udp1.direction = Hw_Direction.HW_OUTPUT;
111
}                              
112
 
113
                             
114
                              
115
116

for ms or try the desktop editor with advanced diagram views
Quiet mode disabled
[0.000000000000:ASSIGN] Assign cpal_system new value: Scheduling_Policy.FIFO
[0.000000000000:udp-client:STARTING_TASK] 'p_client'
[0.000000000000:STATE] process "PID_Sender", instance "p_client", state "Requesting"
[0.000000000000:ASSIGN][0.000000000000] Pushed udp_out_client new value: {{127,0,0,1},2,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
[0.000000000000:udp-client:TASK_FINISHED] 'p_client'
[0.010000000000:udp-client:STARTING_TASK] 'p_client'
[0.010000000000:STATE] process "PID_Sender", instance "p_client", state "Waiting_Answer"
[0.010000000000:udp-client:TASK_FINISHED] 'p_client'
[0.020000000000:udp-client:STARTING_TASK] 'p_client'
[0.020000000000:udp-client:TASK_FINISHED] 'p_client'
[0.030000000000:udp-client:STARTING_TASK] 'p_client'
[0.030000000000:udp-client:TASK_FINISHED] 'p_client'
[0.040000000000:udp-client:STARTING_TASK] 'p_client'
[0.040000000000:udp-client:TASK_FINISHED] 'p_client'
[0.050000000000:udp-client:STARTING_TASK] 'p_client'
[0.050000000000:udp-client:TASK_FINISHED] 'p_client'
[0.060000000000:udp-client:STARTING_TASK] 'p_client'
[0.060000000000:udp-client:TASK_FINISHED] 'p_client'
[0.070000000000:udp-client:STARTING_TASK] 'p_client'
[0.070000000000:udp-client:TASK_FINISHED] 'p_client'
[0.080000000000:udp-client:STARTING_TASK] 'p_client'
[0.080000000000:udp-client:TASK_FINISHED] 'p_client'
[0.090000000000:udp-client:STARTING_TASK] 'p_client'
[0.090000000000:udp-client:TASK_FINISHED] 'p_client'
[0.100000000000:udp-client:STARTING_TASK] 'p_client'
[0.100000000000:udp-client:TASK_FINISHED] 'p_client'
[0.110000000000:udp-client:STARTING_TASK] 'p_client'
[0.110000000000:udp-client:TASK_FINISHED] 'p_client'
[0.120000000000:udp-client:STARTING_TASK] 'p_client'
[0.120000000000:udp-client:TASK_FINISHED] 'p_client'
[0.130000000000:udp-client:STARTING_TASK] 'p_client'
[0.130000000000:udp-client:TASK_FINISHED] 'p_client'
[0.140000000000:udp-client:STARTING_TASK] 'p_client'
[0.140000000000:udp-client:TASK_FINISHED] 'p_client'
[0.150000000000:udp-client:STARTING_TASK] 'p_client'
[0.150000000000:udp-client:TASK_FINISHED] 'p_client'
[0.160000000000:udp-client:STARTING_TASK] 'p_client'
[0.160000000000:udp-client:TASK_FINISHED] 'p_client'
[0.170000000000:udp-client:STARTING_TASK] 'p_client'
[0.170000000000:udp-client:TASK_FINISHED] 'p_client'
[0.180000000000:udp-client:STARTING_TASK] 'p_client'
[0.180000000000:udp-client:TASK_FINISHED] 'p_client'
[0.190000000000:udp-client:STARTING_TASK] 'p_client'
[0.190000000000:udp-client:TASK_FINISHED] 'p_client'
[0.200000000000:udp-client:STARTING_TASK] 'p_client'
[0.200000000000:udp-client:TASK_FINISHED] 'p_client'
[0.210000000000:udp-client:STARTING_TASK] 'p_client'
[0.210000000000:udp-client:TASK_FINISHED] 'p_client'
[0.220000000000:udp-client:STARTING_TASK] 'p_client'
[0.220000000000:udp-client:TASK_FINISHED] 'p_client'
[0.230000000000:udp-client:STARTING_TASK] 'p_client'
[0.230000000000:udp-client:TASK_FINISHED] 'p_client'
[0.240000000000:udp-client:STARTING_TASK] 'p_client'
[0.240000000000:udp-client:TASK_FINISHED] 'p_client'
[0.250000000000:udp-client:STARTING_TASK] 'p_client'
[0.250000000000:udp-client:TASK_FINISHED] 'p_client'
[0.260000000000:udp-client:STARTING_TASK] 'p_client'
[0.260000000000:udp-client:TASK_FINISHED] 'p_client'
[0.270000000000:udp-client:STARTING_TASK] 'p_client'
[0.270000000000:udp-client:TASK_FINISHED] 'p_client'
[0.280000000000:udp-client:STARTING_TASK] 'p_client'
[0.280000000000:udp-client:TASK_FINISHED] 'p_client'
[0.290000000000:udp-client:STARTING_TASK] 'p_client'
[0.290000000000:udp-client:TASK_FINISHED] 'p_client'
[0.300000000000:udp-client:STARTING_TASK] 'p_client'
[0.300000000000:udp-client:TASK_FINISHED] 'p_client'
[0.310000000000:udp-client:STARTING_TASK] 'p_client'
[0.310000000000:udp-client:TASK_FINISHED] 'p_client'
[0.320000000000:udp-client:STARTING_TASK] 'p_client'
[0.320000000000:udp-client:TASK_FINISHED] 'p_client'
[0.330000000000:udp-client:STARTING_TASK] 'p_client'
[0.330000000000:udp-client:TASK_FINISHED] 'p_client'
[0.340000000000:udp-client:STARTING_TASK] 'p_client'
[0.340000000000:udp-client:TASK_FINISHED] 'p_client'
[0.350000000000:udp-client:STARTING_TASK] 'p_client'
[0.350000000000:udp-client:TASK_FINISHED] 'p_client'
[0.360000000000:udp-client:STARTING_TASK] 'p_client'
[0.360000000000:udp-client:TASK_FINISHED] 'p_client'
[0.370000000000:udp-client:STARTING_TASK] 'p_client'
[0.370000000000:udp-client:TASK_FINISHED] 'p_client'
[0.380000000000:udp-client:STARTING_TASK] 'p_client'
[0.380000000000:udp-client:TASK_FINISHED] 'p_client'
[0.390000000000:udp-client:STARTING_TASK] 'p_client'
[0.390000000000:udp-client:TASK_FINISHED] 'p_client'
[0.400000000000:udp-client:STARTING_TASK] 'p_client'
[0.400000000000:udp-client:TASK_FINISHED] 'p_client'
[0.410000000000:udp-client:STARTING_TASK] 'p_client'
[0.410000000000:udp-client:TASK_FINISHED] 'p_client'
[0.420000000000:udp-client:STARTING_TASK] 'p_client'
[0.420000000000:udp-client:TASK_FINISHED] 'p_client'
[0.430000000000:udp-client:STARTING_TASK] 'p_client'
[0.430000000000:udp-client:TASK_FINISHED] 'p_client'
[0.440000000000:udp-client:STARTING_TASK] 'p_client'
[0.440000000000:udp-client:TASK_FINISHED] 'p_client'
[0.450000000000:udp-client:STARTING_TASK] 'p_client'
[0.450000000000:udp-client:TASK_FINISHED] 'p_client'
[0.460000000000:udp-client:STARTING_TASK] 'p_client'
[0.460000000000:udp-client:TASK_FINISHED] 'p_client'
[0.470000000000:udp-client:STARTING_TASK] 'p_client'
[0.470000000000:udp-client:TASK_FINISHED] 'p_client'
[0.480000000000:udp-client:STARTING_TASK] 'p_client'
[0.480000000000:udp-client:TASK_FINISHED] 'p_client'
[0.490000000000:udp-client:STARTING_TASK] 'p_client'
[0.490000000000:udp-client:TASK_FINISHED] 'p_client'
[0.500000000000:udp-client:STARTING_TASK] 'p_client'
[0.500000000000:udp-client:TASK_FINISHED] 'p_client'
[0.510000000000:udp-client:STARTING_TASK] 'p_client'
[0.510000000000:udp-client:TASK_FINISHED] 'p_client'
[0.520000000000:udp-client:STARTING_TASK] 'p_client'
[0.520000000000:udp-client:TASK_FINISHED] 'p_client'
[0.530000000000:udp-client:STARTING_TASK] 'p_client'
[0.530000000000:udp-client:TASK_FINISHED] 'p_client'
[0.540000000000:udp-client:STARTING_TASK] 'p_client'
[0.540000000000:udp-client:TASK_FINISHED] 'p_client'
[0.550000000000:udp-client:STARTING_TASK] 'p_client'
[0.550000000000:udp-client:TASK_FINISHED] 'p_client'
[0.560000000000:udp-client:STARTING_TASK] 'p_client'
[0.560000000000:udp-client:TASK_FINISHED] 'p_client'
[0.570000000000:udp-client:STARTING_TASK] 'p_client'
[0.570000000000:udp-client:TASK_FINISHED] 'p_client'
[0.580000000000:udp-client:STARTING_TASK] 'p_client'
[0.580000000000:udp-client:TASK_FINISHED] 'p_client'
[0.590000000000:udp-client:STARTING_TASK] 'p_client'
[0.590000000000:udp-client:TASK_FINISHED] 'p_client'
[0.600000000000:udp-client:STARTING_TASK] 'p_client'
[0.600000000000:udp-client:TASK_FINISHED] 'p_client'
[0.610000000000:udp-client:STARTING_TASK] 'p_client'
[0.610000000000:udp-client:TASK_FINISHED] 'p_client'
[0.620000000000:udp-client:STARTING_TASK] 'p_client'
[0.620000000000:udp-client:TASK_FINISHED] 'p_client'
[0.630000000000:udp-client:STARTING_TASK] 'p_client'
[0.630000000000:udp-client:TASK_FINISHED] 'p_client'
[0.640000000000:udp-client:STARTING_TASK] 'p_client'
[0.640000000000:udp-client:TASK_FINISHED] 'p_client'
[0.650000000000:udp-client:STARTING_TASK] 'p_client'
[0.650000000000:udp-client:TASK_FINISHED] 'p_client'
[0.660000000000:udp-client:STARTING_TASK] 'p_client'
[0.660000000000:udp-client:TASK_FINISHED] 'p_client'
[0.670000000000:udp-client:STARTING_TASK] 'p_client'
[0.670000000000:udp-client:TASK_FINISHED] 'p_client'
[0.680000000000:udp-client:STARTING_TASK] 'p_client'
[0.680000000000:udp-client:TASK_FINISHED] 'p_client'
[0.690000000000:udp-client:STARTING_TASK] 'p_client'
[0.690000000000:udp-client:TASK_FINISHED] 'p_client'
[0.700000000000:udp-client:STARTING_TASK] 'p_client'
[0.700000000000:udp-client:TASK_FINISHED] 'p_client'
[0.710000000000:udp-client:STARTING_TASK] 'p_client'
[0.710000000000:udp-client:TASK_FINISHED] 'p_client'
[0.720000000000:udp-client:STARTING_TASK] 'p_client'
[0.720000000000:udp-client:TASK_FINISHED] 'p_client'
[0.730000000000:udp-client:STARTING_TASK] 'p_client'
[0.730000000000:udp-client:TASK_FINISHED] 'p_client'
[0.740000000000:udp-client:STARTING_TASK] 'p_client'
[0.740000000000:udp-client:TASK_FINISHED] 'p_client'
[0.750000000000:udp-client:STARTING_TASK] 'p_client'
[0.750000000000:udp-client:TASK_FINISHED] 'p_client'
[0.760000000000:udp-client:STARTING_TASK] 'p_client'
[0.760000000000:udp-client:TASK_FINISHED] 'p_client'
[0.770000000000:udp-client:STARTING_TASK] 'p_client'
[0.770000000000:udp-client:TASK_FINISHED] 'p_client'
[0.780000000000:udp-client:STARTING_TASK] 'p_client'
[0.780000000000:udp-client:TASK_FINISHED] 'p_client'
[0.790000000000:udp-client:STARTING_TASK] 'p_client'
[0.790000000000:udp-client:TASK_FINISHED] 'p_client'
[0.800000000000:udp-client:STARTING_TASK] 'p_client'
[0.800000000000:udp-client:TASK_FINISHED] 'p_client'
[0.810000000000:udp-client:STARTING_TASK] 'p_client'
[0.810000000000:udp-client:TASK_FINISHED] 'p_client'
[0.820000000000:udp-client:STARTING_TASK] 'p_client'
[0.820000000000:udp-client:TASK_FINISHED] 'p_client'
[0.830000000000:udp-client:STARTING_TASK] 'p_client'
[0.830000000000:udp-client:TASK_FINISHED] 'p_client'
[0.840000000000:udp-client:STARTING_TASK] 'p_client'
[0.840000000000:udp-client:TASK_FINISHED] 'p_client'
[0.850000000000:udp-client:STARTING_TASK] 'p_client'
[0.850000000000:udp-client:TASK_FINISHED] 'p_client'
[0.860000000000:udp-client:STARTING_TASK] 'p_client'
[0.860000000000:udp-client:TASK_FINISHED] 'p_client'
[0.870000000000:udp-client:STARTING_TASK] 'p_client'
[0.870000000000:udp-client:TASK_FINISHED] 'p_client'
[0.880000000000:udp-client:STARTING_TASK] 'p_client'
[0.880000000000:udp-client:TASK_FINISHED] 'p_client'
[0.890000000000:udp-client:STARTING_TASK] 'p_client'
[0.890000000000:udp-client:TASK_FINISHED] 'p_client'
[0.900000000000:udp-client:STARTING_TASK] 'p_client'
[0.900000000000:udp-client:TASK_FINISHED] 'p_client'
[0.910000000000:udp-client:STARTING_TASK] 'p_client'
[0.910000000000:udp-client:TASK_FINISHED] 'p_client'
[0.920000000000:udp-client:STARTING_TASK] 'p_client'
[0.920000000000:udp-client:TASK_FINISHED] 'p_client'
[0.930000000000:udp-client:STARTING_TASK] 'p_client'
[0.930000000000:udp-client:TASK_FINISHED] 'p_client'
[0.940000000000:udp-client:STARTING_TASK] 'p_client'
[0.940000000000:udp-client:TASK_FINISHED] 'p_client'
[0.950000000000:udp-client:STARTING_TASK] 'p_client'
[0.950000000000:udp-client:TASK_FINISHED] 'p_client'
[0.960000000000:udp-client:STARTING_TASK] 'p_client'
[0.960000000000:udp-client:TASK_FINISHED] 'p_client'
[0.970000000000:udp-client:STARTING_TASK] 'p_client'
[0.970000000000:udp-client:TASK_FINISHED] 'p_client'
[0.980000000000:udp-client:STARTING_TASK] 'p_client'
[0.980000000000:udp-client:TASK_FINISHED] 'p_client'
[0.990000000000:udp-client:STARTING_TASK] 'p_client'
[0.990000000000:udp-client:TASK_FINISHED] 'p_client'
[1.000000000000:udp-client:STARTING_TASK] 'p_client'
[1.000000000000:udp-client:TASK_FINISHED] 'p_client'
[1.010000000000:udp-client:STARTING_TASK] 'p_client'
[1.010000000000:udp-client:TASK_FINISHED] 'p_client'
[1.020000000000:udp-client:STARTING_TASK] 'p_client'
[1.020000000000:udp-client:TASK_FINISHED] 'p_client'
[1.030000000000:udp-client:STARTING_TASK] 'p_client'
[1.030000000000:udp-client:TASK_FINISHED] 'p_client'
[1.040000000000:udp-client:STARTING_TASK] 'p_client'
[1.040000000000:udp-client:TASK_FINISHED] 'p_client'
[1.050000000000:udp-client:STARTING_TASK] 'p_client'
[1.050000000000:udp-client:TASK_FINISHED] 'p_client'
[1.060000000000:udp-client:STARTING_TASK] 'p_client'
[1.060000000000:udp-client:TASK_FINISHED] 'p_client'
[1.070000000000:udp-client:STARTING_TASK] 'p_client'
[1.070000000000:udp-client:TASK_FINISHED] 'p_client'
[1.080000000000:udp-client:STARTING_TASK] 'p_client'
[1.080000000000:udp-client:TASK_FINISHED] 'p_client'
[1.090000000000:udp-client:STARTING_TASK] 'p_client'
[1.090000000000:udp-client:TASK_FINISHED] 'p_client'
[1.100000000000:udp-client:STARTING_TASK] 'p_client'
[1.100000000000:udp-client:TASK_FINISHED] 'p_client'
[1.110000000000:udp-client:STARTING_TASK] 'p_client'
[1.110000000000:udp-client:TASK_FINISHED] 'p_client'
[1.120000000000:udp-client:STARTING_TASK] 'p_client'
[1.120000000000:udp-client:TASK_FINISHED] 'p_client'
[1.130000000000:udp-client:STARTING_TASK] 'p_client'
[1.130000000000:udp-client:TASK_FINISHED] 'p_client'
[1.140000000000:udp-client:STARTING_TASK] 'p_client'
[1.140000000000:udp-client:TASK_FINISHED] 'p_client'
[1.150000000000:udp-client:STARTING_TASK] 'p_client'
[1.150000000000:udp-client:TASK_FINISHED] 'p_client'
[1.160000000000:udp-client:STARTING_TASK] 'p_client'
[1.160000000000:udp-client:TASK_FINISHED] 'p_client'
[1.170000000000:udp-client:STARTING_TASK] 'p_client'
[1.170000000000:udp-client:TASK_FINISHED] 'p_client'
[1.180000000000:udp-client:STARTING_TASK] 'p_client'
[1.180000000000:udp-client:TASK_FINISHED] 'p_client'
[1.190000000000:udp-client:STARTING_TASK] 'p_client'
[1.190000000000:udp-client:TASK_FINISHED] 'p_client'
[1.200000000000:udp-client:STARTING_TASK] 'p_client'
[1.200000000000:udp-client:TASK_FINISHED] 'p_client'
[1.210000000000:udp-client:STARTING_TASK] 'p_client'
[1.210000000000:udp-client:TASK_FINISHED] 'p_client'
[1.220000000000:udp-client:STARTING_TASK] 'p_client'
[1.220000000000:udp-client:TASK_FINISHED] 'p_client'
[1.230000000000:udp-client:STARTING_TASK] 'p_client'
[1.230000000000:udp-client:TASK_FINISHED] 'p_client'
[1.240000000000:udp-client:STARTING_TASK] 'p_client'
[1.240000000000:udp-client:TASK_FINISHED] 'p_client'
[1.250000000000:udp-client:STARTING_TASK] 'p_client'
[1.250000000000:udp-client:TASK_FINISHED] 'p_client'
[1.260000000000:udp-client:STARTING_TASK] 'p_client'
[1.260000000000:udp-client:TASK_FINISHED] 'p_client'
[1.270000000000:udp-client:STARTING_TASK] 'p_client'
[1.270000000000:udp-client:TASK_FINISHED] 'p_client'
[1.280000000000:udp-client:STARTING_TASK] 'p_client'
[1.280000000000:udp-client:TASK_FINISHED] 'p_client'
[1.290000000000:udp-client:STARTING_TASK] 'p_client'
[1.290000000000:udp-client:TASK_FINISHED] 'p_client'
[1.300000000000:udp-client:STARTING_TASK] 'p_client'
[1.300000000000:udp-client:TASK_FINISHED] 'p_client'
[1.310000000000:udp-client:STARTING_TASK] 'p_client'
[1.310000000000:udp-client:TASK_FINISHED] 'p_client'
[1.320000000000:udp-client:STARTING_TASK] 'p_client'
[1.320000000000:udp-client:TASK_FINISHED] 'p_client'
[1.330000000000:udp-client:STARTING_TASK] 'p_client'
[1.330000000000:udp-client:TASK_FINISHED] 'p_client'
[1.340000000000:udp-client:STARTING_TASK] 'p_client'
[1.340000000000:udp-client:TASK_FINISHED] 'p_client'
[1.350000000000:udp-client:STARTING_TASK] 'p_client'
[1.350000000000:udp-client:TASK_FINISHED] 'p_client'
[1.360000000000:udp-client:STARTING_TASK] 'p_client'
[1.360000000000:udp-client:TASK_FINISHED] 'p_client'
[1.370000000000:udp-client:STARTING_TASK] 'p_client'
[1.370000000000:udp-client:TASK_FINISHED] 'p_client'
[1.380000000000:udp-client:STARTING_TASK] 'p_client'
[1.380000000000:udp-client:TASK_FINISHED] 'p_client'
[1.390000000000:udp-client:STARTING_TASK] 'p_client'
[1.390000000000:udp-client:TASK_FINISHED] 'p_client'
[1.400000000000:udp-client:STARTING_TASK] 'p_client'
[1.400000000000:udp-client:TASK_FINISHED] 'p_client'
[1.410000000000:udp-client:STARTING_TASK] 'p_client'
[1.410000000000:udp-client:TASK_FINISHED] 'p_client'
[1.420000000000:udp-client:STARTING_TASK] 'p_client'
[1.420000000000:udp-client:TASK_FINISHED] 'p_client'
[1.430000000000:udp-client:STARTING_TASK] 'p_client'
[1.430000000000:udp-client:TASK_FINISHED] 'p_client'
[1.440000000000:udp-client:STARTING_TASK] 'p_client'
[1.440000000000:udp-client:TASK_FINISHED] 'p_client'
[1.450000000000:udp-client:STARTING_TASK] 'p_client'
[1.450000000000:udp-client:TASK_FINISHED] 'p_client'
[1.460000000000:udp-client:STARTING_TASK] 'p_client'
[1.460000000000:udp-client:TASK_FINISHED] 'p_client'
[1.470000000000:udp-client:STARTING_TASK] 'p_client'
[1.470000000000:udp-client:TASK_FINISHED] 'p_client'
[1.480000000000:udp-client:STARTING_TASK] 'p_client'
[1.480000000000:udp-client:TASK_FINISHED] 'p_client'
[1.490000000000:udp-client:STARTING_TASK] 'p_client'
[1.490000000000:udp-client:TASK_FINISHED] 'p_client'
[1.500000000000:udp-client:STARTING_TASK] 'p_client'
[1.500000000000:udp-client:TASK_FINISHED] 'p_client'
[1.510000000000:udp-client:STARTING_TASK] 'p_client'
[1.510000000000:udp-client:TASK_FINISHED] 'p_client'
[1.520000000000:udp-client:STARTING_TASK] 'p_client'
[1.520000000000:udp-client:TASK_FINISHED] 'p_client'
[1.530000000000:udp-client:STARTING_TASK] 'p_client'
[1.530000000000:udp-client:TASK_FINISHED] 'p_client'
[1.540000000000:udp-client:STARTING_TASK] 'p_client'
[1.540000000000:udp-client:TASK_FINISHED] 'p_client'
[1.550000000000:udp-client:STARTING_TASK] 'p_client'
[1.550000000000:udp-client:TASK_FINISHED] 'p_client'
[1.560000000000:udp-client:STARTING_TASK] 'p_client'
[1.560000000000:udp-client:TASK_FINISHED] 'p_client'
[1.570000000000:udp-client:STARTING_TASK] 'p_client'
[1.570000000000:udp-client:TASK_FINISHED] 'p_client'
[1.580000000000:udp-client:STARTING_TASK] 'p_client'
[1.580000000000:udp-client:TASK_FINISHED] 'p_client'
[1.590000000000:udp-client:STARTING_TASK] 'p_client'
[1.590000000000:udp-client:TASK_FINISHED] 'p_client'
[1.600000000000:udp-client:STARTING_TASK] 'p_client'
[1.600000000000:udp-client:TASK_FINISHED] 'p_client'
[1.610000000000:udp-client:STARTING_TASK] 'p_client'
[1.610000000000:udp-client:TASK_FINISHED] 'p_client'
[1.620000000000:udp-client:STARTING_TASK] 'p_client'
[1.620000000000:udp-client:TASK_FINISHED] 'p_client'
[1.630000000000:udp-client:STARTING_TASK] 'p_client'
[1.630000000000:udp-client:TASK_FINISHED] 'p_client'
[1.640000000000:udp-client:STARTING_TASK] 'p_client'
[1.640000000000:udp-client:TASK_FINISHED] 'p_client'
[1.650000000000:udp-client:STARTING_TASK] 'p_client'
[1.650000000000:udp-client:TASK_FINISHED] 'p_client'
[1.660000000000:udp-client:STARTING_TASK] 'p_client'
[1.660000000000:udp-client:TASK_FINISHED] 'p_client'
[1.670000000000:udp-client:STARTING_TASK] 'p_client'
[1.670000000000:udp-client:TASK_FINISHED] 'p_client'
[1.680000000000:udp-client:STARTING_TASK] 'p_client'
[1.680000000000:udp-client:TASK_FINISHED] 'p_client'
[1.690000000000:udp-client:STARTING_TASK] 'p_client'
[1.690000000000:udp-client:TASK_FINISHED] 'p_client'
[1.700000000000:udp-client:STARTING_TASK] 'p_client'
[1.700000000000:udp-client:TASK_FINISHED] 'p_client'
[1.710000000000:udp-client:STARTING_TASK] 'p_client'
[1.710000000000:udp-client:TASK_FINISHED] 'p_client'
[1.720000000000:udp-client:STARTING_TASK] 'p_client'
[1.720000000000:udp-client:TASK_FINISHED] 'p_client'
[1.730000000000:udp-client:STARTING_TASK] 'p_client'
[1.730000000000:udp-client:TASK_FINISHED] 'p_client'
[1.740000000000:udp-client:STARTING_TASK] 'p_client'
[1.740000000000:udp-client:TASK_FINISHED] 'p_client'
[1.750000000000:udp-client:STARTING_TASK] 'p_client'
[1.750000000000:udp-client:TASK_FINISHED] 'p_client'
[1.760000000000:udp-client:STARTING_TASK] 'p_client'
[1.760000000000:udp-client:TASK_FINISHED] 'p_client'
[1.770000000000:udp-client:STARTING_TASK] 'p_client'
[1.770000000000:udp-client:TASK_FINISHED] 'p_client'
[1.780000000000:udp-client:STARTING_TASK] 'p_client'
[1.780000000000:udp-client:TASK_FINISHED] 'p_client'
[1.790000000000:udp-client:STARTING_TASK] 'p_client'
[1.790000000000:udp-client:TASK_FINISHED] 'p_client'
[1.800000000000:udp-client:STARTING_TASK] 'p_client'
[1.800000000000:udp-client:TASK_FINISHED] 'p_client'
[1.810000000000:udp-client:STARTING_TASK] 'p_client'
[1.810000000000:udp-client:TASK_FINISHED] 'p_client'
[1.820000000000:udp-client:STARTING_TASK] 'p_client'
[1.820000000000:udp-client:TASK_FINISHED] 'p_client'
[1.830000000000:udp-client:STARTING_TASK] 'p_client'
[1.830000000000:udp-client:TASK_FINISHED] 'p_client'
[1.840000000000:udp-client:STARTING_TASK] 'p_client'
[1.840000000000:udp-client:TASK_FINISHED] 'p_client'
[1.850000000000:udp-client:STARTING_TASK] 'p_client'
[1.850000000000:udp-client:TASK_FINISHED] 'p_client'
[1.860000000000:udp-client:STARTING_TASK] 'p_client'
[1.860000000000:udp-client:TASK_FINISHED] 'p_client'
[1.870000000000:udp-client:STARTING_TASK] 'p_client'
[1.870000000000:udp-client:TASK_FINISHED] 'p_client'
[1.880000000000:udp-client:STARTING_TASK] 'p_client'
[1.880000000000:udp-client:TASK_FINISHED] 'p_client'
[1.890000000000:udp-client:STARTING_TASK] 'p_client'
[1.890000000000:udp-client:TASK_FINISHED] 'p_client'
[1.900000000000:udp-client:STARTING_TASK] 'p_client'
[1.900000000000:udp-client:TASK_FINISHED] 'p_client'
[1.910000000000:udp-client:STARTING_TASK] 'p_client'
[1.910000000000:udp-client:TASK_FINISHED] 'p_client'
[1.920000000000:udp-client:STARTING_TASK] 'p_client'
[1.920000000000:udp-client:TASK_FINISHED] 'p_client'
[1.930000000000:udp-client:STARTING_TASK] 'p_client'
[1.930000000000:udp-client:TASK_FINISHED] 'p_client'
[1.940000000000:udp-client:STARTING_TASK] 'p_client'
[1.940000000000:udp-client:TASK_FINISHED] 'p_client'
[1.950000000000:udp-client:STARTING_TASK] 'p_client'
[1.950000000000:udp-client:TASK_FINISHED] 'p_client'
[1.960000000000:udp-client:STARTING_TASK] 'p_client'
[1.960000000000:udp-client:TASK_FINISHED] 'p_client'
[1.970000000000:udp-client:STARTING_TASK] 'p_client'
[1.970000000000:udp-client:TASK_FINISHED] 'p_client'
[1.980000000000:udp-client:STARTING_TASK] 'p_client'
[1.980000000000:udp-client:TASK_FINISHED] 'p_client'
[1.990000000000:udp-client:STARTING_TASK] 'p_client'
[1.990000000000:udp-client:TASK_FINISHED] 'p_client'
[2.000000000000:udp-client:STARTING_TASK] 'p_client'
[2.000000000000:udp-client:TASK_FINISHED] 'p_client'
[2.010000000000:udp-client:STARTING_TASK] 'p_client'
[2.010000000000:udp-client:TASK_FINISHED] 'p_client'
[2.020000000000:udp-client:STARTING_TASK] 'p_client'
[2.020000000000:udp-client:TASK_FINISHED] 'p_client'
[2.030000000000:udp-client:STARTING_TASK] 'p_client'
[2.030000000000:udp-client:TASK_FINISHED] 'p_client'
[2.040000000000:udp-client:STARTING_TASK] 'p_client'
[2.040000000000:udp-client:TASK_FINISHED] 'p_client'
[2.050000000000:udp-client:STARTING_TASK] 'p_client'
[2.050000000000:udp-client:TASK_FINISHED] 'p_client'
[2.060000000000:udp-client:STARTING_TASK] 'p_client'
[2.060000000000:udp-client:TASK_FINISHED] 'p_client'
[2.070000000000:udp-client:STARTING_TASK] 'p_client'
[2.070000000000:udp-client:TASK_FINISHED] 'p_client'
[2.080000000000:udp-client:STARTING_TASK] 'p_client'
[2.080000000000:udp-client:TASK_FINISHED] 'p_client'
[2.090000000000:udp-client:STARTING_TASK] 'p_client'
[2.090000000000:udp-client:TASK_FINISHED] 'p_client'
[2.100000000000:udp-client:STARTING_TASK] 'p_client'
[2.100000000000:udp-client:TASK_FINISHED] 'p_client'
[2.110000000000:udp-client:STARTING_TASK] 'p_client'
[2.110000000000:udp-client:TASK_FINISHED] 'p_client'
[2.120000000000:udp-client:STARTING_TASK] 'p_client'
[2.120000000000:udp-client:TASK_FINISHED] 'p_client'
[2.130000000000:udp-client:STARTING_TASK] 'p_client'
[2.130000000000:udp-client:TASK_FINISHED] 'p_client'
[2.140000000000:udp-client:STARTING_TASK] 'p_client'
[2.140000000000:udp-client:TASK_FINISHED] 'p_client'
[2.150000000000:udp-client:STARTING_TASK] 'p_client'
[2.150000000000:udp-client:TASK_FINISHED] 'p_client'
[2.160000000000:udp-client:STARTING_TASK] 'p_client'
[2.160000000000:udp-client:TASK_FINISHED] 'p_client'
[2.170000000000:udp-client:STARTING_TASK] 'p_client'
[2.170000000000:udp-client:TASK_FINISHED] 'p_client'
[2.180000000000:udp-client:STARTING_TASK] 'p_client'
[2.180000000000:udp-client:TASK_FINISHED] 'p_client'
[2.190000000000:udp-client:STARTING_TASK] 'p_client'
[2.190000000000:udp-client:TASK_FINISHED] 'p_client'
[2.200000000000:udp-client:STARTING_TASK] 'p_client'
[2.200000000000:udp-client:TASK_FINISHED] 'p_client'
[2.210000000000:udp-client:STARTING_TASK] 'p_client'
[2.210000000000:udp-client:TASK_FINISHED] 'p_client'
[2.220000000000:udp-client:STARTING_TASK] 'p_client'
[2.220000000000:udp-client:TASK_FINISHED] 'p_client'
[2.230000000000:udp-client:STARTING_TASK] 'p_client'
[2.230000000000:udp-client:TASK_FINISHED] 'p_client'
[2.240000000000:udp-client:STARTING_TASK] 'p_client'
[2.240000000000:udp-client:TASK_FINISHED] 'p_client'
[2.250000000000:udp-client:STARTING_TASK] 'p_client'
[2.250000000000:udp-client:TASK_FINISHED] 'p_client'
[2.260000000000:udp-client:STARTING_TASK] 'p_client'
[2.260000000000:udp-client:TASK_FINISHED] 'p_client'
[2.270000000000:udp-client:STARTING_TASK] 'p_client'
[2.270000000000:udp-client:TASK_FINISHED] 'p_client'
[2.280000000000:udp-client:STARTING_TASK] 'p_client'
[2.280000000000:udp-client:TASK_FINISHED] 'p_client'
[2.290000000000:udp-client:STARTING_TASK] 'p_client'
[2.290000000000:udp-client:TASK_FINISHED] 'p_client'
[2.300000000000:udp-client:STARTING_TASK] 'p_client'
[2.300000000000:udp-client:TASK_FINISHED] 'p_client'
[2.310000000000:udp-client:STARTING_TASK] 'p_client'
[2.310000000000:udp-client:TASK_FINISHED] 'p_client'
[2.320000000000:udp-client:STARTING_TASK] 'p_client'
[2.320000000000:udp-client:TASK_FINISHED] 'p_client'
[2.330000000000:udp-client:STARTING_TASK] 'p_client'
[2.330000000000:udp-client:TASK_FINISHED] 'p_client'
[2.340000000000:udp-client:STARTING_TASK] 'p_client'
[2.340000000000:udp-client:TASK_FINISHED] 'p_client'
[2.350000000000:udp-client:STARTING_TASK] 'p_client'
[2.350000000000:udp-client:TASK_FINISHED] 'p_client'
[2.360000000000:udp-client:STARTING_TASK] 'p_client'
[2.360000000000:udp-client:TASK_FINISHED] 'p_client'
[2.370000000000:udp-client:STARTING_TASK] 'p_client'
[2.370000000000:udp-client:TASK_FINISHED] 'p_client'
[2.380000000000:udp-client:STARTING_TASK] 'p_client'
[2.380000000000:udp-client:TASK_FINISHED] 'p_client'
[2.390000000000:udp-client:STARTING_TASK] 'p_client'
[2.390000000000:udp-client:TASK_FINISHED] 'p_client'
[2.400000000000:udp-client:STARTING_TASK] 'p_client'
[2.400000000000:udp-client:TASK_FINISHED] 'p_client'
[2.410000000000:udp-client:STARTING_TASK] 'p_client'
[2.410000000000:udp-client:TASK_FINISHED] 'p_client'
[2.420000000000:udp-client:STARTING_TASK] 'p_client'
[2.420000000000:udp-client:TASK_FINISHED] 'p_client'
[2.430000000000:udp-client:STARTING_TASK] 'p_client'
[2.430000000000:udp-client:TASK_FINISHED] 'p_client'
[2.440000000000:udp-client:STARTING_TASK] 'p_client'
[2.440000000000:udp-client:TASK_FINISHED] 'p_client'
[2.450000000000:udp-client:STARTING_TASK] 'p_client'
[2.450000000000:udp-client:TASK_FINISHED] 'p_client'
[2.460000000000:udp-client:STARTING_TASK] 'p_client'
[2.460000000000:udp-client:TASK_FINISHED] 'p_client'
[2.470000000000:udp-client:STARTING_TASK] 'p_client'
[2.470000000000:udp-client:TASK_FINISHED] 'p_client'
[2.480000000000:udp-client:STARTING_TASK] 'p_client'
[2.480000000000:udp-client:TASK_FINISHED] 'p_client'
[2.490000000000:udp-client:STARTING_TASK] 'p_client'
[2.490000000000:udp-client:TASK_FINISHED] 'p_client'
[2.500000000000:udp-client:STARTING_TASK] 'p_client'
[2.500000000000:udp-client:TASK_FINISHED] 'p_client'
[2.510000000000:udp-client:STARTING_TASK] 'p_client'
[2.510000000000:udp-client:TASK_FINISHED] 'p_client'
[2.520000000000:udp-client:STARTING_TASK] 'p_client'
[2.520000000000:udp-client:TASK_FINISHED] 'p_client'
[2.530000000000:udp-client:STARTING_TASK] 'p_client'
[2.530000000000:udp-client:TASK_FINISHED] 'p_client'
[2.540000000000:udp-client:STARTING_TASK] 'p_client'
[2.540000000000:udp-client:TASK_FINISHED] 'p_client'
[2.550000000000:udp-client:STARTING_TASK] 'p_client'
[2.550000000000:udp-client:TASK_FINISHED] 'p_client'
[2.560000000000:udp-client:STARTING_TASK] 'p_client'
[2.560000000000:udp-client:TASK_FINISHED] 'p_client'
[2.570000000000:udp-client:STARTING_TASK] 'p_client'
[2.570000000000:udp-client:TASK_FINISHED] 'p_client'
[2.580000000000:udp-client:STARTING_TASK] 'p_client'
[2.580000000000:udp-client:TASK_FINISHED] 'p_client'
[2.590000000000:udp-client:STARTING_TASK] 'p_client'
[2.590000000000:udp-client:TASK_FINISHED] 'p_client'
[2.600000000000:udp-client:STARTING_TASK] 'p_client'
[2.600000000000:udp-client:TASK_FINISHED] 'p_client'
[2.610000000000:udp-client:STARTING_TASK] 'p_client'
[2.610000000000:udp-client:TASK_FINISHED] 'p_client'
[2.620000000000:udp-client:STARTING_TASK] 'p_client'
[2.620000000000:udp-client:TASK_FINISHED] 'p_client'
[2.630000000000:udp-client:STARTING_TASK] 'p_client'
[2.630000000000:udp-client:TASK_FINISHED] 'p_client'
[2.640000000000:udp-client:STARTING_TASK] 'p_client'
[2.640000000000:udp-client:TASK_FINISHED] 'p_client'
[2.650000000000:udp-client:STARTING_TASK] 'p_client'
[2.650000000000:udp-client:TASK_FINISHED] 'p_client'
[2.660000000000:udp-client:STARTING_TASK] 'p_client'
[2.660000000000:udp-client:TASK_FINISHED] 'p_client'
[2.670000000000:udp-client:STARTING_TASK] 'p_client'
[2.670000000000:udp-client:TASK_FINISHED] 'p_client'
[2.680000000000:udp-client:STARTING_TASK] 'p_client'
[2.680000000000:udp-client:TASK_FINISHED] 'p_client'
[2.690000000000:udp-client:STARTING_TASK] 'p_client'
[2.690000000000:udp-client:TASK_FINISHED] 'p_client'
[2.700000000000:udp-client:STARTING_TASK] 'p_client'
[2.700000000000:udp-client:TASK_FINISHED] 'p_client'
[2.710000000000:udp-client:STARTING_TASK] 'p_client'
[2.710000000000:udp-client:TASK_FINISHED] 'p_client'
[2.720000000000:udp-client:STARTING_TASK] 'p_client'
[2.720000000000:udp-client:TASK_FINISHED] 'p_client'
[2.730000000000:udp-client:STARTING_TASK] 'p_client'
[2.730000000000:udp-client:TASK_FINISHED] 'p_client'
[2.740000000000:udp-client:STARTING_TASK] 'p_client'
[2.740000000000:udp-client:TASK_FINISHED] 'p_client'
[2.750000000000:udp-client:STARTING_TASK] 'p_client'
[2.750000000000:udp-client:TASK_FINISHED] 'p_client'
[2.760000000000:udp-client:STARTING_TASK] 'p_client'
[2.760000000000:udp-client:TASK_FINISHED] 'p_client'
[2.770000000000:udp-client:STARTING_TASK] 'p_client'
[2.770000000000:udp-client:TASK_FINISHED] 'p_client'
[2.780000000000:udp-client:STARTING_TASK] 'p_client'
[2.780000000000:udp-client:TASK_FINISHED] 'p_client'
[2.790000000000:udp-client:STARTING_TASK] 'p_client'
[2.790000000000:udp-client:TASK_FINISHED] 'p_client'
[2.800000000000:udp-client:STARTING_TASK] 'p_client'
[2.800000000000:udp-client:TASK_FINISHED] 'p_client'
[2.810000000000:udp-client:STARTING_TASK] 'p_client'
[2.810000000000:udp-client:TASK_FINISHED] 'p_client'
[2.820000000000:udp-client:STARTING_TASK] 'p_client'
[2.820000000000:udp-client:TASK_FINISHED] 'p_client'
[2.830000000000:udp-client:STARTING_TASK] 'p_client'
[2.830000000000:udp-client:TASK_FINISHED] 'p_client'
[2.840000000000:udp-client:STARTING_TASK] 'p_client'
[2.840000000000:udp-client:TASK_FINISHED] 'p_client'
[2.850000000000:udp-client:STARTING_TASK] 'p_client'
[2.850000000000:udp-client:TASK_FINISHED] 'p_client'
[2.860000000000:udp-client:STARTING_TASK] 'p_client'
[2.860000000000:udp-client:TASK_FINISHED] 'p_client'
[2.870000000000:udp-client:STARTING_TASK] 'p_client'
[2.870000000000:udp-client:TASK_FINISHED] 'p_client'
[2.880000000000:udp-client:STARTING_TASK] 'p_client'
[2.880000000000:udp-client:TASK_FINISHED] 'p_client'
[2.890000000000:udp-client:STARTING_TASK] 'p_client'
[2.890000000000:udp-client:TASK_FINISHED] 'p_client'
[2.900000000000:udp-client:STARTING_TASK] 'p_client'
[2.900000000000:udp-client:TASK_FINISHED] 'p_client'
[2.910000000000:udp-client:STARTING_TASK] 'p_client'
[2.910000000000:udp-client:TASK_FINISHED] 'p_client'
[2.920000000000:udp-client:STARTING_TASK] 'p_client'
[2.920000000000:udp-client:TASK_FINISHED] 'p_client'
[2.930000000000:udp-client:STARTING_TASK] 'p_client'
[2.930000000000:udp-client:TASK_FINISHED] 'p_client'
[2.940000000000:udp-client:STARTING_TASK] 'p_client'
[2.940000000000:udp-client:TASK_FINISHED] 'p_client'
[2.950000000000:udp-client:STARTING_TASK] 'p_client'
[2.950000000000:udp-client:TASK_FINISHED] 'p_client'
[2.960000000000:udp-client:STARTING_TASK] 'p_client'
[2.960000000000:udp-client:TASK_FINISHED] 'p_client'
[2.970000000000:udp-client:STARTING_TASK] 'p_client'
[2.970000000000:udp-client:TASK_FINISHED] 'p_client'
[2.980000000000:udp-client:STARTING_TASK] 'p_client'
[2.980000000000:udp-client:TASK_FINISHED] 'p_client'
[2.990000000000:udp-client:STARTING_TASK] 'p_client'
[2.990000000000:udp-client:TASK_FINISHED] 'p_client'
[3.000000000000:udp-client:STARTING_TASK] 'p_client'
[3.000000000000:udp-client:TASK_FINISHED] 'p_client'
EXIT (SUCCESS) AT 3s (3000000000000)

p_clientTasks