瀏覽代碼

RGB Sensor Power On Off 시간 단축
RGB Sensor Alarm Check Data Receive Data Static 으로 변환

june9152 6 年之前
父節點
當前提交
cc720163e0

二進制
Debug/STM32F103_RGB_Controller.bin


二進制
Debug/STM32F103_RGB_Controller.binary


二進制
Debug/STM32F103_RGB_Controller.elf


File diff suppressed because it is too large
+ 4164 - 4167
Debug/STM32F103_RGB_Controller.list


File diff suppressed because it is too large
+ 510 - 502
Debug/STM32F103_RGB_Controller.map


二進制
Debug/Src/RGB_Controller.o


+ 2 - 2
Debug/Src/RGB_Controller.su

@@ -8,6 +8,6 @@ RGB_Controller.c:211:6:RGB_Alarm_Operate	32	static
8 8
 RGB_Controller.c:254:9:RGB_DeviceStatusCheck	12	static
9 9
 RGB_Controller.c:327:9:RGB_BufCal	0	static
10 10
 RGB_Controller.c:301:6:RGB_Data_Stack	24	static
11
-RGB_Controller.c:227:6:RGB_Alarm_Check	104	static
11
+RGB_Controller.c:227:6:RGB_Alarm_Check	48	static
12 12
 RGB_Controller.c:341:9:RGB_LimitData_Get	0	static
13
-RGB_Controller.c:352:6:RGB_Controller_Func	120	static
13
+RGB_Controller.c:362:6:RGB_Controller_Func	128	static

二進制
Debug/Src/main.o


+ 20 - 6
Src/RGB_Controller.c

@@ -127,6 +127,8 @@ for(uint8_t i = 0; i < 10; i++){
127 127
          case RGB_ControllerLimitGet:
128 128
              Uart1_Data_Send(data,data[bluecell_length] + 3);
129 129
              break;
130
+         
131
+         default:break;
130 132
     }
131 133
 }
132 134
 
@@ -224,11 +226,11 @@ void RGB_Alarm_Operate(void){
224 226
     }
225 227
 }
226 228
 void RGB_Alarm_Check(uint8_t* data){
227
-    uint16_t Sensor_red[9] = {0,};
228
-    uint16_t Sensor_green[9] = {0,};
229
-    uint16_t Sensor_blue[9] = {0,};    
230
-    uint8_t Alarm_occur = 0;
229
+    static uint16_t Sensor_red[9] = {0,};
230
+    static uint16_t Sensor_green[9] = {0,};
231
+    static uint16_t Sensor_blue[9] = {0,};    
231 232
     static uint8_t Prev_Alarm_occur;
233
+    uint8_t Alarm_occur = 0;
232 234
     Sensor_red[data[bluecell_srcid]] = ((data[bluecell_red_H + 2] << 8)| data[bluecell_red_L + 2]);
233 235
     Sensor_green[data[bluecell_srcid]] = ((data[bluecell_green_H + 2] << 8)| data[bluecell_green_L + 2]);
234 236
     Sensor_blue[data[bluecell_srcid]] = ((data[bluecell_blue_H + 2] << 8)| data[bluecell_blue_L + 2]);  
@@ -348,8 +350,19 @@ uint8_t RGB_LimitData_Get(uint8_t id){
348 350
 }
349 351
 #endif // PYJ.2019.04.14_END -- 
350 352
 uint8_t datalosscnt[9] = {0,};
353
+typedef struct{
354
+    uint8_t Request_stx;
355
+    uint8_t Request_type;
356
+    uint8_t Request_length;
357
+    uint8_t Request_srcid;    
358
+    uint8_t Request_dstid;        
359
+    uint8_t Request_crc;    
360
+    uint8_t Request_etx;        
361
+}LoraDataRequest_t;
362
+
351 363
 void RGB_Controller_Func(uint8_t* data){
352 364
 	RGB_CMD_T type = data[bluecell_type];
365
+    LoraDataRequest_t Lora_Tempdata;
353 366
    // static uint8_t temp_sensorid;
354 367
     uint8_t Result_buf[100] = {0,};
355 368
     uint8_t i = 0;
@@ -428,10 +441,11 @@ void RGB_Controller_Func(uint8_t* data){
428 441
             Result_buf[bluecell_srcid + 7]   = 0xeb;
429 442
             break;
430 443
         case RGB_Lora_DataRequest:
431
-            LoraDataSendSet(1);
444
+            memcpy(&Lora_Tempdata.Request_stx,&data[bluecell_stx],data[bluecell_length] + 3);
445
+            if(Lora_Tempdata.Request_dstid == MyControllerID)
446
+                LoraDataSendSet(1);
432 447
             break;
433 448
         default:
434
-        
435 449
             break;
436 450
     }
437 451
     RGB_Response_Func(&Result_buf[bluecell_stx]);

+ 4 - 5
Src/main.c

@@ -662,16 +662,15 @@ int main(void)
662 662
         ret = SX1276_LoRaTxPacket(&SX1276, &buffer[0], message_length, 2000);
663 663
         LoraDataSendSet(0);
664 664
         ret = SX1276_LoRaEntryRx(&SX1276, LORA_MAX_DATA_CNT, 2000);
665
-    }else {
665
+    }else{
666 666
            ret = SX1276_LoRaRxPacket(&SX1276);
667 667
            if (ret > 0) {
668 668
                SX1276_read(&SX1276, &buffer[0], ret);
669
-#if 1 // PYJ.2019.04.22_BEGIN -- 
670 669
                printf("Received Data : ");
671 670
                for(uint8_t i = 0; i < ret; i++)
672 671
                printf("%02x ",  buffer[i]);
673 672
                printf("\n");
674
-#endif // PYJ.2019.04.22_END -- 
673
+               
675 674
                Uart_dataCheck(&buffer[bluecell_stx],&ret);
676 675
            }
677 676
        }
@@ -727,9 +726,9 @@ int main(void)
727 726
                     SensorID = 0;
728 727
                 }else{
729 728
                     RGB_Sensor_PowerOnOff(IDAutoSetRequest_data[4]);
730
-                    HAL_Delay(500);
729
+                    HAL_Delay(450);
731 730
                     RGB_Controller_Func(&IDAutoSetRequest_data[bluecell_stx]);
732
-                    HAL_Delay(500);
731
+                    HAL_Delay(450);
733 732
                 }
734 733
             }
735 734
             else{