|
| void | addRequest (uint32_t token, uint8_t slaveId, uint8_t sensorId, uint8_t functionCode, RequestType type) |
| | Registra una nueva solicitud en el buffer circular.
|
| ModbusRequestInfo * | findRequestByToken (uint32_t token) |
| | Busca una solicitud pendiente por su token.
|
| void | initScheduler () |
| | Inicializa o actualiza la lista de planificación (Scheduler).
|
| void | handleData (ModbusMessage response, uint32_t token) |
| | Callback ejecutado al recibir datos Modbus válidos.
|
| void | handleError (Error error, uint32_t token) |
| | Callback ejecutado al ocurrir un error Modbus.
|
| bool | discoverDeviceSensors (uint8_t deviceId) |
| | Inicia el proceso de descubrimiento para un dispositivo específico.
|
| void | initialDiscoveryTask (void *pvParameters) |
| | Tarea de un solo uso para el descubrimiento inicial de sensores.
|
| void | DataRequestScheduler (void *pvParameters) |
| | Tarea principal del Planificador (Scheduler).
|
| bool | getSensorParams (uint8_t slaveId, uint8_t sensorID, uint16_t &startAddr, uint16_t &numRegs) |
| | Obtiene los parámetros de configuración de un sensor específico.
|
| uint8_t | getRegistersPerChannel (uint8_t slaveId, uint8_t sensorID) |
| | Calcula el número de registros por canal para un sensor.
|
| void | parseAndStoreDiscoveryResponse (const ResponseFormat &response, uint8_t slaveId) |
| | Parsea la respuesta de descubrimiento y actualiza la lista de esclavos.
|
| void | EventManager (void *pvParameters) |
| | Tarea Gestor de Eventos.
|
| static bool | formatAndEnqueueSensorData (const ResponseFormat &response, const ModbusRequestInfo &request, std::vector< uint8_t > &values) |
| | Extrae y formatea los datos de una respuesta Modbus de muestreo.
|
| void | DataFormatter (void *pvParameters) |
| | Tarea Formateador de Datos.
|
| void | DataPrinterTask (void *pvParameters) |
| | Tarea temporal para imprimir los payloads de datos formateados.
|
| std::vector< uint8_t > | construirPayloadUnificado (uint8_t id_mensaje, const std::vector< SensorDataPayload > &collectedPayloads) |
| | Construye un payload unificado a partir de una colección de datos de sensores.
|
|
void | os_getArtEui (u1_t *buf) |
| | Funciones de configuración LMIC (placeholders).
|
|
void | os_getDevEui (u1_t *buf) |
|
void | os_getDevKey (u1_t *buf) |
| void | onEvent (ev_t ev) |
| | Callback de eventos LMIC/LoRaWAN.
|
| void | initLoRa () |
| | Inicializa la pila LMIC y configura LoRaWAN (ABP, US915).
|
| void | tareaLoRa (void *pvParameters) |
| | Tarea dedicada al envío de datos por LoRaWAN.
|
| void | tareaRunLoop (void *pvParameters) |
| | Tarea del runloop LMIC.
|
| void | DataAggregatorTask (void *pvParameters) |
| | Tarea proactiva que recolecta y empaqueta datos de sensores a un ritmo fijo.
|
|
void | setup () |
|
void | loop () |
|
|
ModbusClientRTU | MB |
| | Instancia global del cliente Modbus RTU.
|
|
std::vector< ModbusSlaveParam > | slaveList |
|
constexpr size_t | MAX_REQUESTS = 16 |
| | Tamaño máximo del buffer de solicitudes pendientes.
|
|
ModbusRequestInfo | requestBuffer [MAX_REQUESTS] |
| | Buffer circular de solicitudes.
|
|
size_t | requestHead = 0 |
| | Índice de escritura del buffer circular.
|
|
QueueHandle_t | queueRespuestas |
| | Cola de respuestas Modbus recibidas.
|
|
QueueHandle_t | queueEventos_Peripheral |
| | Colas de eventos hacia el EventManager (periféricos y scheduler).
|
|
QueueHandle_t | queueEventos_Scheduler |
|
QueueHandle_t | queueFragmentos |
| | Cola para mensajes binarios LoRa.
|
|
SemaphoreHandle_t | semaforoEnvioCompleto |
| | Semáforo para sincronizar el fin de un ciclo de envío.
|
|
std::vector< SensorSchedule > | scheduleList |
| | Lista maestra de planificación.
|
|
SemaphoreHandle_t | schedulerMutex |
| | Mutex para proteger el acceso concurrente a scheduleList;.
|
|
std::vector< uint8_t > | dispositivosAConsultar = {1, 2, 3} |
| | Lista predefinida de IDs Modbus a escanear al inicio.
|
|
QueueHandle_t | queueSensorDataPayload |
| | Cola para payloads de sensores procesados.
|
|
const uint8_t | SENSOR_ID_BATERIA = 0 |
| | Asignado al Bit 0 del Activate Byte.
|
|
const uint8_t | SENSOR_ID_VOLTAJE = 1 |
| | Asignado al Bit 1 del Activate Byte.
|
|
const uint8_t | SENSOR_ID_CORRIENTE = 2 |
| | Asignado al Bit 2 del Activate Byte.
|
|
const uint8_t | SENSOR_ID_EXT_START = 3 |
| | Inicio de IDs para sensores externos (Bits 3-7).
|
|
const int | MAX_SENSORES_EXTERNOS = 5 |
| | Cantidad de bits restantes disponibles (3 al 7).
|
| static u1_t | NWKSKEY [16] |
| | Claves ABP y dirección de dispositivo (DEMO).
|
| static u1_t | APPSKEY [16] |
|
static const u4_t | DEVADDR = 0x260C691F |
| const lmic_pinmap | lmic_pins |
| | Mapa de pines para el radio SX127x de la TTGO LoRa32.
|
|
constexpr size_t | LORA_PAYLOAD_MAX = 220 |
Firmware Maestro Modbus RTU sobre LoRaWAN (ESP32/TTGO).
Este sistema gestiona la comunicación RS485 con múltiples esclavos, planifica lecturas periódicas, formatea los datos y los transmite vía LoRaWAN.
- Date
- 2025-12-02