new release
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
#include "meter_manager.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
#include "meter_ade7758.h"
|
||||
#include "meter_orno513.h"
|
||||
#include "meter_orno516.h"
|
||||
#include "meter_orno526.h"
|
||||
#include "meter_dts6619.h"
|
||||
#include "meter_dds661.h"
|
||||
#include "meter_zigbee.h"
|
||||
#include "meter_ea777.h"
|
||||
|
||||
#include "nvs_flash.h"
|
||||
#include "nvs.h"
|
||||
#include <string.h>
|
||||
#include "network_events.h"
|
||||
|
||||
|
||||
static const char *TAG = "meter_manager";
|
||||
|
||||
// Tipos de medidores EVSE e GRID
|
||||
@@ -20,48 +25,53 @@ static meter_type_t meter_grid_type = METER_TYPE_NONE;
|
||||
#define NVS_EVSE_MODEL "evse_model"
|
||||
#define NVS_GRID_MODEL "grid_model"
|
||||
|
||||
static void meter_manager_network_event_handler(void *arg, esp_event_base_t base, int32_t event_id, void *data)
|
||||
{
|
||||
if (base != NETWORK_EVENTS)
|
||||
return;
|
||||
|
||||
static void meter_manager_network_event_handler(void* arg, esp_event_base_t base, int32_t event_id, void* data){
|
||||
switch (event_id)
|
||||
{
|
||||
case NETWORK_EVENT_AP_STARTED:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_AP_STARTED, parando medidor de grid");
|
||||
// meter_manager_grid_stop();
|
||||
break;
|
||||
|
||||
if (base != NETWORK_EVENTS) return;
|
||||
case NETWORK_EVENT_AP_STOP:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_AP_STOP, reiniciando medidor de grid");
|
||||
// meter_manager_grid_start();
|
||||
break;
|
||||
|
||||
switch (event_id) {
|
||||
case NETWORK_EVENT_AP_STARTED:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_AP_STARTED, parando medidor de grid");
|
||||
meter_manager_grid_stop();
|
||||
break;
|
||||
case NETWORK_EVENT_STA_GOT_IP:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_STA_GOT_IP");
|
||||
// opcional: reiniciar ou logar
|
||||
break;
|
||||
|
||||
case NETWORK_EVENT_AP_STOP:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_AP_STOP, reiniciando medidor de grid");
|
||||
meter_manager_grid_start();
|
||||
break;
|
||||
|
||||
case NETWORK_EVENT_STA_GOT_IP:
|
||||
ESP_LOGI(TAG, "Recebido NETWORK_EVENT_STA_GOT_IP");
|
||||
// opcional: reiniciar ou logar
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Função unificada para ler ou inicializar um modelo de medidor
|
||||
static esp_err_t load_or_init_meter_model(const char *key, meter_type_t *type) {
|
||||
static esp_err_t load_or_init_meter_model(const char *key, meter_type_t *type)
|
||||
{
|
||||
nvs_handle_t handle;
|
||||
esp_err_t err = nvs_open(NVS_NAMESPACE, NVS_READWRITE, &handle);
|
||||
if (err != ESP_OK) {
|
||||
if (err != ESP_OK)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to open NVS handle for %s: %s", key, esp_err_to_name(err));
|
||||
return err;
|
||||
}
|
||||
|
||||
uint8_t value = 0;
|
||||
err = nvs_get_u8(handle, key, &value);
|
||||
if (err == ESP_OK && value <= METER_TYPE_TRIF_ZIGBEE) {
|
||||
if (err == ESP_OK && value < 255)
|
||||
{
|
||||
*type = (meter_type_t)value;
|
||||
ESP_LOGI(TAG, "Loaded meter type %d from NVS key '%s'", value, key);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
*type = METER_TYPE_NONE;
|
||||
nvs_set_u8(handle, key, *type);
|
||||
nvs_commit(handle);
|
||||
@@ -72,19 +82,24 @@ static esp_err_t load_or_init_meter_model(const char *key, meter_type_t *type) {
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
static esp_err_t write_meter_model_to_nvs(const char *key, meter_type_t meter_type) {
|
||||
static esp_err_t write_meter_model_to_nvs(const char *key, meter_type_t meter_type)
|
||||
{
|
||||
nvs_handle_t handle;
|
||||
esp_err_t err = nvs_open(NVS_NAMESPACE, NVS_READWRITE, &handle);
|
||||
if (err != ESP_OK) {
|
||||
if (err != ESP_OK)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to open NVS handle for writing");
|
||||
return err;
|
||||
}
|
||||
|
||||
err = nvs_set_u8(handle, key, (uint8_t)meter_type);
|
||||
if (err == ESP_OK) {
|
||||
if (err == ESP_OK)
|
||||
{
|
||||
err = nvs_commit(handle);
|
||||
ESP_LOGI(TAG, "Saved meter type %d to NVS key '%s'", meter_type, key);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to write meter type to NVS key '%s'", key);
|
||||
}
|
||||
|
||||
@@ -92,7 +107,6 @@ static esp_err_t write_meter_model_to_nvs(const char *key, meter_type_t meter_ty
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Initializes the meter manager system.
|
||||
*
|
||||
@@ -102,16 +116,18 @@ static esp_err_t write_meter_model_to_nvs(const char *key, meter_type_t meter_ty
|
||||
*
|
||||
* @return esp_err_t ESP_OK on success, or an error code.
|
||||
*/
|
||||
esp_err_t meter_manager_init(void) {
|
||||
esp_err_t meter_manager_init(void)
|
||||
{
|
||||
esp_err_t err;
|
||||
|
||||
// Initialize EVSE meter
|
||||
//err = meter_manager_evse_init();
|
||||
//if (err != ESP_OK) return err;
|
||||
// Initialize EVSE meter (habilite quando quiser)
|
||||
// err = meter_manager_evse_init();
|
||||
// if (err != ESP_OK) return err;
|
||||
|
||||
// Initialize GRID meter
|
||||
err = meter_manager_grid_init();
|
||||
if (err != ESP_OK) return err;
|
||||
if (err != ESP_OK)
|
||||
return err;
|
||||
|
||||
// Register handler for custom network events
|
||||
ESP_LOGI(TAG, "Registering network event handler");
|
||||
@@ -121,7 +137,6 @@ esp_err_t meter_manager_init(void) {
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Starts all configured meters (EVSE and GRID).
|
||||
*
|
||||
@@ -130,21 +145,22 @@ esp_err_t meter_manager_init(void) {
|
||||
*
|
||||
* @return esp_err_t ESP_OK on success, or an error code from one of the start calls.
|
||||
*/
|
||||
esp_err_t meter_manager_start(void) {
|
||||
esp_err_t meter_manager_start(void)
|
||||
{
|
||||
esp_err_t err;
|
||||
|
||||
// Start EVSE meter
|
||||
//err = meter_manager_evse_start();
|
||||
//if (err != ESP_OK) return err;
|
||||
// Start EVSE meter (habilite quando quiser)
|
||||
// err = meter_manager_evse_start();
|
||||
// if (err != ESP_OK) return err;
|
||||
|
||||
// Start GRID meter
|
||||
err = meter_manager_grid_start();
|
||||
if (err != ESP_OK) return err;
|
||||
if (err != ESP_OK)
|
||||
return err;
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Stops all meters and unregisters event handlers.
|
||||
*
|
||||
@@ -153,153 +169,307 @@ esp_err_t meter_manager_start(void) {
|
||||
*
|
||||
* @return esp_err_t ESP_OK on success, or an error code.
|
||||
*/
|
||||
esp_err_t meter_manager_stop(void) {
|
||||
esp_err_t meter_manager_stop(void)
|
||||
{
|
||||
esp_err_t err;
|
||||
|
||||
// Stop EVSE meter
|
||||
//err = meter_manager_evse_stop();
|
||||
//if (err != ESP_OK) return err;
|
||||
// err = meter_manager_evse_stop();
|
||||
// if (err != ESP_OK) return err;
|
||||
|
||||
// Stop GRID meter
|
||||
err = meter_manager_grid_stop();
|
||||
if (err != ESP_OK) return err;
|
||||
if (err != ESP_OK)
|
||||
return err;
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
// ---------- EVSE ----------
|
||||
|
||||
|
||||
|
||||
// Função para inicializar o medidor EVSE
|
||||
esp_err_t meter_manager_evse_init() {
|
||||
esp_err_t meter_manager_evse_init()
|
||||
{
|
||||
esp_err_t err = load_or_init_meter_model(NVS_EVSE_MODEL, &meter_evse_type);
|
||||
if (err != ESP_OK) return err;
|
||||
if (err != ESP_OK)
|
||||
return err;
|
||||
|
||||
ESP_LOGI(TAG, "Initializing EVSE meter of type %s", meter_type_to_str(meter_evse_type));
|
||||
|
||||
switch (meter_evse_type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: return meter_ade7758_init();
|
||||
case METER_TYPE_ORNO513: return meter_orno513_init();
|
||||
case METER_TYPE_ORNO516: return meter_orno516_init();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: return meter_zigbee_init();
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
switch (meter_evse_type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
return meter_ade7758_init();
|
||||
case METER_TYPE_ORNO513:
|
||||
return meter_orno513_init();
|
||||
case METER_TYPE_ORNO516:
|
||||
return meter_orno516_init();
|
||||
case METER_TYPE_ORNO526:
|
||||
return meter_orno526_init();
|
||||
case METER_TYPE_DTS6619:
|
||||
return meter_dts6619_init();
|
||||
case METER_TYPE_DDS661:
|
||||
return meter_dds661_init();
|
||||
case METER_TYPE_EA777:
|
||||
return meter_ea777_init();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
return meter_zigbee_init();
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_init() {
|
||||
esp_err_t err = load_or_init_meter_model(NVS_GRID_MODEL, &meter_grid_type);
|
||||
if (err != ESP_OK) return err;
|
||||
|
||||
ESP_LOGI(TAG, "Initializing GRID meter of type %s", meter_type_to_str(meter_grid_type));
|
||||
|
||||
switch (meter_grid_type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: return meter_ade7758_init();
|
||||
case METER_TYPE_ORNO513: return meter_orno513_init();
|
||||
case METER_TYPE_ORNO516: return meter_orno516_init();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: return meter_zigbee_init();
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
esp_err_t meter_manager_evse_start()
|
||||
{
|
||||
meter_type_t type = meter_manager_evse_get_model();
|
||||
switch (type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
return meter_ade7758_start();
|
||||
case METER_TYPE_ORNO513:
|
||||
return meter_orno513_start();
|
||||
case METER_TYPE_ORNO516:
|
||||
return meter_orno516_start();
|
||||
case METER_TYPE_ORNO526:
|
||||
return meter_orno526_start();
|
||||
case METER_TYPE_DTS6619:
|
||||
return meter_dts6619_start();
|
||||
case METER_TYPE_DDS661:
|
||||
return meter_dds661_start();
|
||||
case METER_TYPE_EA777:
|
||||
return meter_ea777_start();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
return meter_zigbee_start();
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_start() {
|
||||
meter_type_t type = meter_manager_grid_get_model();
|
||||
switch (type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: return meter_ade7758_start();
|
||||
case METER_TYPE_ORNO513: return meter_orno513_start();
|
||||
case METER_TYPE_ORNO516: return meter_orno516_start();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: return meter_zigbee_start();
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_stop(void) {
|
||||
meter_type_t type = meter_manager_grid_get_model();
|
||||
switch (type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: meter_ade7758_stop(); break;
|
||||
case METER_TYPE_ORNO513: meter_orno513_stop(); break;
|
||||
case METER_TYPE_ORNO516: meter_orno516_stop(); break;
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: meter_zigbee_stop(); break;
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
esp_err_t meter_manager_evse_stop(void)
|
||||
{
|
||||
meter_type_t type = meter_manager_evse_get_model();
|
||||
switch (type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
meter_ade7758_stop();
|
||||
break;
|
||||
case METER_TYPE_ORNO513:
|
||||
meter_orno513_stop();
|
||||
break;
|
||||
case METER_TYPE_ORNO516:
|
||||
meter_orno516_stop();
|
||||
break;
|
||||
case METER_TYPE_ORNO526:
|
||||
meter_orno526_stop();
|
||||
break;
|
||||
case METER_TYPE_DTS6619:
|
||||
meter_dts6619_stop();
|
||||
break;
|
||||
case METER_TYPE_DDS661:
|
||||
meter_dds661_stop();
|
||||
break;
|
||||
case METER_TYPE_EA777:
|
||||
meter_ea777_stop();
|
||||
break;
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
meter_zigbee_stop();
|
||||
break;
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
// ---------- GRID ----------
|
||||
|
||||
esp_err_t meter_manager_evse_set_model(meter_type_t meter_type) {
|
||||
esp_err_t meter_manager_grid_init()
|
||||
{
|
||||
esp_err_t err = load_or_init_meter_model(NVS_GRID_MODEL, &meter_grid_type);
|
||||
if (err != ESP_OK)
|
||||
return err;
|
||||
|
||||
ESP_LOGI(TAG, "Initializing GRID meter of type %s", meter_type_to_str(meter_grid_type));
|
||||
|
||||
switch (meter_grid_type) // corrigido: ORNO-513 -> driver orno513
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
return meter_ade7758_init();
|
||||
case METER_TYPE_ORNO513:
|
||||
return meter_orno513_init();
|
||||
case METER_TYPE_ORNO516:
|
||||
return meter_orno516_init();
|
||||
case METER_TYPE_ORNO526:
|
||||
return meter_orno526_init();
|
||||
case METER_TYPE_DTS6619:
|
||||
return meter_dts6619_init();
|
||||
case METER_TYPE_DDS661:
|
||||
return meter_dds661_init();
|
||||
case METER_TYPE_EA777:
|
||||
return meter_ea777_init();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
return meter_zigbee_init();
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_start()
|
||||
{
|
||||
meter_type_t type = meter_manager_grid_get_model();
|
||||
switch (type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
return meter_ade7758_start();
|
||||
case METER_TYPE_ORNO513:
|
||||
return meter_orno513_start(); // corrigido
|
||||
case METER_TYPE_ORNO516:
|
||||
return meter_orno516_start();
|
||||
case METER_TYPE_ORNO526:
|
||||
return meter_orno526_start();
|
||||
case METER_TYPE_DTS6619:
|
||||
return meter_dts6619_start();
|
||||
case METER_TYPE_DDS661:
|
||||
return meter_dds661_start();
|
||||
case METER_TYPE_EA777:
|
||||
return meter_ea777_start();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
return meter_zigbee_start();
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_stop(void)
|
||||
{
|
||||
meter_type_t type = meter_manager_grid_get_model();
|
||||
switch (type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return ESP_OK;
|
||||
case METER_TYPE_ADE7758:
|
||||
meter_ade7758_stop();
|
||||
break;
|
||||
case METER_TYPE_ORNO513:
|
||||
meter_orno513_stop(); // corrigido
|
||||
break;
|
||||
case METER_TYPE_ORNO516:
|
||||
meter_orno516_stop();
|
||||
break;
|
||||
case METER_TYPE_ORNO526:
|
||||
meter_orno526_stop();
|
||||
break;
|
||||
case METER_TYPE_DTS6619:
|
||||
meter_dts6619_stop();
|
||||
break;
|
||||
case METER_TYPE_DDS661:
|
||||
meter_dds661_stop();
|
||||
break;
|
||||
case METER_TYPE_EA777:
|
||||
meter_ea777_stop();
|
||||
break;
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
meter_zigbee_stop();
|
||||
break;
|
||||
default:
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
// ---------- Utilidades ----------
|
||||
|
||||
esp_err_t meter_manager_evse_set_model(meter_type_t meter_type)
|
||||
{
|
||||
meter_evse_type = meter_type;
|
||||
return write_meter_model_to_nvs(NVS_EVSE_MODEL, meter_evse_type);
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_grid_set_model(meter_type_t meter_type) {
|
||||
esp_err_t meter_manager_grid_set_model(meter_type_t meter_type)
|
||||
{
|
||||
meter_grid_type = meter_type;
|
||||
return write_meter_model_to_nvs(NVS_GRID_MODEL, meter_grid_type);
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_evse_start() {
|
||||
meter_type_t type = meter_manager_evse_get_model();
|
||||
switch (type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: return meter_ade7758_start();
|
||||
case METER_TYPE_ORNO513: return meter_orno513_start();
|
||||
case METER_TYPE_ORNO516: return meter_orno516_start();
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: return meter_zigbee_start();
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t meter_manager_evse_stop(void) {
|
||||
meter_type_t type = meter_manager_evse_get_model();
|
||||
switch (type) {
|
||||
case METER_TYPE_NONE: return ESP_OK;
|
||||
case METER_TYPE_ADE7758: meter_ade7758_stop(); break;
|
||||
case METER_TYPE_ORNO513: meter_orno513_stop(); break;
|
||||
case METER_TYPE_ORNO516: meter_orno516_stop(); break;
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
case METER_TYPE_TRIF_ZIGBEE: meter_zigbee_stop(); break;
|
||||
default: return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
bool meter_manager_evse_is_enabled(void) {
|
||||
bool meter_manager_evse_is_enabled(void)
|
||||
{
|
||||
return meter_manager_evse_get_model() != METER_TYPE_NONE;
|
||||
}
|
||||
|
||||
meter_type_t meter_manager_evse_get_model(void) {
|
||||
meter_type_t meter_manager_evse_get_model(void)
|
||||
{
|
||||
return meter_evse_type;
|
||||
}
|
||||
|
||||
meter_type_t meter_manager_grid_get_model(void) {
|
||||
meter_type_t meter_manager_grid_get_model(void)
|
||||
{
|
||||
return meter_grid_type;
|
||||
}
|
||||
|
||||
const char* meter_type_to_str(meter_type_t type) {
|
||||
switch (type) {
|
||||
case METER_TYPE_NONE: return "NENHUM";
|
||||
case METER_TYPE_ADE7758: return "IC ADE";
|
||||
case METER_TYPE_ORNO513: return "ORNO-513";
|
||||
case METER_TYPE_ORNO516: return "ORNO-516";
|
||||
case METER_TYPE_MONO_ZIGBEE: return "MONO-ZIGBEE";
|
||||
case METER_TYPE_TRIF_ZIGBEE: return "TRIF-ZIGBEE";
|
||||
default: return "NENHUM";
|
||||
const char *meter_type_to_str(meter_type_t type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case METER_TYPE_NONE:
|
||||
return "NENHUM";
|
||||
case METER_TYPE_ADE7758:
|
||||
return "IC ADE";
|
||||
case METER_TYPE_ORNO513:
|
||||
return "ORNO-513";
|
||||
case METER_TYPE_ORNO516:
|
||||
return "ORNO-516";
|
||||
case METER_TYPE_ORNO526:
|
||||
return "ORNO-526";
|
||||
case METER_TYPE_DTS6619:
|
||||
return "DTS-6619";
|
||||
case METER_TYPE_DDS661:
|
||||
return "DDS-661";
|
||||
case METER_TYPE_MONO_ZIGBEE:
|
||||
return "MONO-ZIGBEE";
|
||||
case METER_TYPE_TRIF_ZIGBEE:
|
||||
return "TRIF-ZIGBEE";
|
||||
case METER_TYPE_EA777:
|
||||
return "EA-777";
|
||||
default:
|
||||
return "NENHUM";
|
||||
}
|
||||
}
|
||||
|
||||
meter_type_t string_to_meter_type(const char *str) {
|
||||
if (!str) return METER_TYPE_NONE;
|
||||
if (strcmp(str, "IC ADE") == 0) return METER_TYPE_ADE7758;
|
||||
if (strcmp(str, "ORNO-513") == 0) return METER_TYPE_ORNO513;
|
||||
if (strcmp(str, "ORNO-516") == 0) return METER_TYPE_ORNO516;
|
||||
if (strcmp(str, "MONO-ZIGBEE") == 0) return METER_TYPE_MONO_ZIGBEE;
|
||||
if (strcmp(str, "TRIF-ZIGBEE") == 0) return METER_TYPE_TRIF_ZIGBEE;
|
||||
meter_type_t string_to_meter_type(const char *str)
|
||||
{
|
||||
if (!str)
|
||||
return METER_TYPE_NONE;
|
||||
if (strcmp(str, "IC ADE") == 0)
|
||||
return METER_TYPE_ADE7758;
|
||||
if (strcmp(str, "ORNO-513") == 0)
|
||||
return METER_TYPE_ORNO513;
|
||||
if (strcmp(str, "ORNO-516") == 0)
|
||||
return METER_TYPE_ORNO516;
|
||||
if (strcmp(str, "ORNO-526") == 0)
|
||||
return METER_TYPE_ORNO526;
|
||||
if (strcmp(str, "DTS-6619") == 0)
|
||||
return METER_TYPE_DTS6619;
|
||||
if (strcmp(str, "DDS-661") == 0)
|
||||
return METER_TYPE_DDS661;
|
||||
if (strcmp(str, "MONO-ZIGBEE") == 0)
|
||||
return METER_TYPE_MONO_ZIGBEE;
|
||||
if (strcmp(str, "TRIF-ZIGBEE") == 0)
|
||||
return METER_TYPE_TRIF_ZIGBEE;
|
||||
if (strcmp(str, "EA-777") == 0)
|
||||
return METER_TYPE_EA777;
|
||||
return METER_TYPE_NONE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user