@@ -7,16 +7,22 @@ typedef struct {
77 uint32_t counter; /* A counter value */
88} message_t ;
99
10+ void print_char (char c = ' *' )
11+ {
12+ printf (" %c" , c);
13+ fflush (stdout);
14+ }
15+
1016MemoryPool<message_t , 16 > mpool;
1117Queue<message_t , 16 > queue;
1218
1319/* Send Thread */
1420void send_thread (void const *argument) {
15- uint32_t i = 0 ;
21+ static uint32_t i = 0 ;
1622 while (true ) {
1723 i++; // fake data update
1824 message_t *message = mpool.alloc ();
19- message->voltage = (i * 0.1 ) * 33 ;
25+ message->voltage = (i * 0.1 ) * 33 ;
2026 message->current = (i * 0.1 ) * 11 ;
2127 message->counter = i;
2228 queue.put (message);
@@ -26,15 +32,16 @@ void send_thread (void const *argument) {
2632
2733int main (void ) {
2834 Thread thread (send_thread);
29-
35+
3036 while (true ) {
3137 osEvent evt = queue.get ();
3238 if (evt.status == osEventMessage) {
3339 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);
3845 mpool.free (message);
3946 }
4047 }
0 commit comments