Browse Source

V2.3.0.16 完善三轴加速度数据获取及上传,完善震动时提高Gps传输频率

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
d093cc835c
7 changed files with 36 additions and 19 deletions
  1. 1 1
      inc/Signal.h
  2. 3 3
      inc/TcpTask.h
  3. 1 1
      inc/app.h
  4. 8 4
      src/GpsTask.c
  5. 1 0
      src/Signal.c
  6. 12 6
      src/TcpTask.c
  7. 10 4
      src/sensor.c

+ 1 - 1
inc/Signal.h

@@ -31,7 +31,7 @@ extern	UINT8	reservedSignal8;
 extern  UINT8   RelayControlState;
 extern  UINT8	BuzzerControl;
 extern  UINT8   CanMsgFlag;
-
+extern  UINT8	VibrationStatus;
 //declear the UINT16 vars
 extern	UINT16	battCellU[28];
 extern	UINT16	minCellVol;

+ 3 - 3
inc/TcpTask.h

@@ -106,9 +106,9 @@ typedef struct _GPSInfoType
 	UINT8   AccMileage[4];
 	UINT8   Tac[2];
 	UINT8 	CellId[4];
-	UINT8   xData[2];
-	UINT8   yData[2];
-	UINT8	zData[2];
+	UINT8   xData;
+	UINT8   yData;
+	UINT8	zData;
 }GPSInfoType;
 typedef struct GPSMsgtoTcpType
 {

+ 1 - 1
inc/app.h

@@ -51,7 +51,7 @@ extern "C" {
 #define	BLSWVERSION		0x01020000    //BootLoader版本号V1.2.0.0
 #define	DRVSWVERSION		0x01050000     //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 //#define	APPSWVERSION		0x01020209     
-#define	APPSWVERSION		0x0203000F
+#define	APPSWVERSION		0x02030010
 //#define	APPSWVERSION		0x0201000E
 //--------------------------------------------------------------------------------
 

+ 8 - 4
src/GpsTask.c

@@ -154,10 +154,14 @@ static void GpsTask(void* arg)
                 free(msg.dataPtr);
             msg.dataPtr=NULL;
         }
-        if(Aoi1Event||Aoi2Event||Timer_count%10==0)
+        if(Aoi1Event||Aoi2Event||Timer_count%20==0)
         {
-            Aoi1Event=0;
-            Aoi2Event=0;
+            if(Aoi1Event||Aoi2Event)
+            {
+                Aoi1Event=0;
+                Aoi2Event=0;
+                VibrationStatus = 0x01;
+            }
             //SL_SC7A20_Reg_read_all();
             UINT8 ret  = SL_SC7A20_Read_XYZ_Data(xyzData);
             xData[xyzCounter] = xyzData[0];
@@ -171,7 +175,7 @@ static void GpsTask(void* arg)
             xzyDataSend[0] = (xData[0] + xData[1] + xData[2])/3;
             xzyDataSend[1] = (yData[0] + yData[1] + yData[2])/3;
             xzyDataSend[2] = (zData[0] + zData[1] + zData[2])/3;
-            #ifdef USING_PRINTF
+            #ifdef USING_PRINTF1
                 printf("\n%d %d %d \r\n", xzyDataSend[0],xzyDataSend[1],xzyDataSend[2]);
             #endif
 

+ 1 - 0
src/Signal.c

@@ -62,6 +62,7 @@ UINT8	reservedSignal8 = 0x00;
 UINT8   RelayControlState = 0x00;
 UINT8	BuzzerControl = 0x00;
 UINT8   CanMsgFlag = 0x00;
+UINT8	VibrationStatus = 0x00;
 //declear the UINT16 vars
 UINT16	battCellU[28] = {0xFFFF};
 UINT16	minCellVol = 0xFFFF;

+ 12 - 6
src/TcpTask.c

@@ -307,6 +307,15 @@ static void TcpDataInfoAssembleSend()
             BattSendFreq = 30/5;
             GpsSendFreq = 30/5;
             break;
+    }
+    if(VibrationStatus)
+    {
+        GpsSendFreq = 10/5;
+        VibrationStatus = 0x00;
+    }
+    else
+    {
+        GpsSendFreq = 30/5;
     }    
     if(send_counter%BattSendFreq==0)
     {
@@ -470,12 +479,9 @@ static void TcpDataInfoAssembleSend()
         GpsToTcpInfo.gpsInfo.CellId[1] = CellId>>16;
         GpsToTcpInfo.gpsInfo.CellId[2] = CellId>>8;
         GpsToTcpInfo.gpsInfo.CellId[3] = CellId;
-        GpsToTcpInfo.gpsInfo.xData[0] =  xzyDataSend[0]>>8;
-        GpsToTcpInfo.gpsInfo.xData[1] =  xzyDataSend[0];
-        GpsToTcpInfo.gpsInfo.yData[0] =  xzyDataSend[1]>>8;
-        GpsToTcpInfo.gpsInfo.yData[1] =  xzyDataSend[1];
-        GpsToTcpInfo.gpsInfo.zData[0] =  xzyDataSend[2]>>8;
-        GpsToTcpInfo.gpsInfo.zData[1] =  xzyDataSend[2];
+        GpsToTcpInfo.gpsInfo.xData =  (xzyDataSend[0]/100)+100;
+        GpsToTcpInfo.gpsInfo.yData =  (xzyDataSend[1]/100)+100;
+        GpsToTcpInfo.gpsInfo.zData =  (xzyDataSend[2]/100)+100;
         GpsToTcpInfo.CRC = bcc_chk((UINT8 *)&GpsToTcpInfo, sizeof(GPSMsgtoTcpType)-1 );
         osMutexRelease(GpsMutex);
         //if(GpsToTcpInfo.gpsInfo.locateMark==0x01)

+ 10 - 4
src/sensor.c

@@ -278,13 +278,13 @@ INT8  SL_SC7A20_INT_Config(void)
 
     //HPF SET
   //  GSENSOR_ReadReg(SL_SC7A20_CTRL_REG2,1, &SL_Read_Reg); 
-    SL_Read_Reg=0xcf;//SL_Read_Reg|0x81;//Normal HP , HPF TO AOI1 
+    SL_Read_Reg=0x00;//SL_Read_Reg|0x81;//Normal HP , HPF TO AOI1 
     GSENSOR_WriteReg(SL_SC7A20_CTRL_REG2, SL_Read_Reg);
     
     //�ж���ֵ����
     GSENSOR_WriteReg(SL_SC7A20_INT1_THS, SL_SC7A20_INT_THS_20PERCENT);	
     //������ֵ����ʱ�䴥���ж�
-    GSENSOR_WriteReg(SL_SC7A20_INT1_DURATION, SL_SC7A20_INT_DURATION_30CLK);
+    GSENSOR_WriteReg(SL_SC7A20_INT1_DURATION, SL_SC7A20_INT_DURATION_10CLK);
         
     //AOI1 TO INT1
    // GSENSOR_ReadReg(SL_SC7A20_CTRL_REG3,1, &SL_Read_Reg);
@@ -313,9 +313,9 @@ INT8  SL_SC7A20_INT_Config(void)
 //    GSENSOR_WriteReg(SL_SC7A20_CTRL_REG2, SL_Read_Reg);
 
     //�ж���ֵ����
-    GSENSOR_WriteReg(SL_SC7A20_INT2_THS, SL_SC7A20_INT_THS_5PERCENT);	
+    GSENSOR_WriteReg(SL_SC7A20_INT2_THS, SL_SC7A20_INT_THS_20PERCENT);	
     //������ֵ����ʱ�䴥���ж�
-    GSENSOR_WriteReg(SL_SC7A20_INT2_DURATION, SL_SC7A20_INT_DURATION_2CLK);
+    GSENSOR_WriteReg(SL_SC7A20_INT2_DURATION, SL_SC7A20_INT_DURATION_10CLK);
     
     //AOI2 TO INT2
     GSENSOR_ReadReg(SL_SC7A20_CTRL_REG6,1, &SL_Read_Reg);
@@ -568,6 +568,12 @@ INT8  SL_SC7A20_Read_XYZ_Data(INT16 *SL_SC7A20_Data_XYZ_Buf)
         SL_SC7A20_Data_XYZ_Buf[0]=(INT16)((SL_Read_Buf[2]<<8) + SL_Read_Buf[1]);
         SL_SC7A20_Data_XYZ_Buf[1]=(INT16)((SL_Read_Buf[4]<<8) + SL_Read_Buf[3]);
         SL_SC7A20_Data_XYZ_Buf[2]=(INT16)((SL_Read_Buf[6]<<8) + SL_Read_Buf[5]);
+        SL_SC7A20_Data_XYZ_Buf[0] = SL_SC7A20_Data_XYZ_Buf[0]>>4;
+        SL_SC7A20_Data_XYZ_Buf[1] = SL_SC7A20_Data_XYZ_Buf[1]>>4;
+        SL_SC7A20_Data_XYZ_Buf[2] = SL_SC7A20_Data_XYZ_Buf[2]>>4;
+        SL_SC7A20_Data_XYZ_Buf[0] = SL_SC7A20_Data_XYZ_Buf[0]*2;
+        SL_SC7A20_Data_XYZ_Buf[1] = SL_SC7A20_Data_XYZ_Buf[1]*2;
+        SL_SC7A20_Data_XYZ_Buf[2] = SL_SC7A20_Data_XYZ_Buf[2]*2;
         return  1;
     }
     else