TEST_CODE_ApplyTo2V1_API

Dependencies:   SDFileSystem max32630fthr USBDevice

Revision:
4:217334c3a5b2
Parent:
3:35b05d91568d
--- a/CmdHandler.cpp	Mon Jun 22 05:27:48 2020 +0000
+++ b/CmdHandler.cpp	Tue Jul 28 01:40:05 2020 +0000
@@ -8,6 +8,8 @@
 //#include "Config.h"
 #include "ServoRun.h"
 
+#include "Van_API.h"
+
 GLOBAL_CMD_VAR g_cmd;
 
 //extern CONFIG g_config;
@@ -29,6 +31,7 @@
 extern DigitalOut rLED;
 extern DigitalOut xSHUT;
 extern InterruptIn  chip_int;
+extern DigitalOut TRIM_EN;
 
 extern uint16_t histogram_pos_num;
 extern uint16_t histogram_per_pos;
@@ -36,6 +39,8 @@
 extern uint16_t range_step_num;
 extern uint16_t range_per_step;
 
+extern uint8_t work_mode;
+
 void CmdHandleTask(void)
 {
     uint8_t ret;
@@ -164,7 +169,7 @@
 
         case VAN_SINGLE_MEAS:// 单次测量
             if(HandleOneTimeMeasure() == 0)
-                UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 10);
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 14);
             else
                 UART_CmdAckSend(READ_CMD | 0x10, VAN_SINGLE_MEAS, _uart_send_pbuff, 2);
             break;
@@ -244,7 +249,13 @@
 
         case INT_ENABLE_CMD:
             if(pd[5] == 1)
+            {
+                work_mode = 1;
                 chip_int.disable_irq();
+                WriteOneReg(0x3D, 0xC8);
+                //WriteOneReg(0x3E, 0x04);
+                TRIM_EN = 1;
+            }
             break;
 
         case VAN_DCR_TEST_CMD:
@@ -278,6 +289,9 @@
         case VAN_RCO_TRIM_CMD:
             if(RCO_Trim(_uart_send_pbuff) == 0)
             {
+                WriteOneReg(0x37, _uart_send_pbuff[0]);
+                WriteOneReg(0x3E, 0x40);
+                WriteOneReg(0x3F, 0x8C);
                 _uart_send_pbuff[1] = _uart_send_pbuff[0];
                 _uart_send_pbuff[0] = 0;
                 UART_CmdAckSend(READ_CMD | 0x80, VAN_RCO_TRIM_CMD, _uart_send_pbuff, 2);
@@ -311,6 +325,29 @@
             else
                 UART_CmdAckSend(READ_CMD | 0x10, VAN_PIXEL_EN_CMD, _uart_send_pbuff, 2);        
         break;
+        
+        case VAN_MP_SLECTE_CMD:
+            if(MP_Slect(_uart_send_pbuff) == 0)
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_MP_SLECTE_CMD, _uart_send_pbuff, 129);
+            else
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_MP_SLECTE_CMD, _uart_send_pbuff, 2); 
+        
+        break;
+        
+        case VAN_OTP_WRITE_CMD:
+            if(OTP_Write(&pd[5]) == 0)
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_OTP_WRITE_CMD, _uart_send_pbuff, 2);
+            else
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_OTP_WRITE_CMD, _uart_send_pbuff, 2); 
+        break;
+        
+        case VAN_OTP_READ_CMD:
+            if(OTP_Read(&pd[5], _uart_send_pbuff) == 0)
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_OTP_READ_CMD, _uart_send_pbuff, pd[6]+2);
+            else
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_OTP_READ_CMD, _uart_send_pbuff, 2); 
+            break;
+        
 
         default:
 
@@ -351,22 +388,31 @@
 
 uint8_t HandleOneTimeMeasure(void)
 {
-    return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2), (uint32_t*)(_uart_send_pbuff + 4), (uint16_t*)(_uart_send_pbuff + 8));
+    return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2), (uint32_t*)(_uart_send_pbuff + 4), (uint16_t*)(_uart_send_pbuff + 8), (uint16_t*)(_uart_send_pbuff + 10), (uint16_t*)(_uart_send_pbuff + 12));
 }
 
 uint8_t HandleContinuousMeasure(uint8_t *pd)
-{
+{    
     if(pd[5] == 0x00)
+    {
         return StopContinuousMeasure();
+    }
     else
+    {
         return ContinuousMeasure();
+    }
 }
 
 uint8_t HandleReadHistogram(uint8_t tdc_idx)
 {
     _uart_send_pbuff[0] = tdc_idx;
+    
+    if(tdc_idx == 0xF1)
+        memcpy(&_uart_send_pbuff[1], histogram[0], 1024);
+    else
+        memcpy(&_uart_send_pbuff[1], histogram[tdc_idx], 1024);
 
-    memcpy(&_uart_send_pbuff[1], histogram[tdc_idx], 1024);
+    
 
     UART_CmdAckSend(READ_CMD | 0x80, VAN_READ_HIST_CMD, _uart_send_pbuff, 1025);
     return 0;
@@ -413,7 +459,7 @@
     return ret;
 }
 
-uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level)
+uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level, uint16_t ref_lsb, uint16_t ref_milimeter)
 {
     memcpy(_uart_send_pbuff, &lsb, 2);
     memcpy(_uart_send_pbuff + 2, &milimeter, 2);
@@ -421,17 +467,18 @@
     memcpy(_uart_send_pbuff + 4, &peak, 4);
     memcpy(_uart_send_pbuff + 8, &noise_level, 2);
     
+    memcpy(_uart_send_pbuff + 10, &ref_lsb, 2);
+    memcpy(_uart_send_pbuff + 12, &ref_milimeter, 2);
+    
 
-    UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 10);
+    UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 14);
 
     return 0;
 }
 
 void HandleChipReset(void)
 {
-    xSHUT = 0;
-    wait_ms(30);
-    xSHUT = 1;
+    ChipInitReset();
 }
 
 void HandleFreqReport(float* V_I_Value)