#include <EEPROM.h>
const byte addressEEPROM_add_port =0;
struct myStruct { // создаём ярлык myStruct
byte dataBeg = 0;
byte dataLen = 8;
byte frame[10];
};
myStruct LMIC;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
LMIC.frame[0] = 1;
LMIC.frame[1] = 2;
LMIC.frame[2] = 3;
LMIC.frame[3] = 4;
LMIC.frame[4] = 5;
LMIC.frame[5] = 6;
LMIC.frame[6] = 7;
LMIC.frame[7] = 8;
byte d;
d= frame_to_EEPROM(6,50);
frame_to_EEPROM(8,60);
Serial.print("d= frame_to_EEPROM(8,50) = ");Serial.println(d);
for (int i=51; i<=59; i++){
Serial.print("i= "); Serial.print(i); Serial.print(" = "); Serial.print(EEPROM.read(i));
}
Serial.println();
for (int i=61; i<=69; i++){
Serial.print("i= "); Serial.print(i); Serial.print(" = "); Serial.print(EEPROM.read(i));
}
Serial.print("EE0 = "); Serial.println(EEPROM.read(addressEEPROM_add_port));
Serial.print(" EEPROM.read(50)= ");Serial.println(EEPROM.read(50));
Serial.print(" EEPROM.read(60)= ");Serial.println(EEPROM.read(60));
}
void loop() {
// put your main code here, to run repeatedly:
}
byte frame_to_EEPROM(byte size_mess, byte EEPROM_add){ // остановился на том что передаем размер сообщения и адрес. нужно унифицировать работу функции под пароль и под броад каст сообщение.
if (size_mess <= 9) {
EEPROM.put(EEPROM_add, size_mess); //size_mess-1 первый байт - размер.
byte t=EEPROM_add+1;
for (int i = LMIC.dataBeg; i < LMIC.dataBeg + LMIC.dataLen; i++) { // собираем сообщение в ячейки памяти.
EEPROM.put(t, LMIC.frame[i]);
t++;
}
//Считаем кол-во сохраненных команд в EEPROM
EEPROM.put(addressEEPROM_add_port, 0);
for (byte i=50; i<=90; i+=10) {
if (EEPROM.read(i) != 255){
EEPROM.put(addressEEPROM_add_port, EEPROM.read(addressEEPROM_add_port)+1);
}
}
//Считаем кол-во сохраненных команд в EEPROM
return 2; //false
} else {
return 1; //true
}
}