diff --git a/main.c b/main.c index 0013be5..6f49dcf 100644 --- a/main.c +++ b/main.c @@ -304,16 +304,15 @@ void main(void) // start getting all PZEM-004T measurements from all meters struct sensor_pzem_measurement_t pzem_measurements[2][SENSOR_PZEM_MAX]; // PZEM-004T measurements (2 meters, all measurements) - uint8_t pzem_id = 0; // PZEM-004T meter index (add to prefix) - sensor_pzem_measurement_request(0xc0a80100+pzem_id, 0); // request first measurement - (void)pzem_measurements[pzem_id][0]; + uint8_t pzem_meter = 0; // PZEM-004T meter index (add to prefix) + uint8_t pzem_measurement = 0; // PZEM-004T measurement index (matches the type) + sensor_pzem_measurement_request(0xc0a80100+pzem_meter, pzem_measurement); // request first measurement // start getting all SDM120 measurements from all meters float sdm120_measurements[2][SENSOR_SDM120_MEASUREMENT_MAX]; // SDM120 measurements (2 meters, all measurements) uint8_t sdm120_meter = 0; // SDM120 meter index (add to 1 to get ID) uint8_t sdm120_measurement = 0; // SDM120 measurement index sensor_sdm120_measurement_request(1+sdm120_meter, sdm120_measurement); // request first measurement - (void)sdm120_measurements[sdm120_meter][sdm120_measurement]; while (true) { // infinite loop iwdg_reset(); // kick the dog @@ -354,20 +353,19 @@ void main(void) fprintf(stderr,"unknown measurement type: %u\n", measurement.type); while (true); // unhandled error } - pzem_measurements[pzem_id][measurement.type] = measurement; // save measurement (the type matches the index) if (measurement.valid) { // only show valid measurement switch (measurement.type) { case SENSOR_PZEM_VOLTAGE: - printf("PZEM-004T meter %u voltage: %.01f V\n", pzem_id, measurement.value.voltage); // display measurement + printf("PZEM-004T meter %u voltage: %.01f V\n", pzem_meter, measurement.value.voltage); // display measurement break; case SENSOR_PZEM_CURRENT: - printf("PZEM-004T meter %u current: %.02f A\n", pzem_id, measurement.value.current); + printf("PZEM-004T meter %u current: %.02f A\n", pzem_meter, measurement.value.current); break; case SENSOR_PZEM_POWER: - printf("PZEM-004T meter %u power: %.00f W\n", pzem_id, measurement.value.power); + printf("PZEM-004T meter %u power: %.00f W\n", pzem_meter, measurement.value.power); break; case SENSOR_PZEM_ENERGY: - printf("PZEM-004T meter %u energy: %lu Wh\n", pzem_id, measurement.value.energy); + printf("PZEM-004T meter %u energy: %lu Wh\n", pzem_meter, measurement.value.energy); break; /* not used for this application case SENSOR_PZEM_ADDRESS: @@ -380,16 +378,24 @@ void main(void) default: break; } - if (measurement.type