Пример #1
0
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);
}