47 lines
1.3 KiB
C++
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 |