|
@@ -90,7 +90,7 @@ for(uint8_t i = 0; i < 10; i++){
|
90
|
90
|
Uart2_Data_Send(data,RGB_SensorIDAutoSetRequest_Length);
|
91
|
91
|
break;
|
92
|
92
|
case RGB_Status_Data_Response:
|
93
|
|
- Uart1_Data_Send(data,RGB_SensorDataResponse_Length);
|
|
93
|
+ Uart1_Data_Send(data,data[bluecell_length] + 3);
|
94
|
94
|
break;
|
95
|
95
|
case RGB_ControllerLimitSet:
|
96
|
96
|
Uart1_Data_Send(data,data[bluecell_length] + 3);
|
|
@@ -211,15 +211,15 @@ void RGB_Alarm_Operate(void){
|
211
|
211
|
uint8_t temp_warning = 0;
|
212
|
212
|
for(uint8_t i = 1; i <= (SensorID_Cnt); i++){
|
213
|
213
|
if(LED_Alarm[SensorID_buf[i]] == 1){
|
214
|
|
- HAL_GPIO_WritePin(LED_ALARM_GPIO_Port, LED_ALARM_Pin, GPIO_PIN_SET); //표지 LED
|
|
214
|
+ HAL_GPIO_WritePin(LED_ALARM_GPIO_Port, LED_ALARM_Pin, GPIO_PIN_SET); //표지 LED
|
215
|
215
|
RGB_Sensor_LED_Alarm_ON(SensorID_buf[i]);
|
216
|
216
|
temp_warning = 1;
|
217
|
217
|
}else{
|
218
|
218
|
RGB_Sensor_LED_Alarm_OFF(SensorID_buf[i]);
|
219
|
219
|
}
|
220
|
220
|
}
|
221
|
|
- if(temp_warning == 0){ // 8개의 Sensor가 전부 정상일 때 만 동작
|
222
|
|
- HAL_GPIO_WritePin(LED_ALARM_GPIO_Port, LED_ALARM_Pin, GPIO_PIN_RESET); //표지 LED
|
|
221
|
+ if(temp_warning == 0){ // 8개의 Sensor가 전부 정상일 때 만 동작
|
|
222
|
+ HAL_GPIO_WritePin(LED_ALARM_GPIO_Port, LED_ALARM_Pin, GPIO_PIN_RESET); //표지 LED
|
223
|
223
|
RGB_Sensor_LED_Alarm_OFF(0); //모든 Sensor가 정상일 때는 LED 가 켜지지 않는다.
|
224
|
224
|
}
|
225
|
225
|
}
|
|
@@ -245,7 +245,7 @@ void RGB_Alarm_Check(uint8_t* data){
|
245
|
245
|
}
|
246
|
246
|
RGB_Data_Stack(&LED_Alarm[1]);
|
247
|
247
|
if(Prev_Alarm_occur != Alarm_occur){
|
248
|
|
- LoraDataSendSet(1);
|
|
248
|
+// LoraDataSendSet(1);
|
249
|
249
|
Prev_Alarm_occur = Alarm_occur;
|
250
|
250
|
}
|
251
|
251
|
}
|
|
@@ -295,19 +295,18 @@ uint8_t RGB_BufCal(uint8_t srcid){
|
295
|
295
|
#else //Uart Flag Data
|
296
|
296
|
/*
|
297
|
297
|
현재 Controller 가지고 있는 RGB Sensor ID Check
|
298
|
|
- 현재 비정상적인 동작을 하는 Sensor 에대한 Flag 정보
|
|
298
|
+ 현재 비정상적인 동작을 하는 Sensor 에대한 Flag 정보
|
299
|
299
|
*/
|
300
|
300
|
void RGB_Data_Stack(uint8_t* rgb_buf){
|
301
|
301
|
memset(&Lora_Buf[0],0x00,8);
|
302
|
302
|
/*********************FIX DATA*************************************/
|
303
|
303
|
Lora_Buf[bluecell_stx] = 0xbe;
|
304
|
304
|
Lora_Buf[bluecell_srcid + 4] = 0xeb;
|
305
|
|
-
|
306
|
305
|
Lora_Buf[bluecell_type] = RGB_Lora_Data_Report;
|
307
|
306
|
Lora_Buf[bluecell_length] = Lora_Max_Amount;// RGB Data 5byte
|
308
|
307
|
Lora_Buf[bluecell_srcid] = MyControllerID;
|
309
|
308
|
/*********************FIX DATA*************************************/
|
310
|
|
- if(RGB_BufCal(SensorID_buf[1]) == 0){//아무런 Device가 존재 하지않을 때
|
|
309
|
+ if(RGB_BufCal(SensorID_buf[1]) == 0){//아무런 Device가 존재 하지않을 때
|
311
|
310
|
printf("Not Exist Device \n");
|
312
|
311
|
return;
|
313
|
312
|
}
|
|
@@ -321,8 +320,8 @@ void RGB_Data_Stack(uint8_t* rgb_buf){
|
321
|
320
|
|
322
|
321
|
}
|
323
|
322
|
/*
|
324
|
|
- RGB_Data_Stack에 Lora에 Data를 보내기 위해 Buffer에 Data를 쌓을 때
|
325
|
|
- ID 마다 Location Cnt
|
|
323
|
+ RGB_Data_Stack에 Lora에 Data를 보내기 위해 Buffer에 Data를 쌓을 때
|
|
324
|
+ ID 마다 Location Cnt
|
326
|
325
|
*/
|
327
|
326
|
uint8_t RGB_BufCal(uint8_t srcid){
|
328
|
327
|
uint8_t ret = 0;
|
|
@@ -379,12 +378,13 @@ void RGB_Controller_Func(uint8_t* data){
|
379
|
378
|
break;
|
380
|
379
|
case RGB_Status_Data_Response:
|
381
|
380
|
datalosscnt[data[bluecell_srcid]] = 0;
|
382
|
|
- data[bluecell_length] += 1;// Device On OFF status Send byte
|
383
|
|
- data[bluecell_srcid + 9] = RGB_DeviceStatusCheck();// Device On OFF status Send byte
|
384
|
|
- memcpy(&Result_buf[bluecell_stx],&data[bluecell_stx],data[bluecell_length] + 3);
|
385
|
|
- Result_buf[5] = STH30_CreateCrc(&Result_buf[bluecell_type],Result_buf[bluecell_length]);
|
|
381
|
+ data[bluecell_length] += 1;
|
386
|
382
|
RGB_Alarm_Check(&data[bluecell_stx]);
|
387
|
|
-
|
|
383
|
+ memcpy(&Result_buf[bluecell_stx],&data[bluecell_stx],data[bluecell_length] + 3);
|
|
384
|
+ Result_buf[Result_buf[bluecell_length] - 1] = RGB_DeviceStatusCheck();// Device On OFF status Send byte
|
|
385
|
+ Result_buf[Result_buf[bluecell_length] + 0] = Lora_Buf[bluecell_srcid + 2];
|
|
386
|
+ Result_buf[Result_buf[bluecell_length] + 1] = STH30_CreateCrc(&Result_buf[bluecell_type],Result_buf[bluecell_length]);
|
|
387
|
+ Result_buf[Result_buf[bluecell_length] + 2] = 0xeb;
|
388
|
388
|
break;
|
389
|
389
|
case RGB_ControllerLimitSet:
|
390
|
390
|
memcpy(&Result_buf[bluecell_stx],&data[bluecell_stx],data[bluecell_length] + 3);
|
|
@@ -427,7 +427,11 @@ void RGB_Controller_Func(uint8_t* data){
|
427
|
427
|
Result_buf[bluecell_srcid + 6] = STH30_CreateCrc(&Result_buf[bluecell_type],Result_buf[bluecell_length]);
|
428
|
428
|
Result_buf[bluecell_srcid + 7] = 0xeb;
|
429
|
429
|
break;
|
|
430
|
+ case RGB_Lora_DataRequest:
|
|
431
|
+ LoraDataSendSet(1);
|
|
432
|
+ break;
|
430
|
433
|
default:
|
|
434
|
+
|
431
|
435
|
break;
|
432
|
436
|
}
|
433
|
437
|
RGB_Response_Func(&Result_buf[bluecell_stx]);
|