rename PZEM enums
This commit is contained in:
parent
353dfe295f
commit
79d76ee0fd
|
@ -79,7 +79,7 @@ void sensor_pzem_measurement_request(uint32_t address, enum sensor_pzem_measurem
|
||||||
if (tx_i!=0) { // transmission is ongoing
|
if (tx_i!=0) { // transmission is ongoing
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (type>=MAX) { // invalid type
|
if (type>=SENSOR_PZEM_MAX) { // invalid type
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tx_buffer[0] = 0xB0+type; // set request nibble and type nibble
|
tx_buffer[0] = 0xB0+type; // set request nibble and type nibble
|
||||||
|
@ -107,7 +107,7 @@ struct sensor_pzem_measurement_t sensor_pzem_measurement_decode(void)
|
||||||
if ((rx_buffer[0]&0xf0)!=0xa0) { // not a response received
|
if ((rx_buffer[0]&0xf0)!=0xa0) { // not a response received
|
||||||
return measurement;
|
return measurement;
|
||||||
}
|
}
|
||||||
if ((rx_buffer[0]&0x0f)>=MAX) { // not a valid response type received (actually 4 and 5 are valid, but should not happen when using this code
|
if ((rx_buffer[0]&0x0f)>=SENSOR_PZEM_MAX) { // not a valid response type received (actually 4 and 5 are valid, but should not happen when using this code
|
||||||
return measurement;
|
return measurement;
|
||||||
}
|
}
|
||||||
uint8_t checksum = 0; // calculate checksum (sum of all other bytes)
|
uint8_t checksum = 0; // calculate checksum (sum of all other bytes)
|
||||||
|
@ -120,16 +120,16 @@ struct sensor_pzem_measurement_t sensor_pzem_measurement_decode(void)
|
||||||
measurement.valid = true; // all checks passed
|
measurement.valid = true; // all checks passed
|
||||||
measurement.type = rx_buffer[0]&0x0f; // save type
|
measurement.type = rx_buffer[0]&0x0f; // save type
|
||||||
switch (measurement.type) { // decode value depending on type
|
switch (measurement.type) { // decode value depending on type
|
||||||
case VOLTAGE:
|
case SENSOR_PZEM_VOLTAGE:
|
||||||
measurement.value.voltage = ((uint16_t)rx_buffer[1]<<8)+rx_buffer[2]+rx_buffer[3]*0.1;
|
measurement.value.voltage = ((uint16_t)rx_buffer[1]<<8)+rx_buffer[2]+rx_buffer[3]*0.1;
|
||||||
break;
|
break;
|
||||||
case CURRENT:
|
case SENSOR_PZEM_CURRENT:
|
||||||
measurement.value.current = rx_buffer[2]+rx_buffer[3]/100;
|
measurement.value.current = rx_buffer[2]+rx_buffer[3]/100;
|
||||||
break;
|
break;
|
||||||
case POWER:
|
case SENSOR_PZEM_POWER:
|
||||||
measurement.value.power = ((uint16_t)rx_buffer[1]<<8)+rx_buffer[2];
|
measurement.value.power = ((uint16_t)rx_buffer[1]<<8)+rx_buffer[2];
|
||||||
break;
|
break;
|
||||||
case ENERGY:
|
case SENSOR_PZEM_ENERGY:
|
||||||
measurement.value.power = ((uint32_t)rx_buffer[1]<<16)+((uint16_t)rx_buffer[2]<<8)+rx_buffer[3];
|
measurement.value.power = ((uint32_t)rx_buffer[1]<<16)+((uint16_t)rx_buffer[2]<<8)+rx_buffer[3];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -25,11 +25,11 @@ extern volatile bool sensor_pzem_measurement_received;
|
||||||
|
|
||||||
/** measurements offered by electricity meter */
|
/** measurements offered by electricity meter */
|
||||||
enum sensor_pzem_measurement_type_t {
|
enum sensor_pzem_measurement_type_t {
|
||||||
VOLTAGE = 0,
|
SENSOR_PZEM_VOLTAGE = 0,
|
||||||
CURRENT = 1,
|
SENSOR_PZEM_CURRENT = 1,
|
||||||
POWER = 2,
|
SENSOR_PZEM_POWER = 2,
|
||||||
ENERGY = 3,
|
SENSOR_PZEM_ENERGY = 3,
|
||||||
MAX
|
SENSOR_PZEM_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
/** measurement returned by electricity meter */
|
/** measurement returned by electricity meter */
|
||||||
|
|
10
main.c
10
main.c
|
@ -170,7 +170,7 @@ void main(void)
|
||||||
sensor_pzem_setup(); // setup PZEM electricity meter
|
sensor_pzem_setup(); // setup PZEM electricity meter
|
||||||
printf("OK\n");
|
printf("OK\n");
|
||||||
|
|
||||||
sensor_pzem_measurement_request(0xc0a80101, VOLTAGE);
|
sensor_pzem_measurement_request(0xc0a80101, SENSOR_PZEM_VOLTAGE);
|
||||||
|
|
||||||
// main loop
|
// main loop
|
||||||
printf("command input: ready\n");
|
printf("command input: ready\n");
|
||||||
|
@ -212,16 +212,16 @@ void main(void)
|
||||||
struct sensor_pzem_measurement_t measurement = sensor_pzem_measurement_decode(); // decode measurement
|
struct sensor_pzem_measurement_t measurement = sensor_pzem_measurement_decode(); // decode measurement
|
||||||
if (measurement.valid) { // only show valid measurement
|
if (measurement.valid) { // only show valid measurement
|
||||||
switch (measurement.type) {
|
switch (measurement.type) {
|
||||||
case VOLTAGE:
|
case SENSOR_PZEM_VOLTAGE:
|
||||||
printf("voltage: %.01f V\n", measurement.value.voltage);
|
printf("voltage: %.01f V\n", measurement.value.voltage);
|
||||||
break;
|
break;
|
||||||
case CURRENT:
|
case SENSOR_PZEM_CURRENT:
|
||||||
printf("current: %.02f A\n", measurement.value.current);
|
printf("current: %.02f A\n", measurement.value.current);
|
||||||
break;
|
break;
|
||||||
case POWER:
|
case SENSOR_PZEM_POWER:
|
||||||
printf("power: %.00f W\n", measurement.value.power);
|
printf("power: %.00f W\n", measurement.value.power);
|
||||||
break;
|
break;
|
||||||
case ENERGY:
|
case SENSOR_PZEM_ENERGY:
|
||||||
printf("energy: %lu Wh\n", measurement.value.energy);
|
printf("energy: %lu Wh\n", measurement.value.energy);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue