Commit 211a15bde3cb9f54a3d71dd39d6efcbe740734b2

Authored by 고영탁
1 parent 7ae804762e
Exists in master and in 2 other branches fhd, fhd-demo

dirtylevel 관련 FRAM 저장 변경

Showing 1 changed file with 28 additions and 8 deletions   Show diff stats
app/gui/oven_control/servicedata.cpp
... ... @@ -3,6 +3,7 @@
3 3 #include <QDebug>
4 4 #include <fcntl.h>
5 5 #include <unistd.h> // write(), close()
  6 +#include <dirtylevel.h>
6 7  
7 8 #define FRAM_SIZE 2048
8 9 #define FRAM_TEST_PROCESS 0
... ... @@ -18,6 +19,8 @@ ServiceData::ServiceData()
18 19 memset((void*)err_log.data,0x00,sizeof(error_log));
19 20 memset((void*)use_log.data,0x00,sizeof(use_statics_log));
20 21 memset((void*)sensor_log.data,0x00, sizeof(sensor_statics_log));
  22 + DirtyLevel::setCookingCount(0);
  23 + DirtyLevel::setCookingTime(0);
21 24 #if INIT_FRAM == 1
22 25 saveServiceData();
23 26 #else
... ... @@ -29,7 +32,12 @@ ServiceData::ServiceData()
29 32  
30 33 bool ServiceData::loadServiceData(void){
31 34 uint8_t buffs[FRAM_SIZE];
  35 + uint8_t* pBuff;
32 36 int fd;
  37 + qint64 temp_cookingTime = 0;
  38 + int temp_cookingCount = 0;
  39 + pBuff = buffs;
  40 +
33 41  
34 42 #if FRAM_TEST_PROCESS == 1
35 43 int i;
... ... @@ -75,15 +83,20 @@ bool ServiceData::loadServiceData(void){
75 83 if(fd>0){
76 84 memset(buffs,0x00,FRAM_SIZE);
77 85 read(fd,buffs,FRAM_SIZE);
78   - if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] != 0x9C){
  86 + if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log) + sizeof(qint64) + sizeof(int)] != 0x9C){
  87 + qDebug() << "service data read incorrected!";
79 88 close(fd);
80 89 return saveServiceData();
81 90 }
82 91  
83 92 qDebug() << "FRAM Read, Write Size is " << sizeof(error_log)+sizeof(use_statics_log);
84   - memcpy((void*)err_log.data,buffs,sizeof(error_log));
85   - memcpy((void*)use_log.data, (void*)(&buffs[sizeof(error_log)]),sizeof(use_statics_log));
86   - memcpy((void*)sensor_log.data,(void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),sizeof(sensor_statics_log));
  93 + memcpy((void*)err_log.data,pBuff,sizeof(error_log)); pBuff += sizeof(error_log);
  94 + memcpy((void*)use_log.data, pBuff,sizeof(use_statics_log));pBuff += sizeof(use_statics_log);
  95 + memcpy((void*)sensor_log.data,pBuff,sizeof(sensor_statics_log)); pBuff+= sizeof(sensor_statics_log);
  96 + memcpy(&temp_cookingTime,pBuff, sizeof(qint64)); pBuff += sizeof(qint64);
  97 + memcpy(&temp_cookingCount,pBuff, sizeof(int));
  98 + DirtyLevel::setCookingCount(temp_cookingCount);
  99 + DirtyLevel::setCookingTime(temp_cookingTime);
87 100 close(fd);
88 101 }else{
89 102 qDebug()<<"FRAM FILE Open fail!!";
... ... @@ -93,14 +106,21 @@ bool ServiceData::loadServiceData(void){
93 106  
94 107 bool ServiceData::saveServiceData(void){
95 108 uint8_t buffs[FRAM_SIZE];
  109 + uint8_t* pBuff;
96 110 int fd;
  111 + qint64 temp_cookingTime = DirtyLevel::cookingTime();
  112 + int temp_cookingCount = DirtyLevel::cookingCount();
  113 + pBuff = buffs;
97 114 fd = open(fRam_path, O_RDWR | O_SYNC);
98 115 if(fd>0){
99 116 memset(buffs,0x00,FRAM_SIZE);
100   - memcpy(buffs,(void*)err_log.data,sizeof(error_log));
101   - memcpy((void*)(&buffs[sizeof(error_log)]),(void*)use_log.data,sizeof(use_statics_log));
102   - memcpy((void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),(void*)sensor_log.data,sizeof(sensor_statics_log));
103   - buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] = 0x9C;
  117 + memcpy(pBuff,(void*)err_log.data,sizeof(error_log)); pBuff += sizeof(err_log);
  118 + memcpy(pBuff,(void*)use_log.data,sizeof(use_statics_log)); pBuff += sizeof(use_statics_log);
  119 + memcpy(pBuff,(void*)sensor_log.data,sizeof(sensor_statics_log)); pBuff += sizeof(sensor_statics_log);
  120 + memcpy(pBuff, &temp_cookingTime, sizeof(qint64)); pBuff += sizeof(qint64);
  121 + memcpy(pBuff, &temp_cookingCount, sizeof(int)); pBuff += sizeof(int);
  122 + *pBuff = 0x9C;
  123 +
104 124 write(fd,buffs,FRAM_SIZE);
105 125 close(fd);
106 126 }else{
... ...