JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
Файл modbus_sensor.cpp

Работа с Modbus-датчиком JXCT. Подробнее...

#include "modbus_sensor.h"
#include <Arduino.h>
#include <algorithm>
#include "advanced_filters.h"
#include "business_services.h"
#include "calibration_manager.h"
#include "debug.h"
#include "jxct_config_vars.h"
#include "jxct_constants.h"
#include "jxct_device_info.h"
#include "logger.h"
#include "sensor_processing.h"
#include "sensor_types.h"
#include "validation_utils.h"
Граф включаемых заголовочных файлов для modbus_sensor.cpp:

Функции

void testSP3485E ()
 Тестирование работы SP3485E.
 
void setupModbus ()
 Инициализация Modbus и SP3485E.
 
bool validateSensorData (ModbusSensorData &data)
 
bool getCachedData (ModbusSensorData &data)
 
bool readFirmwareVersion ()
 
bool readErrorStatus ()
 
bool testModbusConnection ()
 
void readSensorData ()
 
void preTransmission ()
 Подготовка к передаче данных
 
void postTransmission ()
 Завершение передачи данных
 
static void realSensorTask (void *)
 
void startRealSensorTask ()
 
void printModbusError (uint8_t errNum)
 
void initMovingAverageBuffers (ModbusSensorData &data)
 
void addToMovingAverage (ModbusSensorData &data, const ModbusSensorData &newReading)
 
ModbusSensorData getSensorData ()
 
ModbusMaster & getModbus ()
 
String & getSensorLastError ()
 
ModbusSensorDatagetSensorDataRef ()
 
SensorCachegetSensorCache ()
 

Переменные

ModbusSensorData sensorData
 
SensorCache sensorCache
 

Подробное описание

Работа с Modbus-датчиком JXCT.

Реализация функций и задач для опроса датчика по Modbus RTU, преобразование данных, управление линией передачи.

Функции

◆ testSP3485E()

void testSP3485E ( )

Тестирование работы SP3485E.

Проверяет корректность работы пинов DE и RE:

  1. Устанавливает оба пина в режим OUTPUT
  2. Проверяет переключение HIGH/LOW
  3. Проверяет возможность независимого управления передатчиком и приемником

◆ setupModbus()

void setupModbus ( )

Инициализация Modbus и SP3485E.

Настраивает пины управления SP3485E и инициализирует UART для Modbus. Важно: DE и RE управляются раздельно для лучшего контроля над временем переключения

◆ validateSensorData()

bool validateSensorData ( ModbusSensorData data)

◆ getCachedData()

bool getCachedData ( ModbusSensorData data)

◆ readFirmwareVersion()

bool readFirmwareVersion ( )

◆ readErrorStatus()

bool readErrorStatus ( )

◆ testModbusConnection()

bool testModbusConnection ( )

◆ readSensorData()

void readSensorData ( )

◆ preTransmission()

void preTransmission ( )

Подготовка к передаче данных

Включает передатчик и отключает приемник с необходимой задержкой. Важно: Задержка 50 мкс необходима для стабилизации сигналов на шине RS-485

◆ postTransmission()

void postTransmission ( )

Завершение передачи данных

Выключает передатчик и включает приемник с необходимой задержкой. Важно: Задержка 50 мкс необходима для корректного переключения режимов

◆ realSensorTask()

static void realSensorTask ( void *  )
static

◆ startRealSensorTask()

void startRealSensorTask ( )

◆ printModbusError()

void printModbusError ( uint8_t  errNum)

◆ initMovingAverageBuffers()

void initMovingAverageBuffers ( ModbusSensorData data)

◆ addToMovingAverage()

void addToMovingAverage ( ModbusSensorData data,
const ModbusSensorData newReading 
)

◆ getSensorData()

ModbusSensorData getSensorData ( )

◆ getModbus()

ModbusMaster & getModbus ( )

◆ getSensorLastError()

String & getSensorLastError ( )

◆ getSensorDataRef()

ModbusSensorData & getSensorDataRef ( )

◆ getSensorCache()

SensorCache & getSensorCache ( )

Переменные

◆ sensorData

ModbusSensorData sensorData

◆ sensorCache

SensorCache sensorCache