City1082 telemetry application

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?

UserRevisionLine numberNew 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 }