Merge pull request #7 from PlxEV/codex/melhorar-módulo-meter-e-integrar-com-evse
Integrate new meter module
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
#include "evse_api.h"
|
||||
#include "ocpp.h"
|
||||
#include "board_config.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "socket_lock.h"
|
||||
#include "proximity.h"
|
||||
//#include "modbus.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "evse_config.h"
|
||||
#include "evse_api.h"
|
||||
#include "pilot.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "ac_relay.h"
|
||||
#include "board_config.h"
|
||||
#include "socket_lock.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "proximity.h"
|
||||
#include "rcm.h"
|
||||
#include "evse_state.h"
|
||||
|
||||
@@ -2,8 +2,9 @@ idf_component_register(
|
||||
SRCS
|
||||
"src/ade7758.c"
|
||||
"src/meter.c"
|
||||
"src/energy_meter.c"
|
||||
INCLUDE_DIRS
|
||||
"include"
|
||||
REQUIRES
|
||||
driver evse
|
||||
driver evse nvs_flash esp_timer serial_mdb
|
||||
)
|
||||
|
||||
@@ -7,6 +7,16 @@ extern "C" {
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "esp_err.h"
|
||||
|
||||
/**
|
||||
* @brief Grid energy meter model
|
||||
*/
|
||||
typedef enum {
|
||||
ENERGY_METER_NONE,
|
||||
ENERGY_METER_ORNO_515,
|
||||
ENERGY_METER_ORNO_517,
|
||||
} meter_model_t;
|
||||
|
||||
/**
|
||||
* @brief Estrutura com os dados de medição trifásica.
|
||||
@@ -65,6 +75,32 @@ MeterData meter_getData(void);
|
||||
*/
|
||||
bool meter_is_running(void);
|
||||
|
||||
// High level energy meter API
|
||||
void energy_meter_init(void);
|
||||
bool meter_get_state(void);
|
||||
esp_err_t meter_set_state(bool _state);
|
||||
meter_model_t meter_get_model(void);
|
||||
esp_err_t meter_set_model(meter_model_t mode);
|
||||
void energy_meter_start_session(void);
|
||||
void energy_meter_stop_session(void);
|
||||
void energy_meter_process(bool charging, uint16_t charging_current);
|
||||
uint32_t energy_meter_get_power(void);
|
||||
uint32_t energy_meter_get_session_time(void);
|
||||
uint32_t energy_meter_get_charging_time(void);
|
||||
uint32_t energy_meter_get_consumption(void);
|
||||
void energy_meter_get_voltage(float *voltage);
|
||||
float energy_meter_get_l1_voltage(void);
|
||||
float energy_meter_get_l2_voltage(void);
|
||||
float energy_meter_get_l3_voltage(void);
|
||||
void energy_meter_get_current(float *current);
|
||||
float energy_meter_get_l1_current(void);
|
||||
float energy_meter_get_l2_current(void);
|
||||
float energy_meter_get_l3_current(void);
|
||||
const char *meter_model_to_str(meter_model_t mode);
|
||||
meter_model_t meter_str_to_model(const char *str);
|
||||
const char *meter_state_to_str(bool state);
|
||||
bool meter_str_to_state(const char *str);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "esp_timer.h"
|
||||
#include "nvs.h"
|
||||
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "serial_mdb.h"
|
||||
|
||||
@@ -231,3 +230,8 @@ meter_model_t meter_str_to_model(const char *str)
|
||||
|
||||
return ENERGY_METER_NONE;
|
||||
}
|
||||
|
||||
bool meter_str_to_state(const char *str)
|
||||
{
|
||||
return strcmp(str, "CONNECTED") == 0;
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "modbus.h"
|
||||
#include "evse_api.h"
|
||||
#include "evse_error.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "socket_lock.h"
|
||||
#include "temp_sensor.h"
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ set(srcs
|
||||
"src/pilot.c"
|
||||
"src/proximity.c"
|
||||
"src/ac_relay.c"
|
||||
"src/energy_meter.c"
|
||||
"src/socket_lock.c"
|
||||
"src/rcm.c"
|
||||
"src/aux_io.c"
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
#ifndef ENERGY_METER_H_
|
||||
#define ENERGY_METER_H_
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
|
||||
/**
|
||||
* @brief Grid energy meter model
|
||||
*
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ENERGY_METER_NONE,
|
||||
ENERGY_METER_ORNO_515,
|
||||
ENERGY_METER_ORNO_517,
|
||||
} meter_model_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize energy meter
|
||||
*
|
||||
*/
|
||||
void energy_meter_init(void);
|
||||
|
||||
/**
|
||||
* @brief Get state of energy meter
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
bool meter_get_state(void);
|
||||
|
||||
/**
|
||||
* @brief Get mode of energy meter, stored in NVS
|
||||
*
|
||||
* @return meter_model_t
|
||||
*/
|
||||
meter_model_t meter_get_model(void);
|
||||
|
||||
/**
|
||||
* @brief Set mode of energy meter, stored in NVS
|
||||
*
|
||||
* @param mode
|
||||
* @return esp_err_t
|
||||
*/
|
||||
esp_err_t meter_set_model(meter_model_t mode);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Start energy meter session, if not started
|
||||
*
|
||||
*/
|
||||
void energy_meter_start_session(void);
|
||||
|
||||
/**
|
||||
* @brief Stop energy meter session, if not stopped
|
||||
*
|
||||
*/
|
||||
void energy_meter_stop_session(void);
|
||||
|
||||
/**
|
||||
* @brief Process energy meter
|
||||
*
|
||||
* @param charging
|
||||
* @param charging_current
|
||||
*/
|
||||
void energy_meter_process(bool charging, uint16_t charging_current);
|
||||
|
||||
/**
|
||||
* @brief Get session actual power
|
||||
*
|
||||
* @return Power in W
|
||||
*/
|
||||
uint32_t energy_meter_get_power(void);
|
||||
|
||||
/**
|
||||
* @brief Get session time
|
||||
*
|
||||
* @return Time in s
|
||||
*/
|
||||
uint32_t energy_meter_get_session_time(void);
|
||||
|
||||
/**
|
||||
* @brief Get charging time
|
||||
*
|
||||
* @return Time in s
|
||||
*/
|
||||
uint32_t energy_meter_get_charging_time(void);
|
||||
|
||||
/**
|
||||
* @brief Get session consumption
|
||||
*
|
||||
* @return Consumption in Wh
|
||||
*/
|
||||
uint32_t energy_meter_get_consumption(void);
|
||||
|
||||
/**
|
||||
* @brief After energy_meter_process, get current measured voltage
|
||||
*
|
||||
* @param voltage Output array of 3 items, values in V
|
||||
*/
|
||||
void energy_meter_get_voltage(float *voltage);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured voltage on L1
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l1_voltage(void);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured voltage on L2
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l2_voltage(void);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured voltage on L3
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l3_voltage(void);
|
||||
|
||||
/**
|
||||
* @brief After energy_meter_process, get current measured current
|
||||
*
|
||||
* @param voltage Output array of 3 items, values in A
|
||||
*/
|
||||
void energy_meter_get_current(float *current);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured current on L1
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l1_current(void);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured current on L2
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l2_current(void);
|
||||
|
||||
/**
|
||||
* @brief Cet current measured current on L3
|
||||
*
|
||||
* @return Voltage in V
|
||||
*/
|
||||
float energy_meter_get_l3_current(void);
|
||||
|
||||
/**
|
||||
* @brief Serialize to string
|
||||
*
|
||||
* @param mode
|
||||
* @return const char*
|
||||
*/
|
||||
const char *meter_model_to_str(meter_model_t mode);
|
||||
|
||||
/**
|
||||
* @brief Parse from string
|
||||
*
|
||||
* @param str
|
||||
* @return meter_model_t
|
||||
*/
|
||||
meter_model_t meter_str_to_model(const char *str);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Serialize to string
|
||||
*
|
||||
* @param mode
|
||||
* @return const char*
|
||||
*/
|
||||
const char *meter_state_to_str(bool state);
|
||||
|
||||
|
||||
#endif /* ENERGY_METER_H_ */
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "ac_relay.h"
|
||||
#include "socket_lock.h"
|
||||
#include "rcm.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
#include "aux_io.h"
|
||||
#include "ntc_sensor.h"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "sdkconfig.h"
|
||||
#include "evse_api.h"
|
||||
#include "currentshaper.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
|
||||
#define TXD_PIN (GPIO_NUM_17)
|
||||
#define RXD_PIN (GPIO_NUM_16)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "sdkconfig.h"
|
||||
#include "evse_api.h"
|
||||
#include "currentshaper.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
|
||||
#define TXD_PIN (GPIO_NUM_17)
|
||||
#define RXD_PIN (GPIO_NUM_16)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "serial_mt.h"
|
||||
#include "evse_api.h"
|
||||
#include "currentshaper.h"
|
||||
#include "energy_meter.h"
|
||||
#include "meter.h"
|
||||
//#include "app_main.h"
|
||||
//#include "sync_master.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user