From 56b5586c582a89d61cafca600a4d59e4ed3a2613 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 17 Nov 2014 21:57:02 +0100 Subject: [PATCH] more config stuff --- ModbusThermometer.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ModbusThermometer.cpp b/ModbusThermometer.cpp index 73cc305..b401630 100644 --- a/ModbusThermometer.cpp +++ b/ModbusThermometer.cpp @@ -85,6 +85,12 @@ void setup() { modbus_configure(&Serial, MODBUS_BAUD, SERIAL_8N2, MODBUS_ID, MODBUS_TX_ENABLE_PIN, sizeof(modbusHoldingRegisters), (uint16_t*)(&modbusHoldingRegisters)); uptimeSeconds = 0; + + for (uint8_t i = 0; i < NUM_OF_CHANNELS; i++) { + modbusHoldingRegisters.channelVariables[i].calOffset = ads1210[i].calOffset; + modbusHoldingRegisters.channelVariables[i].calFactor = ads1210[i].calFactor; + modbusHoldingRegisters.channelVariables[i].alpha = thermometer[i].alpha; + } } void loop() { @@ -94,13 +100,24 @@ void loop() { modbusHoldingRegisters.channelVariables[i].adcU.in = ads1210[i].u; modbusHoldingRegisters.channelVariables[i].adcR.in = ads1210[i].r; - thermometer[i].exec(ads1210[i].r); modbusHoldingRegisters.channelVariables[i].temperatureRaw.in = thermometer[i].temperatureRaw; modbusHoldingRegisters.channelVariables[i].temperature.in = thermometer[i].temperature; + + if (modbusHoldingRegisters.channelVariables[i].calOffset != ads1210[i].calOffset) { + ads1210[i].calOffset = modbusHoldingRegisters.channelVariables[i].calOffset; + } + if (modbusHoldingRegisters.channelVariables[i].calFactor != ads1210[i].calFactor) { + ads1210[i].calOffset = modbusHoldingRegisters.channelVariables[i].calFactor; + } + if (modbusHoldingRegisters.channelVariables[i].alpha != thermometer[i].alpha) { + thermometer[i].calOffset = modbusHoldingRegisters.channelVariables[i].alpha; + } } modbus_update(); + + if (secondTick.check() == 1) { led.toggle();