2020-09-30 23:21:46 +03:00
|
|
|
|
//#pragma once
|
|
|
|
|
|
//#include <Arduino.h>
|
|
|
|
|
|
//#include <ModbusMaster.h>
|
|
|
|
|
|
//#include <SoftwareSerial.h>
|
|
|
|
|
|
//
|
|
|
|
|
|
//#include "Class/LineParsing.h"
|
|
|
|
|
|
//#include "Global.h"
|
|
|
|
|
|
//#include "items/SensorConvertingClass.h"
|
|
|
|
|
|
//
|
|
|
|
|
|
//ModbusMaster modbus1;
|
|
|
|
|
|
//SoftwareSerial uart(13, 12); // RX, TX
|
|
|
|
|
|
//
|
|
|
|
|
|
//class SensorModbusClass : public SensorConvertingClass {
|
|
|
|
|
|
// public:
|
|
|
|
|
|
// SensorModbusClass() : SensorConvertingClass(){};
|
|
|
|
|
|
//
|
|
|
|
|
|
// void SensorModbusInit() {
|
|
|
|
|
|
// uart.begin(9600);
|
|
|
|
|
|
// jsonWriteStr(configOptionJson, _key + "_map", _map);
|
|
|
|
|
|
// jsonWriteStr(configOptionJson, _key + "_с", _c);
|
2020-10-20 22:55:45 +03:00
|
|
|
|
// sensorReadingMap10sec += _key + " " + _addr + " " + _reg + ",";
|
|
|
|
|
|
// Serial.println(sensorReadingMap10sec);
|
2020-09-30 23:21:46 +03:00
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// void SensorModbusRead(String key, uint8_t slaveAddress, uint16_t regAddress) {
|
|
|
|
|
|
// int value;
|
|
|
|
|
|
//
|
|
|
|
|
|
// modbus1.begin(slaveAddress, uart);
|
|
|
|
|
|
// uint16_t reqisterValue = modbus1.readHoldingRegisters(regAddress, 1);
|
|
|
|
|
|
// if (getResultMsg(&modbus1, reqisterValue)) {
|
|
|
|
|
|
// reqisterValue = modbus1.getResponseBuffer(0);
|
|
|
|
|
|
// value = reqisterValue;
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// value = NULL;
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// int valueFl = this->correction(key, value);
|
|
|
|
|
|
// eventGen(key, "");
|
|
|
|
|
|
// jsonWriteStr(configLiveJson, key, String(valueFl));
|
2020-10-02 01:14:45 +03:00
|
|
|
|
// publishStatus(key, String(valueFl));
|
2020-10-20 22:55:45 +03:00
|
|
|
|
// SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
|
2020-09-30 23:21:46 +03:00
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// bool getResultMsg(ModbusMaster* modbus1, uint16_t result) {
|
|
|
|
|
|
// String tmpstr;
|
|
|
|
|
|
// switch (result) {
|
|
|
|
|
|
// case modbus1->ku8MBSuccess:
|
|
|
|
|
|
// return true;
|
|
|
|
|
|
// tmpstr += "Ok";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBIllegalFunction:
|
|
|
|
|
|
// tmpstr += "Illegal Function";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBIllegalDataAddress:
|
|
|
|
|
|
// tmpstr += "Illegal Data Address";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBIllegalDataValue:
|
|
|
|
|
|
// tmpstr += "Illegal Data Value";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBSlaveDeviceFailure:
|
|
|
|
|
|
// tmpstr += "Slave Device Failure";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBInvalidSlaveID:
|
|
|
|
|
|
// tmpstr += "Invalid Slave ID";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBInvalidFunction:
|
|
|
|
|
|
// tmpstr += "Invalid Function";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBResponseTimedOut:
|
|
|
|
|
|
// tmpstr += "Response Timed Out";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// case modbus1->ku8MBInvalidCRC:
|
|
|
|
|
|
// tmpstr += "Invalid CRC";
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// default:
|
|
|
|
|
|
// tmpstr += "Unknown error: " + String(result);
|
|
|
|
|
|
// break;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// SerialPrint("I", "Modbus", tmpstr);
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
// }
|
|
|
|
|
|
//};
|
|
|
|
|
|
//extern SensorModbusClass mySensorModbus;
|