add set SDM120 configuration
This commit is contained in:
parent
8c9f5afaaf
commit
2b7178284e
@ -117,7 +117,7 @@ void sensor_sdm120_setup(void)
|
||||
gpio_clear(USART_PORT(SENSOR_SDM120_USART), USART_PIN_RX(SENSOR_SDM120_USART)); // pull down to avoid noise when not connected (it will be set low by RS485 chip when RO is enabled)
|
||||
|
||||
// setup USART parameters for electricity meter
|
||||
usart_set_baudrate(USART(SENSOR_SDM120_USART), 2400); // get baud rate by scrolling through the measurements on the electricity meter's screen (default 2400)
|
||||
usart_set_baudrate(USART(SENSOR_SDM120_USART), 9600); // get baud rate by scrolling through the measurements on the electricity meter's screen (default 2400)
|
||||
usart_set_databits(USART(SENSOR_SDM120_USART), 8);
|
||||
usart_set_stopbits(USART(SENSOR_SDM120_USART), USART_STOPBITS_1);
|
||||
usart_set_mode(USART(SENSOR_SDM120_USART), USART_MODE_TX_RX);
|
||||
@ -212,6 +212,14 @@ bool sensor_sdm120_configuration_request(uint8_t meter_id, enum sensor_sdm120_co
|
||||
return sensor_sdm120_transmit_request(meter_id, 0x03, register_holding[type], 0);
|
||||
}
|
||||
|
||||
bool sensor_sdm120_configuration_set(uint8_t meter_id, enum sensor_sdm120_configuration_type_t type, float value)
|
||||
{
|
||||
if (type>=SENSOR_SDM120_CONFIGURATION_MAX) { // invalid type
|
||||
return false;
|
||||
}
|
||||
return sensor_sdm120_transmit_request(meter_id, 0x10, register_holding[type], value);
|
||||
}
|
||||
|
||||
float sensor_sdm120_measurement_decode(void)
|
||||
{
|
||||
float measurement = NAN; // decoded measurement to return (invalid in the beginning)
|
||||
|
@ -64,10 +64,17 @@ void sensor_sdm120_setup(void);
|
||||
bool sensor_sdm120_measurement_request(uint8_t meter_id, enum sensor_sdm120_measurement_type_t type);
|
||||
/** request configuration from electricity meter
|
||||
* @param[in] mater_id electricity meter device ID
|
||||
* @param[in] type configuration: type to request
|
||||
* @param[in] type configuration type to request
|
||||
* @return if transmission started
|
||||
*/
|
||||
bool sensor_sdm120_configuration_request(uint8_t meter_id, enum sensor_sdm120_configuration_type_t type);
|
||||
/** set configuration in electricity meter
|
||||
* @param[in] mater_id electricity meter device ID
|
||||
* @param[in] type configuration type to set
|
||||
* @param[in] value configuration value to set
|
||||
* @return if transmission started
|
||||
*/
|
||||
bool sensor_sdm120_configuration_set(uint8_t meter_id, enum sensor_sdm120_configuration_type_t type, float value);
|
||||
/** decode received measurement
|
||||
* @return decoded measurement or number of registers written, NaN if message has error or no new measurement has been received, infinity if an error or unknown message has been received
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user