42 lines
870 B
C++
42 lines
870 B
C++
#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 |