Modbus_RS485_Grundkonfig_Ar.../lib/ModbusSlaveConfigToEEPROM.h
2024-11-01 23:01:34 +01:00

47 lines
1.3 KiB
C++

/*
Insgesamt ermöglicht die ModBusConfig-Klasse das Speichern und Abrufen von Modbus-Konfigurationsdaten (ID und Baudrate) in einem EEPROM.
Dies ist besonders nützlich für Anwendungen, bei denen Konfigurationsdaten zwischen den Stromzyklen erhalten bleiben sollen.
Die Klasse abstrahiert die EEPROM-Operationen und bietet eine benutzerfreundliche Schnittstelle zur Verwaltung von Modbus-Konfigurationen.
*/
#ifndef ModbusSlaveConfigToEEPROM_H
#define ModbusSlaveConfigToEEPROM_H
#include <Arduino.h>
#include <EEPROM.h>
class ModBusConfig{
public:
ModBusConfig(int ID, int BAUDRATE);
void SetModbusID(int ID);
void SetBaudRate(int BAUDRATE);
int GetModbusID();
int GetBaudRate();
private:
int ModBusID;
int ModBusBaudrate;
};
void ModBusConfig::SetModbusID(int BAUDRATE){
EEPROM.write(0,BAUDRATE);
}
void ModBusConfig::SetBaudRate(int BAUDRATE){
// divide Baudrate / 100 - to save it in Eeprom (8Bit 0 - 255)
int dividedBaudrate = BAUDRATE/100;
if ( dividedBaudrate != EEPROM.read(1)){
EEPROM.write(1,dividedBaudrate);
}
}
int ModBusConfig::GetModbusID(){
return EEPROM.read(0);
}
int ModBusConfig::GetBaudRate(){
int Baudrate = EEPROM.read(1)*100;
return Baudrate;
}
#endif