@@ -7,16 +7,22 @@ typedef struct {
7
7
uint32_t counter; /* A counter value */
8
8
} message_t ;
9
9
10
+ void print_char (char c = ' *' )
11
+ {
12
+ printf (" %c" , c);
13
+ fflush (stdout);
14
+ }
15
+
10
16
MemoryPool<message_t , 16 > mpool;
11
17
Queue<message_t , 16 > queue;
12
18
13
19
/* Send Thread */
14
20
void send_thread (void const *argument) {
15
- uint32_t i = 0 ;
21
+ static uint32_t i = 0 ;
16
22
while (true ) {
17
23
i++; // fake data update
18
24
message_t *message = mpool.alloc ();
19
- message->voltage = (i * 0.1 ) * 33 ;
25
+ message->voltage = (i * 0.1 ) * 33 ;
20
26
message->current = (i * 0.1 ) * 11 ;
21
27
message->counter = i;
22
28
queue.put (message);
@@ -26,15 +32,16 @@ void send_thread (void const *argument) {
26
32
27
33
int main (void ) {
28
34
Thread thread (send_thread);
29
-
35
+
30
36
while (true ) {
31
37
osEvent evt = queue.get ();
32
38
if (evt.status == osEventMessage) {
33
39
message_t *message = (message_t *)evt.value .p ;
34
- printf (" \n Voltage: %.2f V\n\r " , message->voltage );
35
- printf (" Current: %.2f A\n\r " , message->current );
36
- printf (" Number of cycles: %u\n\r " , message->counter );
37
-
40
+ // Each queue get message is handled every second
41
+ print_char ();
42
+ // printf("\nVoltage: %.2f V\r\n" , message->voltage);
43
+ // printf("Current: %.2f A\r\n" , message->current);
44
+ // printf("Number of cycles: %u\r\n", message->counter);
38
45
mpool.free (message);
39
46
}
40
47
}
0 commit comments