14a73498f
김태훈
소스 코드 정리
|
1
2
|
#ifndef SERVICEDATA_H
#define SERVICEDATA_H
|
652e9cd54
고영탁
Merge
|
3
4
5
6
7
|
#include <stdint.h>
#include <time.h>
#define STRUCT_PACK __attribute__ ((packed))
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
8
|
#define MAX_ERROR_TYPE_CNT 31
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
9
|
|
a46dd4409
고영탁
오븐 상태 저장 기능 추가
|
10
|
#define MAX_STATICS_CNT 26
|
652e9cd54
고영탁
Merge
|
11
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
12
|
#define MAX_LOG_SENSOR 16
|
a46dd4409
고영탁
오븐 상태 저장 기능 추가
|
13
|
#define MAX_OVEN_STATE_
|
652e9cd54
고영탁
Merge
|
14
15
16
17
18
|
typedef struct _error_item{
uint16_t fired_cnt;
time_t first_fired;
time_t last_fried;
}STRUCT_PACK error_item;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
19
20
21
22
23
24
25
26
27
28
29
30
|
typedef union{
int16_t itemp;
uint16_t utemp;
}type_temp;
typedef struct _sensor_log_item{
type_temp high_temp;
time_t last_high_time;
}STRUCT_PACK sensor_log_item;
typedef union _sensor_statics_log{
|
14a73498f
김태훈
소스 코드 정리
|
31
|
uint8_t data[MAX_LOG_SENSOR * sizeof(sensor_log_item)];
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
sensor_log_item values[MAX_LOG_SENSOR];
struct{
sensor_log_item B1;
sensor_log_item B2;
sensor_log_item Reserved1;
sensor_log_item B4;
sensor_log_item B5;
sensor_log_item B3_1;
sensor_log_item B3_2;
sensor_log_item B3_3;
sensor_log_item B3_4;
sensor_log_item Reserved2; //10
sensor_log_item mbar1;
sensor_log_item mbar2;
sensor_log_item pcb;
sensor_log_item adc;
sensor_log_item convec_fan_rpm;
sensor_log_item bunner_rpm;
}items;
}STRUCT_PACK sensor_statics_log;
|
652e9cd54
고영탁
Merge
|
52
53
|
typedef union _error_log{
|
14a73498f
김태훈
소스 코드 정리
|
54
|
uint8_t data[MAX_ERROR_TYPE_CNT*sizeof(error_item)];
|
652e9cd54
고영탁
Merge
|
55
56
57
58
|
error_item values[MAX_ERROR_TYPE_CNT];
struct{
error_item door;
error_item upper_fire_fail;
|
652e9cd54
고영탁
Merge
|
59
60
|
error_item upper_pan_fail;
error_item lower_fire_fail;
|
652e9cd54
고영탁
Merge
|
61
62
|
error_item lower_pan_fail;
error_item steam_fire_fail;
|
652e9cd54
고영탁
Merge
|
63
64
65
|
error_item steam_pan_fail;
error_item water_level_sensor_fail;
error_item water_flow_sensor_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
66
|
error_item inner_temp_high_alarm; //B1 Sensor
|
652e9cd54
고영탁
Merge
|
67
|
error_item inner_temp_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
68
|
error_item qunching_temp_high_alarm; //B2 Sensor
|
652e9cd54
고영탁
Merge
|
69
|
error_item qunching_temp_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
70
71
72
|
error_item meatprove_temp1_high_alarm; //B3 Sensor
error_item meatprove_temp1_fail;
error_item wall_temp1_high_alarm; //B4 Sensor
|
652e9cd54
고영탁
Merge
|
73
|
error_item wall_temp1_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
74
|
error_item steam_gen_temp_high_alram; //B5 Sensor
|
652e9cd54
고영탁
Merge
|
75
|
error_item steam_gen_temp_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
76
77
78
79
|
error_item meatprove_temp2_fail;
error_item meatprove_temp3_fail;
error_item meatprove_temp4_fail;
error_item pcb_temp_high_alarm; //PCB Temp
|
652e9cd54
고영탁
Merge
|
80
|
error_item pcb_temp_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
81
82
|
error_item upper_motor_fail;
error_item lower_motor_fail;
|
652e9cd54
고영탁
Merge
|
83
84
|
error_item small_motor_fail;
error_item midd_motor_fail;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
85
|
error_item supply_motor_fail; // Steam Generator Tank Supply Pump
|
652e9cd54
고영탁
Merge
|
86
|
error_item humidity_tamper_fail;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
87
|
error_item repeat_error;
|
652e9cd54
고영탁
Merge
|
88
89
|
}items;
}STRUCT_PACK error_log;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
enum ERROR_ITEM_IDX{
ERROR_IDX_door=0,
ERROR_IDX_upper_fire_fail,
ERROR_IDX_upper_pan_fail,
ERROR_IDX_lower_fire_fail,
ERROR_IDX_lower_pan_fail,
ERROR_IDX_steam_fire_fail,
ERROR_IDX_steam_pan_fail,
ERROR_IDX_water_level_sensor_fail,
ERROR_IDX_water_flow_sensor_fail,
ERROR_IDX_inner_temp_high_alarm, //B1 Sensor
ERROR_IDX_inner_temp_fail,
ERROR_IDX_qunching_temp_high_alarm, //B2 Sensor
ERROR_IDX_qunching_temp_fail,
ERROR_IDX_meatprove_temp1_high_alarm, //B3 Sensor
ERROR_IDX_meatprove_temp1_fail,
ERROR_IDX_wall_temp1_high_alarm, //B4 Sensor
ERROR_IDX_wall_temp1_fail,
ERROR_IDX_steam_gen_temp_high_alram, //B5 Sensor
ERROR_IDX_steam_gen_temp_fail,
ERROR_IDX_meatprove_temp2_fail,
ERROR_IDX_meatprove_temp3_fail,
ERROR_IDX_meatprove_temp4_fail,
ERROR_IDX_pcb_temp_high_alarm, //PCB Temp
ERROR_IDX_pcb_temp_fail,
ERROR_IDX_upper_motor_fail,
ERROR_IDX_lower_motor_fail,
ERROR_IDX_small_motor_fail,
ERROR_IDX_midd_motor_fail,
ERROR_IDX_supply_motor_fail, // Steam Generator Tank Supply Pump
ERROR_IDX_humidity_tamper_fail
};
enum USE_ITEMS_IDX{
USE_ITEM_steam_heat=0,
USE_ITEM_dry_heat,
USE_ITEM_upper_heat,
USE_ITEM_lower_heat,
USE_ITEM_cook_dry_mode,
USE_ITEM_cook_steam_mode,
USE_ITEM_cook_combi_mode,
USE_ITEM_wash_mode_nocleanser,
USE_ITEM_wash_mode_simple,
USE_ITEM_wash_mode_standard,
USE_ITEM_wash_mode_strong,
USE_ITEM_wash_mode_speed,
USE_ITEM_cooldown_mode,
USE_ITEM_door_open,
USE_ITEM_dv_open,
USE_ITEM_ssv_open,
USE_ITEM_qnv_open,
USE_ITEM_ssp_open,
USE_ITEM_snv_open,
USE_ITEM_hosereel,
USE_ITEM_hdm_open,
USE_ITEM_dp_open,
USE_ITEM_unp_open
};
|
a46dd4409
고영탁
오븐 상태 저장 기능 추가
|
148
149
150
151
152
153
154
|
typedef union _bool_oven_state{
uint32_t dVal;
struct{
uint32_t wash_state:1;
uint32_t reserved:31;
}b;
}bool_oven_state;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
155
|
|
652e9cd54
고영탁
Merge
|
156
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
157
|
typedef union _use_statics_log{
|
14a73498f
김태훈
소스 코드 정리
|
158
|
uint8_t data[MAX_STATICS_CNT*4];
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
uint32_t values[MAX_STATICS_CNT];
struct{
uint32_t steam_heat;
uint32_t dry_heat;
uint32_t upper_heat;
uint32_t lower_heat;
uint32_t cook_dry_mode;
uint32_t cook_steam_mode;
uint32_t cook_combi_mode;
uint32_t wash_mode_nocleanser;
uint32_t wash_mode_simple;
uint32_t wash_mode_standard;
uint32_t wash_mode_strong;
uint32_t wash_mode_speed;
uint32_t cooldown_mode;
uint32_t door_open;
uint32_t dv_open;
uint32_t ssv_open;
uint32_t qnv_open;
uint32_t ssp_open;
uint32_t snv_open;
uint32_t hosereel;
uint32_t hdm_open;
uint32_t dp_open;
uint32_t unp_open;
|
a46dd4409
고영탁
오븐 상태 저장 기능 추가
|
184
185
186
|
uint32_t total_cook_time;
uint32_t total_cook_count;
bool_oven_state b_oven_state;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
187
188
|
}items;
}STRUCT_PACK use_statics_log;
|
652e9cd54
고영탁
Merge
|
189
|
|
14a73498f
김태훈
소스 코드 정리
|
190
|
class ServiceData
|
652e9cd54
고영탁
Merge
|
191
192
|
{
public:
|
14a73498f
김태훈
소스 코드 정리
|
193
|
ServiceData();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
194
|
|
652e9cd54
고영탁
Merge
|
195
|
error_log err_log;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
196
|
use_statics_log use_log;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
197
198
|
sensor_statics_log sensor_log;
uint16_t m_nRepeatErrorIdx;
|
14a73498f
김태훈
소스 코드 정리
|
199
200
|
bool saveServiceData(void);
bool loadServiceData(void);
|
91480de3c
고영탁
센서 실시간 데이터 리셋 기능 추가
|
201
|
bool resetSensorlogData(void);
|
a46dd4409
고영탁
오븐 상태 저장 기능 추가
|
202
203
204
205
206
207
208
209
|
bool loadWashState(void){return (bool)use_log.items.b_oven_state.b.wash_state;};
bool setWashState(bool bval,bool save=true);
uint32_t loadTotalCookingTime(void){return use_log.items.total_cook_time;};
bool setTotalCookingTime(uint32_t val, bool save=true);
bool addTotalCookingTime(uint32_t val, bool save=true);
uint32_t loadTotalCookingCount(void){return use_log.items.total_cook_count;};
bool setTotalCookingCount(uint32_t val,bool save = true);
bool addTotalCookingCount(uint32_t val, bool save = true);
|
652e9cd54
고영탁
Merge
|
210
|
};
|
14a73498f
김태훈
소스 코드 정리
|
211
|
#endif // SERVICEDATA_H
|