Bläddra i källkod

CHECKSUM CREATE,CHECK 함수 추가 / MBIC/SETGET 분리작업

PYJ 5 år sedan
förälder
incheckning
1ffd6c22a9
5 ändrade filer med 351 tillägg och 134 borttagningar
  1. 36 4
      Bluecell_Inc/Bluecell_operate.h
  2. 282 125
      Bluecell_Src/Bluecell_operate.c
  3. 27 2
      Bluecell_Src/CRC.c
  4. 5 2
      Bluecell_Src/uart.c
  5. 1 1
      Src/main.c

+ 36 - 4
Bluecell_Inc/Bluecell_operate.h

@@ -80,10 +80,10 @@ typedef enum{
80 80
 	MBIC_TIME_5,
81 81
 	MBIC_ERRRESPONSE_0,
82 82
 	MBIC_CMD_0,
83
+	
83 84
 	MBIC_LENGTH_0, // 19INDEX
84
-
85
-    
86 85
 	MBIC_LENGTH_1, // 20
86
+
87 87
 	MBIC_HEADERCHECKSUM_0,
88 88
 	MBIC_PAYLOADSTART,
89 89
 	/*
@@ -224,7 +224,7 @@ ULO_Shutdown_Alarm4,
224 224
 
225 225
 
226 226
 
227
-
227
+#define MBIC_HEADER_SIZE 18
228 228
 #define MBIC_PREAMBLE0 0x16
229 229
 #define MBIC_PREAMBLE1 0x16
230 230
 #define MBIC_PREAMBLE2 0x16
@@ -236,7 +236,7 @@ ULO_Shutdown_Alarm4,
236 236
 #define MBIC_SEQNUM
237 237
 #define MBIC_TTL
238 238
 #define MBIC_TIME
239
-#define MBIC_ERRRESPONSE
239
+#define MBIC_ERRRESPONSE 0x00
240 240
 #define MBIC_CMD
241 241
 #define MBIC_LENGTH
242 242
 #define MBIC_CHECKSHUM
@@ -534,6 +534,38 @@ typedef struct{
534 534
     uint8_t bluecell_User_UL4_H;  uint8_t bluecell_User_UL4_L;
535 535
     uint8_t bluecell_User_TEMP_H;  uint8_t bluecell_User_TEMP_L;
536 536
     uint8_t bluecell_User_TEMP_OFFSET_H;  uint8_t bluecell_User_TEMP_OFFSET_L;    
537
+    uint8_t Temp_High_Threshold;
538
+    uint8_t Temp_High_Threshold_Default;
539
+    uint8_t Reserved_Data3;
540
+    uint8_t Reserved_Data4;
541
+    uint8_t Reserved_Data5;
542
+    uint8_t Reserved_Data6;
543
+    uint8_t Reserved_Data7;
544
+    uint8_t Reserved_Data8;
545
+    uint8_t Reserved_Data9;
546
+    uint8_t Reserved_Data10;
547
+    uint8_t Reserved_Data11;
548
+    uint8_t Reserved_Data12;
549
+    uint8_t Reserved_Data13;
550
+    uint8_t Reserved_Data14;
551
+    uint8_t Reserved_Data15;
552
+    uint8_t Reserved_Data16;
553
+    uint8_t Reserved_Data17;
554
+    uint8_t Reserved_Data18;
555
+    uint8_t Reserved_Data19;
556
+    uint8_t Reserved_Data20;
557
+    uint8_t Reserved_Data21;
558
+    uint8_t Reserved_Data22;
559
+    uint8_t Reserved_Data23;
560
+    uint8_t Reserved_Data24;
561
+    uint8_t Reserved_Data25;
562
+    uint8_t Reserved_Data26;
563
+    uint8_t Reserved_Data27;
564
+    uint8_t Reserved_Data28;
565
+    uint8_t Reserved_Data29;
566
+    uint8_t Reserved_Data30;
567
+    uint8_t Reserved_Data31;
568
+    uint8_t Reserved_Data32;
537 569
     uint8_t bluecell_crc;
538 570
     uint8_t bluecell_etx;
539 571
 

+ 282 - 125
Bluecell_Src/Bluecell_operate.c

@@ -1455,142 +1455,299 @@ uint8_t* MBIC_HeaderDataSetting(uint8_t* data){
1455 1455
 	ResultData[MBIC_TIME_4] = data[MBIC_TIME_4];
1456 1456
 	ResultData[MBIC_TIME_5] = data[MBIC_TIME_5];
1457 1457
 
1458
+    ResultData[MBIC_ERRRESPONSE_0] = MBIC_ERRRESPONSE;
1459
+
1460
+    ResultData[MBIC_CMD_0] = MBIC_ERRRESPONSE;
1461
+
1462
+    ResultData[MBIC_LENGTH_0] = MBIC_ERRRESPONSE;    
1463
+    ResultData[MBIC_LENGTH_1] = MBIC_ERRRESPONSE;        
1464
+
1465
+    ResultData[MBIC_HEADERCHECKSUM_0] = Chksum_Create(ResultData,MBIC_HEADER_SIZE - 1,);    
1466
+
1458 1467
 	return ResultData;
1459 1468
 }
1460 1469
 
1461
-
1470
+typedef enum{
1471
+    MBIC_GET = 0,
1472
+    MBIC_SET,        
1473
+}BMBM_CMD;
1462 1474
 
1463 1475
 bool MBIC_Operate(uint8_t* data){
1464
-	uint16_t datatype = 0;
1465
-    uint8_t Length = 0;
1476
+	uint16_t datatype = (((data[MBIC_PROT_SUB_DATA_INDEX] << 8) & 0xFF00)  // 2byte Data
1477
+              |((data[MBIC_PROT_SUB_DATA_INDEX + 1] << 8) & 0x00FF) );
1478
+    uint8_t Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
1479
+    uint8_t cmd = 0;
1466 1480
     uint8_t SubData[256] = {0,};
1467 1481
     /*AID*/
1468
-    datatype = ((data[MBIC_PROT_SUB_DATA_INDEX] << 8) & 0xFF00)  // 2byte Data
1469
-              |((data[MBIC_PROT_SUB_DATA_INDEX + 1] << 8) & 0x00FF) ;
1470
-    Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
1471 1482
     for(int i = 0; i < Length; i++){
1472 1483
         SubData[i] = (data[MBIC_PROT_SUB_DATA_INDEX + 3 + i]);
1473 1484
     }
1474 1485
     //    SubData     임시 데이터 변수 선언 Subdata로 데이터 전송 
1475
-    
1476
-	switch(datatype){
1477
-        case  Alarm_Bit_List                          :break;
1478
-        case  Alarm_Mask                              :break;
1479
-        case  Alarm_Test_Mode                         :break;
1480
-        case  Alarm_Test_Dummy                        :break;
1481
-        case  CPU_Version                             :break;
1482
-        case  ModuleINFORMATION_null1                 :break;
1483
-        case  CPU_Current_Bank                        :break;
1484
-        case  CPU_Bank_Select_Reboot_by               :break;
1485
-        case  CPU_Bank1_Image_Version                 :break;
1486
-        case  CPU_Bank1_Image_BuildTime               :break;
1487
-        case  CPU_Bank1_Image_Name                    :break;
1488
-        case  CPU_Bank2_Image_Version                 :break;
1489
-        case  CPU_Bank2_Image_BuildTime               :break;
1490
-        case  CPU_Bank2_Image_Name                    :break;
1491
-        case  SW_Reset                                :break;
1492
-        case  Factory_Set_Initialization              :break;
1493
-        case  Temperature                     :break;
1494
-        case  Temperature_Offset                      :break;
1495
-        case  Temp_High_Threshold                     :break;
1496
-        case  Temp_High_Threshold_Default             :break;
1497
-        case  Temp_High_Alarm                         :break;
1498
-        case  LED_TEST                                :break;
1499
-        case  Node                                    :break;
1500
-        case  Type                                    :break;
1501
-        case  PCB_Version                             :break;
1502
-        case  Serial_Number                           :break;
1503
-        case  Manufacture                             :break;
1504
-        case  Manufacture_Date                        :break;
1505
-        case  ENVIRONMENT_INVENTORY_NULL0             :break;
1506
-        case  Freq_ID                                 :break;
1507
-        case  Carrier_ID                              :break;
1508
-        case  Carrier_ON_OFF                          :break;
1509
-        case  DLI_P1_Level                    :break;
1510
-        case  DLI_P2_Level                            :break;
1511
-        case  DLI_P3_Level                            :break;
1512
-        case  DLI_P4_Level                            :break;
1513
-        case  ULO_P1_Level                            :break;
1514
-        case  ULO_P2_Level                            :break;
1515
-        case  ULO_P3_Level                            :break;
1516
-        case  ULO_P4_Level                            :break;
1517
-        case  DLI_RF_Path1_ON_OFF             :break;
1518
-        case  DLI_RF_Path2_ON_OFF                     :break;
1519
-        case  DLI_RF_Path3_ON_OFF                     :break;
1520
-        case  DLI_RF_Path4_ON_OFF                     :break;
1521
-        case  DLI_Gain_Atten1                         :break;
1522
-        case  DLI_Gain_Atten2                         :break;
1523
-        case  DLI_Gain_Atten3                         :break;
1524
-        case  DLI_Gain_Atten4                         :break;
1525
-        case  DLI_Gain_Atten_Offset1                  :break;
1526
-        case  DLI_Gain_Atten_Offset2                  :break;
1527
-        case  DLI_Gain_Atten_Offset3                  :break;
1528
-        case  DLI_Gain_Atten_Offset4                  :break;
1529
-        case  DLI_Level_High_Threshold                :break;
1530
-        case  DLI_Level_Low_Threshold                 :break;
1531
-        case  DLI_Level_High_Low_Threshold_default    :break;
1532
-        case  DLI_Level                               :break;
1533
-        case  DLI_Level_High_Alarm1            :break;
1534
-        case  DLI_Level_High_Alarm2                   :break;
1535
-        case  DLI_Level_High_Alarm3                   :break;
1536
-        case  DLI_Level_High_Alarm4                   :break;
1537
-        case  DLI_Level_Low_Alarm1                    :break;
1538
-        case  DLI_Level_Low_Alarm2                    :break;
1539
-        case  DLI_Level_Low_Alarm3                    :break;
1540
-        case  DLI_Level_Low_Alarm4                    :break;
1541
-        case  DLI_AGC_ON_OFF                   :break;
1542
-        case  DLI_AGC_Threshold                       :break;
1543
-        case  DLI_AGC_Threshold_Default               :break;
1544
-        case  DLI_Shutdown_ON_OFF                     :break;
1545
-        case  DLI_Shutdown_Threshold                  :break;
1546
-        case  DLI_Shutdown_Threshold_Default          :break;
1547
-        case  DLI_Shutdown_Count                      :break;
1548
-        case  DLI_AGC_Alarm1                          :break;
1549
-        case  DLI_AGC_Alarm2                          :break;
1550
-        case  DLI_AGC_Alarm3                          :break;
1551
-        case  DLI_AGC_Alarm4                          :break;
1552
-        case  DLI_Shutdown_Alarm1                     :break;
1553
-        case  DLI_Shutdown_Alarm2                     :break;
1554
-        case  DLI_Shutdown_Alarm3                     :break;
1555
-        case  DLI_Shutdown_Alarm4                     :break;
1556
-        case  ULO_RF_Path1_ON_OFF1            :break;
1557
-        case  ULO_RF_Path2_ON_OFF2                    :break;
1558
-        case  ULO_RF_Path3_ON_OFF3                    :break;
1559
-        case  ULO_RF_Path4_ON_OFF4                    :break;
1560
-        case  ULO_Gain_Atten1                         :break;
1561
-        case  ULO_Gain_Atten2                         :break;
1562
-        case  ULO_Gain_Atten3                         :break;
1563
-        case  ULO_Gain_Atten4                         :break;
1564
-        case  ULO_Gain_Atten_Offset1                  :break;
1565
-        case  ULO_Gain_Atten_Offset2                  :break;
1566
-        case  ULO_Gain_Atten_Offset3                  :break;
1567
-        case  ULO_Gain_Atten_Offset4                  :break;
1568
-        case  ULO_Level_High_Threshold                :break;
1569
-        case  SERIAL_UL_NULL0                         :break;
1570
-        case  ULO_Level_High_Threshold_default        :break;
1571
-        case  ULO_Level                               :break;
1572
-        case  ULO_Level_High_Alarm1             :break;
1573
-        case  ULO_Level_High_Alarm2                   :break;
1574
-        case  ULO_Level_High_Alarm3                  :break;
1575
-        case  ULO_Level_High_Alarm4                  :break;
1576
-        case  SERIAL_UL_NULL1                         :break;
1577
-        case  ULO_ALC_ON_OFF                   :break;
1578
-        case  ULO_ALC_Threshold                       :break;
1579
-        case  ULO_ALC_Threshold_Default               :break;
1580
-        case  ULO_Shutdown_ON_OFF                     :break;
1581
-        case  ULO_Shutdown_Threshold                  :break;
1582
-        case  ULO_Shutdown_Threshold_Default          :break;
1583
-        case  ULO_Shutdown_Retry_Count                :break;
1584
-        case  ULO_ALC_Alarm1                          :break;
1585
-        case  ULO_ALC_Alarm2                          :break;
1586
-        case  ULO_ALC_Alarm3                          :break;
1587
-        case  ULO_ALC_Alarm4                          :break;
1588
-        case  ULO_Shutdown_Alarm1                     :break;
1589
-        case  ULO_Shutdown_Alarm2                     :break;
1590
-        case  ULO_Shutdown_Alarm3                     :break;
1591
-        case  ULO_Shutdown_Alarm4                     :break;
1592
-
1593
-	}
1486
+    if(cmd == MBIC_GET){
1487
+    	switch(datatype){
1488
+                case  Alarm_Bit_List                          :
1489
+//                    
1490
+                    break;
1491
+                case  Alarm_Mask                              :
1492
+                    
1493
+                    break;
1494
+                case  Alarm_Test_Mode                         :
1495
+
1496
+                    break;
1497
+                case  Alarm_Test_Dummy                        :
1498
+
1499
+                    break;
1500
+                case  CPU_Version                             :
1501
+
1502
+                    break;
1503
+                case  ModuleINFORMATION_null1                 :
1504
+
1505
+                    break;
1506
+                case  CPU_Current_Bank                        :
1507
+
1508
+                    break;
1509
+                case  CPU_Bank_Select_Reboot_by               :
1510
+
1511
+                    break;
1512
+                case  CPU_Bank1_Image_Version                 :
1513
+
1514
+                    break;
1515
+                case  CPU_Bank1_Image_BuildTime               :break;
1516
+                case  CPU_Bank1_Image_Name                    :break;
1517
+                case  CPU_Bank2_Image_Version                 :break;
1518
+                case  CPU_Bank2_Image_BuildTime               :break;
1519
+                case  CPU_Bank2_Image_Name                    :break;
1520
+                case  SW_Reset                                :break;
1521
+                case  Factory_Set_Initialization              :break;
1522
+                case  Temperature                             :break;
1523
+                case  Temperature_Offset                      :break;
1524
+                case  Temp_High_Threshold                     :
1525
+                    ResultData[MBIC_PAYLOADSTART] = bluecell_Currdatastatus.Temp_High_Threshold;
1526
+                break;
1527
+                case  Temp_High_Threshold_Default             :
1528
+                    ResultData[MBIC_PAYLOADSTART] = bluecell_Currdatastatus.Temp_High_Threshold_Default;
1529
+                break;
1530
+                case  Temp_High_Alarm                         :break;
1531
+                case  LED_TEST                                :break;
1532
+                case  Node                                    :break;
1533
+                case  Type                                    :break;
1534
+                case  PCB_Version                             :break;
1535
+                case  Serial_Number                           :break;
1536
+                case  Manufacture                             :break;
1537
+                case  Manufacture_Date                        :break;
1538
+                case  ENVIRONMENT_INVENTORY_NULL0             :break;
1539
+                case  Freq_ID                                 :break;
1540
+                case  Carrier_ID                              :break;
1541
+                case  Carrier_ON_OFF                          :break;
1542
+                case  DLI_P1_Level                    :break;
1543
+                case  DLI_P2_Level                            :break;
1544
+                case  DLI_P3_Level                            :break;
1545
+                case  DLI_P4_Level                            :break;
1546
+                case  ULO_P1_Level                            :break;
1547
+                case  ULO_P2_Level                            :break;
1548
+                case  ULO_P3_Level                            :break;
1549
+                case  ULO_P4_Level                            :break;
1550
+                case  DLI_RF_Path1_ON_OFF             :break;
1551
+                case  DLI_RF_Path2_ON_OFF                     :break;
1552
+                case  DLI_RF_Path3_ON_OFF                     :break;
1553
+                case  DLI_RF_Path4_ON_OFF                     :break;
1554
+                case  DLI_Gain_Atten1                         :break;
1555
+                case  DLI_Gain_Atten2                         :break;
1556
+                case  DLI_Gain_Atten3                         :break;
1557
+                case  DLI_Gain_Atten4                         :break;
1558
+                case  DLI_Gain_Atten_Offset1                  :break;
1559
+                case  DLI_Gain_Atten_Offset2                  :break;
1560
+                case  DLI_Gain_Atten_Offset3                  :break;
1561
+                case  DLI_Gain_Atten_Offset4                  :break;
1562
+                case  DLI_Level_High_Threshold                :break;
1563
+                case  DLI_Level_Low_Threshold                 :break;
1564
+                case  DLI_Level_High_Low_Threshold_default    :break;
1565
+                case  DLI_Level                               :break;
1566
+                case  DLI_Level_High_Alarm1            :break;
1567
+                case  DLI_Level_High_Alarm2                   :break;
1568
+                case  DLI_Level_High_Alarm3                   :break;
1569
+                case  DLI_Level_High_Alarm4                   :break;
1570
+                case  DLI_Level_Low_Alarm1                    :break;
1571
+                case  DLI_Level_Low_Alarm2                    :break;
1572
+                case  DLI_Level_Low_Alarm3                    :break;
1573
+                case  DLI_Level_Low_Alarm4                    :break;
1574
+                case  DLI_AGC_ON_OFF                   :break;
1575
+                case  DLI_AGC_Threshold                       :break;
1576
+                case  DLI_AGC_Threshold_Default               :break;
1577
+                case  DLI_Shutdown_ON_OFF                     :break;
1578
+                case  DLI_Shutdown_Threshold                  :break;
1579
+                case  DLI_Shutdown_Threshold_Default          :break;
1580
+                case  DLI_Shutdown_Count                      :break;
1581
+                case  DLI_AGC_Alarm1                          :break;
1582
+                case  DLI_AGC_Alarm2                          :break;
1583
+                case  DLI_AGC_Alarm3                          :break;
1584
+                case  DLI_AGC_Alarm4                          :break;
1585
+                case  DLI_Shutdown_Alarm1                     :break;
1586
+                case  DLI_Shutdown_Alarm2                     :break;
1587
+                case  DLI_Shutdown_Alarm3                     :break;
1588
+                case  DLI_Shutdown_Alarm4                     :break;
1589
+                case  ULO_RF_Path1_ON_OFF1            :break;
1590
+                case  ULO_RF_Path2_ON_OFF2                    :break;
1591
+                case  ULO_RF_Path3_ON_OFF3                    :break;
1592
+                case  ULO_RF_Path4_ON_OFF4                    :break;
1593
+                case  ULO_Gain_Atten1                         :break;
1594
+                case  ULO_Gain_Atten2                         :break;
1595
+                case  ULO_Gain_Atten3                         :break;
1596
+                case  ULO_Gain_Atten4                         :break;
1597
+                case  ULO_Gain_Atten_Offset1                  :break;
1598
+                case  ULO_Gain_Atten_Offset2                  :break;
1599
+                case  ULO_Gain_Atten_Offset3                  :break;
1600
+                case  ULO_Gain_Atten_Offset4                  :break;
1601
+                case  ULO_Level_High_Threshold                :break;
1602
+                case  SERIAL_UL_NULL0                         :break;
1603
+                case  ULO_Level_High_Threshold_default        :break;
1604
+                case  ULO_Level                               :break;
1605
+                case  ULO_Level_High_Alarm1             :break;
1606
+                case  ULO_Level_High_Alarm2                   :break;
1607
+                case  ULO_Level_High_Alarm3                  :break;
1608
+                case  ULO_Level_High_Alarm4                  :break;
1609
+                case  SERIAL_UL_NULL1                         :break;
1610
+                case  ULO_ALC_ON_OFF                   :break;
1611
+                case  ULO_ALC_Threshold                       :break;
1612
+                case  ULO_ALC_Threshold_Default               :break;
1613
+                case  ULO_Shutdown_ON_OFF                     :break;
1614
+                case  ULO_Shutdown_Threshold                  :break;
1615
+                case  ULO_Shutdown_Threshold_Default          :break;
1616
+                case  ULO_Shutdown_Retry_Count                :break;
1617
+                case  ULO_ALC_Alarm1                          :break;
1618
+                case  ULO_ALC_Alarm2                          :break;
1619
+                case  ULO_ALC_Alarm3                          :break;
1620
+                case  ULO_ALC_Alarm4                          :break;
1621
+                case  ULO_Shutdown_Alarm1                     :break;
1622
+                case  ULO_Shutdown_Alarm2                     :break;
1623
+                case  ULO_Shutdown_Alarm3                     :break;
1624
+                case  ULO_Shutdown_Alarm4                     :break;
1625
+
1626
+    	    }
1627
+        }
1628
+        else if(cmd == MBIC_SET){
1629
+            switch(datatype){
1630
+                case  Alarm_Bit_List                          :break;
1631
+                case  Alarm_Mask                              :break;
1632
+                case  Alarm_Test_Mode                         :break;
1633
+                case  Alarm_Test_Dummy                        :break;
1634
+                case  CPU_Version                             :break;
1635
+                case  ModuleINFORMATION_null1                 :break;
1636
+                case  CPU_Current_Bank                        :break;
1637
+                case  CPU_Bank_Select_Reboot_by               :break;
1638
+                case  CPU_Bank1_Image_Version                 :break;
1639
+                case  CPU_Bank1_Image_BuildTime               :break;
1640
+                case  CPU_Bank1_Image_Name                    :break;
1641
+                case  CPU_Bank2_Image_Version                 :break;
1642
+                case  CPU_Bank2_Image_BuildTime               :break;
1643
+                case  CPU_Bank2_Image_Name                    :break;
1644
+                case  SW_Reset                                :break;
1645
+                case  Factory_Set_Initialization              :break;
1646
+                case  Temperature                     :break;
1647
+                case  Temperature_Offset                      :break;
1648
+                case  Temp_High_Threshold                     :break;
1649
+                case  Temp_High_Threshold_Default             :break;
1650
+                case  Temp_High_Alarm                         :break;
1651
+                case  LED_TEST                                :break;
1652
+                case  Node                                    :break;
1653
+                case  Type                                    :break;
1654
+                case  PCB_Version                             :break;
1655
+                case  Serial_Number                           :break;
1656
+                case  Manufacture                             :break;
1657
+                case  Manufacture_Date                        :break;
1658
+                case  ENVIRONMENT_INVENTORY_NULL0             :break;
1659
+                case  Freq_ID                                 :break;
1660
+                case  Carrier_ID                              :break;
1661
+                case  Carrier_ON_OFF                          :break;
1662
+                case  DLI_P1_Level                    :break;
1663
+                case  DLI_P2_Level                            :break;
1664
+                case  DLI_P3_Level                            :break;
1665
+                case  DLI_P4_Level                            :break;
1666
+                case  ULO_P1_Level                            :break;
1667
+                case  ULO_P2_Level                            :break;
1668
+                case  ULO_P3_Level                            :break;
1669
+                case  ULO_P4_Level                            :break;
1670
+                case  DLI_RF_Path1_ON_OFF             :break;
1671
+                case  DLI_RF_Path2_ON_OFF                     :break;
1672
+                case  DLI_RF_Path3_ON_OFF                     :break;
1673
+                case  DLI_RF_Path4_ON_OFF                     :break;
1674
+                case  DLI_Gain_Atten1                         :break;
1675
+                case  DLI_Gain_Atten2                         :break;
1676
+                case  DLI_Gain_Atten3                         :break;
1677
+                case  DLI_Gain_Atten4                         :break;
1678
+                case  DLI_Gain_Atten_Offset1                  :break;
1679
+                case  DLI_Gain_Atten_Offset2                  :break;
1680
+                case  DLI_Gain_Atten_Offset3                  :break;
1681
+                case  DLI_Gain_Atten_Offset4                  :break;
1682
+                case  DLI_Level_High_Threshold                :break;
1683
+                case  DLI_Level_Low_Threshold                 :break;
1684
+                case  DLI_Level_High_Low_Threshold_default    :break;
1685
+                case  DLI_Level                               :break;
1686
+                case  DLI_Level_High_Alarm1            :break;
1687
+                case  DLI_Level_High_Alarm2                   :break;
1688
+                case  DLI_Level_High_Alarm3                   :break;
1689
+                case  DLI_Level_High_Alarm4                   :break;
1690
+                case  DLI_Level_Low_Alarm1                    :break;
1691
+                case  DLI_Level_Low_Alarm2                    :break;
1692
+                case  DLI_Level_Low_Alarm3                    :break;
1693
+                case  DLI_Level_Low_Alarm4                    :break;
1694
+                case  DLI_AGC_ON_OFF                   :break;
1695
+                case  DLI_AGC_Threshold                       :break;
1696
+                case  DLI_AGC_Threshold_Default               :break;
1697
+                case  DLI_Shutdown_ON_OFF                     :break;
1698
+                case  DLI_Shutdown_Threshold                  :break;
1699
+                case  DLI_Shutdown_Threshold_Default          :break;
1700
+                case  DLI_Shutdown_Count                      :break;
1701
+                case  DLI_AGC_Alarm1                          :break;
1702
+                case  DLI_AGC_Alarm2                          :break;
1703
+                case  DLI_AGC_Alarm3                          :break;
1704
+                case  DLI_AGC_Alarm4                          :break;
1705
+                case  DLI_Shutdown_Alarm1                     :break;
1706
+                case  DLI_Shutdown_Alarm2                     :break;
1707
+                case  DLI_Shutdown_Alarm3                     :break;
1708
+                case  DLI_Shutdown_Alarm4                     :break;
1709
+                case  ULO_RF_Path1_ON_OFF1            :break;
1710
+                case  ULO_RF_Path2_ON_OFF2                    :break;
1711
+                case  ULO_RF_Path3_ON_OFF3                    :break;
1712
+                case  ULO_RF_Path4_ON_OFF4                    :break;
1713
+                case  ULO_Gain_Atten1                         :break;
1714
+                case  ULO_Gain_Atten2                         :break;
1715
+                case  ULO_Gain_Atten3                         :break;
1716
+                case  ULO_Gain_Atten4                         :break;
1717
+                case  ULO_Gain_Atten_Offset1                  :break;
1718
+                case  ULO_Gain_Atten_Offset2                  :break;
1719
+                case  ULO_Gain_Atten_Offset3                  :break;
1720
+                case  ULO_Gain_Atten_Offset4                  :break;
1721
+                case  ULO_Level_High_Threshold                :break;
1722
+                case  SERIAL_UL_NULL0                         :break;
1723
+                case  ULO_Level_High_Threshold_default        :break;
1724
+                case  ULO_Level                               :break;
1725
+                case  ULO_Level_High_Alarm1             :break;
1726
+                case  ULO_Level_High_Alarm2                   :break;
1727
+                case  ULO_Level_High_Alarm3                  :break;
1728
+                case  ULO_Level_High_Alarm4                  :break;
1729
+                case  SERIAL_UL_NULL1                         :break;
1730
+                case  ULO_ALC_ON_OFF                   :break;
1731
+                case  ULO_ALC_Threshold                       :break;
1732
+                case  ULO_ALC_Threshold_Default               :break;
1733
+                case  ULO_Shutdown_ON_OFF                     :break;
1734
+                case  ULO_Shutdown_Threshold                  :break;
1735
+                case  ULO_Shutdown_Threshold_Default          :break;
1736
+                case  ULO_Shutdown_Retry_Count                :break;
1737
+                case  ULO_ALC_Alarm1                          :break;
1738
+                case  ULO_ALC_Alarm2                          :break;
1739
+                case  ULO_ALC_Alarm3                          :break;
1740
+                case  ULO_ALC_Alarm4                          :break;
1741
+                case  ULO_Shutdown_Alarm1                     :break;
1742
+                case  ULO_Shutdown_Alarm2                     :break;
1743
+                case  ULO_Shutdown_Alarm3                     :break;
1744
+                case  ULO_Shutdown_Alarm4                     :break;
1745
+            }
1746
+        }
1747
+        else{
1748
+            /*NOP*/
1749
+            printf("DATA ERR\r\n");
1750
+        }
1594 1751
 	return true;
1595 1752
 }
1596 1753
 

+ 27 - 2
Bluecell_Src/CRC.c

@@ -122,10 +122,35 @@ etError STH30_CheckCrc(uint8_t *data, uint8_t nbrOfBytes, uint8_t checksum)
122 122
 
123 123
 
124 124
 
125
-uint8_t chksum(uint8_t c, uint8_t v)
125
+
126
+
127
+bool Chksum_Check(uint8_t *data, uint32_t leng,uint8_t chkdata)
126 128
 {
127
-    return (uint8_t)(c + v);
129
+   uint8_t dataret = 0;
130
+   bool ret = false;
131
+   for(int i = 0; i < leng; i++){
132
+        dataret += data[i];
133
+   }
134
+   if(dataret == chkdata){
135
+        ret = true;
136
+   }
137
+    
138
+    return ret;
128 139
 }
140
+uint8_t Chksum_Create(uint8_t *data, uint32_t leng)
141
+{
142
+   uint8_t dataret = 0;
143
+   bool ret = false;
144
+   for(int i = 0; i < leng; i++){
145
+        dataret += data[i];
146
+   }
147
+   if(dataret == chkdata){
148
+        ret = true;
149
+   }
150
+    
151
+    return ret;
152
+}
153
+
129 154
 
130 155
 static
131 156
 const uint16_t crc16_tab[256] = {

+ 5 - 2
Bluecell_Src/uart.c

@@ -73,7 +73,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
73 73
 //    }
74 74
     uart_buf[cnt++] = *(pQueue->Buffer + pQueue->tail); 
75 75
 //#ifdef DEBUG_PRINT
76
-    printf("%02x ",*(pQueue->Buffer + pQueue->tail)) ;
76
+//    printf("%02x ",*(pQueue->Buffer + pQueue->tail)) ;
77 77
 //#endif /* DEBUG_PRINT */
78 78
 
79 79
     pQueue->tail++;
@@ -96,7 +96,10 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
96 96
                    &&uart_buf[1] == MBIC_PREAMBLE1
97 97
                    &&uart_buf[2] == MBIC_PREAMBLE2
98 98
                    &&uart_buf[3] == MBIC_PREAMBLE3){
99
-                MBIC_Operate(uart_buf);
99
+               if(Chksum_Check(uart_buf,MBIC_HEADER_SIZE - 1, uart_buf[MBIC_CHECKSHUM]) == true)
100
+                    MBIC_Operate(uart_buf);
101
+               else
102
+                    printf("CHECK SUM ERR \r\n");
100 103
             }
101 104
         memset(uart_buf,0x00,cnt);
102 105
 //        for(int i  = 0; i < cnt; i++)

+ 1 - 1
Src/main.c

@@ -681,7 +681,7 @@ static void MX_USART1_UART_Init(void)
681 681
 
682 682
   /* USER CODE END USART1_Init 1 */
683 683
   huart1.Instance = USART1;
684
-  huart1.Init.BaudRate = 921600;
684
+  huart1.Init.BaudRate = 115200;
685 685
   huart1.Init.WordLength = UART_WORDLENGTH_8B;
686 686
   huart1.Init.StopBits = UART_STOPBITS_1;
687 687
   huart1.Init.Parity = UART_PARITY_NONE;