Andrew Reed
/
city1082-rtos-telemetry
City1082 telemetry application
src/display.cpp@4:455f43ddbaa9, 2021-11-30 (annotated)
- Committer:
- reedas
- Date:
- Tue Nov 30 22:12:34 2021 +0000
- Revision:
- 4:455f43ddbaa9
- Child:
- 5:74a28c49ec84
tidy and deal with warnings
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
reedas | 4:455f43ddbaa9 | 1 | /* |
reedas | 4:455f43ddbaa9 | 2 | * Copyright (c) 2006-2020 Arm Limited and affiliates. |
reedas | 4:455f43ddbaa9 | 3 | * SPDX-License-Identifier: Apache-2.0 |
reedas | 4:455f43ddbaa9 | 4 | */ |
reedas | 4:455f43ddbaa9 | 5 | #include "mbed.h" |
reedas | 4:455f43ddbaa9 | 6 | #include <ios> |
reedas | 4:455f43ddbaa9 | 7 | #include <iostream> |
reedas | 4:455f43ddbaa9 | 8 | #include <iomanip> |
reedas | 4:455f43ddbaa9 | 9 | #include "display.h" |
reedas | 4:455f43ddbaa9 | 10 | |
reedas | 4:455f43ddbaa9 | 11 | typedef struct { |
reedas | 4:455f43ddbaa9 | 12 | float voltage; /* AD result of measured voltage */ |
reedas | 4:455f43ddbaa9 | 13 | float current; /* AD result of measured current */ |
reedas | 4:455f43ddbaa9 | 14 | int counter; /* A counter value */ |
reedas | 4:455f43ddbaa9 | 15 | } message_t; |
reedas | 4:455f43ddbaa9 | 16 | |
reedas | 4:455f43ddbaa9 | 17 | static MemoryPool<message_t, 32> mpool; |
reedas | 4:455f43ddbaa9 | 18 | static Queue<message_t, 32> queue; |
reedas | 4:455f43ddbaa9 | 19 | |
reedas | 4:455f43ddbaa9 | 20 | void displaySendUpdateSensor(float volts, float amps, int cycles) { |
reedas | 4:455f43ddbaa9 | 21 | message_t *message = mpool.try_alloc(); |
reedas | 4:455f43ddbaa9 | 22 | if(message) { |
reedas | 4:455f43ddbaa9 | 23 | message->voltage = volts; |
reedas | 4:455f43ddbaa9 | 24 | message->current = amps; |
reedas | 4:455f43ddbaa9 | 25 | message->counter = cycles; |
reedas | 4:455f43ddbaa9 | 26 | queue.try_put(message); |
reedas | 4:455f43ddbaa9 | 27 | } |
reedas | 4:455f43ddbaa9 | 28 | } |
reedas | 4:455f43ddbaa9 | 29 | |
reedas | 4:455f43ddbaa9 | 30 | void displayThread(void) |
reedas | 4:455f43ddbaa9 | 31 | { |
reedas | 4:455f43ddbaa9 | 32 | cout << "\033c" << "\033[?25l" << endl; |
reedas | 4:455f43ddbaa9 | 33 | std::cout << "\033[H" |
reedas | 4:455f43ddbaa9 | 34 | << "Voltage: V\r\n" |
reedas | 4:455f43ddbaa9 | 35 | << "Current: A\r\n" |
reedas | 4:455f43ddbaa9 | 36 | << "Number of cycles\r\n"; |
reedas | 4:455f43ddbaa9 | 37 | while (true) { |
reedas | 4:455f43ddbaa9 | 38 | message_t *message; |
reedas | 4:455f43ddbaa9 | 39 | // osEvent evt; |
reedas | 4:455f43ddbaa9 | 40 | auto event = queue.try_get(&message); |
reedas | 4:455f43ddbaa9 | 41 | if (event) { |
reedas | 4:455f43ddbaa9 | 42 | // message_t *message = (message_t *)evt.value.p; |
reedas | 4:455f43ddbaa9 | 43 | std::cout << "\033[1;21H" << std::fixed << std::setw(8) |
reedas | 4:455f43ddbaa9 | 44 | << std::setprecision(2) << (message->voltage); //<< "V\r\n" ; |
reedas | 4:455f43ddbaa9 | 45 | // printf("\nVoltage: %.2f V\n\r", message->voltage); |
reedas | 4:455f43ddbaa9 | 46 | std::cout << "\033[2;21H" << std::fixed << std::setw(8) |
reedas | 4:455f43ddbaa9 | 47 | << std::setprecision(2) << (message->current); // << "A\r\n" ; |
reedas | 4:455f43ddbaa9 | 48 | // printf("Current: %.2f A\n\r", message->current); |
reedas | 4:455f43ddbaa9 | 49 | std::cout << "\033[3;18H" |
reedas | 4:455f43ddbaa9 | 50 | << /*std::dec << */ std::setw(8) |
reedas | 4:455f43ddbaa9 | 51 | //<< std::showbase //<< std::setfill( '0' ) |
reedas | 4:455f43ddbaa9 | 52 | << (message->counter) << std::endl; |
reedas | 4:455f43ddbaa9 | 53 | // printf("Number of cycles: %u\n\r", message->counter); |
reedas | 4:455f43ddbaa9 | 54 | |
reedas | 4:455f43ddbaa9 | 55 | mpool.free(message); |
reedas | 4:455f43ddbaa9 | 56 | } |
reedas | 4:455f43ddbaa9 | 57 | } |
reedas | 4:455f43ddbaa9 | 58 | } |