new release
This commit is contained in:
@@ -15,10 +15,10 @@
|
||||
#define MB_PORT_NUM 1
|
||||
#define MB_DEV_SPEED 9600
|
||||
|
||||
// Ajuste os pinos conforme seu hardware
|
||||
#define MB_UART_TXD 21
|
||||
#define MB_UART_RXD 22
|
||||
#define MB_UART_RTS UART_PIN_NO_CHANGE // sem DE/RE
|
||||
// Ajuste os pinos conforme seu hardware (evite GPIO2 para RTS/DE/RE se possível)
|
||||
#define MB_UART_TXD 17
|
||||
#define MB_UART_RXD 16
|
||||
#define MB_UART_RTS 2 // pino DE/RE do transceiver RS-485
|
||||
|
||||
// ===== Timings =====
|
||||
#define UPDATE_INTERVAL (5000 / portTICK_PERIOD_MS)
|
||||
@@ -292,7 +292,6 @@ static void serial_mdb_ea777_task(void *param)
|
||||
}
|
||||
}
|
||||
|
||||
// ============ Init / Start / Stop ============
|
||||
esp_err_t meter_ea777_init(void)
|
||||
{
|
||||
if (is_initialized)
|
||||
@@ -301,14 +300,12 @@ esp_err_t meter_ea777_init(void)
|
||||
return ESP_ERR_INVALID_STATE;
|
||||
}
|
||||
|
||||
// limpa UART se já houver driver
|
||||
if (uart_is_driver_installed(MB_PORT_NUM))
|
||||
{
|
||||
uart_driver_delete(MB_PORT_NUM);
|
||||
ESP_LOGI(TAG, "UART driver deleted");
|
||||
}
|
||||
|
||||
// destruir master anterior (ignora erro se não estiver init)
|
||||
(void)mbc_master_destroy();
|
||||
|
||||
mb_communication_info_t comm = {
|
||||
@@ -320,12 +317,14 @@ esp_err_t meter_ea777_init(void)
|
||||
void *handler = NULL;
|
||||
ESP_ERROR_CHECK(mbc_master_init(MB_PORT_SERIAL_MASTER, &handler));
|
||||
ESP_ERROR_CHECK(mbc_master_setup(&comm));
|
||||
|
||||
// >>> RS-485 half duplex
|
||||
ESP_ERROR_CHECK(uart_set_pin(MB_PORT_NUM,
|
||||
MB_UART_TXD, MB_UART_RXD,
|
||||
UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
|
||||
MB_UART_RTS, UART_PIN_NO_CHANGE));
|
||||
|
||||
ESP_ERROR_CHECK(mbc_master_start());
|
||||
ESP_ERROR_CHECK(uart_set_mode(MB_PORT_NUM, UART_MODE_UART));
|
||||
// ESP_ERROR_CHECK(uart_set_mode(MB_PORT_NUM, UART_MODE_UART));
|
||||
ESP_ERROR_CHECK(uart_set_mode(MB_PORT_NUM, UART_MODE_RS485_HALF_DUPLEX));
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
|
||||
ESP_ERROR_CHECK(mbc_master_set_descriptor(device_parameters_ea777,
|
||||
|
||||
@@ -179,7 +179,7 @@ static void handle_zigbee_frame(const uint8_t *buf, size_t len)
|
||||
}
|
||||
|
||||
// Verifica se todas as 3 fases foram atualizadas
|
||||
if (phase_updated[PHASE_L1] && phase_updated[PHASE_L2] && phase_updated[PHASE_L3])
|
||||
if (phase_updated[PHASE_L1] /*&& phase_updated[PHASE_L2] && phase_updated[PHASE_L3]*/)
|
||||
{
|
||||
meter_zigbee_post_event();
|
||||
memset(phase_updated, 0, sizeof(phase_updated));
|
||||
|
||||
Reference in New Issue
Block a user