static THD_FUNCTION(ThreadGRAPH, arg) { (void)arg; chRegSetThreadName("Graph"); while (true) { updateGraphData(current_mA, 0); updateGraphData(loadvoltage, 1); updateGraphData(((current_mA*loadvoltage)/1000), 2); if (activeGraph == 0) { displayGraph(ghContainerGraphC, 0); } if (activeGraph == 1) { displayGraph(ghContainerGraphV, 1); } if (activeGraph == 2) { displayGraph(ghContainerGraphW, 2); } if (activeGraph == 3) { displayGraph(ghContainerGraphCV_1, 0); displayGraph(ghContainerGraphCV_2, 1); } chThdSleepMilliseconds(GRAPH_Refresh); } }
PowerGraphsPresenter::PowerGraphsPresenter(const I_VehicleData& vehicleData, const I_PowerData& powerData, const I_BatteryData& batteryData) : vehicleData_(vehicleData) , powerData_(powerData) , batteryData_(batteryData) { const double INTERVAL_SIZE = 1; // seconds const int NUMBER_OF_INTERVALS = 60; graphUpdateTimer_.setSingleShot(false); graphUpdateTimer_.setInterval(INTERVAL_SIZE * 1000); // convert to ms connect(&graphUpdateTimer_, SIGNAL(timeout()), this, SLOT(updateGraphData())); busCurrentGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BUS_CURRENT_DATA_SETS); busVoltageGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BUS_VOLTAGE_DATA_SETS); busPowerGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BUS_POWER_DATA_SETS); driverCurrentGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, DRIVER_CURRENT_DATA_SETS); driverSpeedGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, DRIVER_SPEED_DATA_SETS); batteryCellTempGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BATTERY_CELL_TEMP_DATA_SETS); batteryCellVoltageGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BATTERY_CELL_VOLTAGE_DATA_SETS); batteryPowerGraphData_ = PowerGraphData(NUMBER_OF_INTERVALS, INTERVAL_SIZE, BATTERY_POWER_DATA_SETS); }