mirror of
https://github.com/0015/ThatProject.git
synced 2026-01-13 01:37:43 +03:00
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
#include "VersionCont.h"
|
|
#include <EEPROM.h>
|
|
#define EEPROM_SIZE 1
|
|
|
|
VersionCont::VersionCont() {
|
|
this->loadVersion();
|
|
hasNewFirmware = false;
|
|
}
|
|
|
|
int VersionCont::getCurrentVersion() {
|
|
return firmwareVersion;
|
|
}
|
|
|
|
void VersionCont::loadVersion() {
|
|
EEPROM.begin(EEPROM_SIZE);
|
|
firmwareVersion = EEPROM.read(0);
|
|
|
|
if (firmwareVersion >= 255 || firmwareVersion == 0) {
|
|
firmwareVersion = 1;
|
|
this->saveVersion(firmwareVersion);
|
|
}
|
|
}
|
|
|
|
void VersionCont::saveVersion(int buildNum) {
|
|
if (buildNum > 255) buildNum = 255;
|
|
|
|
EEPROM.write(0, buildNum);
|
|
EEPROM.commit();
|
|
}
|
|
|
|
void VersionCont::setNewFirmware(Firmware firmware) {
|
|
newFirmware = firmware;
|
|
|
|
if (newFirmware.build_num != -1) {
|
|
Serial.printf("buildNum: %d\n", newFirmware.build_num);
|
|
Serial.printf("fileSize: %d\n", newFirmware.file_size);
|
|
Serial.printf("MD5Checksum: %s\n", newFirmware.md5_checksum.c_str());
|
|
Serial.printf("build_date: %s\n", newFirmware.build_date.c_str());
|
|
Serial.printf("company: %s\n", newFirmware.company.c_str());
|
|
Serial.printf("server_file_path: %s\n", newFirmware.server_file_path.c_str());
|
|
|
|
if (firmwareVersion < newFirmware.build_num) {
|
|
hasNewFirmware = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool VersionCont::hasNewUpdate() {
|
|
return hasNewFirmware;
|
|
}
|
|
|
|
bool VersionCont::md5CompareTo(String checksum) {
|
|
return newFirmware.md5_checksum == checksum;
|
|
}
|
|
|
|
bool VersionCont::fileSizeCompareTo(int fileSize) {
|
|
return newFirmware.file_size == fileSize;
|
|
}
|
|
|
|
int VersionCont::newFirmwareVersion() {
|
|
return newFirmware.build_num;
|
|
}
|
|
|
|
String VersionCont::getCPName() {
|
|
return newFirmware.company != NULL ? newFirmware.company : "";
|
|
}
|
|
|
|
String VersionCont::getFirmwareServerPath() {
|
|
return newFirmware.server_file_path != NULL ? newFirmware.server_file_path : "";
|
|
}
|