From 2ebb8217f43b69f491620423ea4d5d5944d1f91d Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期六, 05 七月 2025 22:43:58 +0800
Subject: [PATCH] 格式化部分代码

---
 keil/include/drivers/mk_trace.c                      |    2 
 keil/include/components/hal/UART.c                   |   82 
 keil/include/src/GPS.c                               |  296 +-
 keil/include/components/internet/src/AIR780ESocket.c |  508 +-
 keil/include/drivers/WS2812.c                        |   40 
 keil/Objects/uwb_simple_example.build_log.htm        |   25 
 keil/include/src/OTA.c                               |  184 
 keil/include/components/internet/src/NTRIPClient.c   |  154 
 keil/include/components/internet/src/TTS.c           |    2 
 keil/include/components/internet/src/Internet.c      |   14 
 keil/include/components/internet/src/Socket.c        |   94 
 keil/include/drivers/Shell.c                         |  184 
 keil/include/drivers/DBG.c                           |   16 
 keil/include/components/internet/src/HTTPClient.c    |  340 +-
 keil/include/components/internet/src/TONE.c          |    2 
 keil/Listings/uwb_simple_example.map                 |   32 
 keil/include/drivers/mk_misc.c                       |  107 
 keil/include/components/internet/src/AIR780EFSM.c    | 1564 ++++++------
 keil/Objects/uwb_simple_example.htm                  |    2 
 keil/include/components/internet/src/AIR780EDriver.c |   90 
 keil/uwb_simple_example.uvguix.zhyin                 |  109 
 keil/include/drivers/global_param.c                  |   16 
 keil/Objects/uwb_simple_example_MK8000 Release.dep   |   60 
 keil/include/drivers/dps310.c                        |  488 +-
 keil/include/drivers/lis3dh_driver.c                 |  282 +
 keil/include/src/gps.c.orig                          |  978 ++++++
 keil/include/components/internet/src/AIR780ECSQ.c    |   70 
 keil/include/drivers/dps368_test.c                   |  122 
 keil/include/src/NTRIPApp.c                          |   80 
 keil/include/src/TCPClient.c                         |  343 +-
 keil/include/src/TCPClient.c.orig                    |  812 +++++
 keil/include/components/internet/src/Module.c        |   64 
 keil/include/src/SPIV1.07.c                          |    2 
 keil/include/drivers/serial_at_cmd_app.c             |   32 
 keil/include/drivers/PCA9555.c                       |  496 +-
 keil/include/drivers/Usart.c                         |    2 
 keil/include/src/TCPClient_1.c                       |   80 
 37 files changed, 4,674 insertions(+), 3,100 deletions(-)

diff --git a/keil/Listings/uwb_simple_example.map b/keil/Listings/uwb_simple_example.map
index f11428e..d2c1b8b 100644
--- a/keil/Listings/uwb_simple_example.map
+++ b/keil/Listings/uwb_simple_example.map
@@ -11647,17 +11647,17 @@
       Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Object Name
 
        212         52         11         16          4       4317   air780ecsq.o
-       984        140       2501          0       3832       8990   air780edriver.o
-      3212        882        675         48        101      18159   air780efsm.o
-      1712        480        199          0         28      10435   air780esocket.o
+       984        140       2501          0       3832       8992   air780edriver.o
+      3212        882        675         48        101      18155   air780efsm.o
+      1712        480        199          0         28      10437   air780esocket.o
        626         52          0          0        104       8500   board.o
         44          4        512          0          0       1894   crc.o
        736         48          0          8       1580       6998   dbg.o
        320         32          0          0        200       1832   global_param.o
-       698        142          9          0        142       9203   gps.o
-        48          4          0          0          0       2687   internet.o
+       698        142          9          0        142       9197   gps.o
+        48          4          0          0          0       2685   internet.o
          0          0          0          0          4        284   libc.o
-      2260         24          0          1         18      41763   lis3dh_driver.o
+      2260         24          0          1         18      41483   lis3dh_driver.o
       3422        500        208         75        173      16481   main.o
        944        156         57          0         32      12548   mk_adc.o
        520         96         25         64          0      18740   mk_aes.o
@@ -11668,7 +11668,7 @@
       6128        420        368        124          0      40273   mk_flash.o
        732         32          0         84          0       9506   mk_gpio.o
        156          8          0          0          0       4064   mk_io.o
-       724         56         91          0         24      15686   mk_misc.o
+       724         56         91          0         24      15549   mk_misc.o
        832         84          0          0         24      16270   mk_power.o
        296        156         26          0          0       4082   mk_reset.o
       1000         84          0         24          0      14054   mk_rtc.o
@@ -11679,25 +11679,25 @@
        372         72          0         16          0       6450   mk_wdt.o
        312         24          0          0        270       7195   module.o
        136          8          0          0          1       2965   pal_flash.o
-      2492         36          0          0         66      16857   pca9555.o
+      2492         36          0          0         66      16829   pca9555.o
        254         24          0          0          0       2052   pin_config.o
-       936        108          0          3       1136       5884   serial_at_cmd_app.o
-      3686        524        639          0          0      12109   shell.o
+       936        108          0          3       1136       5882   serial_at_cmd_app.o
+      3686        524        639          0          0      12105   shell.o
        424         36          0          0          2       6406   sn74hc595.o
       1300        144          0          0      10092      11369   socket.o
        466          0          0          0          0       6338   spiv1.07.o
         42          8        344          0          0       2980   startup_mk800x.o
         16          8          0          4          0        652   system_mk800x.o
-      3480        616        155         20       5158      12576   tcpclient.o
-       380        104          0          4       1508       2894   tcpclient_1.o
+      3480        616        155         20       5158      12578   tcpclient.o
+       380        104          0          4       1508       2896   tcpclient_1.o
       1252         60        112          0        248       9764   uart.o
        112          4          0          0       1044       3177   usart.o
       1568        164          6         22       1074      12856   uwb_app.o
-       260          8          0          0         24       6021   ws2812.o
+       260          8          0          0         24       6019   ws2812.o
        184          8          0          0         12       4210   wsf_nvm.o
 
     ----------------------------------------------------------------------
-     55640       7546       7849        788      43362     506081   Object Totals
+     55640       7546       7849        788      43362     505624   Object Totals
          0          0         32          0      14336          0   (incl. Generated)
         28          0          2         11         45          0   (incl. Padding)
 
@@ -11812,8 +11812,8 @@
 
       Code (inc. data)   RO Data    RW Data    ZI Data      Debug   
 
-     87412      10166      11968       2108      49676     750199   Grand Totals
-     87412      10166      11968        592      49676     750199   ELF Image Totals (compressed)
+     87412      10166      11968       2108      49676     749742   Grand Totals
+     87412      10166      11968        592      49676     749742   ELF Image Totals (compressed)
      87412      10166      11968        592          0          0   ROM Totals
 
 ==============================================================================
diff --git a/keil/Objects/uwb_simple_example.build_log.htm b/keil/Objects/uwb_simple_example.build_log.htm
index 5143cb7..31859e9 100644
--- a/keil/Objects/uwb_simple_example.build_log.htm
+++ b/keil/Objects/uwb_simple_example.build_log.htm
@@ -27,7 +27,28 @@
 <h2>Output:</h2>
 *** Using Compiler 'V6.14', folder: 'D:\Keil_v5\ARM\ARMCLANG\Bin'
 Build target 'MK8000 Release'
-compiling main.c...
+compiling mk_misc.c...
+compiling WS2812.c...
+compiling Usart.c...
+compiling global_param.c...
+compiling serial_at_cmd_app.c...
+compiling PCA9555.c...
+compiling TCPClient_1.c...
+compiling AIR780ECSQ.c...
+compiling SPIV1.07.c...
+compiling DBG.c...
+compiling TCPClient.c...
+compiling mk_trace.c...
+compiling lis3dh_driver.c...
+compiling GPS.c...
+compiling Shell.c...
+compiling AIR780EDriver.c...
+compiling AIR780ESocket.c...
+compiling Internet.c...
+compiling Module.c...
+compiling AIR780EFSM.c...
+compiling Socket.c...
+compiling UART.c...
 linking...
 .\include\devices\MK800X\Source\ARM\MK800X_ac6_copy.sct(25): warning: L6314W: No section matches pattern *(.XIP_SECTION).
 Program Size: Code=87412 RO-data=11968 RW-data=2108 ZI-data=49676  
@@ -48,7 +69,7 @@
   D:\Users\zhyin\AppData\Local\Arm\Packs\MKSEMI\MK800X_DFP\1.0.3\Device\Include
 
 <h2>Collection of Component Files used:</h2>
-Build Time Elapsed:  00:00:03
+Build Time Elapsed:  00:00:04
 </pre>
 </body>
 </html>
diff --git a/keil/Objects/uwb_simple_example.htm b/keil/Objects/uwb_simple_example.htm
index 427e301..285ea55 100644
--- a/keil/Objects/uwb_simple_example.htm
+++ b/keil/Objects/uwb_simple_example.htm
@@ -3,7 +3,7 @@
 <title>Static Call Graph - [.\Objects\uwb_simple_example.axf]</title></head>
 <body><HR>
 <H1>Static Call Graph for image .\Objects\uwb_simple_example.axf</H1><HR>
-<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6140002: Last Updated: Sat Jul  5 22:37:35 2025
+<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6140002: Last Updated: Sat Jul  5 22:43:32 2025
 <BR><P>
 <H3>Maximum Stack Usage =       1620 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
 Call chain for Maximum Stack Depth:</H3>
diff --git a/keil/Objects/uwb_simple_example_MK8000 Release.dep b/keil/Objects/uwb_simple_example_MK8000 Release.dep
index 1af63ed..36ee5bb 100644
--- a/keil/Objects/uwb_simple_example_MK8000 Release.dep
+++ b/keil/Objects/uwb_simple_example_MK8000 Release.dep
@@ -238,7 +238,7 @@
 I (D:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
 I (include\devices\MK800X\Include\system_MK800X.h)(0x681DA63F)
 I (..\user_config.h)(0x6867A4E5)
-F (.\include\drivers\mk_misc.c)(0x68672F5E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/mk_misc.o -MD)
+F (.\include\drivers\mk_misc.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/mk_misc.o -MD)
 I (include\drivers\mk_misc.h)(0x681DA644)
 I (include\drivers\mk_common.h)(0x681DA642)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
@@ -357,7 +357,7 @@
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
 I (include\drivers\mk_clock.h)(0x681DA642)
 I (include\drivers\mk_power.h)(0x681DA645)
-F (.\include\drivers\mk_trace.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/mk_trace.o -MD)
+F (.\include\drivers\mk_trace.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/mk_trace.o -MD)
 I (include\drivers\mk_trace.h)(0x681DA647)
 I (include\drivers\mk_common.h)(0x681DA642)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
@@ -481,7 +481,7 @@
 I (include\drivers\mk_io.h)(0x681DA644)
 F (.\sn74hc595.h)(0x685CE6BC)()
 F (.\mk_4G.h)(0x685CE6BC)()
-F (.\include\drivers\PCA9555.c)(0x6867A394)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/pca9555.o -MD)
+F (.\include\drivers\PCA9555.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/pca9555.o -MD)
 I (include\drivers\PCA9555.h)(0x685CE6BC)
 I (include\board\board.h)(0x685CE6BC)
 I (include\drivers\mk_common.h)(0x681DA642)
@@ -507,7 +507,7 @@
 I (include\drivers\DBG.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 F (.\include\drivers\PCA9555.h)(0x685CE6BC)()
-F (.\include\drivers\WS2812.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/ws2812.o -MD)
+F (.\include\drivers\WS2812.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/ws2812.o -MD)
 I (include\drivers\WS2812.h)(0x685CE6BC)
 I (include\board\board.h)(0x685CE6BC)
 I (include\drivers\mk_common.h)(0x681DA642)
@@ -551,7 +551,7 @@
 I (..\user_config.h)(0x6867A4E5)
 I (include\drivers\mk_uart.h)(0x681DA647)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
-F (.\include\drivers\Usart.c)(0x68679626)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/usart.o -MD)
+F (.\include\drivers\Usart.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/usart.o -MD)
 I (include\drivers\Usart.h)(0x6869010D)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
@@ -597,7 +597,7 @@
 I (include\drivers\mk_io.h)(0x681DA644)
 I (include\drivers\global_param.h)(0x6867BAD4)
 I (..\keil\sn74hc595.h)(0x685CE6BC)
-F (.\include\drivers\lis3dh_driver.c)(0x68672F5E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/lis3dh_driver.o -MD)
+F (.\include\drivers\lis3dh_driver.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/lis3dh_driver.o -MD)
 I (include\drivers\lis3dh_driver.h)(0x685CE6BC)
 I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x5DDFFD6C)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
@@ -647,7 +647,7 @@
 I (include\drivers\mk_trace.h)(0x681DA647)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
 I (include\drivers\global_param.h)(0x6867BAD4)
-F (.\include\drivers\global_param.c)(0x6867A238)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/global_param.o -MD)
+F (.\include\drivers\global_param.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/global_param.o -MD)
 I (include\drivers\global_param.h)(0x6867BAD4)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
 I (include\drivers\mk_flash.h)(0x681DA643)
@@ -666,7 +666,7 @@
 I (..\user_config.h)(0x6867A4E5)
 I (include\drivers\mk_dma.h)(0x681DA643)
 I (include\drivers\mk_misc.h)(0x681DA644)
-F (.\include\drivers\serial_at_cmd_app.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/serial_at_cmd_app.o -MD)
+F (.\include\drivers\serial_at_cmd_app.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/serial_at_cmd_app.o -MD)
 I (include\drivers\serial_at_cmd_app.h)(0x685CE6BC)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
 I (include\drivers\global_param.h)(0x6867BAD4)
@@ -806,7 +806,7 @@
 I (include\drivers\PCA9555.h)(0x685CE6BC)
 I (include\drivers\WS2812.h)(0x685CE6BC)
 I (include\drivers\DBG.h)(0x685CE6BC)
-F (.\include\src\TCPClient.c)(0x6867A4E5)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/tcpclient.o -MD)
+F (.\include\src\TCPClient.c)(0x686939D2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/tcpclient.o -MD)
 I (include\src\TCPClient.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TYpeDef.h)(0x685CE6BC)
 I (include\components\internet\inc\Socket.h)(0x685CE6BC)
@@ -914,7 +914,7 @@
 I (include\drivers\mk_gpio.h)(0x681DA643)
 I (include\drivers\mk_io.h)(0x681DA644)
 I (include\drivers\mk_calib.h)(0x681DA642)
-F (.\include\src\GPS.c)(0x686936A9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/gps.o -MD)
+F (.\include\src\GPS.c)(0x686939D2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/gps.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
@@ -948,8 +948,8 @@
 I (include\drivers\mk_gpio.h)(0x681DA643)
 I (include\drivers\mk_io.h)(0x681DA644)
 I (include\drivers\global_param.h)(0x6867BAD4)
-F (.\include\src\NTRIPApp.c)(0x685CE6BC)()
-F (.\include\drivers\DBG.c)(0x686904E9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/dbg.o -MD)
+F (.\include\src\NTRIPApp.c)(0x686939D2)()
+F (.\include\drivers\DBG.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/dbg.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
@@ -977,7 +977,7 @@
 I (include\drivers\mk_dma.h)(0x681DA643)
 I (include\drivers\DBG.h)(0x685CE6BC)
 I (include\drivers\Usart.h)(0x6869010D)
-F (.\include\drivers\Shell.c)(0x6867A238)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/shell.o -MD)
+F (.\include\drivers\Shell.c)(0x686939A7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/shell.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
 I (include\drivers\Shell.h)(0x685CE6BC)
@@ -1012,7 +1012,7 @@
 I (..\user_config.h)(0x6867A4E5)
 I (include\drivers\mk_dma.h)(0x681DA643)
 I (include\drivers\global_param.h)(0x6867BAD4)
-F (.\include\src\TCPClient_1.c)(0x68692FD9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/tcpclient_1.o -MD)
+F (.\include\src\TCPClient_1.c)(0x686939D2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/tcpclient_1.o -MD)
 I (include\src\TCPClient_1.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TYpeDef.h)(0x685CE6BC)
 I (include\components\internet\inc\Socket.h)(0x685CE6BC)
@@ -1041,8 +1041,8 @@
 I (include\devices\MK800X\Include\system_MK800X.h)(0x681DA63F)
 I (..\user_config.h)(0x6867A4E5)
 I (include\drivers\mk_dma.h)(0x681DA643)
-F (.\include\src\OTA.c)(0x685CE6BC)()
-F (.\include\src\SPIV1.07.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/spiv1.07.o -MD)
+F (.\include\src\OTA.c)(0x686939D2)()
+F (.\include\src\SPIV1.07.c)(0x686939D2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/spiv1.07.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x5DDFFD72)
 I (include\drivers\mk_gpio.h)(0x681DA643)
 I (include\drivers\mk_common.h)(0x681DA642)
@@ -1060,8 +1060,8 @@
 I (..\user_config.h)(0x6867A4E5)
 I (include\drivers\mk_io.h)(0x681DA644)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
-F (.\include\drivers\dps310.c)(0x68672F5E)()
-F (.\include\drivers\dps368_test.c)(0x68672F5E)()
+F (.\include\drivers\dps310.c)(0x686939A7)()
+F (.\include\drivers\dps368_test.c)(0x686939A7)()
 F (.\include\components\wsf\sources\port\baremetal\wsf_assert.c)(0x681DA63E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/components/wsf/include/platform -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/wsf_assert.o -MD)
 I (include\components\wsf\include\wsf_assert.h)(0x681DA63C)
 I (include\components\wsf\include\wsf_trace.h)(0x681DA63E)
@@ -1372,7 +1372,7 @@
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
-F (.\include\components\internet\src\AIR780ECSQ.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780ecsq.o -MD)
+F (.\include\components\internet\src\AIR780ECSQ.c)(0x686939F1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780ecsq.o -MD)
 I (include\components\internet\inc\AIR780ECSQ.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_ATLite.h)(0x685CE6BC)
@@ -1410,7 +1410,7 @@
 I (include\components\hido\Include\HIDO_Timer.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_Debug.h)(0x685CE6BC)
 I (include\components\internet\inc\ATConfig.h)(0x685CE6BC)
-F (.\include\components\internet\src\AIR780EDriver.c)(0x686932C7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780edriver.o -MD)
+F (.\include\components\internet\src\AIR780EDriver.c)(0x686939F1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780edriver.o -MD)
 I (include\components\internet\inc\AIR780EDriver.h)(0x685CE6BC)
 I (include\components\internet\inc\Socket.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
@@ -1447,7 +1447,7 @@
 I (include\components\hido\Include\HIDO_Debug.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_Log.h)(0x685CE6BC)
 I (include\drivers\DBG.h)(0x685CE6BC)
-F (.\include\components\internet\src\AIR780EFSM.c)(0x68690C4B)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780efsm.o -MD)
+F (.\include\components\internet\src\AIR780EFSM.c)(0x686939F1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780efsm.o -MD)
 I (include\components\internet\inc\AIR780EFSM.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_ATLite.h)(0x685CE6BC)
@@ -1486,7 +1486,7 @@
 I (include\components\hido\Include\HIDO_Debug.h)(0x685CE6BC)
 I (include\components\internet\inc\ATConfig.h)(0x685CE6BC)
 I (include\components\hal\UART.h)(0x685CE6BC)
-F (.\include\components\internet\src\AIR780ESocket.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780esocket.o -MD)
+F (.\include\components\internet\src\AIR780ESocket.c)(0x686939F1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/air780esocket.o -MD)
 I (include\components\internet\inc\Socket.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_VLQueue.h)(0x68672F5E)
@@ -1524,7 +1524,7 @@
 I (include\components\hido\Include\HIDO_Debug.h)(0x685CE6BC)
 I (include\components\internet\inc\Module.h)(0x685CE6BC)
 I (include\components\internet\inc\ATConfig.h)(0x685CE6BC)
-F (.\include\components\internet\src\Internet.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/internet.o -MD)
+F (.\include\components\internet\src\Internet.c)(0x686939F2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/internet.o -MD)
 I (include\components\internet\inc\Internet.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_VLQueue.h)(0x68672F5E)
@@ -1557,12 +1557,12 @@
 I (include\components\internet\inc\AIR780EFSM.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_ATLite.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_FSM.h)(0x685CE6BC)
-F (.\include\components\internet\src\Module.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/module.o -MD)
+F (.\include\components\internet\src\Module.c)(0x686939F2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/module.o -MD)
 I (include\components\internet\inc\Module.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
 I (include\components\hido\Include\HIDO_Util.h)(0x685CE6BC)
-F (.\include\components\internet\src\Socket.c)(0x68672F5E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/socket.o -MD)
+F (.\include\components\internet\src\Socket.c)(0x686939F2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/socket.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
 I (include\components\internet\inc\Socket.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_TypeDef.h)(0x685CE6BC)
@@ -1571,12 +1571,12 @@
 I (include\components\hido\Include\HIDO_Util.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_Debug.h)(0x685CE6BC)
 I (include\components\hido\Include\HIDO_ArraryQueue.h)(0x685CE6BC)
-F (.\include\components\internet\src\NTRIPClient.c)(0x685CE6BC)()
-F (.\include\components\internet\src\HTTPClient.c)(0x685CE6BC)()
+F (.\include\components\internet\src\NTRIPClient.c)(0x686939F2)()
+F (.\include\components\internet\src\HTTPClient.c)(0x686939F2)()
 F (.\include\components\internet\src\Audio.c)(0x685CE6BC)()
-F (.\include\components\internet\src\TONE.c)(0x685CE6BC)()
-F (.\include\components\internet\src\TTS.c)(0x685CE6BC)()
-F (.\include\components\hal\UART.c)(0x685CE6BC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/uart.o -MD)
+F (.\include\components\internet\src\TONE.c)(0x686939F2)()
+F (.\include\components\internet\src\TTS.c)(0x686939F2)()
+F (.\include\components\hal\UART.c)(0x686939F9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c

-fno-rtti -funsigned-char

-D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter

-I./RTE/_MK8000_Release

-ID:/Users/zhyin/AppData/Local/Arm/Packs/MKSEMI/MK800X_DFP/1.0.3/Device/Include

-ID:/Keil_v5/ARM/CMSIS/Include

-D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC

-o ./objects/uart.o -MD)
 I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
 I (D:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
 I (include\components\hido\Include\HIDO_Util.h)(0x685CE6BC)
diff --git a/keil/include/components/hal/UART.c b/keil/include/components/hal/UART.c
index b409785..795a75d 100644
--- a/keil/include/components/hal/UART.c
+++ b/keil/include/components/hal/UART.c
@@ -69,7 +69,7 @@
 {
     enum UART_BAUD_T baud;
     HIDO_UINT32 u32Baud;
-} baud_map[] = 
+} baud_map[] =
 {
     {BAUD_1200,    1200},
     {BAUD_2400,    2400},
@@ -99,7 +99,7 @@
             return baud_map[i].baud;
         }
     }
-    
+
     return BAUD_115200;
 }
 
@@ -108,11 +108,11 @@
  *******************************************************************************/
 
 /*******************************************************************************
- * Function Name     : 
- * Description       : 
- * Input             : 
- * Output            : 
- * Return            : 
+ * Function Name     :
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
  * Author            : 杜键
  * Modified Date:    : 2018年4月24日
  *******************************************************************************/
@@ -120,7 +120,7 @@
 {
     /* 初始化参数 */
     HIDO_UtilBzero(&l_astUartInfo[_eUartID], sizeof(ST_UartInfo));
-    
+
     l_astUartInfo[_eUartID].m_eUartPort = _ePort;
 
     return HIDO_OK;
@@ -145,7 +145,7 @@
 #ifdef _USE_OS_
     l_astUartInfo[_eUartID].m_mutexLock =  osMutexCreate(HIDO_NULL);
 #endif
-    
+
     struct UART_CFG_T uart_cfg =
     {
         .parity = UART_PARITY_NONE,
@@ -169,35 +169,35 @@
     if(UART_RX_MODE_DMA == _pstInit->m_eRxMode)
     {
         HIDO_ArraryQueueInit(
-                &l_astUartInfo[_eUartID].m_stRxArraryQueue,
-                _pstInit->m_pu8RxBuf,
-                _pstInit->m_u32RxBufSize,
-                sizeof(HIDO_UINT8));
-       return HIDO_OK;
+            &l_astUartInfo[_eUartID].m_stRxArraryQueue,
+            _pstInit->m_pu8RxBuf,
+            _pstInit->m_u32RxBufSize,
+            sizeof(HIDO_UINT8));
+        return HIDO_OK;
     }
     else if(UART_RX_MODE_INT == _pstInit->m_eRxMode)
     {
         HIDO_ArraryQueueInit(
-                &l_astUartInfo[_eUartID].m_stRxArraryQueue,
-                _pstInit->m_pu8RxBuf,
-                _pstInit->m_u32RxBufSize,
-                sizeof(HIDO_UINT8));
+            &l_astUartInfo[_eUartID].m_stRxArraryQueue,
+            _pstInit->m_pu8RxBuf,
+            _pstInit->m_u32RxBufSize,
+            sizeof(HIDO_UINT8));
     }
 
     l_astUartInfo[_eUartID].m_pu8TxBuf = _pstInit->m_pu8TxBuf;
     l_astUartInfo[_eUartID].m_u32TxBufSize = _pstInit->m_u32TxBufSize;
     l_astUartInfo[_eUartID].m_fnRxISR = _pstInit->m_fnRxISR;
     l_astUartInfo[_eUartID].m_u32TxQueueMemberCnt = _pstInit->m_u32TxQueueMemberCnt;
-    
+
     uart_open(l_astUartInfo[_eUartID].m_eUartPort, &uart_cfg);
 
     if((UART_TX_MODE_DMA == _pstInit->m_eTxMode) || (UART_TX_MODE_INT == _pstInit->m_eTxMode))
     {
         HIDO_VLQInit(
-                &(l_astUartInfo[_eUartID].m_stTxVLQueue),
-                _pstInit->m_pu8TxBuf,
-                _pstInit->m_u32TxBufSize,
-                _pstInit->m_u32TxQueueMemberCnt);
+            &(l_astUartInfo[_eUartID].m_stTxVLQueue),
+            _pstInit->m_pu8TxBuf,
+            _pstInit->m_u32TxBufSize,
+            _pstInit->m_u32TxQueueMemberCnt);
     }
 
     if (UART_RX_MODE_INT == _pstInit->m_eRxMode)
@@ -228,19 +228,19 @@
     else if(UART_RX_MODE_INT ==  l_astUartInfo[_eUartID].m_eRxMode)
     {
         HIDO_ArraryQueueInit(
-                &l_astUartInfo[_eUartID].m_stRxArraryQueue,
-                l_astUartInfo[_eUartID].m_pu8RxBuf,
-                l_astUartInfo[_eUartID].m_u32RxBufSize,
-                sizeof(HIDO_UINT8));
+            &l_astUartInfo[_eUartID].m_stRxArraryQueue,
+            l_astUartInfo[_eUartID].m_pu8RxBuf,
+            l_astUartInfo[_eUartID].m_u32RxBufSize,
+            sizeof(HIDO_UINT8));
     }
 
     if((UART_TX_MODE_DMA == l_astUartInfo[_eUartID].m_eTxMode) || (UART_TX_MODE_INT == l_astUartInfo[_eUartID].m_eTxMode))
     {
         HIDO_VLQInit(
-                &(l_astUartInfo[_eUartID].m_stTxVLQueue),
-                l_astUartInfo[_eUartID].m_pu8TxBuf,
-                l_astUartInfo[_eUartID].m_u32TxBufSize,
-                l_astUartInfo[_eUartID].m_u32TxQueueMemberCnt);
+            &(l_astUartInfo[_eUartID].m_stTxVLQueue),
+            l_astUartInfo[_eUartID].m_pu8TxBuf,
+            l_astUartInfo[_eUartID].m_u32TxBufSize,
+            l_astUartInfo[_eUartID].m_u32TxQueueMemberCnt);
     }
 
     uart_receive(l_astUartInfo[_eUartID].m_eUartPort, &l_astUartInfo[_eUartID].m_u8RxValue, 1, uart_receive_callback);
@@ -274,7 +274,7 @@
         .int_rx = true,
         .int_tx = false,
     };
-    
+
     uart_open(l_astUartInfo[_eUartID].m_eUartPort, &uart_cfg);
 
     return HIDO_OK;
@@ -342,7 +342,7 @@
 static void uart_receive_callback(void *dev, uint32_t err_code)
 {
     E_UartID eUartID = UART_ID_4G;
-    
+
     HIDO_UINT8 u8RecvByte = l_astUartInfo[eUartID].m_u8RxValue;
 
     HIDO_ArraryQueueIn(&l_astUartInfo[eUartID].m_stRxArraryQueue, &u8RecvByte);
@@ -375,15 +375,15 @@
 
     switch(l_astUartInfo[_eUartID].m_eRxMode)
     {
-        case UART_RX_MODE_INT:
-        case UART_RX_MODE_DMA:
+    case UART_RX_MODE_INT:
+    case UART_RX_MODE_DMA:
+    {
+        if (HIDO_ArraryQueueOut(&l_astUartInfo[_eUartID].m_stRxArraryQueue, _pu8Char) == HIDO_OK)
         {
-            if (HIDO_ArraryQueueOut(&l_astUartInfo[_eUartID].m_stRxArraryQueue, _pu8Char) == HIDO_OK)
-            {
-                i32Result = HIDO_OK;
-            }
-            break;
+            i32Result = HIDO_OK;
         }
+        break;
+    }
     }
 
 #ifdef _USE_OS_
@@ -447,7 +447,7 @@
             memcpy(pstMember->m_pDataAddr, _pu8Data, _u32Len);
             pstMember = HIDO_VLQGetDequeueMember(&(l_astUartInfo[_eUartID].m_stTxVLQueue));
             HIDO_UnLock();
-            
+
             uart_send(l_astUartInfo[_eUartID].m_eUartPort, pstMember->m_pDataAddr, pstMember->m_u32DataLen, uart_send_callback);
         }
     }
diff --git a/keil/include/components/internet/src/AIR780ECSQ.c b/keil/include/components/internet/src/AIR780ECSQ.c
index 8571343..54f7b82 100644
--- a/keil/include/components/internet/src/AIR780ECSQ.c
+++ b/keil/include/components/internet/src/AIR780ECSQ.c
@@ -57,46 +57,46 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        HIDO_StateArgStruct *pstStateArg = (HIDO_StateArgStruct *)_pArg;
+
+        l_pstAfterState = pstStateArg->m_pstAfterState;
+
+        HIDO_ATLiteCmdSend(_pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CSQ\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(_pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    {
+        HIDO_FSMStateChange(_pstFSM, l_pstAfterState, HIDO_NULL);
+        break;
+    }
+    case AIR780E_EVENT_CSQ:
+    {
+        /* +CSQ: 0,31 */
+        HIDO_UINT32 u32CSQResult = 0;
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CSQ: %d,%*\r\n",
+                                 &u32CSQResult)!= 2)
         {
-            HIDO_StateArgStruct *pstStateArg = (HIDO_StateArgStruct *)_pArg;
-
-            l_pstAfterState = pstStateArg->m_pstAfterState;
-
-            HIDO_ATLiteCmdSend(_pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CSQ\r\n");
             break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(_pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        {
-            HIDO_FSMStateChange(_pstFSM, l_pstAfterState, HIDO_NULL);
-            break;
-        }
-        case AIR780E_EVENT_CSQ:
-        {
-            /* +CSQ: 0,31 */
-            HIDO_UINT32 u32CSQResult = 0;
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CSQ: %d,%*\r\n",
-                    &u32CSQResult)!= 2)
-            {
-                break;
-            }
+        Module_SignalIntensityResult(u32CSQResult);
 
-            Module_SignalIntensityResult(u32CSQResult);
-
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
diff --git a/keil/include/components/internet/src/AIR780EDriver.c b/keil/include/components/internet/src/AIR780EDriver.c
index ea10c74..93bc095 100644
--- a/keil/include/components/internet/src/AIR780EDriver.c
+++ b/keil/include/components/internet/src/AIR780EDriver.c
@@ -112,7 +112,7 @@
     { "9", AIR780E_EVENT_NUM_9 },
 };
 
-static const HIDO_CHAR * const l_apcEventName[AIR780E_EVENT_LAST]={
+static const HIDO_CHAR * const l_apcEventName[AIR780E_EVENT_LAST]= {
     HIDO_EVENT_ENTRY_NAME,
     HIDO_EVENT_EXIT_NAME,
     "HIDO_AT_EVENT_OK",
@@ -167,7 +167,7 @@
     "AIR780E_EVENT_QMTSTAT",
 
     "AIR780E_EVENT_RDY",
-	"AIR780E_EVENT_QTTS",
+    "AIR780E_EVENT_QTTS",
     "AIR780E_EVENT_QLTONE",
     "AIR780E_EVENT_RECEIVE",
 
@@ -238,8 +238,8 @@
 
         _pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen++] = cCh;
         _pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen] = '\0';
-        
-        /* +RECEIVE, */ 
+
+        /* +RECEIVE, */
         if (9 == _pstATDevice->m_u32LineLen && memcmp("+RECEIVE,", _pstATDevice->m_pcLineBuf, 9) == 0)
         {
             l_u8Mode = 1;
@@ -262,7 +262,7 @@
 
                 /* 获取真实需要接收的长度 */
                 if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pstATDevice->m_pcLineBuf, _pstATDevice->m_u32LineLen, "+RECEIVE,%*,%d:",
-                         &u32ReqLen) != 2)
+                                         &u32ReqLen) != 2)
                 {
                     break;
                 }
@@ -334,14 +334,14 @@
     {
         if((_pstATDevice->m_u32LineLen > 0) && (_pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen - 1] == '\n'))
         {
-					if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
-            LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s", _pstATDevice->m_pcLineBuf);//修改4G
+            if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
+                LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s", _pstATDevice->m_pcLineBuf);//修改4G
             //HIDO_Debug( "[AT Recv] %s", _pstATDevice->m_pcLineBuf);
         }
         else
         {
-						if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
-            LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s\r\n", _pstATDevice->m_pcLineBuf);//修改4G
+            if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
+                LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s\r\n", _pstATDevice->m_pcLineBuf);//修改4G
             //HIDO_Debug("[AT Recv] %s\r\n", _pstATDevice->m_pcLineBuf);
         }
     }
@@ -361,26 +361,26 @@
  * Modified Date:    : 2018年5月22日
  *******************************************************************************/
 static HIDO_INT32 AIR780E_Output(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_UINT8 *_pu8Data,
-        HIDO_UINT32 _u32Len)
+                                 HIDO_UINT32 _u32Len)
 {
-	if(HIDO_UtilIsAsciiString(_pu8Data, _u32Len) == HIDO_TRUE)
-	{
-		if(_pu8Data[_u32Len] == '\0')
-		{
-		    if((_u32Len > 0) && (_pu8Data[_u32Len - 1] == '\n'))
-		    {
-		        // HIDO_Debug("[AT Send] %s", _pu8Data);
-					if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
-                LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G
-		    }
-		    else
-		    {
-		        // HIDO_Debug("[AT Send] %s\r\n", _pu8Data);
-					if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
-                LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G
-		    }
-		}
-	}
+    if(HIDO_UtilIsAsciiString(_pu8Data, _u32Len) == HIDO_TRUE)
+    {
+        if(_pu8Data[_u32Len] == '\0')
+        {
+            if((_u32Len > 0) && (_pu8Data[_u32Len - 1] == '\n'))
+            {
+                // HIDO_Debug("[AT Send] %s", _pu8Data);
+                if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
+                    LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G
+            }
+            else
+            {
+                // HIDO_Debug("[AT Send] %s\r\n", _pu8Data);
+                if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
+                    LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G
+            }
+        }
+    }
 
     return Uart_Send(UART_ID_4G, _pu8Data, _u32Len);
 }
@@ -391,10 +391,10 @@
 
 /*******************************************************************************
  * Function Name     : AIR780E_PinRegister
- * Description       : 
- * Input             : 
- * Output            : 
- * Return            : 
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
  * Author            : 杜键
  * Modified Date:    : 2018年5月22日
  *******************************************************************************/
@@ -512,7 +512,7 @@
 HIDO_INT32 AIR780EDriver_SetConnectLen(HIDO_UINT32 _u32ConnectLen)
 {
     l_u32ConnectLen = _u32ConnectLen;
-    
+
     return HIDO_OK;
 }
 
@@ -531,12 +531,12 @@
     HIDO_CHAR acBuff[384];
 
     vsnprintf(acBuff, sizeof(acBuff), _pcFmt, _ap);
-    
-  //  HIDO_Log(HIDO_LOG_LEVEL_DEBUG, "%s", acBuff);
+
+    //  HIDO_Log(HIDO_LOG_LEVEL_DEBUG, "%s", acBuff);
     //HIDO_Debug(acBuff);
-if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
-    LOG_INFO(TRACE_MODULE_APP, acBuff);//修改4G
-		
+    if(log_4g_enable_flag&&DBG_GetMode() == DBG_MODE_SHELL)
+        LOG_INFO(TRACE_MODULE_APP, acBuff);//修改4G
+
     return HIDO_OK;
 }
 
@@ -552,7 +552,7 @@
 HIDO_INT32 AIR780EDriver_Reset(void)
 {
     HIDO_FSMEventExecute(HIDO_FSM(AIR780E), HIDO_AT_EVENT_TIMEOUT, HIDO_NULL);
-    
+
     return HIDO_OK;
 }
 
@@ -571,7 +571,7 @@
 #ifdef _4G_115200
 void AIR780EUartInit(void)
 {
- ST_UartInit stUartInit;
+    ST_UartInit stUartInit;
 
     /* 串口初始化 */
     stUartInit.m_eRxMode = UART_RX_MODE_INT;
@@ -584,7 +584,7 @@
     stUartInit.m_u32BaudRate = 115200;
     if(Uart_Init(UART_ID_4G, &stUartInit) != HIDO_OK)
     {
-       
+
     }
 }
 HIDO_INT32 AIR780EDriver_Init(void)
@@ -634,7 +634,7 @@
 
     /* 状态机初始化 */
     HIDO_FSMRegister(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780E), "AIR780E", l_apcEventName, &l_stAIR780EDevice,
-            HIDO_FSM_DBG_FLAG_ON);
+                     HIDO_FSM_DBG_FLAG_ON);
 
     HIDO_FSMRegisterDebugFunc(HIDO_FSM(AIR780E), AIR780EDriver_FSMDebug);
 
@@ -643,7 +643,7 @@
 #else
 void AIR780EUartInit(void)
 {
- ST_UartInit stUartInit;
+    ST_UartInit stUartInit;
 
     /* 串口初始化 */
     stUartInit.m_eRxMode = UART_RX_MODE_INT;
@@ -656,7 +656,7 @@
     stUartInit.m_u32BaudRate = 9600;
     if(Uart_Init(UART_ID_4G, &stUartInit) != HIDO_OK)
     {
-       
+
     }
 }
 HIDO_INT32 AIR780EDriver_Init(void)
@@ -706,7 +706,7 @@
 
     /* 状态机初始化 */
     HIDO_FSMRegister(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780E), "AIR780E", l_apcEventName, &l_stAIR780EDevice,
-            HIDO_FSM_DBG_FLAG_ON);
+                     HIDO_FSM_DBG_FLAG_ON);
 
     HIDO_FSMRegisterDebugFunc(HIDO_FSM(AIR780E), AIR780EDriver_FSMDebug);
 
diff --git a/keil/include/components/internet/src/AIR780EFSM.c b/keil/include/components/internet/src/AIR780EFSM.c
index c70ccd5..e7a793f 100644
--- a/keil/include/components/internet/src/AIR780EFSM.c
+++ b/keil/include/components/internet/src/AIR780EFSM.c
@@ -76,64 +76,64 @@
 {
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
+        break;
+    }
+    case AIR780E_EVENT_RECEIVE:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ID = 0;
+        HIDO_UINT8 *pu8Data = HIDO_NULL;
+        HIDO_UINT32 u32Len = 0;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+RECEIVE,%d,%d:\r\n%e", &u32ID, &u32Len, &pu8Data)
+                != 3)
         {
             break;
         }
-        case HIDO_EVENT_EXIT:
+
+        Socket_RecvData(u32ID, pu8Data, u32Len);
+        Socket_OnRecv(u32ID);
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ConnectID = 0;
+        HIDO_DataStruct stEvent;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
+                                 &u32ConnectID, &stEvent) != 2)
         {
             break;
         }
-        case HIDO_AT_EVENT_TIMEOUT:
+
+        if (strncmp(stEvent.m_pData, "CLOSED", stEvent.m_u32Len) == 0)
         {
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
-            break;
+            Socket_OnClosed(u32ConnectID);
         }
-        case AIR780E_EVENT_RECEIVE:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ID = 0;
-			HIDO_UINT8 *pu8Data = HIDO_NULL;
-			HIDO_UINT32 u32Len = 0;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+RECEIVE,%d,%d:\r\n%e", &u32ID, &u32Len, &pu8Data)
-                    != 3)
-            {
-                break;
-            }
-
-            Socket_RecvData(u32ID, pu8Data, u32Len);
-			Socket_OnRecv(u32ID);
-            break;
-        }
-        case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ConnectID = 0;
-			HIDO_DataStruct stEvent;
-
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
-                    &u32ConnectID, &stEvent) != 2)
-            {
-                break;
-            }
-
-            if (strncmp(stEvent.m_pData, "CLOSED", stEvent.m_u32Len) == 0)
-            {
-                Socket_OnClosed(u32ConnectID);
-            }
-
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -150,25 +150,25 @@
 {
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            break;
-        }
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            /* AT命令相应超时,重新初始化 */
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        /* AT命令相应超时,重新初始化 */
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
 
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -185,34 +185,34 @@
 {
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        AIR780EDriver_PowerOff();
+        Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF);
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
         {
-            AIR780EDriver_PowerOff();
             Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF);
-            break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
-            {
-                Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF);
-            }
-            
-            if(Module_NeedPowerOn(MODULE_MAIN) == HIDO_TRUE)
-            {
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
-            }
 
-            break;
-        }
-        default:
+        if(Module_NeedPowerOn(MODULE_MAIN) == HIDO_TRUE)
         {
-            return HIDO_EVENT_NO_PROC;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
         }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -238,66 +238,66 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        pstATDevice->m_u32LineLen = 0;
+        while (pstATDevice->m_fnReadLine(pstATDevice) == HIDO_OK)
         {
-            pstATDevice->m_u32LineLen = 0;
-            while (pstATDevice->m_fnReadLine(pstATDevice) == HIDO_OK)
-            {
-                ;
-            }
-            pstATDevice->m_u32LineLen = 0;
+            ;
+        }
+        pstATDevice->m_u32LineLen = 0;
 
-            l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_OFF;
-            AIR780EDriver_PowerOff();
-            HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY);
+        l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_OFF;
+        AIR780EDriver_PowerOff();
+        HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY);
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        /* 退出初始化 */
+        HIDO_TimerCancel(u32FSMTimerID);
+
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        switch(l_eAIR780ESubState)
+        {
+        case AIR780E_SUB_STATE_POWER_OFF:
+        {
+            l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_ON;
+            AIR780EDriver_PowerOn();
+            HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(5), _pstFSM, AIR780E_EVENT_DELAY);
             break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            /* 退出初始化 */
-            HIDO_TimerCancel(u32FSMTimerID);
-
-            break;
-        }
-        case AIR780E_EVENT_DELAY:
-        {
-            switch(l_eAIR780ESubState)
-            {
-                case AIR780E_SUB_STATE_POWER_OFF:
-                {
-                    l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_ON;
-                    AIR780EDriver_PowerOn();
-                    HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(5), _pstFSM, AIR780E_EVENT_DELAY);
-                    break;
-                }
-                case AIR780E_SUB_STATE_POWER_ON:
-                {
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL);
-                    //Uart_ReConfigBaudRate(UART_ID_4G, 115200);
-                    //HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=9600;&W\r\n");
-                    //Uart_ReConfigBaudRate(UART_ID_4G, 9600);
-                    break;
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_RDY:
+        case AIR780E_SUB_STATE_POWER_ON:
         {
             HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL);
+            //Uart_ReConfigBaudRate(UART_ID_4G, 115200);
+            //HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=9600;&W\r\n");
+            //Uart_ReConfigBaudRate(UART_ID_4G, 9600);
             break;
         }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL);
-            break;
         }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+
+        break;
+    }
+    case AIR780E_EVENT_RDY:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -312,48 +312,48 @@
  *******************************************************************************/
 HIDO_FSM_STATE_IMPLEMENT(AIR780EATCmdTest, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL)
 {
-	static HIDO_UINT32 l_u32TimeoutCnt = 0;
+    static HIDO_UINT32 l_u32TimeoutCnt = 0;
     HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData;
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n");
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        {
-            /* 上电成功 */
-            Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON);
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL);
+    case HIDO_EVENT_ENTRY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        /* 上电成功 */
+        Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON);
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL);
 
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    {
+        break;
+    }
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
+        l_u32TimeoutCnt++;
+        if (3 == l_u32TimeoutCnt)
         {
-            break;
+            AIR780E_Reset_usart();
         }
-        case HIDO_AT_EVENT_TIMEOUT:
-        { 
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
-						l_u32TimeoutCnt++;
-					 if (3 == l_u32TimeoutCnt)
-            {
-							AIR780E_Reset_usart();
-						}
-					
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -374,61 +374,61 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        u32RetryCnt = 0;
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        HIDO_TimerCancel(u32FSMTimerID);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdInit), HIDO_NULL);
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    {
+        HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1),
+                           _pstFSM, AIR780E_EVENT_DELAY);
+        break;
+    }
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        if(u32RetryCnt < 10)
         {
-            u32RetryCnt = 0;
+            u32RetryCnt++;
             HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n");
-            break;
         }
-        case HIDO_EVENT_EXIT:
+        else
         {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            HIDO_TimerCancel(u32FSMTimerID);
-            break;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL);
         }
-        case HIDO_AT_EVENT_OK:
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
         {
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdInit), HIDO_NULL);
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        {
-            HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1),
-                    _pstFSM, AIR780E_EVENT_DELAY);
-            break;
-        }
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            break;
-        }
-        case AIR780E_EVENT_DELAY:
-        {
-            if(u32RetryCnt < 10)
-            {
-                u32RetryCnt++;
-                HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n");
-            }
-            else
-            {
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL);
-            }
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
-            {
-                HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL);
-
-                break;
-            }
+            HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL);
 
             break;
         }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -452,7 +452,7 @@
         { "AT+CIMI\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
         { "AT+CCID\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
         { "ATI\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
-				{ "AT+CFGRI=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
+        { "AT+CFGRI=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
 //        { "AT+CTTSPARAM=100,0,50,50,0,2,25,1500,150,1,0,1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
     };
 
@@ -461,50 +461,28 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            l_u32CmdIndex = 0;
-            l_u32RetryCnt = 0;
-            HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
-            l_u32RetryCnt++;
+    case HIDO_EVENT_ENTRY:
+    {
+        l_u32CmdIndex = 0;
+        l_u32RetryCnt = 0;
+        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
+        l_u32RetryCnt++;
 
-            break;
-        }
-        case HIDO_EVENT_EXIT:
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        HIDO_TimerCancel(u32FSMTimerID);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        if(HIDO_AT_EVENT_TIMEOUT == _u32Event)
         {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            HIDO_TimerCancel(u32FSMTimerID);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            if(HIDO_AT_EVENT_TIMEOUT == _u32Event)
-            {
-                if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT)
-                {
-                    l_u32RetryCnt = 0;
-                    l_u32CmdIndex++;
-                    if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList))
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
-                    }
-                    else
-                    {
-                        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
-                    }
-
-                    break;
-                }
-                else
-                {
-                    return HIDO_EVENT_NO_PROC;
-                }
-            }
-
-            if (astInitCmdList[l_u32CmdIndex].m_u32Result
-                    & (HIDO_AT_EVENT_OK == _u32Event ? AT_CMD_RESULT_OK : AT_CMD_RESULT_ERROR))
+            if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT)
             {
                 l_u32RetryCnt = 0;
                 l_u32CmdIndex++;
@@ -516,83 +494,105 @@
                 {
                     HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
                 }
-            }
-            else
-            {
-                l_u32RetryCnt++;
-                if (l_u32RetryCnt >= 3)
-                {
-                    /* 重试超限 */
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
-                }
-                else
-                {
-                    /* 不是期待的结果,10后再次尝试 */
-                    HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM,
-                            AIR780E_EVENT_DELAY);
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_DELAY:
-        {
-            HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
-            break;
-        }
-        case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-        case AIR780E_EVENT_NUM_6:
-        case AIR780E_EVENT_NUM_7:
-        case AIR780E_EVENT_NUM_8:
-        case AIR780E_EVENT_NUM_9:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-
-            switch(l_u32CmdIndex)
-            {
-                case 0:
-                {
-                    Module_SetIMEI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
-                    break;
-                }
-                case 1:
-                {
-                    Module_SetIMSI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
-                    break;
-                }
-				case 2:
-                {
-                    Module_SetCCID((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
-                    break;
-                }
-                default:
-                {
-                    break;
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
-            {
-                HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL);
 
                 break;
             }
+            else
+            {
+                return HIDO_EVENT_NO_PROC;
+            }
+        }
 
+        if (astInitCmdList[l_u32CmdIndex].m_u32Result
+                & (HIDO_AT_EVENT_OK == _u32Event ? AT_CMD_RESULT_OK : AT_CMD_RESULT_ERROR))
+        {
+            l_u32RetryCnt = 0;
+            l_u32CmdIndex++;
+            if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList))
+            {
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
+            }
+            else
+            {
+                HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
+            }
+        }
+        else
+        {
+            l_u32RetryCnt++;
+            if (l_u32RetryCnt >= 3)
+            {
+                /* 重试超限 */
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL);
+            }
+            else
+            {
+                /* 不是期待的结果,10后再次尝试 */
+                HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM,
+                                   AIR780E_EVENT_DELAY);
+            }
+        }
+
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    case AIR780E_EVENT_NUM_6:
+    case AIR780E_EVENT_NUM_7:
+    case AIR780E_EVENT_NUM_8:
+    case AIR780E_EVENT_NUM_9:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+
+        switch(l_u32CmdIndex)
+        {
+        case 0:
+        {
+            Module_SetIMEI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
+            break;
+        }
+        case 1:
+        {
+            Module_SetIMSI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
+            break;
+        }
+        case 2:
+        {
+            Module_SetCCID((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len);
             break;
         }
         default:
         {
-            return HIDO_EVENT_NO_PROC;
+            break;
         }
+        }
+
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE)
+        {
+            HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL);
+
+            break;
+        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -611,24 +611,24 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            AIR780E_Poll(pstATDevice);
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        AIR780E_Poll(pstATDevice);
 
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -645,18 +645,18 @@
 {
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -687,143 +687,143 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG;
+        l_u32Cnt = 0;
+        l_u32RespCode = 0;
+        l_bATBusy = HIDO_TRUE;
+
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        HIDO_TimerCancel(u32FSMTimerID);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
         {
-            l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG;
-            l_u32Cnt = 0;
-            l_u32RespCode = 0;
-            l_bATBusy = HIDO_TRUE;
-            
-            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n");
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            HIDO_TimerCancel(u32FSMTimerID);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        {
-            if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
+            l_bATBusy = HIDO_FALSE;
+
+            if (1 == l_u32RespCode || 5 == l_u32RespCode)
             {
-                l_bATBusy = HIDO_FALSE;
-
-                if (1 == l_u32RespCode || 5 == l_u32RespCode)
-                {
-                    l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG;
-                    l_u32Cnt = 0;
-                    l_u32RespCode = 0;
-                    l_bATBusy = HIDO_TRUE;
-                    HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n");
-                }
-                else
-                {
-                    l_u32Cnt++;
-
-                    if (l_u32Cnt > 100)
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
-                        break;
-                    }
-                    else
-                    {
-                        HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM,
-                                AIR780E_EVENT_DELAY);
-                    }
-                }
-            }
-            else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
-            {
-                l_bATBusy = HIDO_FALSE;
-
-                if (1 == l_u32RespCode || 5 == l_u32RespCode)
-                {
-                    l_u32ReadyCnt++;
-                }
-                else
-                {
-                    l_u32ReadyCnt = 0;
-                    l_u32Cnt++;
-                }
-
-                if (l_u32ReadyCnt >= 1)
-                {
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPInit), HIDO_NULL);
-                }
-                else
-                {
-                    HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM,
-                            AIR780E_EVENT_DELAY);
-                }
-
-                if (l_u32Cnt > 100)
-                {
-                    /* TODO网络出错 */
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_CREG:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-
-            if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
-            {
-                if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CREG: %*,%d",
-                        &l_u32RespCode) != 2)
-                {
-                    break;
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_CGREG:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-
-            if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
-            {
-                if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGREG: %*,%d",
-                        &l_u32RespCode) != 2)
-                {
-                    break;
-                }
-            }
-            break;
-        }
-        case AIR780E_EVENT_DELAY:
-        {
-            if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
-            {
-                l_u32RespCode = 0;
-                l_bATBusy = HIDO_TRUE;
-                HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CREG?\r\n");
-            }
-            else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
-            {
+                l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG;
+                l_u32Cnt = 0;
                 l_u32RespCode = 0;
                 l_bATBusy = HIDO_TRUE;
                 HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n");
             }
-
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            if (HIDO_FALSE == l_bATBusy)
+            else
             {
-                AIR780E_Poll(pstATDevice);
+                l_u32Cnt++;
+
+                if (l_u32Cnt > 100)
+                {
+                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
+                    break;
+                }
+                else
+                {
+                    HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM,
+                                       AIR780E_EVENT_DELAY);
+                }
+            }
+        }
+        else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
+        {
+            l_bATBusy = HIDO_FALSE;
+
+            if (1 == l_u32RespCode || 5 == l_u32RespCode)
+            {
+                l_u32ReadyCnt++;
+            }
+            else
+            {
+                l_u32ReadyCnt = 0;
+                l_u32Cnt++;
             }
 
-            break;
+            if (l_u32ReadyCnt >= 1)
+            {
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPInit), HIDO_NULL);
+            }
+            else
+            {
+                HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM,
+                                   AIR780E_EVENT_DELAY);
+            }
+
+            if (l_u32Cnt > 100)
+            {
+                /* TODO网络出错 */
+            }
         }
-        default:
+
+        break;
+    }
+    case AIR780E_EVENT_CREG:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+
+        if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
         {
-            return HIDO_EVENT_NO_PROC;
+            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CREG: %*,%d",
+                                     &l_u32RespCode) != 2)
+            {
+                break;
+            }
         }
+
+        break;
+    }
+    case AIR780E_EVENT_CGREG:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+
+        if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
+        {
+            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGREG: %*,%d",
+                                     &l_u32RespCode) != 2)
+            {
+                break;
+            }
+        }
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState)
+        {
+            l_u32RespCode = 0;
+            l_bATBusy = HIDO_TRUE;
+            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CREG?\r\n");
+        }
+        else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState)
+        {
+            l_u32RespCode = 0;
+            l_bATBusy = HIDO_TRUE;
+            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n");
+        }
+
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        if (HIDO_FALSE == l_bATBusy)
+        {
+            AIR780E_Poll(pstATDevice);
+        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -848,18 +848,18 @@
 
     const ST_ATCmd astInitCmdList[] =
     {
-            { "AT+CIPRXF=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
-            { "AT+CIPMUX=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
-            { "AT*I\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
+        { "AT+CIPRXF=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
+        { "AT+CIPMUX=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
+        { "AT*I\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
 //            { "AT+CSTT=\"%s\",\"\",\"\"\r\n", 60000, AT_CMD_RESULT_OK | AT_CMD_RESULT_ERROR },
 //            { "AT+CIICR\r\n", 60000, AT_CMD_RESULT_OK | AT_CMD_RESULT_ERROR },
 //            { "AT+CIFSR\r\n", 1000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT },
 #ifdef _4G_115200
 
-#else            
-            { "AT+POWERMODE=\"PRO\"\r\n", 5000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT },
-			{ "AT+POWERMODE?\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
-#endif                        
+#else
+        { "AT+POWERMODE=\"PRO\"\r\n", 5000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT },
+        { "AT+POWERMODE?\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK },
+#endif
     };
 
     pcIMSI = Module_GetIMSI();
@@ -882,50 +882,28 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            l_u32CmdIndex = 0;
-            l_u32RetryCnt = 0;
-            HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
-            l_u32RetryCnt++;
+    case HIDO_EVENT_ENTRY:
+    {
+        l_u32CmdIndex = 0;
+        l_u32RetryCnt = 0;
+        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd);
+        l_u32RetryCnt++;
 
-            break;
-        }
-        case HIDO_EVENT_EXIT:
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        HIDO_TimerCancel(u32FSMTimerID);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        if(HIDO_AT_EVENT_TIMEOUT == _u32Event)
         {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            HIDO_TimerCancel(u32FSMTimerID);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            if(HIDO_AT_EVENT_TIMEOUT == _u32Event)
-            {
-                if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT)
-                {
-                    l_u32RetryCnt = 0;
-                    l_u32CmdIndex++;
-                    if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList))
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL);
-                    }
-                    else
-                    {
-                        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN);
-                    }
-
-                    break;
-                }
-                else
-                {
-                    return HIDO_EVENT_NO_PROC;
-                }
-            }
-ok:
-            if((HIDO_AT_EVENT_OK == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_OK))
-                    || (HIDO_AT_EVENT_ERROR == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_ERROR)))
+            if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT)
             {
                 l_u32RetryCnt = 0;
                 l_u32CmdIndex++;
@@ -937,56 +915,78 @@
                 {
                     HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN);
                 }
+
+                break;
             }
             else
             {
-                l_u32RetryCnt++;
-                if (l_u32RetryCnt >= 3)
-                {
-                    /* 重试超限 */
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL);
-                }
-                else
-                {
-                    /* 不是期待的结果,10后再次尝试 */
-                    HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM,
-                            AIR780E_EVENT_DELAY);
-                }
+                return HIDO_EVENT_NO_PROC;
             }
-
-            break;
         }
-        case AIR780E_EVENT_DELAY:
+ok:
+        if((HIDO_AT_EVENT_OK == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_OK))
+                || (HIDO_AT_EVENT_ERROR == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_ERROR)))
         {
-            HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN);
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            break;
-        }
-        case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-        case AIR780E_EVENT_NUM_6:
-        case AIR780E_EVENT_NUM_7:
-        case AIR780E_EVENT_NUM_8:
-        case AIR780E_EVENT_NUM_9:
-        {
-            if(l_u32CmdIndex == 4)
+            l_u32RetryCnt = 0;
+            l_u32CmdIndex++;
+            if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList))
             {
-                _u32Event = HIDO_AT_EVENT_OK;
-                goto ok;
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL);
             }
-            break;
+            else
+            {
+                HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN);
+            }
         }
-        default:
+        else
         {
-            return HIDO_EVENT_NO_PROC;
+            l_u32RetryCnt++;
+            if (l_u32RetryCnt >= 3)
+            {
+                /* 重试超限 */
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL);
+            }
+            else
+            {
+                /* 不是期待的结果,10后再次尝试 */
+                HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM,
+                                   AIR780E_EVENT_DELAY);
+            }
         }
+
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN);
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    case AIR780E_EVENT_NUM_6:
+    case AIR780E_EVENT_NUM_7:
+    case AIR780E_EVENT_NUM_8:
+    case AIR780E_EVENT_NUM_9:
+    {
+        if(l_u32CmdIndex == 4)
+        {
+            _u32Event = HIDO_AT_EVENT_OK;
+            goto ok;
+        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1003,79 +1003,79 @@
 {
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            Socket_ClosedAll();
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        Socket_ClosedAll();
 #ifdef __AIR780E_MQTT__
-            MQTT_ClosedAll();
+        MQTT_ClosedAll();
 #endif
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            break;
-        }
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
-            break;
-        }
-        case AIR780E_EVENT_CLOSE:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ID = 0;
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        break;
+    }
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL);
+        break;
+    }
+    case AIR780E_EVENT_CLOSE:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ID = 0;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QIURC: \"closed\",%d\r\n", &u32ID) != 1)
-            {
-                break;
-            }
-
-            Socket_OnClosed(u32ID);
-
-            break;
-        }
-        case AIR780E_EVENT_PDPDEACT:
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QIURC: \"closed\",%d\r\n", &u32ID) != 1)
         {
-            l_bDeact = HIDO_TRUE;
             break;
         }
+
+        Socket_OnClosed(u32ID);
+
+        break;
+    }
+    case AIR780E_EVENT_PDPDEACT:
+    {
+        l_bDeact = HIDO_TRUE;
+        break;
+    }
 #ifdef __AIR780E_MQTT__
-        case AIR780E_EVENT_QMTSTAT:
+    case AIR780E_EVENT_QMTSTAT:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32Err = 0;
+        HIDO_UINT32 u32ClientID = 0;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QMTSTAT: %d,%d\r\n",
+                                 &u32ClientID, &u32Err) != 2)
         {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32Err = 0;
-            HIDO_UINT32 u32ClientID = 0;
-
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QMTSTAT: %d,%d\r\n",
-                    &u32ClientID, &u32Err) != 2)
-            {
-                break;
-            }
-
-            if(u32Err != 0)
-            {
-            	MQTT_OnClosed(u32ClientID);
-
-				break;
-            }
-
-        	break;
+            break;
         }
-        case AIR780E_EVENT_QMTPUBEX:
+
+        if(u32Err != 0)
         {
-            AIR780EMQTT_SendAck((HIDO_DataStruct *) _pArg);
+            MQTT_OnClosed(u32ClientID);
 
             break;
         }
+
+        break;
+    }
+    case AIR780E_EVENT_QMTPUBEX:
+    {
+        AIR780EMQTT_SendAck((HIDO_DataStruct *) _pArg);
+
+        break;
+    }
 #endif
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1094,34 +1094,34 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        break;
+    }
+    case AIR780E_EVENT_POLL:
+    {
+        if (HIDO_TRUE == l_bDeact)
         {
+            l_bDeact = HIDO_FALSE;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
             break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            break;
-        }
-        case AIR780E_EVENT_POLL:
-        {
-            if (HIDO_TRUE == l_bDeact)
-            {
-                l_bDeact = HIDO_FALSE;
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
-                break;
-            }
 
-            if(AIR780E_PollOnIPReady(pstATDevice) == HIDO_OK)
-            {
-                break;
-            }
-
+        if(AIR780E_PollOnIPReady(pstATDevice) == HIDO_OK)
+        {
             break;
         }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1141,45 +1141,45 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        l_u32CGATT = 0;
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGATT?\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        if (1 == l_u32CGATT)
         {
-            l_u32CGATT = 0;
-            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGATT?\r\n");
-            break;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
         }
-        case HIDO_EVENT_EXIT:
+        else
         {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
         }
-        case HIDO_AT_EVENT_OK:
-        {
-            if (1 == l_u32CGATT)
-            {
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-            }
-            else
-            {
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
-            }
 
-            break;
-        }
-        case AIR780E_EVENT_CGATT:
+        break;
+    }
+    case AIR780E_EVENT_CGATT:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGATT: %d", &l_u32CGATT) == 1)
         {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGATT: %d", &l_u32CGATT) == 1)
-            {
-
-            }
-
-            break;
         }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1198,28 +1198,28 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-        	HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "%s\r\n", Module_GetRunATCmd());
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_TIMEOUT:
-        {
-        	Module_RunATCmdResult((HIDO_DataStruct *)_pArg);
-        	HIDO_FSMStateChange(_pstFSM, l_stStateArg.m_pstAfterState, HIDO_NULL);
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+    case HIDO_EVENT_ENTRY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "%s\r\n", Module_GetRunATCmd());
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        Module_RunATCmdResult((HIDO_DataStruct *)_pArg);
+        HIDO_FSMStateChange(_pstFSM, l_stStateArg.m_pstAfterState, HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1238,27 +1238,27 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-        	HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=0\r\n");
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        {
-        	Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_OFF);
-        	HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL);
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+    case HIDO_EVENT_ENTRY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=0\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    {
+        Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_OFF);
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1277,27 +1277,27 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-        	HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=1\r\n");
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_ERROR:
-        {
-        	Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_ON);
-        	HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+    case HIDO_EVENT_ENTRY:
+    {
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=1\r\n");
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_ERROR:
+    {
+        Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_ON);
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -1339,17 +1339,17 @@
  *******************************************************************************/
 static HIDO_INT32 AIR780E_RunATCmdPoll(HIDO_ATLiteDeviceStruct *_pstATDevice)
 {
-	if(Module_RunATCmdEnable() == HIDO_TRUE)
-	{
-	    l_stStateArg.m_pArg = HIDO_NULL;
-	    l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
-	    HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ERunATCmd, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
-	    HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ERunATCmd), HIDO_NULL);
+    if(Module_RunATCmdEnable() == HIDO_TRUE)
+    {
+        l_stStateArg.m_pArg = HIDO_NULL;
+        l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
+        HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ERunATCmd, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
+        HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ERunATCmd), HIDO_NULL);
 
-	    return HIDO_OK;
-	}
+        return HIDO_OK;
+    }
 
-	return HIDO_ERR;
+    return HIDO_ERR;
 }
 
 /*******************************************************************************
@@ -1363,17 +1363,17 @@
  *******************************************************************************/
 static HIDO_INT32 AIR780E_CloseWirelessPoll(HIDO_ATLiteDeviceStruct *_pstATDevice)
 {
-	if(Module_NeedPowerOff(MODULE_GSM) == HIDO_TRUE)
-	{
-	    l_stStateArg.m_pArg = HIDO_NULL;
-	    l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
-	    HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ECloseWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
-	    HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ECloseWireless), HIDO_NULL);
+    if(Module_NeedPowerOff(MODULE_GSM) == HIDO_TRUE)
+    {
+        l_stStateArg.m_pArg = HIDO_NULL;
+        l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
+        HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ECloseWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
+        HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ECloseWireless), HIDO_NULL);
 
-	    return HIDO_OK;
-	}
+        return HIDO_OK;
+    }
 
-	return HIDO_ERR;
+    return HIDO_ERR;
 }
 
 /*******************************************************************************
@@ -1387,17 +1387,17 @@
  *******************************************************************************/
 static HIDO_INT32 AIR780E_OpenWirelessPoll(HIDO_ATLiteDeviceStruct *_pstATDevice)
 {
-	if(Module_NeedPowerOn(MODULE_GSM) == HIDO_TRUE)
-	{
-	    l_stStateArg.m_pArg = HIDO_NULL;
-	    l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
-	    HIDO_FSM_DETACHED_STATE_SETTLE(AIR780EOpenWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
-	    HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780EOpenWireless), HIDO_NULL);
+    if(Module_NeedPowerOn(MODULE_GSM) == HIDO_TRUE)
+    {
+        l_stStateArg.m_pArg = HIDO_NULL;
+        l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
+        HIDO_FSM_DETACHED_STATE_SETTLE(AIR780EOpenWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
+        HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780EOpenWireless), HIDO_NULL);
 
-	    return HIDO_OK;
-	}
+        return HIDO_OK;
+    }
 
-	return HIDO_ERR;
+    return HIDO_ERR;
 }
 
 /*******************************************************************************
@@ -1432,7 +1432,7 @@
         return HIDO_OK;
     }
 #endif
-    
+
     /* CSQ */
     if (AIR780ECSQ_Poll(_pstATDevice) == HIDO_OK)
     {
@@ -1486,7 +1486,7 @@
     }
 
 #ifdef __AIR780E_GNSS__
-		/* GNSS */
+    /* GNSS */
     if(AIR780EGNSS_Poll(_pstATDevice) == HIDO_OK)
     {
         return HIDO_OK;
@@ -1500,7 +1500,7 @@
         return HIDO_OK;
     }
 #endif
-    
+
     /* Socket */
     if (AIR780ESocket_Poll(_pstATDevice) == HIDO_OK)
     {
@@ -1536,7 +1536,7 @@
         return HIDO_OK;
     }
 #endif
-    
+
     /* RunATCmd */
     if (AIR780E_RunATCmdPoll(_pstATDevice) == HIDO_OK)
     {
@@ -1553,7 +1553,7 @@
     {
         return HIDO_OK;
     }
-    
+
 #ifdef __AIR780E_FILE__
     if (AIR780EFile_Poll(_pstATDevice) == HIDO_OK)
     {
diff --git a/keil/include/components/internet/src/AIR780ESocket.c b/keil/include/components/internet/src/AIR780ESocket.c
index 400b4cc..f2bb948 100644
--- a/keil/include/components/internet/src/AIR780ESocket.c
+++ b/keil/include/components/internet/src/AIR780ESocket.c
@@ -71,28 +71,28 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            l_i32SocketID = (HIDO_INT32) _pArg;
-            HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTCONFIG=1,%d,%u\r\n", l_i32SocketID, Socket_GetHeartbeatFreq(l_i32SocketID));
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_OK:
-        {
+    case HIDO_EVENT_ENTRY:
+    {
+        l_i32SocketID = (HIDO_INT32) _pArg;
+        HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTCONFIG=1,%d,%u\r\n", l_i32SocketID, Socket_GetHeartbeatFreq(l_i32SocketID));
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_OK:
+    {
 
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartbeat), HIDO_NULL);
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartbeat), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -112,29 +112,29 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
-        {
-            l_i32SocketID = (HIDO_INT32) _pArg;
-            HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTBEATHEX=%d,%u,%s\r\n", l_i32SocketID,
-                    strlen(Socket_GetHeartbeatData(l_i32SocketID)) / 2, Socket_GetHeartbeatData(l_i32SocketID));
-            break;
-        }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_OK:
-        {
+    case HIDO_EVENT_ENTRY:
+    {
+        l_i32SocketID = (HIDO_INT32) _pArg;
+        HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTBEATHEX=%d,%u,%s\r\n", l_i32SocketID,
+                           strlen(Socket_GetHeartbeatData(l_i32SocketID)) / 2, Socket_GetHeartbeatData(l_i32SocketID));
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_OK:
+    {
 
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -157,108 +157,108 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        l_i32SocketID = (HIDO_INT32) _pArg;
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSTART=%d,\"%s\",\"%s\",%u\r\n", l_i32SocketID,
+                           Socket_GetType(l_i32SocketID) == SOCKET_TYPE_TCP ? "TCP" : "UDP",
+                           Socket_GetRemoteAddr(l_i32SocketID), Socket_GetRemotePort(l_i32SocketID));
+
+        HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(180), _pstFSM, AIR780E_EVENT_DELAY);
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        HIDO_TimerCancel(u32FSMTimerID);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    {
+        Socket_OnConnectFailed(l_i32SocketID);
+
+        l_u32FailedCnt++;
+        if(l_u32FailedCnt >= 3)
         {
-            l_i32SocketID = (HIDO_INT32) _pArg;
-            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSTART=%d,\"%s\",\"%s\",%u\r\n", l_i32SocketID,
-                    Socket_GetType(l_i32SocketID) == SOCKET_TYPE_TCP ? "TCP" : "UDP",
-                    Socket_GetRemoteAddr(l_i32SocketID), Socket_GetRemotePort(l_i32SocketID));
-
-            HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(180), _pstFSM, AIR780E_EVENT_DELAY);
-            break;
+            l_u32FailedCnt = 0;
+            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL);
         }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            HIDO_TimerCancel(u32FSMTimerID);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        {
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        {
-            Socket_OnConnectFailed(l_i32SocketID);
-
-            l_u32FailedCnt++;
-            if(l_u32FailedCnt >= 3)
-            {
-                l_u32FailedCnt = 0;
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL);
-            }
-            else
-            {
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-            }
-            break;
-        }
-        case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ConnectID = 0;
-			HIDO_DataStruct stEvent;
-
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
-                    &u32ConnectID, &stEvent) != 2)
-            {
-                break;
-            }
-
-            if (l_i32SocketID == u32ConnectID)
-            {
-                if (strncmp(stEvent.m_pData, "ALREADY CONNECT", stEvent.m_u32Len) == 0
-                    || strncmp(stEvent.m_pData, "CONNECT OK", stEvent.m_u32Len) == 0)
-                {
-                    l_u32FailedCnt = 0;
-                    Socket_OnConnected(l_i32SocketID);
-
-                    if(Socket_UseHeartbeat(l_i32SocketID))
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartConfig), HIDO_NULL);
-
-                    }
-                    else
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-                    }
-                    
-                    break;
-                }
-                else if (strncmp(stEvent.m_pData, "CONNECT FAIL", stEvent.m_u32Len) == 0)
-                {
-                    Socket_OnConnectFailed(l_i32SocketID);
-
-                    l_u32FailedCnt++;
-                    if (l_u32FailedCnt >= 3)
-                    {
-                        l_u32FailedCnt = 3;
-                        Socket_Destroy(l_i32SocketID);
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-                    }
-                    else
-                    {
-                        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-                    }
-                }
-            }
-
-            break;
-        }
-        case AIR780E_EVENT_DELAY:
+        else
         {
             HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+        }
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ConnectID = 0;
+        HIDO_DataStruct stEvent;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
+                                 &u32ConnectID, &stEvent) != 2)
+        {
             break;
         }
-        default:
+
+        if (l_i32SocketID == u32ConnectID)
         {
-            return HIDO_EVENT_NO_PROC;
+            if (strncmp(stEvent.m_pData, "ALREADY CONNECT", stEvent.m_u32Len) == 0
+                    || strncmp(stEvent.m_pData, "CONNECT OK", stEvent.m_u32Len) == 0)
+            {
+                l_u32FailedCnt = 0;
+                Socket_OnConnected(l_i32SocketID);
+
+                if(Socket_UseHeartbeat(l_i32SocketID))
+                {
+                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartConfig), HIDO_NULL);
+
+                }
+                else
+                {
+                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+                }
+
+                break;
+            }
+            else if (strncmp(stEvent.m_pData, "CONNECT FAIL", stEvent.m_u32Len) == 0)
+            {
+                Socket_OnConnectFailed(l_i32SocketID);
+
+                l_u32FailedCnt++;
+                if (l_u32FailedCnt >= 3)
+                {
+                    l_u32FailedCnt = 3;
+                    Socket_Destroy(l_i32SocketID);
+                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+                }
+                else
+                {
+                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+                }
+            }
         }
+
+        break;
+    }
+    case AIR780E_EVENT_DELAY:
+    {
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -278,55 +278,55 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        l_i32SocketID = (HIDO_INT32) _pArg;
+        HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT+CIPCLOSE=%d\r\n", l_i32SocketID);
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    case HIDO_AT_EVENT_OK:
+    case HIDO_AT_EVENT_TIMEOUT:
+    {
+        Socket_OnClosed(l_i32SocketID);
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ConnectID = 0;
+        HIDO_DataStruct stEvent;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
+                                 &u32ConnectID, &stEvent) != 2)
         {
-            l_i32SocketID = (HIDO_INT32) _pArg;
-            HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT+CIPCLOSE=%d\r\n", l_i32SocketID);
             break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        case HIDO_AT_EVENT_OK:
-        case HIDO_AT_EVENT_TIMEOUT:
+
+        if (strncmp(stEvent.m_pData, "CLOSE OK", stEvent.m_u32Len) == 0)
         {
             Socket_OnClosed(l_i32SocketID);
             HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
             break;
         }
-		case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-        {
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ConnectID = 0;
-            HIDO_DataStruct stEvent;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
-                    &u32ConnectID, &stEvent) != 2)
-            {
-                break;
-            }
-
-            if (strncmp(stEvent.m_pData, "CLOSE OK", stEvent.m_u32Len) == 0)
-            {
-                Socket_OnClosed(l_i32SocketID);
-                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-                break;
-            }
-
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -349,95 +349,95 @@
 
     switch (_u32Event)
     {
-        case HIDO_EVENT_ENTRY:
+    case HIDO_EVENT_ENTRY:
+    {
+        l_i32SocketID = (HIDO_INT32) _pArg;
+
+        pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID);
+        if(HIDO_NULL == pstSendQueue)
         {
-            l_i32SocketID = (HIDO_INT32) _pArg;
-
-            pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID);
-            if(HIDO_NULL == pstSendQueue)
-            {
-                break;
-            }
-
-            l_pstMember = HIDO_VLQGetDequeueMember(pstSendQueue);
-            if(HIDO_NULL == l_pstMember)
-            {
-                break;
-            }
-
-            HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSEND=%d,%u\r\n", l_i32SocketID, l_pstMember->m_u32DataLen);
             break;
         }
-        case HIDO_EVENT_EXIT:
-        {
-            l_pstMember = HIDO_NULL;
-            HIDO_ATLiteCmdSendOver(pstATDevice);
-            break;
-        }
-        case HIDO_AT_EVENT_OK:
-        {
-            //HIDO_Debug("OK\r\n");
-            break;
-        }
-        case HIDO_AT_EVENT_ERROR:
-        {
-            Socket_OnClosed(l_i32SocketID);
-            HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
-            break;
-        }
-        case AIR780E_EVENT_ACK:
-        {
-            if(HIDO_ATLiteGetDebugFlag() == HIDO_TRUE)
-            {
-                HIDO_DebugHex((HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen);
-            }
 
-            HIDO_ATLiteDataSend(pstATDevice, 20000, (HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen);
+        l_pstMember = HIDO_VLQGetDequeueMember(pstSendQueue);
+        if(HIDO_NULL == l_pstMember)
+        {
             break;
         }
-        case AIR780E_EVENT_NUM_0:
-        case AIR780E_EVENT_NUM_1:
-        case AIR780E_EVENT_NUM_2:
-        case AIR780E_EVENT_NUM_3:
-        case AIR780E_EVENT_NUM_4:
-        case AIR780E_EVENT_NUM_5:
-		{
-            HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
-            HIDO_UINT32 u32ConnectID = 0;
-            HIDO_DataStruct stEvent;
 
-            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
-                    &u32ConnectID, &stEvent) != 2)
-            {
-                break;
-            }
+        HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSEND=%d,%u\r\n", l_i32SocketID, l_pstMember->m_u32DataLen);
+        break;
+    }
+    case HIDO_EVENT_EXIT:
+    {
+        l_pstMember = HIDO_NULL;
+        HIDO_ATLiteCmdSendOver(pstATDevice);
+        break;
+    }
+    case HIDO_AT_EVENT_OK:
+    {
+        //HIDO_Debug("OK\r\n");
+        break;
+    }
+    case HIDO_AT_EVENT_ERROR:
+    {
+        Socket_OnClosed(l_i32SocketID);
+        HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL);
+        break;
+    }
+    case AIR780E_EVENT_ACK:
+    {
+        if(HIDO_ATLiteGetDebugFlag() == HIDO_TRUE)
+        {
+            HIDO_DebugHex((HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen);
+        }
 
-            if (l_i32SocketID == u32ConnectID)
+        HIDO_ATLiteDataSend(pstATDevice, 20000, (HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen);
+        break;
+    }
+    case AIR780E_EVENT_NUM_0:
+    case AIR780E_EVENT_NUM_1:
+    case AIR780E_EVENT_NUM_2:
+    case AIR780E_EVENT_NUM_3:
+    case AIR780E_EVENT_NUM_4:
+    case AIR780E_EVENT_NUM_5:
+    {
+        HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
+        HIDO_UINT32 u32ConnectID = 0;
+        HIDO_DataStruct stEvent;
+
+        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n",
+                                 &u32ConnectID, &stEvent) != 2)
+        {
+            break;
+        }
+
+        if (l_i32SocketID == u32ConnectID)
+        {
+            if (strncmp(stEvent.m_pData, "SEND OK", stEvent.m_u32Len) == 0)
             {
-                if (strncmp(stEvent.m_pData, "SEND OK", stEvent.m_u32Len) == 0)
+                pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID);
+                if (NULL == pstSendQueue)
                 {
-                    pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID);
-                    if (NULL == pstSendQueue)
-                    {
-                        break;
-                    }
+                    break;
+                }
 
-                    HIDO_VLQDequeue(pstSendQueue, l_pstMember);
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), NULL);
-                }
-                else if (strncmp(stEvent.m_pData, "SEND FAIL", stEvent.m_u32Len) == 0)
-                {
-                    Socket_OnClosed(l_i32SocketID);
-                    HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), NULL);
-                }
+                HIDO_VLQDequeue(pstSendQueue, l_pstMember);
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), NULL);
             }
+            else if (strncmp(stEvent.m_pData, "SEND FAIL", stEvent.m_u32Len) == 0)
+            {
+                Socket_OnClosed(l_i32SocketID);
+                HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), NULL);
+            }
+        }
 
-            break;
-        }
-        default:
-        {
-            return HIDO_EVENT_NO_PROC;
-        }
+        break;
+    }
+    default:
+    {
+        return HIDO_EVENT_NO_PROC;
+    }
     }
 
     return HIDO_EVENT_OK;
@@ -468,7 +468,7 @@
         else if (SOCKET_STATE_CLOSE == Socket_GetSocketState(i32SocketIndex))
         {
             HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ESocketClose),
-                    (HIDO_VOID *) (HIDO_UINT32) i32SocketIndex);
+                                (HIDO_VOID *) (HIDO_UINT32) i32SocketIndex);
             return HIDO_OK;
         }
 
diff --git a/keil/include/components/internet/src/HTTPClient.c b/keil/include/components/internet/src/HTTPClient.c
index 2bdcdef..23b5be5 100644
--- a/keil/include/components/internet/src/HTTPClient.c
+++ b/keil/include/components/internet/src/HTTPClient.c
@@ -112,7 +112,7 @@
     else
     {
         HIDO_DebugString((HIDO_CHAR *)_pu8Data, _u32Len);
-        
+
         if(l_fnHTTPResponseCallback != HIDO_NULL)
         {
             l_fnHTTPResponseCallback(_u32RespCode, _pu8Data, _u32Len, l_pHTTPArg);
@@ -152,110 +152,136 @@
 {
     switch (_eEvent)
     {
-        case SOCKET_EVENT_CONNECT_FAILED:
+    case SOCKET_EVENT_CONNECT_FAILED:
+    {
+        if(HTTP_CLIENT_STATE_CONNECTING == l_eHTTPClientState)
         {
-            if(HTTP_CLIENT_STATE_CONNECTING == l_eHTTPClientState)
+            if(l_u32HTTPTryCnt < 3)
             {
-                if(l_u32HTTPTryCnt < 3)
-                {
-                    l_u32HTTPTryCnt++;
-                    Socket_Connect(l_i32HTTPClientSockID, l_acHTTPHost, l_u32HTTPPort);
-                }
-                else
-                {
-                    l_eHTTPClientState = HTTP_CLIENT_STATE_IDLE;
-                    HTTPClient_Response(408, HIDO_NULL, 0);
-                }
-            }
-
-            break;
-        }
-        case SOCKET_EVENT_CONNECTED:
-        {
-            if(HTTP_CLIENT_STATE_CONNECTING == l_eHTTPClientState)
-            {
-                l_eHTTPClientState = HTTP_CLIENT_STATE_CONNECTED;
-                l_eHTTPRecvState = HTTP_RECV_STATE_HEAD;
-                l_u32HTTPRecvBuffLen = 0;
-
-                if(l_eHTTPMethod != HTTP_METHOD_POST_FILE)
-                {
-                    Socket_Send(l_i32HTTPClientSockID, (HIDO_UINT8 *)l_acHTTPSendBuff, l_u32HTTPSendBuffLen);
-                }
-            }
-
-            break;
-        }
-        case SOCKET_EVENT_CLOSED:
-        {
-            if(l_eHTTPClientState != HTTP_CLIENT_STATE_IDLE)
-            {
-                HIDO_TimerCancel(l_u32HTTPClientTimerID);
-                l_eHTTPClientState = HTTP_CLIENT_STATE_IDLE;
-
-                HTTPClient_Response(l_u32HTTPRespCode, l_pu8HTTPRespBody, l_u32HTTPContentLength);
+                l_u32HTTPTryCnt++;
+                Socket_Connect(l_i32HTTPClientSockID, l_acHTTPHost, l_u32HTTPPort);
             }
             else
             {
-                HIDO_TimerCancel(l_u32HTTPClientTimerID);
+                l_eHTTPClientState = HTTP_CLIENT_STATE_IDLE;
+                HTTPClient_Response(408, HIDO_NULL, 0);
+            }
+        }
+
+        break;
+    }
+    case SOCKET_EVENT_CONNECTED:
+    {
+        if(HTTP_CLIENT_STATE_CONNECTING == l_eHTTPClientState)
+        {
+            l_eHTTPClientState = HTTP_CLIENT_STATE_CONNECTED;
+            l_eHTTPRecvState = HTTP_RECV_STATE_HEAD;
+            l_u32HTTPRecvBuffLen = 0;
+
+            if(l_eHTTPMethod != HTTP_METHOD_POST_FILE)
+            {
+                Socket_Send(l_i32HTTPClientSockID, (HIDO_UINT8 *)l_acHTTPSendBuff, l_u32HTTPSendBuffLen);
+            }
+        }
+
+        break;
+    }
+    case SOCKET_EVENT_CLOSED:
+    {
+        if(l_eHTTPClientState != HTTP_CLIENT_STATE_IDLE)
+        {
+            HIDO_TimerCancel(l_u32HTTPClientTimerID);
+            l_eHTTPClientState = HTTP_CLIENT_STATE_IDLE;
+
+            HTTPClient_Response(l_u32HTTPRespCode, l_pu8HTTPRespBody, l_u32HTTPContentLength);
+        }
+        else
+        {
+            HIDO_TimerCancel(l_u32HTTPClientTimerID);
+        }
+
+        break;
+    }
+    case SOCKET_EVENT_RECV_DATA:
+    {
+        HIDO_INT32 i32Ret = 0;
+        HIDO_UINT32 u32RecvLen = 0;
+
+        do
+        {
+            if (l_u32HTTPRecvBuffLen >= HTTP_RECV_BUFF_SIZE)
+            {
+                Socket_Close(l_i32HTTPClientSockID);
+
+                break;
             }
 
-            break;
-        }
-        case SOCKET_EVENT_RECV_DATA:
-        {
-            HIDO_INT32 i32Ret = 0;
-            HIDO_UINT32 u32RecvLen = 0;
+            i32Ret = Socket_Recv(l_i32HTTPClientSockID, (HIDO_UINT8 *)(l_acHTTPRecvBuff + l_u32HTTPRecvBuffLen),
+                                 HTTP_RECV_BUFF_SIZE - l_u32HTTPRecvBuffLen, &u32RecvLen);
 
-            do
+            if ((i32Ret != HIDO_OK) || (0 == u32RecvLen))
             {
-                if (l_u32HTTPRecvBuffLen >= HTTP_RECV_BUFF_SIZE)
+                break;
+            }
+
+            l_u32HTTPRecvBuffLen += u32RecvLen;
+
+            if (HTTP_RECV_STATE_HEAD == l_eHTTPRecvState)
+            {
+                /* 收到"\r\n\r\n */
+                l_pu8HTTPRespBody = (HIDO_UINT8 *)HIDO_UtilStrnstr(l_acHTTPRecvBuff, "\r\n\r\n", u32RecvLen);
+                if (l_pu8HTTPRespBody != HIDO_NULL)
                 {
-                    Socket_Close(l_i32HTTPClientSockID);
+                    HIDO_CHAR *pcKeyName = HIDO_NULL;
+                    HIDO_UINT32 u32Range0 = 0;
+                    HIDO_UINT32 u32Range1 = 0;
+                    HIDO_UINT32 u32RangeAll = 0;
 
-                    break;
-                }
+                    l_pu8HTTPRespBody += 4;
 
-                i32Ret = Socket_Recv(l_i32HTTPClientSockID, (HIDO_UINT8 *)(l_acHTTPRecvBuff + l_u32HTTPRecvBuffLen),
-                        HTTP_RECV_BUFF_SIZE - l_u32HTTPRecvBuffLen, &u32RecvLen);
-
-                if ((i32Ret != HIDO_OK) || (0 == u32RecvLen))
-                {
-                    break;
-                }
-
-                l_u32HTTPRecvBuffLen += u32RecvLen;
-
-                if (HTTP_RECV_STATE_HEAD == l_eHTTPRecvState)
-                {
-                    /* 收到"\r\n\r\n */
-                    l_pu8HTTPRespBody = (HIDO_UINT8 *)HIDO_UtilStrnstr(l_acHTTPRecvBuff, "\r\n\r\n", u32RecvLen);
-                    if (l_pu8HTTPRespBody != HIDO_NULL)
+                    if (HIDO_UtilParseFormat((HIDO_UINT8 *) l_acHTTPRecvBuff, u32RecvLen, "HTTP/1.1 %d %*\r\n",
+                                             &l_u32HTTPRespCode) != 2)
                     {
-                        HIDO_CHAR *pcKeyName = HIDO_NULL;
-                        HIDO_UINT32 u32Range0 = 0;
-                        HIDO_UINT32 u32Range1 = 0;
-                        HIDO_UINT32 u32RangeAll = 0;
+                        Socket_Close(l_i32HTTPClientSockID);
 
-                        l_pu8HTTPRespBody += 4;
+                        break;
+                    }
 
-                        if (HIDO_UtilParseFormat((HIDO_UINT8 *) l_acHTTPRecvBuff, u32RecvLen, "HTTP/1.1 %d %*\r\n",
-                                &l_u32HTTPRespCode) != 2)
+                    pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "Content-Length: ", u32RecvLen);
+                    if (pcKeyName != HIDO_NULL)
+                    {
+                        if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName,
+                                                 u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "Content-Length: %d\r\n",
+                                                 &l_u32HTTPContentLength) != 1)
                         {
                             Socket_Close(l_i32HTTPClientSockID);
-                            
+
                             break;
                         }
+                    }
+                    else
+                    {
+                        Socket_Close(l_i32HTTPClientSockID);
 
-                        pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "Content-Length: ", u32RecvLen);
+                        break;
+                    }
+
+                    /* 获取文件分片信息 */
+                    if(HTTP_METHOD_GET_FILE == l_eHTTPMethod)
+                    {
+                        HIDO_DataStruct stETag;
+
+                        memset(&l_stHTTPGetFileResponse, 0, sizeof(l_stHTTPGetFileResponse));
+
+                        pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "Content-Range: ", u32RecvLen);
                         if (pcKeyName != HIDO_NULL)
                         {
                             if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName,
-                                    u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "Content-Length: %d\r\n",
-                                    &l_u32HTTPContentLength) != 1)
+                                                     u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "Content-Range: bytes %d-%d/%d\r\n",
+                                                     &u32Range0, &u32Range1, &u32RangeAll) != 3)
                             {
                                 Socket_Close(l_i32HTTPClientSockID);
-                                
+
                                 break;
                             }
                         }
@@ -266,85 +292,59 @@
                             break;
                         }
 
-                        /* 获取文件分片信息 */
-                        if(HTTP_METHOD_GET_FILE == l_eHTTPMethod)
+                        l_stHTTPGetFileResponse.m_u32RangeBegin = u32Range0;
+                        l_stHTTPGetFileResponse.m_u32RangeEnd = u32Range1;
+                        l_stHTTPGetFileResponse.m_u32RangeTotal = u32RangeAll;
+
+                        pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "ETag: ", u32RecvLen);
+                        if (pcKeyName != HIDO_NULL)
                         {
-                            HIDO_DataStruct stETag;
-
-                            memset(&l_stHTTPGetFileResponse, 0, sizeof(l_stHTTPGetFileResponse));
-
-                            pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "Content-Range: ", u32RecvLen);
-                            if (pcKeyName != HIDO_NULL)
-                            {
-                                if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName,
-                                        u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "Content-Range: bytes %d-%d/%d\r\n",
-                                        &u32Range0, &u32Range1, &u32RangeAll) != 3)
-                                {
-                                    Socket_Close(l_i32HTTPClientSockID);
-                                    
-                                    break;
-                                }
-                            }
-                            else
+                            if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName,
+                                                     u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "ETag: %p\r\n", &stETag) != 1)
                             {
                                 Socket_Close(l_i32HTTPClientSockID);
 
                                 break;
                             }
-
-                            l_stHTTPGetFileResponse.m_u32RangeBegin = u32Range0;
-                            l_stHTTPGetFileResponse.m_u32RangeEnd = u32Range1;
-                            l_stHTTPGetFileResponse.m_u32RangeTotal = u32RangeAll;
-
-                            pcKeyName = HIDO_UtilStrnstr(l_acHTTPRecvBuff, "ETag: ", u32RecvLen);
-                             if (pcKeyName != HIDO_NULL)
-                             {
-                                 if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName,
-                                         u32RecvLen - (pcKeyName - l_acHTTPRecvBuff), "ETag: %p\r\n", &stETag) != 1)
-                                 {
-                                     Socket_Close(l_i32HTTPClientSockID);
-                                     
-                                     break;
-                                 }
-                             }
-                             else
-                             {
-                                 Socket_Close(l_i32HTTPClientSockID);
-
-                                 break;
-                             }
-
-                             if((stETag.m_u32Len + 1) < sizeof(l_stHTTPGetFileResponse.m_acETag))
-                             {
-                                 memcpy(l_stHTTPGetFileResponse.m_acETag, stETag.m_pData, stETag.m_u32Len);
-                             }
                         }
-
-                        l_u32HTTPRecvTotalLen = l_pu8HTTPRespBody - (HIDO_UINT8 *)l_acHTTPRecvBuff + l_u32HTTPContentLength;
-                        l_eHTTPRecvState = HTTP_RECV_STATE_BODY;
-
-                        if (l_u32HTTPRecvBuffLen >= l_u32HTTPRecvTotalLen)
+                        else
                         {
                             Socket_Close(l_i32HTTPClientSockID);
+
+                            break;
+                        }
+
+                        if((stETag.m_u32Len + 1) < sizeof(l_stHTTPGetFileResponse.m_acETag))
+                        {
+                            memcpy(l_stHTTPGetFileResponse.m_acETag, stETag.m_pData, stETag.m_u32Len);
                         }
                     }
-                }
-                else
-                {
+
+                    l_u32HTTPRecvTotalLen = l_pu8HTTPRespBody - (HIDO_UINT8 *)l_acHTTPRecvBuff + l_u32HTTPContentLength;
+                    l_eHTTPRecvState = HTTP_RECV_STATE_BODY;
+
                     if (l_u32HTTPRecvBuffLen >= l_u32HTTPRecvTotalLen)
                     {
                         Socket_Close(l_i32HTTPClientSockID);
                     }
                 }
             }
-            while(HIDO_TRUE);
+            else
+            {
+                if (l_u32HTTPRecvBuffLen >= l_u32HTTPRecvTotalLen)
+                {
+                    Socket_Close(l_i32HTTPClientSockID);
+                }
+            }
+        }
+        while(HIDO_TRUE);
 
-            break;
-        }
-        default:
-        {
-            break;
-        }
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -358,7 +358,7 @@
  * Modified Date:    : 2020年7月1日
  *******************************************************************************/
 HIDO_INT32 HTTPClient_ParseUrl(HIDO_CHAR *_pcUrl, HIDO_CHAR *_pcHost, HIDO_UINT32 _u32HostSize,
-        HIDO_CHAR *_pcPath, HIDO_UINT32 _u32PathSize, HIDO_UINT32 *_pu32Port)
+                               HIDO_CHAR *_pcPath, HIDO_UINT32 _u32PathSize, HIDO_UINT32 *_pu32Port)
 {
     HIDO_DataStruct stHost;
     HIDO_DataStruct stPath;
@@ -467,15 +467,15 @@
     HIDO_UtilSnprintf(l_acHTTPUrl, sizeof(l_acHTTPUrl), _pcUrl);
 
     l_u32HTTPSendBuffLen = HIDO_UtilSnprintf(l_acHTTPSendBuff, sizeof(l_acHTTPSendBuff),
-            "POST /%s HTTP/1.1\r\n"
-            "Host: %s\r\n"
-            "User-Agent: QUECTEL_MODULE\r\n"
-            "Connection: Keep-Alive\r\n"
-            "Content-Type: application/json\r\n"
-            "Accept: */*\r\n"
-            "Content-Length: %u\r\n"
-            "\r\n"
-            "%s" , l_acHTTPPath, l_acHTTPHost, _u32BodyLen, _pcBody);
+                           "POST /%s HTTP/1.1\r\n"
+                           "Host: %s\r\n"
+                           "User-Agent: QUECTEL_MODULE\r\n"
+                           "Connection: Keep-Alive\r\n"
+                           "Content-Type: application/json\r\n"
+                           "Accept: */*\r\n"
+                           "Content-Length: %u\r\n"
+                           "\r\n"
+                           "%s" , l_acHTTPPath, l_acHTTPHost, _u32BodyLen, _pcBody);
 
     l_fnHTTPResponseCallback = _fnResponseCallback;
     l_pHTTPArg = _pArg;
@@ -522,12 +522,12 @@
     HIDO_UtilSnprintf(l_acHTTPUrl, sizeof(l_acHTTPUrl), _pcUrl);
 
     l_u32HTTPSendBuffLen = HIDO_UtilSnprintf(l_acHTTPSendBuff, sizeof(l_acHTTPSendBuff),
-            "GET /%s HTTP/1.1\r\n"
-            "Host: %s\r\n"
-            "User-Agent: QUECTEL_MODULE\r\n"
-            "Connection: Keep-Alive\r\n"
-            "Accept: */*\r\n"
-            "\r\n" , l_acHTTPPath, l_acHTTPHost);
+                           "GET /%s HTTP/1.1\r\n"
+                           "Host: %s\r\n"
+                           "User-Agent: QUECTEL_MODULE\r\n"
+                           "Connection: Keep-Alive\r\n"
+                           "Accept: */*\r\n"
+                           "\r\n" , l_acHTTPPath, l_acHTTPHost);
 
     l_fnHTTPResponseCallback = _fnResponseCallback;
     l_pHTTPArg = _pArg;
@@ -582,24 +582,24 @@
     HIDO_UtilSnprintf(l_acHTTPUrl, sizeof(l_acHTTPUrl), _pcUrl);
 
     l_u32HTTPSendBuffLen = HIDO_UtilSnprintf(l_acHTTPSendBuff, sizeof(l_acHTTPSendBuff),
-            "GET /%s HTTP/1.1\r\n"
-            "Host: %s\r\n"
-            "User-Agent: QUECTEL_MODULE\r\n"
-            "Connection: Keep-Alive\r\n"
-            "Accept: */*\r\n"
-            "Range: bytes=%u-%u\r\n",
-            l_acHTTPPath, l_acHTTPHost, _pstOpt->m_u32RangeBegin, _pstOpt->m_u32RangeEnd);
+                           "GET /%s HTTP/1.1\r\n"
+                           "Host: %s\r\n"
+                           "User-Agent: QUECTEL_MODULE\r\n"
+                           "Connection: Keep-Alive\r\n"
+                           "Accept: */*\r\n"
+                           "Range: bytes=%u-%u\r\n",
+                           l_acHTTPPath, l_acHTTPHost, _pstOpt->m_u32RangeBegin, _pstOpt->m_u32RangeEnd);
 
     if(strlen(_pstOpt->m_acIfRange) != 0)
     {
         l_u32HTTPSendBuffLen += HIDO_UtilSnprintf(l_acHTTPSendBuff + l_u32HTTPSendBuffLen, sizeof(l_acHTTPSendBuff) - l_u32HTTPSendBuffLen,
-            "If-Range: \"%s\"\r\n"
-            "\r\n" , _pstOpt->m_acIfRange);
+                                "If-Range: \"%s\"\r\n"
+                                "\r\n" , _pstOpt->m_acIfRange);
     }
     else
     {
         l_u32HTTPSendBuffLen += HIDO_UtilSnprintf(l_acHTTPSendBuff + l_u32HTTPSendBuffLen, sizeof(l_acHTTPSendBuff) - l_u32HTTPSendBuffLen,
-                "\r\n");
+                                "\r\n");
     }
 
     l_fnHTTPGetFileCallback = _fnGetFileCallback;
@@ -628,7 +628,7 @@
  * Modified Date:    : 2021年5月3日
  *******************************************************************************/
 HIDO_INT32 HTTPClient_PostFile(HIDO_CHAR *_pcUrl, FN_HTTPPostDataCallback _fnPostDataCallback, FN_HTTPResponseCallback _fnResponseCallback,
-        HIDO_VOID *_pArg)
+                               HIDO_VOID *_pArg)
 {
     if(l_eHTTPClientState != HTTP_CLIENT_STATE_IDLE)
     {
@@ -721,13 +721,13 @@
 
     if(Socket_Create(&l_i32HTTPClientSockID, SOCKET_TYPE_TCP, HTTPClient_SocketEventProc, HIDO_NULL) != HIDO_OK)
     {
-        
+
         return HIDO_ERR;
     }
 
     if(HIDO_TimerCreate(&l_u32HTTPClientTimerID) != HIDO_OK)
     {
-        
+
         return HIDO_ERR;
     }
 
diff --git a/keil/include/components/internet/src/Internet.c b/keil/include/components/internet/src/Internet.c
index 475dbb7..09adf4b 100644
--- a/keil/include/components/internet/src/Internet.c
+++ b/keil/include/components/internet/src/Internet.c
@@ -38,16 +38,16 @@
 
 /*******************************************************************************
  * Function Name     : Internet_Poll
- * Description       : 
- * Input             : 
- * Output            : 
- * Return            : 
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
  * Author            : 杜键
  * Modified Date:    : 2018年5月26日
  *******************************************************************************/
 HIDO_INT32 Internet_Poll(void)
 {
- 	HIDO_FSMEventExecute(HIDO_FSM(AIR780E), AIR780E_EVENT_POLL, HIDO_NULL);
+    HIDO_FSMEventExecute(HIDO_FSM(AIR780E), AIR780E_EVENT_POLL, HIDO_NULL);
 
     return HIDO_OK;
 }
@@ -114,11 +114,11 @@
         return HIDO_ERR;
     }
 #if 0
-    if (TTS_Init() != HIDO_OK) 
+    if (TTS_Init() != HIDO_OK)
     {
         return HIDO_ERR;
     }
-    
+
     if (TONE_Init() != HIDO_OK)
     {
         return HIDO_ERR;
diff --git a/keil/include/components/internet/src/Module.c b/keil/include/components/internet/src/Module.c
index c95a292..e291a81 100644
--- a/keil/include/components/internet/src/Module.c
+++ b/keil/include/components/internet/src/Module.c
@@ -125,7 +125,7 @@
 
 /*******************************************************************************
  * Function Name     : Module_LBSLocationResult
- * Description       : 
+ * Description       :
  * Input             : _u32SignalIntensity                信号强度
  * Output            : None
  * Return            : None
@@ -146,7 +146,7 @@
 
 /*******************************************************************************
  * Function Name     : Module_GetLBSLocationAsync
- * Description       : 
+ * Description       :
  * Input             : _fnGetSignalIntensity              异步通知回调
  * Output            : None
  * Return            : None
@@ -164,7 +164,7 @@
 
 /*******************************************************************************
  * Function Name     : Module_LBSLocationNeedRequest
- * Description       : 
+ * Description       :
  * Input             : None
  * Output            : None
  * Return            : None
@@ -210,9 +210,9 @@
     {
         return HIDO_ERR;
     }
-    
+
     _u32IMEILen -= 2;
-    
+
     if(_u32IMEILen < MODULE_IMEI_SIZE)
     {
         memcpy(l_acIMEI, _pcIMEI, _u32IMEILen);
@@ -253,9 +253,9 @@
     {
         return HIDO_ERR;
     }
-    
+
     _u32IMSILen -= 2;
-    
+
     if(_u32IMSILen < MODULE_IMSI_SIZE)
     {
         memcpy(l_acIMSI, _pcIMSI, _u32IMSILen);
@@ -311,8 +311,8 @@
  *******************************************************************************/
 HIDO_INT32 Module_SetPowerEventCallback(FN_PowerEventCallback _fnPowerCallback, HIDO_VOID *_pArg)
 {
-	l_fnPowerEventCallback = _fnPowerCallback;
-	l_pPowerEventArg = _pArg;
+    l_fnPowerEventCallback = _fnPowerCallback;
+    l_pPowerEventArg = _pArg;
 
     return HIDO_OK;
 }
@@ -328,8 +328,8 @@
  *******************************************************************************/
 HIDO_INT32 Module_Sleep(E_Module _eModule)
 {
-	l_abModuleNeedSleep[_eModule] = HIDO_TRUE;
-	l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
+    l_abModuleNeedSleep[_eModule] = HIDO_TRUE;
+    l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
 
     return HIDO_OK;
 }
@@ -345,15 +345,15 @@
  *******************************************************************************/
 HIDO_INT32 Module_WakeUp(E_Module _eModule)
 {
-	l_abModuleNeedWakeUp[_eModule] = HIDO_TRUE;
-	l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
+    l_abModuleNeedWakeUp[_eModule] = HIDO_TRUE;
+    l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
 
     return HIDO_OK;
 }
 
 /*******************************************************************************
  * Function Name     : Module_PowerEvent
- * Description       : 
+ * Description       :
  * Input             :
  * Output            : None
  * Return            : None
@@ -378,8 +378,8 @@
  *******************************************************************************/
 HIDO_INT32 Module_PowerOff(E_Module _eModule)
 {
-	l_abModuleNeedPowerOff[_eModule] = HIDO_TRUE;
-	l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
+    l_abModuleNeedPowerOff[_eModule] = HIDO_TRUE;
+    l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
 
     return HIDO_OK;
 }
@@ -395,8 +395,8 @@
  *******************************************************************************/
 HIDO_INT32 Module_PowerOn(E_Module _eModule)
 {
-	l_abModuleNeedPowerOn[_eModule] = HIDO_TRUE;
-	l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
+    l_abModuleNeedPowerOn[_eModule] = HIDO_TRUE;
+    l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
 
     return HIDO_OK;
 }
@@ -412,9 +412,9 @@
  *******************************************************************************/
 HIDO_BOOL Module_NeedSleep(E_Module _eModule)
 {
-	HIDO_BOOL bState = l_abModuleNeedSleep[_eModule];
+    HIDO_BOOL bState = l_abModuleNeedSleep[_eModule];
 
-	l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
+    l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
 
     return bState;
 }
@@ -430,9 +430,9 @@
  *******************************************************************************/
 HIDO_BOOL Module_NeedWakeUp(E_Module _eModule)
 {
-	HIDO_BOOL bState = l_abModuleNeedWakeUp[_eModule];
+    HIDO_BOOL bState = l_abModuleNeedWakeUp[_eModule];
 
-	l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
+    l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
 
     return bState;
 }
@@ -448,9 +448,9 @@
  *******************************************************************************/
 HIDO_BOOL Module_NeedPowerOff(E_Module _eModule)
 {
-	HIDO_BOOL bState = l_abModuleNeedPowerOff[_eModule];
+    HIDO_BOOL bState = l_abModuleNeedPowerOff[_eModule];
 
-	l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
+    l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
 
     return bState;
 }
@@ -466,9 +466,9 @@
  *******************************************************************************/
 HIDO_BOOL Module_NeedPowerOn(E_Module _eModule)
 {
-	HIDO_BOOL bState = l_abModuleNeedPowerOn[_eModule];
+    HIDO_BOOL bState = l_abModuleNeedPowerOn[_eModule];
 
-	l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
+    l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
 
     return bState;
 }
@@ -544,13 +544,13 @@
  *******************************************************************************/
 HIDO_INT32 Module_RunATCmd(HIDO_CHAR *_pcATCmd)
 {
-	if(HIDO_NULL == _pcATCmd)
-	{
-		return HIDO_ERR;
-	}
+    if(HIDO_NULL == _pcATCmd)
+    {
+        return HIDO_ERR;
+    }
 
-	l_bRunATCmd = HIDO_TRUE;
-	HIDO_UtilSnprintf(l_acRunATCmdBuff, sizeof(l_acRunATCmdBuff), _pcATCmd);
+    l_bRunATCmd = HIDO_TRUE;
+    HIDO_UtilSnprintf(l_acRunATCmdBuff, sizeof(l_acRunATCmdBuff), _pcATCmd);
 
     return HIDO_OK;
 }
diff --git a/keil/include/components/internet/src/NTRIPClient.c b/keil/include/components/internet/src/NTRIPClient.c
index e88fecf..b5747a8 100644
--- a/keil/include/components/internet/src/NTRIPClient.c
+++ b/keil/include/components/internet/src/NTRIPClient.c
@@ -35,13 +35,13 @@
 typedef enum
 {
     CLIENT_STATE_IDLE,
-	CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER,
+    CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER,
     CLIENT_STATE_GET_SOUCE_LIST,
-	CLIENT_STATE_GET_RTCM_DATA,
+    CLIENT_STATE_GET_RTCM_DATA,
     CLIENT_STATE_CONNECT_RTCM_DATA_SERVER,
-	CLIENT_STATE_GET_RTCM_DATA_SUCCESS,
+    CLIENT_STATE_GET_RTCM_DATA_SUCCESS,
 
-	CLIENT_STATE_MAX,
+    CLIENT_STATE_MAX,
 } E_ClientState;
 
 typedef enum
@@ -268,12 +268,12 @@
 static HIDO_INT32 SendGetSourceTableRequest(void)
 {
     l_u32SendBuffLen = HIDO_UtilSnprintf(l_acSendBuff, sizeof(l_acSendBuff),
-    	    "GET / HTTP/1.0\r\n" \
-    	    "User-Agent: NTRIP LefebureNTRIPClient/20131124\r\n" \
-    	    "Accept: */*\r\n" \
-    	    "Connection: close\r\n" \
-    	    "Authorization: Basic %s\r\n" \
-    	    "\r\n", l_acAuthorization);
+                                         "GET / HTTP/1.0\r\n" \
+                                         "User-Agent: NTRIP LefebureNTRIPClient/20131124\r\n" \
+                                         "Accept: */*\r\n" \
+                                         "Connection: close\r\n" \
+                                         "Authorization: Basic %s\r\n" \
+                                         "\r\n", l_acAuthorization);
 
     return Socket_Send(l_i32SockID, (HIDO_UINT8 *)l_acSendBuff, l_u32SendBuffLen);
 }
@@ -290,12 +290,12 @@
 static HIDO_INT32 SendGetRTCMDataRequest(void)
 {
     l_u32SendBuffLen = HIDO_UtilSnprintf(l_acSendBuff, sizeof(l_acSendBuff),
-			"GET /%s HTTP/1.0\r\n" \
-			"User-Agent: NTRIP LefebureNTRIPClient/20131124\r\n" \
-			"Accept: */*\r\n" \
-			"Connection: close\r\n" \
-			"Authorization: Basic %s\r\n" \
-			"\r\n", l_stMountpointAttrib.m_acName, l_acAuthorization);
+                                         "GET /%s HTTP/1.0\r\n" \
+                                         "User-Agent: NTRIP LefebureNTRIPClient/20131124\r\n" \
+                                         "Accept: */*\r\n" \
+                                         "Connection: close\r\n" \
+                                         "Authorization: Basic %s\r\n" \
+                                         "\r\n", l_stMountpointAttrib.m_acName, l_acAuthorization);
 
     return Socket_Send(l_i32SockID, (HIDO_UINT8 *)l_acSendBuff, l_u32SendBuffLen);
 }
@@ -383,7 +383,7 @@
     do
     {
         i32Ret = Socket_Recv(l_i32SockID, (HIDO_UINT8 *) (l_acRecvBuff + l_u32RecvLen),
-                RECV_BUFF_SIZE - l_u32RecvLen, &u32RecvLen);
+                             RECV_BUFF_SIZE - l_u32RecvLen, &u32RecvLen);
         if ((i32Ret != HIDO_OK) || (0 == u32RecvLen))
         {
             break;
@@ -395,7 +395,7 @@
             HandleError(__debug_info__);
             break;
         }
-        
+
         if(CLIENT_STATE_GET_RTCM_DATA_SUCCESS == l_eClientState)
         {
             HandleRecvData((HIDO_UINT8 *)l_acRecvBuff, l_u32RecvLen);
@@ -408,12 +408,12 @@
             if (l_pu8HTTPRespBody != HIDO_NULL)
             {
                 if (HIDO_UtilParseFormat((HIDO_UINT8 *) l_acRecvBuff, u32RecvLen, "%* %d %*\r\n",
-                        &l_u32HTTPRespCode) != 3)
+                                         &l_u32HTTPRespCode) != 3)
                 {
                     HandleError(__debug_info__);
                     break;
                 }
-                
+
                 HandleRecvData(HIDO_NULL, 0);
             }
         }
@@ -429,7 +429,7 @@
                     l_pu8HTTPRespBody += 4;
 
                     if (HIDO_UtilParseFormat((HIDO_UINT8 *) l_acRecvBuff, u32RecvLen, "%* %d %*\r\n",
-                            &l_u32HTTPRespCode) != 3)
+                                             &l_u32HTTPRespCode) != 3)
                     {
                         HandleError(__debug_info__);
                         break;
@@ -443,9 +443,9 @@
                         {
                             pcKeyName++;
                         }
-                        
+
                         if (HIDO_UtilParseFormat((HIDO_UINT8 *) pcKeyName, u32RecvLen - (pcKeyName - l_acRecvBuff),
-                                "%d\r\n", &l_u32HTTPContentLength) != 1)
+                                                 "%d\r\n", &l_u32HTTPContentLength) != 1)
                         {
                             HandleError(__debug_info__);
                             break;
@@ -494,63 +494,63 @@
 {
     switch (_eEvent)
     {
-        case SOCKET_EVENT_CONNECT_FAILED:
+    case SOCKET_EVENT_CONNECT_FAILED:
+    {
+        if((CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER == l_eClientState)
+                || (CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState))
         {
-            if((CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER == l_eClientState)
-            		|| (CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState))
-            {
-                SetClientState(CLIENT_STATE_IDLE);
-                ClientCallback(NTRIP_CODE_CONNECT_FAILED, HIDO_NULL, 0);
-            }
-
-            break;
+            SetClientState(CLIENT_STATE_IDLE);
+            ClientCallback(NTRIP_CODE_CONNECT_FAILED, HIDO_NULL, 0);
         }
-        case SOCKET_EVENT_CONNECTED:
+
+        break;
+    }
+    case SOCKET_EVENT_CONNECTED:
+    {
+        l_u32RecvLen = 0;
+        if(CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER == l_eClientState)
         {
-            l_u32RecvLen = 0;
-            if(CLIENT_STATE_CONNECT_SOUCE_LIST_SERVER == l_eClientState)
-            {
-            	SendGetSourceTableRequest();
-            	l_eRecvState = RECV_STATE_HEAD;
-            	SetClientState(CLIENT_STATE_GET_SOUCE_LIST);
-            	HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), TimeOutCallback, HIDO_NULL);
-            }
-            else if(CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState)
-            {
-            	SendGetRTCMDataRequest();
-            	l_eRecvState = RECV_STATE_HEAD;
-            	SetClientState(CLIENT_STATE_GET_RTCM_DATA);
-            	HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), TimeOutCallback, HIDO_NULL);
-            }
-
-            break;
+            SendGetSourceTableRequest();
+            l_eRecvState = RECV_STATE_HEAD;
+            SetClientState(CLIENT_STATE_GET_SOUCE_LIST);
+            HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), TimeOutCallback, HIDO_NULL);
         }
-        case SOCKET_EVENT_CLOSED:
+        else if(CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState)
         {
-        	if(CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState)
-        	{
-        		break;
-        	}
-
-        	HIDO_TimerCancel(l_u32TimerID);
-
-            if(l_eClientState != CLIENT_STATE_IDLE)
-            {
-                SetClientState(CLIENT_STATE_IDLE);
-                ClientCallback(NTRIP_CODE_DISCONNECT, HIDO_NULL, 0);
-            }
-
-            break;
+            SendGetRTCMDataRequest();
+            l_eRecvState = RECV_STATE_HEAD;
+            SetClientState(CLIENT_STATE_GET_RTCM_DATA);
+            HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), TimeOutCallback, HIDO_NULL);
         }
-        case SOCKET_EVENT_RECV_DATA:
-        {
-        	OnRecvData();
-            break;
-        }
-        default:
+
+        break;
+    }
+    case SOCKET_EVENT_CLOSED:
+    {
+        if(CLIENT_STATE_CONNECT_RTCM_DATA_SERVER == l_eClientState)
         {
             break;
         }
+
+        HIDO_TimerCancel(l_u32TimerID);
+
+        if(l_eClientState != CLIENT_STATE_IDLE)
+        {
+            SetClientState(CLIENT_STATE_IDLE);
+            ClientCallback(NTRIP_CODE_DISCONNECT, HIDO_NULL, 0);
+        }
+
+        break;
+    }
+    case SOCKET_EVENT_RECV_DATA:
+    {
+        OnRecvData();
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -571,7 +571,7 @@
  * Modified Date:    : 2021年5月3日
  *******************************************************************************/
 HIDO_INT32 NTRIPClient_Connect(HIDO_CHAR *_pcHost, HIDO_UINT16 _u16Port, HIDO_CHAR *_pcUsername, HIDO_CHAR *_pcPassword,
-        HIDO_CHAR *_pcSourceName, FN_NTRIPClientCallback _fnCallback, HIDO_VOID *_pArg)
+                               HIDO_CHAR *_pcSourceName, FN_NTRIPClientCallback _fnCallback, HIDO_VOID *_pArg)
 {
     HIDO_UINT32 u32Len = 0;
 
@@ -610,12 +610,12 @@
  *******************************************************************************/
 HIDO_INT32 NTRIPClient_ReportGGA(HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len)
 {
-	if(CLIENT_STATE_GET_RTCM_DATA_SUCCESS == l_eClientState)
-	{
-		Socket_Send(l_i32SockID, _pu8Data, _u32Len);
-	}
+    if(CLIENT_STATE_GET_RTCM_DATA_SUCCESS == l_eClientState)
+    {
+        Socket_Send(l_i32SockID, _pu8Data, _u32Len);
+    }
 
-	return HIDO_OK;
+    return HIDO_OK;
 }
 
 /*******************************************************************************
diff --git a/keil/include/components/internet/src/Socket.c b/keil/include/components/internet/src/Socket.c
index 5fe031e..83bac03 100644
--- a/keil/include/components/internet/src/Socket.c
+++ b/keil/include/components/internet/src/Socket.c
@@ -50,7 +50,7 @@
     HIDO_BOOL m_bUseHeartbeat;
     HIDO_UINT32 m_u32HeartbeatFreq;
     HIDO_CHAR m_acHeartbeatData[128];
-}ST_SocketData;
+} ST_SocketData;
 
 /*******************************************************************************
  *                             Local Variable                                  *
@@ -311,23 +311,23 @@
 
         switch (pstSocketData->m_eState)
         {
-            case SOCKET_STATE_CONNECT:
-            case SOCKET_STATE_CLOSE_BEFORE_CONNECT:
-            case SOCKET_STATE_CONNECTED:
-            {
-                pstSocketData->m_bHasRecvData = HIDO_FALSE;
-                pstSocketData->m_eState = SOCKET_STATE_CLOSED;
+        case SOCKET_STATE_CONNECT:
+        case SOCKET_STATE_CLOSE_BEFORE_CONNECT:
+        case SOCKET_STATE_CONNECTED:
+        {
+            pstSocketData->m_bHasRecvData = HIDO_FALSE;
+            pstSocketData->m_eState = SOCKET_STATE_CLOSED;
 
-                if (pstSocketData->m_fnEventProc != HIDO_NULL)
-                {
-                    pstSocketData->m_fnEventProc(i32SockID, SOCKET_EVENT_CLOSED, pstSocketData->m_pArg);
-                }
-                break;
-            }
-            default:
+            if (pstSocketData->m_fnEventProc != HIDO_NULL)
             {
-                break;
+                pstSocketData->m_fnEventProc(i32SockID, SOCKET_EVENT_CLOSED, pstSocketData->m_pArg);
             }
+            break;
+        }
+        default:
+        {
+            break;
+        }
         }
     }
 
@@ -384,19 +384,19 @@
     /* 重置队列 */
 #if 0
     HIDO_VLQInit(&pstSocketData->m_stSendQueue, pstSocketData->l_au8SendQueueBuf,
-            SOCKET_SEND_QUEUE_BUF_SIZE, SOCKET_SEND_QUEUE_MEMBER_CNT);
+                 SOCKET_SEND_QUEUE_BUF_SIZE, SOCKET_SEND_QUEUE_MEMBER_CNT);
     if(SOCKET_TYPE_TCP == pstSocketData->m_eType)
     {
         HIDO_ArraryQueueInit(&pstSocketData->m_stTCPRecvQueue, pstSocketData->l_au8RecvQueueBuf,
-                SOCKET_RECV_QUEUE_BUF_SIZE, sizeof(HIDO_UINT8));
+                             SOCKET_RECV_QUEUE_BUF_SIZE, sizeof(HIDO_UINT8));
     }
     else
     {
         HIDO_VLQInit(&pstSocketData->m_stRecvQueue, pstSocketData->l_au8RecvQueueBuf,
-                SOCKET_RECV_QUEUE_BUF_SIZE, SOCKET_RECV_QUEUE_MEMBER_CNT);
+                     SOCKET_RECV_QUEUE_BUF_SIZE, SOCKET_RECV_QUEUE_MEMBER_CNT);
     }
 #endif
-		
+
     /* 通知上层 */
     if(pstSocketData->m_fnEventProc != HIDO_NULL)
     {
@@ -426,7 +426,7 @@
 
     if(SOCKET_STATE_CLOSE_BEFORE_CONNECT == pstSocketData->m_eState)
     {
-    	return HIDO_ERR;
+        return HIDO_ERR;
     }
 
     pstSocketData->m_eState = SOCKET_STATE_CLOSED;
@@ -463,15 +463,15 @@
     {
         for(i = 0; i < _u32Len; i++)
         {
-        	if(HIDO_ArraryQueueIn(&(pstSocketData->m_stTCPRecvQueue), &_pu8Data[i]) != HIDO_OK)
-        	{
-        	    return HIDO_ERR;
-        	}
+            if(HIDO_ArraryQueueIn(&(pstSocketData->m_stTCPRecvQueue), &_pu8Data[i]) != HIDO_OK)
+            {
+                return HIDO_ERR;
+            }
         }
     }
     else
     {
-    	HIDO_VLQMemberStruct *pstMember = HIDO_NULL;
+        HIDO_VLQMemberStruct *pstMember = HIDO_NULL;
 
         pstMember = HIDO_VLQGetEnqueueMember(&l_astSocketData[_i32SockID].m_stRecvQueue, _u32Len);
         if (pstMember != HIDO_NULL)
@@ -543,19 +543,19 @@
             pstSocketData->m_eState = SOCKET_STATE_CREATED;
             pstSocketData->m_fnEventProc = _fnEventProc;
             pstSocketData->m_pArg = _pArg;
-            
+
             HIDO_VLQInit(&pstSocketData->m_stSendQueue, pstSocketData->l_au8SendQueueBuf,
-                    SOCKET_SEND_QUEUE_BUF_SIZE, SOCKET_SEND_QUEUE_MEMBER_CNT);
-            
+                         SOCKET_SEND_QUEUE_BUF_SIZE, SOCKET_SEND_QUEUE_MEMBER_CNT);
+
             if(SOCKET_TYPE_TCP == _eSocketType)
             {
-            	HIDO_ArraryQueueInit(&pstSocketData->m_stTCPRecvQueue, pstSocketData->l_au8RecvQueueBuf,
-            			SOCKET_RECV_QUEUE_BUF_SIZE, sizeof(HIDO_UINT8));
+                HIDO_ArraryQueueInit(&pstSocketData->m_stTCPRecvQueue, pstSocketData->l_au8RecvQueueBuf,
+                                     SOCKET_RECV_QUEUE_BUF_SIZE, sizeof(HIDO_UINT8));
             }
             else
             {
                 HIDO_VLQInit(&pstSocketData->m_stRecvQueue, pstSocketData->l_au8RecvQueueBuf,
-                		SOCKET_RECV_QUEUE_BUF_SIZE, SOCKET_RECV_QUEUE_MEMBER_CNT);
+                             SOCKET_RECV_QUEUE_BUF_SIZE, SOCKET_RECV_QUEUE_MEMBER_CNT);
             }
 
             *_pi32SockID = i32SockID;
@@ -725,13 +725,13 @@
     }
 
     if(SOCKET_STATE_CLOSED == pstSocketData->m_eState || SOCKET_STATE_IDLE == pstSocketData->m_eState
-    		|| SOCKET_STATE_CONNECT_FAILED == pstSocketData->m_eState || SOCKET_STATE_CREATED == pstSocketData->m_eState)
+            || SOCKET_STATE_CONNECT_FAILED == pstSocketData->m_eState || SOCKET_STATE_CREATED == pstSocketData->m_eState)
     {
-    	*_pbResult = HIDO_TRUE;
+        *_pbResult = HIDO_TRUE;
     }
     else
     {
-    	*_pbResult = HIDO_FALSE;
+        *_pbResult = HIDO_FALSE;
     }
 
     return HIDO_OK;
@@ -855,22 +855,22 @@
 
     if(SOCKET_TYPE_TCP == pstSocketData->m_eType)
     {
-    	HIDO_UINT32 i = 0;
-    	HIDO_UINT32 u32RecvLen = 0;
+        HIDO_UINT32 i = 0;
+        HIDO_UINT32 u32RecvLen = 0;
 
-    	for(i = 0; i < _u32RecvBuffSize; i++)
-    	{
-    		if(HIDO_ArraryQueueOut(&pstSocketData->m_stTCPRecvQueue, &_pu8RecvBuff[i]) != HIDO_OK)
-    		{
-    			*_pu32RecvLen = u32RecvLen;
-    			return HIDO_OK;
-    		}
+        for(i = 0; i < _u32RecvBuffSize; i++)
+        {
+            if(HIDO_ArraryQueueOut(&pstSocketData->m_stTCPRecvQueue, &_pu8RecvBuff[i]) != HIDO_OK)
+            {
+                *_pu32RecvLen = u32RecvLen;
+                return HIDO_OK;
+            }
 
-    		u32RecvLen++;
-    	}
+            u32RecvLen++;
+        }
 
-    	*_pu32RecvLen = u32RecvLen;
-    	i32Result = HIDO_OK;
+        *_pu32RecvLen = u32RecvLen;
+        i32Result = HIDO_OK;
     }
     else
     {
diff --git a/keil/include/components/internet/src/TONE.c b/keil/include/components/internet/src/TONE.c
index 7f5892b..e766dec 100644
--- a/keil/include/components/internet/src/TONE.c
+++ b/keil/include/components/internet/src/TONE.c
@@ -58,7 +58,7 @@
 {
 //    GPIOD->BSRR = 0x0004;      //打开TONE电源
 ////    delay_ms(800);              //必要延时,延时是为了避免说不出来第一个字,蜂鸣就不用延时了
-//    
+//
 //    if((0 == _u32Len) || (HIDO_NULL == _pu8Data))
 //    {
 //        return HIDO_ERR;
diff --git a/keil/include/components/internet/src/TTS.c b/keil/include/components/internet/src/TTS.c
index e318f2b..f3cd249 100644
--- a/keil/include/components/internet/src/TTS.c
+++ b/keil/include/components/internet/src/TTS.c
@@ -58,7 +58,7 @@
 {
     PCA9555_Set_One_Value_Output(TTS_ENABLE,1);
     delay_ms(800);              //必要延时,延时是为了避免说不出来第一个字
-    
+
     if((0 == _u32Len) || (HIDO_NULL == _pu8Data))
     {
         return HIDO_ERR;
diff --git a/keil/include/drivers/DBG.c b/keil/include/drivers/DBG.c
index 4ae524b..8816310 100644
--- a/keil/include/drivers/DBG.c
+++ b/keil/include/drivers/DBG.c
@@ -173,7 +173,7 @@
     }
 
     Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
-    
+
     return HIDO_OK;
 }
 HIDO_INT32 HIDO_Debug2(const HIDO_CHAR *_pcFmt, ...)
@@ -196,7 +196,7 @@
     }
 
     Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
-    
+
     return HIDO_OK;
 }
 
@@ -226,7 +226,7 @@
 //    u32Len = HIDO_UtilSnprintf(acOutputBuf, sizeof(acOutputBuf), "%04u-%02u-%02u %02u:%02u:%02u.%03u ",
 //            stRTCDateTime.m_u16Year, stRTCDateTime.m_u8Month, stRTCDateTime.m_u8Day, stRTCDateTime.m_u8Hour,
 //            stRTCDateTime.m_u8Min, stRTCDateTime.m_u8Sec, HAL_GetTick() % 1000);
-//    
+//
     Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
 
     va_start(ap, _pcFmt);
@@ -239,7 +239,7 @@
     }
 
     Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
-    
+
     return HIDO_OK;
 }
 
@@ -315,9 +315,9 @@
     /* 输出日志格式 */
     RTC_GetDateTime(&stRTCDateTime);
     u32Len = HIDO_UtilSnprintf(acOutputBuf, sizeof(acOutputBuf), "%04u-%02u-%02u %02u:%02u:%02u.%03u ",
-            stRTCDateTime.m_u16Year, stRTCDateTime.m_u8Month, stRTCDateTime.m_u8Day, stRTCDateTime.m_u8Hour,
-            stRTCDateTime.m_u8Min, stRTCDateTime.m_u8Sec, HAL_GetTick() % 1000);
-    
+                               stRTCDateTime.m_u16Year, stRTCDateTime.m_u8Month, stRTCDateTime.m_u8Day, stRTCDateTime.m_u8Hour,
+                               stRTCDateTime.m_u8Min, stRTCDateTime.m_u8Sec, HAL_GetTick() % 1000);
+
     Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
 #endif
     return Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) _pu8String, _u32StringLen);
@@ -457,6 +457,6 @@
     l_stSerialInput.m_fnPutc = DBG_SerialPutChar;
     l_stSerialInput.m_fnPuts = DBG_SerialPutString;
     HIDO_InputRegister(&l_stSerialInput);
-    
+
     Shell_Init();
 }
diff --git a/keil/include/drivers/PCA9555.c b/keil/include/drivers/PCA9555.c
index 88588f8..027d629 100644
--- a/keil/include/drivers/PCA9555.c
+++ b/keil/include/drivers/PCA9555.c
@@ -12,7 +12,7 @@
     io_pin_mux_set(SCL_PIN, IO_FUNC0);
 
     gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
-		//io_open_drain_set(SDA_PIN, 1);
+    //io_open_drain_set(SDA_PIN, 1);
     io_pull_set(SDA_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL2);//输出高阻态
 
     gpio_pin_set_dir(SCL_PIN , GPIO_DIR_OUT, 1);
@@ -29,8 +29,8 @@
 //		delay_us(10);
 //    SDA_0;//START:when CLK is high,DATA change form high to low
 //    delay_us(10);
-	
-	//		IIC2_SDA_OUT();     //sda线输出
+
+    //		IIC2_SDA_OUT();     //sda线输出
     SDA_1;
 //		delay_us(10);
     SCL_1;
@@ -41,31 +41,31 @@
 }
 void IIC_pca_Ready(void)
 {
-   
-		SCL_1;	
-  	delay_us(10);
-		SDA_1;
-   	delay_us(10);
+
+    SCL_1;
+    delay_us(10);
+    SDA_1;
+    delay_us(10);
 }
 //产生IIC停止信号
 void IIC2_pca_Stop(void)
 {
 
 //    SDA_0;//STOP:when CLK is high DATA change form low to high
-//	
+//
 //    delay_us(10);
 //    SCL_1;
 //		delay_us(10);
 //    SDA_1;//发送I2C总线结束信号
 //    delay_us(10);
-	
-			SCL_0;
-			SDA_0;//sToP:when ClK is high DATA change form low to high
-			delay_us(10);
-			SCL_1;
-			//delay_us(10);
-			SDA_1;//7发送I2C总线结束信号
-			delay_us(10);
+
+    SCL_0;
+    SDA_0;//sToP:when ClK is high DATA change form low to high
+    delay_us(10);
+    SCL_1;
+    //delay_us(10);
+    SDA_1;//7发送I2C总线结束信号
+    delay_us(10);
 }
 //等待应答信号到来
 //返回值:1,接收应答失败
@@ -73,16 +73,16 @@
 uint8_t IIC2_Wait_pca_Ack(void)
 {
     uint8_t ucErrTime=0;
-//  IIC2_SDA_IN();  
- 
-	gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号
-	 SDA_1;
-	delay_us(6);
-	SCL_1;
-  delay_us(6);	
+//  IIC2_SDA_IN();
+
+    gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号
+    SDA_1;
+    delay_us(6);
+    SCL_1;
+    delay_us(6);
 //    SDA_1;
 //    delay_us(6);
-    
+
 
     while(IIC2_READ_SDA)
     {
@@ -90,14 +90,14 @@
         if(ucErrTime>250)
         {
             IIC2_pca_Stop();
-						gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
+            gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
             return 1;
         }
     }
     gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 0);
     SCL_0;//时钟输出0
     return 0;
-		
+
 }
 //产生ACK应答
 void IIC2_pca_send_Ack(void)
@@ -106,8 +106,8 @@
     SDA_0;//读取SDA电平为低则有应答
     delay_us(10);
     SCL_1;
-		delay_us(10);
-		SCL_0;
+    delay_us(10);
+    SCL_0;
 }
 //不产生ACK应答
 void IIC2_pca_send_NAck(void)
@@ -116,8 +116,8 @@
     SDA_1;//读取SDA电平为高则无应答信号
     delay_us(10);
     SCL_1;
-		delay_us(10);
-		SCL_0;
+    delay_us(10);
+    SCL_0;
 }
 //IIC发送一个字节,WRITE
 //返回从机有无应答
@@ -156,7 +156,7 @@
 uint8_t IIC2_Read_pca_Byte(unsigned char ack)
 {
     unsigned char i,receive=0,bit=0;
-		gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,0); //设置为输入读取电平
+    gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,0); //设置为输入读取电平
 //		io_pull_set(SDA_PIN , IO_HIGH_Z, IO_PULL_UP_NONE);
     for(i=0; i<8; i++ )
     {
@@ -164,19 +164,19 @@
         delay_us(6);//修改时间
         SCL_1;
         //receive<<=1;
-        if(IIC2_READ_SDA){
-					bit=1<<i;
-					receive|=bit;
-				}
+        if(IIC2_READ_SDA) {
+            bit=1<<i;
+            receive|=bit;
+        }
         delay_us(5);
     }
-		SCL_0;
-		if(ack==2){
-		gpio_pin_set_dir(SDA_PIN,GPIO_DIR_OUT,0); //设置为输出恢复ACK
-		}else{
-		gpio_pin_set_dir(SDA_PIN,GPIO_DIR_OUT,1); //设置为输出恢复ACK
-		}
-		
+    SCL_0;
+    if(ack==2) {
+        gpio_pin_set_dir(SDA_PIN,GPIO_DIR_OUT,0); //设置为输出恢复ACK
+    } else {
+        gpio_pin_set_dir(SDA_PIN,GPIO_DIR_OUT,1); //设置为输出恢复ACK
+    }
+
 //		io_pull_set(SDA_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL2);//输出高阻态
 //    if (!ack)
 //        IIC2_pca_send_NAck();//发送nACK
@@ -196,17 +196,17 @@
 int temp_ack3,temp_ack4,temp_ack5,temp_ack6;
 void IIC_Write_Pca9555(unsigned char addr,unsigned char reg_addr,unsigned char low_byte,unsigned char high_byte)
 {
-	  IIC2_pca_Start();
-	  IIC2_Send_pca_Byte(addr & 0xfe);
-	  temp_ack3=IIC2_Wait_pca_Ack();
-	  IIC2_Send_pca_Byte(reg_addr);
-	  temp_ack4=IIC2_Wait_pca_Ack();
-	  IIC2_Send_pca_Byte(low_byte);
-	  temp_ack5=IIC2_Wait_pca_Ack();
-	  IIC2_Send_pca_Byte(high_byte);
-	  temp_ack6=IIC2_Wait_pca_Ack();
-	  IIC2_pca_Stop();
-	
+    IIC2_pca_Start();
+    IIC2_Send_pca_Byte(addr & 0xfe);
+    temp_ack3=IIC2_Wait_pca_Ack();
+    IIC2_Send_pca_Byte(reg_addr);
+    temp_ack4=IIC2_Wait_pca_Ack();
+    IIC2_Send_pca_Byte(low_byte);
+    temp_ack5=IIC2_Wait_pca_Ack();
+    IIC2_Send_pca_Byte(high_byte);
+    temp_ack6=IIC2_Wait_pca_Ack();
+    IIC2_pca_Stop();
+
 //  	  IIC2_Start();
 //    IIC2_Send_Byte(addr & 0xfe);	    //发送写命令
 //    temp_ack3=IIC2_Wait_pca_Ack();
@@ -232,45 +232,45 @@
 //    IIC2_Stop();//产生一个停止条件
 */
 int temp_ack,temp_ack1,temp_ack2;
- uint8_t temp=0;
+uint8_t temp=0;
 void IIC_Read_Pca9555(uint8_t addr,uint8_t reg_addr,uint8_t* pBuffer,uint16_t num)
 {
-	  IIC2_pca_Start();
-	  IIC2_Send_pca_Byte(addr & 0xfe);
-	  temp_ack=IIC2_Wait_pca_Ack();
-	  IIC2_Send_pca_Byte(reg_addr);
-	  temp_ack1=IIC2_Wait_pca_Ack();
+    IIC2_pca_Start();
+    IIC2_Send_pca_Byte(addr & 0xfe);
+    temp_ack=IIC2_Wait_pca_Ack();
+    IIC2_Send_pca_Byte(reg_addr);
+    temp_ack1=IIC2_Wait_pca_Ack();
 
-	  IIC2_pca_Start();
-	  IIC2_Send_pca_Byte(addr | 0x01);
-	  temp_ack2=IIC2_Wait_pca_Ack();
-		
+    IIC2_pca_Start();
+    IIC2_Send_pca_Byte(addr | 0x01);
+    temp_ack2=IIC2_Wait_pca_Ack();
+
 //		if(num==2){
 //		pBuffer[0]=IIC2_Read_Byte(1);
 //		pBuffer[1]=IIC2_Read_Byte(0);
 //		}else{
 //		pBuffer[0]=IIC2_Read_Byte(0);
 //		}
-	
-	  while (num)
-	  {
-		    *pBuffer = IIC2_Read_pca_Byte(num);
-			if (num == 1)
-			{
-				IIC2_pca_send_NAck();
-				//IIC2_NAck();
-			}
-			else
-			{ 
-				IIC2_pca_send_Ack();
-				//IIC2_Ack();
-			}	
-		    pBuffer++;
-			num--;
-	  }
-	  IIC2_pca_Stop();
 
-   
+    while (num)
+    {
+        *pBuffer = IIC2_Read_pca_Byte(num);
+        if (num == 1)
+        {
+            IIC2_pca_send_NAck();
+            //IIC2_NAck();
+        }
+        else
+        {
+            IIC2_pca_send_Ack();
+            //IIC2_Ack();
+        }
+        pBuffer++;
+        num--;
+    }
+    IIC2_pca_Stop();
+
+
 //    IIC2_Start();
 //    IIC2_Send_Byte(addr & 0xfe);	     //发送写命令
 //    IIC2_Wait_pca_Ack();
@@ -290,10 +290,10 @@
   data_H  写入芯片的前后位数据
 */
 void PCA9555_write_output_port_data(unsigned char addr,unsigned char data_L,unsigned char data_H)
-{                        
-		IIC_Write_Pca9555(addr,PCA9555_REG_OUT0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址
-		pca9555writedata_output[0]=	data_L;//保存该次设置数据
-		pca9555writedata_output[1]=	data_H;	
+{
+    IIC_Write_Pca9555(addr,PCA9555_REG_OUT0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址
+    pca9555writedata_output[0]=	data_L;//保存该次设置数据
+    pca9555writedata_output[1]=	data_H;
 }
 
 /*写pca9555第二层驱动,可辅助逻辑不破坏最底层驱动,该函数默认配置输出寄存器
@@ -302,10 +302,10 @@
   data_H  写入芯片的前后位数据
 */
 void PCA9555_write_config_port_data(unsigned char addr,unsigned char data_L,unsigned char data_H)
-{                        
-		IIC_Write_Pca9555(addr,PCA9555_REG_CFG0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址 
-		pca9555writedata_config[0]=	data_L;//保存该次设置数据
-		pca9555writedata_config[1]=	data_H;
+{
+    IIC_Write_Pca9555(addr,PCA9555_REG_CFG0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址
+    pca9555writedata_config[0]=	data_L;//保存该次设置数据
+    pca9555writedata_config[1]=	data_H;
 }
 /*写pca9555第二层驱动,可辅助逻辑不破坏最底层驱动,该函数默认配置输入极性翻转寄存器 1翻转 2不变
   addr    芯片地址,0x40表示第一个芯片地址
@@ -313,10 +313,10 @@
   data_H  写入芯片的前后位数据
 */
 void PCA9555_write_polarity_port_data(unsigned char addr,unsigned char data_L,unsigned char data_H)
-{                        
-		IIC_Write_Pca9555(addr,PCA9555_REG_POL0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址 
-		pca9555writedata_polarity[0]=	data_L;//保存该次设置数据
-		pca9555writedata_polarity[1]=	data_H;
+{
+    IIC_Write_Pca9555(addr,PCA9555_REG_POL0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址
+    pca9555writedata_polarity[0]=	data_L;//保存该次设置数据
+    pca9555writedata_polarity[1]=	data_H;
 }
 
 /*读pca9555第二层驱动,可辅助逻辑不破坏最底层驱动
@@ -325,7 +325,7 @@
 */
 void PCA9555_readdata(unsigned char addr,unsigned char* pBuffer)
 {
-		IIC_Read_Pca9555(addr,PCA9555_REG_IN0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出   
+    IIC_Read_Pca9555(addr,PCA9555_REG_IN0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出
 }
 /*读pca9555第二层驱动,可辅助逻辑不破坏最底层驱动
   addr     芯片地址,0x40表示第一个芯片地址
@@ -333,7 +333,7 @@
 */
 void PCA9555_readdata_from_output_register(unsigned char addr,unsigned char* pBuffer)
 {
-		IIC_Read_Pca9555(addr,PCA9555_REG_OUT0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出   
+    IIC_Read_Pca9555(addr,PCA9555_REG_OUT0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出
 }
 /*读pca9555第二层驱动,可辅助逻辑不破坏最底层驱动
   addr     芯片地址,0x40表示第一个芯片地址
@@ -341,7 +341,7 @@
 */
 void PCA9555_readdata_from_polarity_register(unsigned char addr,unsigned char* pBuffer)
 {
-		IIC_Read_Pca9555(addr,PCA9555_REG_POL0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出   
+    IIC_Read_Pca9555(addr,PCA9555_REG_POL0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出
 }
 /*读pca9555第二层驱动,可辅助逻辑不破坏最底层驱动
   addr     芯片地址,0x40表示第一个芯片地址
@@ -349,7 +349,7 @@
 */
 void PCA9555_readdata_from_config_register(unsigned char addr,unsigned char* pBuffer)
 {
-		IIC_Read_Pca9555(addr,PCA9555_REG_CFG0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出   
+    IIC_Read_Pca9555(addr,PCA9555_REG_CFG0,pBuffer,2);//2为读出芯片数据组数,9555为2组,全部读出
 }
 ///*配置芯片的对应管脚输入输出功能
 //  addr    芯片地址,0x40表示第一个芯片地址
@@ -357,8 +357,8 @@
 //  data_H  写入芯片的前后位数据
 //*/
 //void PCA9555_config_gpio(unsigned char addr,unsigned char data_L,unsigned char data_H)
-//{                        
-//		IIC_Write_Pca9555(addr,PCA9555_REG_CFG0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址    
+//{
+//		IIC_Write_Pca9555(addr,PCA9555_REG_CFG0,data_L,data_H);//	PCA9555_REG_OUT0 输出寄存器0地址
 //}
 
 
@@ -368,16 +368,16 @@
 */
 void PCA9555_Set_All_Output(unsigned char value)
 {
-		int i;
-		for(i=0;i<4;i++){
-			if(value==0)
-				pca9555writedata_output[i]=0;
-			else
-				pca9555writedata_output[i]=0xff;
-		}
-		PCA9555_write_output_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_output[0],pca9555writedata_output[1]);//全部输出为1或0 
-		//多芯片
-		//PCA9555_writedata(PCA9555_REG_OUT0,pca9555writedata[2],pca9555writedata[3]);
+    int i;
+    for(i=0; i<4; i++) {
+        if(value==0)
+            pca9555writedata_output[i]=0;
+        else
+            pca9555writedata_output[i]=0xff;
+    }
+    PCA9555_write_output_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_output[0],pca9555writedata_output[1]);//全部输出为1或0
+    //多芯片
+    //PCA9555_writedata(PCA9555_REG_OUT0,pca9555writedata[2],pca9555writedata[3]);
 }
 /*设置第一个芯片某一通道IO高低输出仅限输出
   num    控制的IO序号 1~16
@@ -385,20 +385,20 @@
 */
 void PCA9555_Set_One_Value_Output(unsigned char num,unsigned char value)
 {
-	 if(num >0 && num <17){//第一个芯片IO1-16控制
-		 if(num <9){
-				if(value)pca9555writedata_output[0] |= 0x01<<(num - 1);//赋值位高
-				else pca9555writedata_output[0] &= ~(0x01<<(num - 1));//赋值位低
-			}
-			else{
-				if(value)pca9555writedata_output[1] |= 0x01<<(num - 9);//赋值位高
-				else pca9555writedata_output[1] &= ~(0x01<<(num - 9));//赋值位低
-			}
-			PCA9555_write_output_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_output[0],pca9555writedata_output[1]);
-	 }else{//超出芯片控制
-	 		//error
-	 }
-	 //底下为多芯片逻辑
+    if(num >0 && num <17) { //第一个芯片IO1-16控制
+        if(num <9) {
+            if(value)pca9555writedata_output[0] |= 0x01<<(num - 1);//赋值位高
+            else pca9555writedata_output[0] &= ~(0x01<<(num - 1));//赋值位低
+        }
+        else {
+            if(value)pca9555writedata_output[1] |= 0x01<<(num - 9);//赋值位高
+            else pca9555writedata_output[1] &= ~(0x01<<(num - 9));//赋值位低
+        }
+        PCA9555_write_output_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_output[0],pca9555writedata_output[1]);
+    } else { //超出芯片控制
+        //error
+    }
+    //底下为多芯片逻辑
 //	 else if(num >16 && num <33){//第二个芯片IO1-16控制,使用更多IO以此类推,最多支持0x000~0x111 共8个芯片串联,共128个IO,如果不够可以使用PCA9505,40个IO,最多串联320个IO
 //	 		if(num <25){
 //				if(value)pca9555writedata[2] |= 0x01<<(num - 17);//赋值位高
@@ -407,7 +407,7 @@
 //			else{
 //				if(value)pca9555writedata[3] |= 0x01<<(num - 25);//赋值位高
 //				else pca9555writedata[3] &= ~(0x01<<(num - 25));//赋值位低
-//			}	
+//			}
 //			PCA9555_writedata(PCA9555_REG_OUT1,pca9555writedata[2],pca9555writedata[3]);
 //	 }
 //	 else{//超出芯片控制
@@ -418,42 +418,42 @@
   num    控制的IO序号 1~17
   value  控制的IO输出状态 0:输出 1:输入
 */
-void PCA9555_Set_One_Value_Config(unsigned char num,unsigned char value) 
+void PCA9555_Set_One_Value_Config(unsigned char num,unsigned char value)
 {
-	
-	 if(num >0 && num <17){//第一个芯片IO1-16控制
-		 if(num <9){
-				if(value)pca9555writedata_config[0] |= 0x01<<(num - 1);//赋值位高
-				else pca9555writedata_config[0] &= ~(0x01<<(num - 1));//赋值位低
-			}
-			else{
-				if(value)pca9555writedata_config[1] |= 0x01<<(num - 9);//赋值位高
-				else pca9555writedata_config[1] &= ~(0x01<<(num - 9));//赋值位低
-			}
-			PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_config[0],pca9555writedata_config[1]);
-	 }else{//超出芯片控制
-	 		//error
-	 }
+
+    if(num >0 && num <17) { //第一个芯片IO1-16控制
+        if(num <9) {
+            if(value)pca9555writedata_config[0] |= 0x01<<(num - 1);//赋值位高
+            else pca9555writedata_config[0] &= ~(0x01<<(num - 1));//赋值位低
+        }
+        else {
+            if(value)pca9555writedata_config[1] |= 0x01<<(num - 9);//赋值位高
+            else pca9555writedata_config[1] &= ~(0x01<<(num - 9));//赋值位低
+        }
+        PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_config[0],pca9555writedata_config[1]);
+    } else { //超出芯片控制
+        //error
+    }
 }
 /*设置第一个芯片某一通道默认输入的极性
   num    控制的IO序号 1~17
   value  控制的IO输出状态 0:非使能 1:使能翻转为电平0
 */
-void PCA9555_Set_One_Value_Polarity_input(unsigned char num,unsigned char value) 
+void PCA9555_Set_One_Value_Polarity_input(unsigned char num,unsigned char value)
 {
-	 if(num >0 && num <17){//第一个芯片IO1-16控制
-		 if(num <9){
-				if(value)pca9555writedata_polarity[0] |= 0x01<<(num - 1);//赋值位高
-				else pca9555writedata_polarity[0] &= ~(0x01<<(num - 1));//赋值位低
-			}
-			else{
-				if(value)pca9555writedata_polarity[1] |= 0x01<<(num - 9);//赋值位高
-				else pca9555writedata_polarity[1] &= ~(0x01<<(num - 9));//赋值位低
-			}
-			PCA9555_write_polarity_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_polarity[0],pca9555writedata_polarity[1]);
-	 }else{//超出芯片控制
-	 		//error
-	 }
+    if(num >0 && num <17) { //第一个芯片IO1-16控制
+        if(num <9) {
+            if(value)pca9555writedata_polarity[0] |= 0x01<<(num - 1);//赋值位高
+            else pca9555writedata_polarity[0] &= ~(0x01<<(num - 1));//赋值位低
+        }
+        else {
+            if(value)pca9555writedata_polarity[1] |= 0x01<<(num - 9);//赋值位高
+            else pca9555writedata_polarity[1] &= ~(0x01<<(num - 9));//赋值位低
+        }
+        PCA9555_write_polarity_port_data(PCA9555_DEVICE_ADDR,pca9555writedata_polarity[0],pca9555writedata_polarity[1]);
+    } else { //超出芯片控制
+        //error
+    }
 }
 /*读取5V引脚的输入高低电平
   返回值 高1 低0 电平
@@ -479,13 +479,15 @@
 {
     if(input5v_time)
     {
-        input5v_time=0;    
+        input5v_time=0;
         PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
         uint16_t gpio_state;
         gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
         gpio_state111=gpio_state;
         if(gpio_state==0xFFFF)
-        {return 0;}
+        {
+            return 0;
+        }
         if(INPUT_5V_POSITION&gpio_state)
         {
             Set5VState(1);
@@ -499,9 +501,9 @@
     }
     else {
         Set5VState(0);
-		return 0;
-	}
-    
+        return 0;
+    }
+
 }
 /*读取供电引脚的输入高低电平
   返回值 高1 低0 电平
@@ -509,82 +511,82 @@
 int read_powerkey_input_pca(void)
 {
     PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
-	uint16_t gpio_state;
-	gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
-	if(PWR_ON_POSITION&gpio_state)
-		return 1;
-	else {
-		return 0;
-	}
+    uint16_t gpio_state;
+    gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
+    if(PWR_ON_POSITION&gpio_state)
+        return 1;
+    else {
+        return 0;
+    }
 }
 /*读取SOS引脚的输入高低电平
   返回值 高1 低0 电平
 */
 int read_userkey_input_pca(void)
-{PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
-	uint16_t gpio_state;
-	gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
-	if(SOS_ENBALE_POSITION&gpio_state)
-		return 1;
-	else {
-		return 0;
-	}
+{   PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
+    uint16_t gpio_state;
+    gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
+    if(SOS_ENBALE_POSITION&gpio_state)
+        return 1;
+    else {
+        return 0;
+    }
 }
 void PCA9555_init()
 {
 //IIC_gpio_pca_init();//配置IIC管脚
-	
-	//PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_OUTPUT_CONFIG_MASK,PCA_OUTPUT_CONFIG_MASK);//全配置为输出
-	//PCA9555_Set_One_Value_Polarity_input(PWR_ON,0);
-	//PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_INPUT_CONFIG_MASK,PCA_INPUT_CONFIG_MASK);//全配置为输入
-	//PCA9555_write_polarity_port_data(PCA9555_DEVICE_ADDR,0x00,0x00);//翻转
-	//PCA9555_Set_One_Value_Config(WAKE_UP,1);
-	//PCA9555_Set_All_Output(1);
-	
-	PCA9555_Set_One_Value_Config(GPS_POWER,0);//设置GPS为输出
-	PCA9555_Set_One_Value_Output(GPS_POWER,1);//拉高GPS
-    
-    PCA9555_Set_One_Value_Config(GPS_BACKUP,0);//设置GPS备用电源为输出
-	PCA9555_Set_One_Value_Output(GPS_BACKUP,1);//拉高GPS
-    
-//    while(1)
-	PCA9555_Set_One_Value_Config(ADC_MINIUS,0);//设置ADC输出
-	PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//默认拉高
-	PCA9555_Set_One_Value_Config(MCU_A,0);//设置串口复用芯片切换
-	PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平为uart通讯
-	PCA9555_Set_One_Value_Config(INPUT_5V,1);//设置5V输入检测
-	PCA9555_Set_One_Value_Config(LED_POWER,0);//设置LED灯输出
-	PCA9555_Set_One_Value_Output(LED_POWER,1);//输出高电平开启LED通闪烁
-	PCA9555_Set_One_Value_Config(PWR_ENABLE,0);//设置电池上电是否给单片机供电
-	PCA9555_Set_One_Value_Output(PWR_ENABLE,1);//高电平默认导通单片机供电
-	PCA9555_Set_One_Value_Config(PWR_ON,1);//设置开关机按键输入
 
-	PCA9555_Set_One_Value_Config(SOS_ENBALE,1);//设置SOS按钮输入
-    
+    //PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_OUTPUT_CONFIG_MASK,PCA_OUTPUT_CONFIG_MASK);//全配置为输出
+    //PCA9555_Set_One_Value_Polarity_input(PWR_ON,0);
+    //PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_INPUT_CONFIG_MASK,PCA_INPUT_CONFIG_MASK);//全配置为输入
+    //PCA9555_write_polarity_port_data(PCA9555_DEVICE_ADDR,0x00,0x00);//翻转
+    //PCA9555_Set_One_Value_Config(WAKE_UP,1);
+    //PCA9555_Set_All_Output(1);
+
+    PCA9555_Set_One_Value_Config(GPS_POWER,0);//设置GPS为输出
+    PCA9555_Set_One_Value_Output(GPS_POWER,1);//拉高GPS
+
+    PCA9555_Set_One_Value_Config(GPS_BACKUP,0);//设置GPS备用电源为输出
+    PCA9555_Set_One_Value_Output(GPS_BACKUP,1);//拉高GPS
+
+//    while(1)
+    PCA9555_Set_One_Value_Config(ADC_MINIUS,0);//设置ADC输出
+    PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//默认拉高
+    PCA9555_Set_One_Value_Config(MCU_A,0);//设置串口复用芯片切换
+    PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平为uart通讯
+    PCA9555_Set_One_Value_Config(INPUT_5V,1);//设置5V输入检测
+    PCA9555_Set_One_Value_Config(LED_POWER,0);//设置LED灯输出
+    PCA9555_Set_One_Value_Output(LED_POWER,1);//输出高电平开启LED通闪烁
+    PCA9555_Set_One_Value_Config(PWR_ENABLE,0);//设置电池上电是否给单片机供电
+    PCA9555_Set_One_Value_Output(PWR_ENABLE,1);//高电平默认导通单片机供电
+    PCA9555_Set_One_Value_Config(PWR_ON,1);//设置开关机按键输入
+
+    PCA9555_Set_One_Value_Config(SOS_ENBALE,1);//设置SOS按钮输入
+
 //    PCA9555_Set_One_Value_Config(TTS_ENABLE,0);
     PCA9555_Set_One_Value_Output(TTS_ENABLE,1);
-	PCA9555_Set_One_Value_Config(AIR780E_ENBALE,0);//配置4G供电
-	PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
-	
-	PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入
-	PCA9555_Set_One_Value_Output(MAIN_RI,0);
-    
+    PCA9555_Set_One_Value_Config(AIR780E_ENBALE,0);//配置4G供电
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
+
+    PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入
+    PCA9555_Set_One_Value_Output(MAIN_RI,0);
+
 //	PCA9555_Set_One_Value_Config(SOS_ENBALE,1);//设置SOS按钮输入
-    
+
     PCA9555_Set_One_Value_Config(WAKE_UP,1);
 //    PCA9555_Set_One_Value_Config(TTS_ENABLE,0);//配置tts供电
 //	PCA9555_Set_One_Value_Output(PWR_ON,0);//拉低
-	//PCA9555_readdata_from_output_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
-	//PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
-	//PCA9555_Set_One_Value_Output(PWR_ON,0);
+    //PCA9555_readdata_from_output_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
+    //PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+    //PCA9555_Set_One_Value_Output(PWR_ON,0);
 //	PCA9555_Set_All_Output(0);
-	//PCA9555_readdata_from_polarity_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
-	PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
-	
-	//PCA9555_readdata_from_config_register(PCA9555_DEVICE_ADDR,pca9555writedata_config);
+    //PCA9555_readdata_from_polarity_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
+    PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
+
+    //PCA9555_readdata_from_config_register(PCA9555_DEVICE_ADDR,pca9555writedata_config);
 //	PCA9555_Set_All_Output(0);//全部拉低
-	
-	//测试
+
+    //测试
 //PCA9555_Set_All_Output(1);//全部拉高
 //PCA9555_Set_All_Output(0);//全部拉低
 
@@ -596,53 +598,53 @@
 void move_handler()
 {
     nomove_count=0;
-		if(deep_sleep_falg==0)
-		{
-     deep_sleep_falg=1;	
-//	   sleep_timer_start();    
-     NVIC_SystemReset();
-		}
+    if(deep_sleep_falg==0)
+    {
+        deep_sleep_falg=1;
+//	   sleep_timer_start();
+        NVIC_SystemReset();
+    }
 }
 uint8_t test11,test21,test31,test41,test51;
 void check_input_change(void)
 {
-        uint16_t gpio_state;
-        gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
+    uint16_t gpio_state;
+    gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
 
-			  if(WAKE_UP_POSITION&gpio_state)
-				{
+    if(WAKE_UP_POSITION&gpio_state)
+    {
 
-				 //移动
-					nomove_count=0;
-					if(deep_sleep_falg==0)
-					{
-                        
-                      
-					 deep_sleep_falg=1;	
-//           NVIC_SystemReset();   
-					 sys_reset(0);
-					}
-// 
-				 test51++;
-				}
+        //移动
+        nomove_count=0;
+        if(deep_sleep_falg==0)
+        {
+
+
+            deep_sleep_falg=1;
+//           NVIC_SystemReset();
+            sys_reset(0);
+        }
+//
+        test51++;
+    }
 //	if(!(MAIN_RI_POSITION&gpio_state))
 //	{
 //		 flag_4G_recdata = 1;
 //     delaysleep_count = 3;
 //        test21++;
 //	}
-			if((PWR_ON_POSITION&gpio_state))
-			{
+    if((PWR_ON_POSITION&gpio_state))
+    {
 
         PowerTask();
         test31++;
-			}
-			if(!(SOS_ENBALE_POSITION&gpio_state))
-			{
+    }
+    if(!(SOS_ENBALE_POSITION&gpio_state))
+    {
 
         UserKeyTask();
         test21++;
-			}
+    }
 
 
 }
diff --git a/keil/include/drivers/Shell.c b/keil/include/drivers/Shell.c
index cd3f26b..be2058d 100644
--- a/keil/include/drivers/Shell.c
+++ b/keil/include/drivers/Shell.c
@@ -79,7 +79,7 @@
     { "rtc_set", Shell_RTCSet },
     { "rtc_set_alarm", Shell_RTCAlarm },
     { "rtc_get", Shell_RTCGet },
-    
+
     { "sleep", Shell_Sleep },
     { "info", Shell_Info },
 
@@ -88,13 +88,13 @@
 
     { "debug_on", Shell_DebugOn },
     { "debug_off", Shell_DebugOff },
-    
+
     { "close_wireless", Shell_CloseWireless },
     { "open_wireless", Shell_OpenWireless },
     { "4g_poweron", Shell_PowerOn },
     { "4g_poweroff", Shell_PowerOff },
     { "update", Shell_Update },
-    
+
     { "tcp_create", Shell_TCPCreate },
     { "tcp_connect", Shell_TCPConnect },
     { "tcp_send", Shell_TCPSend },
@@ -107,11 +107,11 @@
     { "server_info", Shell_SetServerInfo },
     { "set_rtcm", Shell_SetRTCMTCPInfo },
     { "set_qxwz", Shell_SetQXWZ },
-     { "set_rtcmmode", Shell_SetRTCMMode },
+    { "set_rtcmmode", Shell_SetRTCMMode },
     { "set_uwbenable", Shell_SetUWBEnable },
     { "set_ntrip", Shell_SetNtrip },
 //    { "set_charge_work_mode", Shell_Charge_work_mode },
-    
+
     { "ota", Shell_OTA },
     { "log_upload", Shell_LogUpload },
 
@@ -119,10 +119,10 @@
     { "log", Shell_Log },
     { "log_clean", Shell_LogClean },
     { "log_print", Shell_LogPrint },
-    
-    
-	{ "set_gpsuwbpara", Set_Gpsuwbpara },	
-		
+
+
+    { "set_gpsuwbpara", Set_Gpsuwbpara },
+
 //		//新增4G指令
 //		{ "set_gps", Shell_Set_gps },
 //    { "set_uwb", Shell_Set_uwb },
@@ -130,8 +130,8 @@
 
 //static HIDO_INT32 Shell_Set_gps(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 //{
-//	
-//	
+//
+//
 
 //}
 
@@ -146,10 +146,10 @@
 //    if(_i32Argc < 2)
 //    {
 //        HIDO_ShellPrintf("ERROR\r\n");
-//        
+//
 //        return HIDO_ERR;
 //    }
-//    
+//
 //     g_com_map[URT_BQ] = atoi(_ppcArgv[1]);
 //     save_com_map_to_flash();
 //    HIDO_ShellPrintf("OK\r\n");
@@ -157,18 +157,18 @@
 static HIDO_INT32 Shell_SetUWBEnable(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[2];
-    
+
     if(_i32Argc < 2)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
+
     /* IP=192.168.1.1 */
     HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
     /* IP变化 */
-   
+
     if( g_com_map[UWBENABLE_INDEX] != HIDO_UtilStrToInt(_ppcArgv[1]))
     {
         g_com_map[UWBENABLE_INDEX] = HIDO_UtilStrToInt(_ppcArgv[1]);
@@ -183,25 +183,25 @@
 static HIDO_INT32 Shell_SetRTCMMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[2];
-    
+
     if(_i32Argc < 2)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
+
     /* IP=192.168.1.1 */
     HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
     /* IP变化 */
-   
+
     if( g_com_map[RTCMMODE_INDEX] != HIDO_UtilStrToInt(_ppcArgv[1]))
     {
         g_com_map[RTCMMODE_INDEX] = HIDO_UtilStrToInt(_ppcArgv[1]);
     }
 
     save_com_map_to_flash();
-    
+
     HIDO_ShellPrintf("OK\r\n");
     g_com_map[CNT_RESTART] = 1;
     return HIDO_OK;
@@ -209,15 +209,15 @@
 static HIDO_INT32 Shell_Test(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     //EC20Driver_Reset();
-    
+
 //    TTS_Play("测试", 4);
- 
+
     return HIDO_OK;
 }
 
 static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
-{ 
-	//Power_Sleep();
+{
+    //Power_Sleep();
     return HIDO_OK;
 }
 
@@ -320,7 +320,7 @@
     HIDO_ShellPrintf("IMEI:            %s\r\n", Module_GetIMEI());
     HIDO_ShellPrintf("CCID:            %s\r\n", Module_GetCCID());
     HIDO_ShellPrintf("IMSI:            %s\r\n", Module_GetIMSI());
-    
+
     return HIDO_OK;
 }
 
@@ -335,7 +335,7 @@
 
 static HIDO_INT32 Shell_OpenWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
-	Module_PowerOn(MODULE_GSM);
+    Module_PowerOn(MODULE_GSM);
     HIDO_ShellPrintf("OK\r\n");
 
     return HIDO_OK;
@@ -343,7 +343,7 @@
 
 static HIDO_INT32 Shell_PowerOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
-	Module_PowerOn(MODULE_MAIN);
+    Module_PowerOn(MODULE_MAIN);
     HIDO_ShellPrintf("OK\r\n");
 
     return HIDO_OK;
@@ -351,7 +351,7 @@
 
 static HIDO_INT32 Shell_PowerOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
-	Module_PowerOff(MODULE_MAIN);
+    Module_PowerOff(MODULE_MAIN);
     HIDO_ShellPrintf("OK\r\n");
 
     return HIDO_OK;
@@ -361,24 +361,24 @@
 {
 //	uint16_t tmp = 0xAAAA,result;
 //    HIDO_ShellPrintf("update OK\r\n");
-//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP,2, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
-//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp)); 
+//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP,2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
+//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
 //    g_com_map[CNT_RESTART] = 1;
 //    return HIDO_OK;
 }
 
 static HIDO_INT32 Shell_ATCmd(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
-	if(_i32Argc != 2)
-	{
+    if(_i32Argc != 2)
+    {
         HIDO_ShellPrintf("ERROR\r\n");
 
         return HIDO_OK;
-	}
+    }
 
-	Module_RunATCmd(_ppcArgv[1]);
+    Module_RunATCmd(_ppcArgv[1]);
 
-	return HIDO_OK;
+    return HIDO_OK;
 }
 
 static  HIDO_VOID Shell_SocketEventProc(HIDO_INT32 _i32SockID, E_SocketEvent _eEvent, HIDO_VOID *_pData)
@@ -389,7 +389,7 @@
 static HIDO_INT32 Shell_TCPCreate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_INT32 i32NewSockID = 0;
-    
+
     if(Socket_Create(&i32NewSockID, SOCKET_TYPE_TCP, Shell_SocketEventProc, HIDO_NULL) == HIDO_OK)
     {
         HIDO_ShellPrintf("SockID:%u\r\n", i32NewSockID);
@@ -399,7 +399,7 @@
     {
         HIDO_ShellPrintf("ERROR\r\n");
     }
-    
+
     return HIDO_OK;
 }
 
@@ -409,11 +409,11 @@
     {
         HIDO_ShellPrintf("Arg ERROR\r\n");
     }
-    
+
     HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
     HIDO_CHAR *pcRemoteAddr = _ppcArgv[2];
     HIDO_UINT16 u16RemotePort = atoi(_ppcArgv[3]);
-    
+
     if(Socket_Connect(i32SockID, pcRemoteAddr, u16RemotePort) == HIDO_OK)
     {
         HIDO_ShellPrintf("OK\r\n");
@@ -422,7 +422,7 @@
     {
         HIDO_ShellPrintf("ERROR\r\n");
     }
-    
+
     return HIDO_OK;
 }
 
@@ -435,7 +435,7 @@
 
     HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
     HIDO_CHAR *pcData = _ppcArgv[2];
-    
+
     if(Socket_Send(i32SockID, (HIDO_UINT8 *)pcData, strlen(pcData)) == HIDO_OK)
     {
         HIDO_ShellPrintf("OK\r\n");
@@ -444,7 +444,7 @@
     {
         HIDO_ShellPrintf("ERROR\r\n");
     }
-    
+
     return HIDO_OK;
 }
 
@@ -454,9 +454,9 @@
     {
         HIDO_ShellPrintf("Arg ERROR\r\n");
     }
-    
+
     HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
-    
+
     if(Socket_Close(i32SockID) == HIDO_OK)
     {
         HIDO_ShellPrintf("OK\r\n");
@@ -465,13 +465,13 @@
     {
         HIDO_ShellPrintf("ERROR\r\n");
     }
-    
+
     return HIDO_OK;
 }
 
 static HIDO_INT32 Shell_DEVID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
-    uint32_t temp2,hex;  
+    uint32_t temp2,hex;
     temp2 =  atoi(_ppcArgv[1]);
 
     hex = (temp2/1000)*4096+((temp2/100)%10)*256+((temp2/10)%10)*16 +((temp2)%10);
@@ -479,21 +479,21 @@
     dev_id = g_com_map[DEV_ID];
     save_com_map_to_flash();
     HIDO_ShellPrintf("OK\r\n");
-    
+
     return HIDO_OK;
 }
 
 static HIDO_INT32 Shell_SetServerInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[4];
-    
+
     if(_i32Argc < 3)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
+
     /* IP=192.168.1.1 */
     HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
     /* IP变化 */
@@ -522,22 +522,22 @@
 static HIDO_INT32 Shell_SetQXWZ(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[4];
-    
+
     if(_i32Argc < 5)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
 
-     snprintf((char *)&g_com_map[QXWZ_APPKEY_INDEX], 32, "%s", _ppcArgv[1]);
+
+    snprintf((char *)&g_com_map[QXWZ_APPKEY_INDEX], 32, "%s", _ppcArgv[1]);
     snprintf((char *)&g_com_map[QXWZ_APPSECRET_INDEX], 32, "%s", _ppcArgv[2]);
     snprintf((char *)&g_com_map[QXWZ_DEVTYPE_INDEX], 32, "%s", _ppcArgv[3]);
     snprintf((char *)&g_com_map[QXWZ_DEVID_INDEX], 32, "%s", _ppcArgv[4]);
 
     save_com_map_to_flash();
-    
+
     HIDO_ShellPrintf("OK\r\n");
     g_com_map[CNT_RESTART] = 1;
     return HIDO_OK;
@@ -545,23 +545,23 @@
 static HIDO_INT32 Shell_SetNtrip(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[4];
-    
+
     if(_i32Argc < 6)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
+
 
     snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "%s", _ppcArgv[1]);
     g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt(_ppcArgv[2]);
     snprintf((char *)&g_com_map[NTRIP_USERNANME_INDEX], 32, "%s", _ppcArgv[3]);
     snprintf((char *)&g_com_map[NTRIP_PASSWORD_INDEX], 32, "%s", _ppcArgv[4]);
     snprintf((char *)&g_com_map[NTRIP_SOURCENAME_INDEX], 32, "%s", _ppcArgv[5]);
-    
+
     save_com_map_to_flash();
-    
+
     HIDO_ShellPrintf("OK\r\n");
     g_com_map[CNT_RESTART] = 1;
     return HIDO_OK;
@@ -569,14 +569,14 @@
 static HIDO_INT32 Shell_SetRTCMTCPInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
 {
     HIDO_UINT8 au8IP[4];
-    
+
     if(_i32Argc < 3)
     {
         HIDO_ShellPrintf("ERROR\r\n");
-        
+
         return HIDO_ERR;
     }
-    
+
     /* IP=192.168.1.1 */
     HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
     /* IP变化 */
@@ -596,7 +596,7 @@
     }
 
     save_com_map_to_flash();
-    
+
     HIDO_ShellPrintf("OK\r\n");
     g_com_map[CNT_RESTART] = 1;
     return HIDO_OK;
@@ -620,7 +620,7 @@
     {
         HIDO_ShellPrintf("OK\r\n");
         DBG_SetMode(DBG_MODE_GPS);
-    }else if(i32Mode == 2)
+    } else if(i32Mode == 2)
     {
         HIDO_ShellPrintf("OK\r\n");
         DBG_SetMode(DBG_MODE_CFG);
@@ -660,14 +660,14 @@
     HIDO_INT32 datarate2 = atoi(_ppcArgv[2]);
     if(datarate1<=20&&datarate1>0&&datarate2<=50&&datarate1>0)
     {
-    g_com_map[GPS_HZ] =  datarate1;
-    g_com_map[COM_INTERVAL] =  1000/datarate2;
-    
-    save_com_map_to_flash();
-    
-    HIDO_ShellPrintf("OK\r\n");
-    g_com_map[CNT_RESTART] = 1;
-    }else{
+        g_com_map[GPS_HZ] =  datarate1;
+        g_com_map[COM_INTERVAL] =  1000/datarate2;
+
+        save_com_map_to_flash();
+
+        HIDO_ShellPrintf("OK\r\n");
+        g_com_map[CNT_RESTART] = 1;
+    } else {
         HIDO_ShellPrintf("Arg ERROR\r\n");
     }
     return HIDO_OK;
@@ -679,15 +679,15 @@
 //        HIDO_ShellPrintf("usage: ota url\r\n");
 //        return HIDO_ERR;
 //    }
-//    
+//
 //    /* 重启进入OTA模式升级 */
 //    uint16_t tmp = 0xCCCC;
-//    
+//
 //    HIDO_Debug("goto ota application\r\n");
-//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, 2, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
-//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp)); 
-//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
-//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8*)_ppcArgv[1], strlen(_ppcArgv[1]) + 1); 
+//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, 2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
+//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
+//    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K);
+//    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8*)_ppcArgv[1], strlen(_ppcArgv[1]) + 1);
 
 //    delay_ms(10);
 ////    Reboot(0);
@@ -784,22 +784,22 @@
     gpsbaudrate= atoi(_ppcArgv[5]);
     g_com_map[GPSBAUDRATE1_INDEX] = gpsbaudrate>>16;
     g_com_map[GPSBAUDRATE2_INDEX] = gpsbaudrate;
-    
-    
+
+
     if((g_com_map[GPSENBLE]||g_com_map[GPSENBLE]==0)
-     &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
-     &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
-     &&(g_com_map[UWBFrequency]==1||g_com_map[UWBFrequency]==3||g_com_map[UWBFrequency]==5||g_com_map[UWBFrequency]==10)
-     &&(gpsbaudrate==9600||gpsbaudrate==115200)
-    )
+            &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
+            &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
+            &&(g_com_map[UWBFrequency]==1||g_com_map[UWBFrequency]==3||g_com_map[UWBFrequency]==5||g_com_map[UWBFrequency]==10)
+            &&(gpsbaudrate==9600||gpsbaudrate==115200)
+      )
     {
-    save_com_map_to_flash();
-    HIDO_ShellPrintf("OK\r\n");
-    g_com_map[CNT_RESTART] = 1;
+        save_com_map_to_flash();
+        HIDO_ShellPrintf("OK\r\n");
+        g_com_map[CNT_RESTART] = 1;
     }
     else
     {
-    HIDO_ShellPrintf("Arg ERROR\r\n");
+        HIDO_ShellPrintf("Arg ERROR\r\n");
     }
     return HIDO_OK;
 }
diff --git a/keil/include/drivers/Usart.c b/keil/include/drivers/Usart.c
index b17d026..c413b99 100644
--- a/keil/include/drivers/Usart.c
+++ b/keil/include/drivers/Usart.c
@@ -63,7 +63,7 @@
         // 使用UART.c方法接入数据,以便使用STM32的逻辑
         Uart_SetChar(UART_ID_DBG_GPS, m_EUART_DMA_RXBuf[m_EUART_DMA_RXPtr]);
         DBG_Poll();
-        
+
         //waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME;
         m_EUART_DMA_RXPtr++;
         if( m_EUART_DMA_RXPtr >= EUART_RX_BUF_SIZE )
diff --git a/keil/include/drivers/WS2812.c b/keil/include/drivers/WS2812.c
index b46aa5d..03d7052 100644
--- a/keil/include/drivers/WS2812.c
+++ b/keil/include/drivers/WS2812.c
@@ -1,27 +1,27 @@
 #include "WS2812.h"
 
-void w28delay(uint32_t nTimer)  
-{  
-    uint32_t i=0;  
-    for(i=0;i<nTimer;i++){  
+void w28delay(uint32_t nTimer)
+{
+    uint32_t i=0;
+    for(i=0; i<nTimer; i++) {
         __NOP();
-		
-    }  
+
+    }
 }
 void RGB_Set_Up()
 {
-		gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT | (1U << WS2812_PIN);
+    gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT | (1U << WS2812_PIN);
     w28delay(40);
-		gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT & (~(1U << WS2812_PIN));
+    gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT & (~(1U << WS2812_PIN));
     w28delay(18);//success 15
 }
 void RGB_Set_Down()
 {
 //    WS_PIN_1;
-	 gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT | (1U << WS2812_PIN);
+    gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT | (1U << WS2812_PIN);
     w28delay(8);
 //    WS_PIN_0;
-	 gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT & (~(1U << WS2812_PIN));
+    gpio_handle[0].base->DATAOUT = gpio_handle[0].base->DATAOUT & (~(1U << WS2812_PIN));
     w28delay(25);
 }
 uint32_t temp_G8;
@@ -29,26 +29,26 @@
 void RGB_Set(uint32_t G8R8B8)
 {
     int i;
-	temp_G8=G8R8B8;
+    temp_G8=G8R8B8;
     uint8_t byte=0;
-    for(i=23;i>=0;i--)
+    for(i=23; i>=0; i--)
     {
         byte = ((G8R8B8>>i)&0x1);
-			byte_temp=byte;
+        byte_temp=byte;
         if(byte == 1)
         {
             RGB_Set_Up();
-        }else{
+        } else {
             RGB_Set_Down();
         }
-        
+
     }
 }
 void RGB_Rst(void)
 {
-		WS_PIN_0;
+    WS_PIN_0;
     w28delay(3600);
-   // WS_PIN_1;
+    // WS_PIN_1;
 }
 uint32_t uwbled,rtkled,led4g,powerled;
 void Set4LEDColor(uint32_t firstled,uint32_t secondled,uint32_t thirdled,uint32_t fourthled)
@@ -56,11 +56,11 @@
     __disable_irq();
     RGB_Rst();
     RGB_Set(firstled);
-   
+
     RGB_Set(secondled);
-   
+
     RGB_Set(thirdled);
-   
+
     RGB_Set(fourthled);
     __enable_irq();
     //RGB_Rst();
diff --git a/keil/include/drivers/dps310.c b/keil/include/drivers/dps310.c
index 900e389..b1422d5 100644
--- a/keil/include/drivers/dps310.c
+++ b/keil/include/drivers/dps310.c
@@ -19,362 +19,362 @@
 static dps310_scaling_coeffs_e
 dps310_get_scaling_coef (dps310_osr_e osr)
 {
-        dps310_scaling_coeffs_e scaling_coeff;
+    dps310_scaling_coeffs_e scaling_coeff;
 
-        switch (osr){
+    switch (osr) {
 
-              case OSR_1:
-                    scaling_coeff = OSR_SF_1;
-                    break;
-              case OSR_2:
-                    scaling_coeff = OSR_SF_2;
-                    break;
-              case OSR_4:
-                    scaling_coeff = OSR_SF_4;
-                    break;
-              case OSR_8:
-                    scaling_coeff = OSR_SF_8;
-                    break;
-              case OSR_16:
-                    scaling_coeff = OSR_SF_16;
-                    break;
-              case OSR_32:
-                    scaling_coeff = OSR_SF_32;
-                    break;
-              case OSR_64:
-                    scaling_coeff = OSR_SF_64;
-                    break;
-              case OSR_128:
-                    scaling_coeff = OSR_SF_128;
-                    break;
-              default:
-                     scaling_coeff = OSR_SF_1;
-                     break;
-        }
-        return scaling_coeff;
+    case OSR_1:
+        scaling_coeff = OSR_SF_1;
+        break;
+    case OSR_2:
+        scaling_coeff = OSR_SF_2;
+        break;
+    case OSR_4:
+        scaling_coeff = OSR_SF_4;
+        break;
+    case OSR_8:
+        scaling_coeff = OSR_SF_8;
+        break;
+    case OSR_16:
+        scaling_coeff = OSR_SF_16;
+        break;
+    case OSR_32:
+        scaling_coeff = OSR_SF_32;
+        break;
+    case OSR_64:
+        scaling_coeff = OSR_SF_64;
+        break;
+    case OSR_128:
+        scaling_coeff = OSR_SF_128;
+        break;
+    default:
+        scaling_coeff = OSR_SF_1;
+        break;
+    }
+    return scaling_coeff;
 }
 
 static int dps310_read_calib_coeffs(struct dps310_state *drv_state)
 
 {
-        s32 ret;
-        u8 read_buffer[IFX_DPS310_COEF_LEN] = {0};
+    s32 ret;
+    u8 read_buffer[IFX_DPS310_COEF_LEN] = {0};
 
-        if (drv_state == NULL)
-            return -EINVAL;
+    if (drv_state == NULL)
+        return -EINVAL;
 
-        ret =  drv_state->io->read_block((u8)IFX_DPS310_COEF_REG_ADDR,
-                                 (u8)IFX_DPS310_COEF_LEN, read_buffer);
+    ret =  drv_state->io->read_block((u8)IFX_DPS310_COEF_REG_ADDR,
+                                     (u8)IFX_DPS310_COEF_LEN, read_buffer);
 
-        if ( ret != IFX_DPS310_COEF_LEN )
-            return ret;
+    if ( ret != IFX_DPS310_COEF_LEN )
+        return ret;
 
-        drv_state->calib_coeffs.C0 = (read_buffer[0] << 4) + ((read_buffer[1] >>4) & 0x0F);
+    drv_state->calib_coeffs.C0 = (read_buffer[0] << 4) + ((read_buffer[1] >>4) & 0x0F);
 
-        if(drv_state->calib_coeffs.C0 > POW_2_11_MINUS_1)
-            drv_state->calib_coeffs.C0 = drv_state->calib_coeffs.C0 - POW_2_12;
+    if(drv_state->calib_coeffs.C0 > POW_2_11_MINUS_1)
+        drv_state->calib_coeffs.C0 = drv_state->calib_coeffs.C0 - POW_2_12;
 
-        drv_state->calib_coeffs.C1 = (read_buffer[2] + ((read_buffer[1] & 0x0F)<<8));
+    drv_state->calib_coeffs.C1 = (read_buffer[2] + ((read_buffer[1] & 0x0F)<<8));
 
-        if(drv_state->calib_coeffs.C1 > POW_2_11_MINUS_1)
-            drv_state->calib_coeffs.C1 = drv_state->calib_coeffs.C1 - POW_2_12;
+    if(drv_state->calib_coeffs.C1 > POW_2_11_MINUS_1)
+        drv_state->calib_coeffs.C1 = drv_state->calib_coeffs.C1 - POW_2_12;
 
-        drv_state->calib_coeffs.C00 = ((read_buffer[4]<<4) + (read_buffer[3]<<12)) + ((read_buffer[5]>>4) & 0x0F);
+    drv_state->calib_coeffs.C00 = ((read_buffer[4]<<4) + (read_buffer[3]<<12)) + ((read_buffer[5]>>4) & 0x0F);
 
-        if(drv_state->calib_coeffs.C00 > POW_2_19_MINUS_1)
-            drv_state->calib_coeffs.C00 = drv_state->calib_coeffs.C00 -POW_2_20;
+    if(drv_state->calib_coeffs.C00 > POW_2_19_MINUS_1)
+        drv_state->calib_coeffs.C00 = drv_state->calib_coeffs.C00 -POW_2_20;
 
-        drv_state->calib_coeffs.C10 = ((read_buffer[5] & 0x0F)<<16) + read_buffer[7] + (read_buffer[6]<<8);
+    drv_state->calib_coeffs.C10 = ((read_buffer[5] & 0x0F)<<16) + read_buffer[7] + (read_buffer[6]<<8);
 
-        if(drv_state->calib_coeffs.C10 > POW_2_19_MINUS_1)
-            drv_state->calib_coeffs.C10 = drv_state->calib_coeffs.C10 - POW_2_20;
+    if(drv_state->calib_coeffs.C10 > POW_2_19_MINUS_1)
+        drv_state->calib_coeffs.C10 = drv_state->calib_coeffs.C10 - POW_2_20;
 
-        drv_state->calib_coeffs.C01 = (read_buffer[9] + (read_buffer[8]<<8));
+    drv_state->calib_coeffs.C01 = (read_buffer[9] + (read_buffer[8]<<8));
 
-        if(drv_state->calib_coeffs.C01 > POW_2_15_MINUS_1)
-            drv_state->calib_coeffs.C01 = drv_state->calib_coeffs.C01 - POW_2_16;
+    if(drv_state->calib_coeffs.C01 > POW_2_15_MINUS_1)
+        drv_state->calib_coeffs.C01 = drv_state->calib_coeffs.C01 - POW_2_16;
 
-        drv_state->calib_coeffs.C11 = (read_buffer[11] + (read_buffer[10]<<8));
+    drv_state->calib_coeffs.C11 = (read_buffer[11] + (read_buffer[10]<<8));
 
-        if(drv_state->calib_coeffs.C11 > POW_2_15_MINUS_1)
-            drv_state->calib_coeffs.C11 = drv_state->calib_coeffs.C11 - POW_2_16;
+    if(drv_state->calib_coeffs.C11 > POW_2_15_MINUS_1)
+        drv_state->calib_coeffs.C11 = drv_state->calib_coeffs.C11 - POW_2_16;
 
-        drv_state->calib_coeffs.C20 = (read_buffer[13] + (read_buffer[12]<<8));
+    drv_state->calib_coeffs.C20 = (read_buffer[13] + (read_buffer[12]<<8));
 
-        if(drv_state->calib_coeffs.C20 > POW_2_15_MINUS_1)
-            drv_state->calib_coeffs.C20 = drv_state->calib_coeffs.C20 - POW_2_16;
+    if(drv_state->calib_coeffs.C20 > POW_2_15_MINUS_1)
+        drv_state->calib_coeffs.C20 = drv_state->calib_coeffs.C20 - POW_2_16;
 
-        drv_state->calib_coeffs.C21 = (read_buffer[15] + (read_buffer[14]<<8));
+    drv_state->calib_coeffs.C21 = (read_buffer[15] + (read_buffer[14]<<8));
 
-        if(drv_state->calib_coeffs.C21 > POW_2_15_MINUS_1)
-            drv_state->calib_coeffs.C21 = drv_state->calib_coeffs.C21 - POW_2_16;
+    if(drv_state->calib_coeffs.C21 > POW_2_15_MINUS_1)
+        drv_state->calib_coeffs.C21 = drv_state->calib_coeffs.C21 - POW_2_16;
 
-        drv_state->calib_coeffs.C30 = (read_buffer[17] + (read_buffer[16]<<8));
+    drv_state->calib_coeffs.C30 = (read_buffer[17] + (read_buffer[16]<<8));
 
-        if(drv_state->calib_coeffs.C30 > POW_2_15_MINUS_1)
-            drv_state->calib_coeffs.C30 = drv_state->calib_coeffs.C30 - POW_2_16;
+    if(drv_state->calib_coeffs.C30 > POW_2_15_MINUS_1)
+        drv_state->calib_coeffs.C30 = drv_state->calib_coeffs.C30 - POW_2_16;
 
-        /* lets see which temperature diode is used for calibration and update state accordingly*/
-        ret = drv_state->io->read_byte(IFX_DPS310_TMP_COEF_SRCE_REG_ADDR);
+    /* lets see which temperature diode is used for calibration and update state accordingly*/
+    ret = drv_state->io->read_byte(IFX_DPS310_TMP_COEF_SRCE_REG_ADDR);
 
-        if (ret < 0){
-                return -EIO;
-        }
-        if ((ret >> IFX_DPS310_TMP_COEF_SRCE_REG_POS_MASK) & 1 ){
-				drv_state->tmp_ext = TMP_EXT_MEMS;
-		}
-		else{
-				drv_state->tmp_ext = TMP_EXT_ASIC;
-		}
-        return 0;
+    if (ret < 0) {
+        return -EIO;
+    }
+    if ((ret >> IFX_DPS310_TMP_COEF_SRCE_REG_POS_MASK) & 1 ) {
+        drv_state->tmp_ext = TMP_EXT_MEMS;
+    }
+    else {
+        drv_state->tmp_ext = TMP_EXT_ASIC;
+    }
+    return 0;
 }
 
 
 int dps310_resume(struct dps310_state *drv_state)
 {
-        s32 ret;
-        if (drv_state == NULL)
-            return -EINVAL;
+    s32 ret;
+    if (drv_state == NULL)
+        return -EINVAL;
 
-        ret = drv_state->io->write_byte(IFX_DPS310_MEAS_CFG_REG_ADDR,
-                                        (u8)DPS310_MODE_BACKGROUND_ALL);
-        if (ret < 0)
-                return -EIO;
+    ret = drv_state->io->write_byte(IFX_DPS310_MEAS_CFG_REG_ADDR,
+                                    (u8)DPS310_MODE_BACKGROUND_ALL);
+    if (ret < 0)
+        return -EIO;
 
-        drv_state->dev_mode = DPS310_MODE_BACKGROUND_ALL;
+    drv_state->dev_mode = DPS310_MODE_BACKGROUND_ALL;
 
-        return 0;
+    return 0;
 
 }
 
 
 int dps310_standby(struct dps310_state *drv_state)
 {
-        s32 ret;
-        if (drv_state == NULL)
-          return -EINVAL;
+    s32 ret;
+    if (drv_state == NULL)
+        return -EINVAL;
 
-        ret = drv_state->io->write_byte(IFX_DPS310_MEAS_CFG_REG_ADDR,
-                                       (u8)DPS310_MODE_IDLE);
-        if (ret < 0)
-                return -EIO;
+    ret = drv_state->io->write_byte(IFX_DPS310_MEAS_CFG_REG_ADDR,
+                                    (u8)DPS310_MODE_IDLE);
+    if (ret < 0)
+        return -EIO;
 
-        drv_state->dev_mode = DPS310_MODE_IDLE;
+    drv_state->dev_mode = DPS310_MODE_IDLE;
 
-        return 0;
+    return 0;
 }
 
 int dps310_config(struct dps310_state *drv_state,
-                            dps310_osr_e osr_temp,
-                            dps310_tmp_rate_e mr_temp,
-                            dps310_osr_e osr_press,
-                            dps310_pm_rate_e mr_press,
-                            dps310_temperature_src_e temp_src)
+                  dps310_osr_e osr_temp,
+                  dps310_tmp_rate_e mr_temp,
+                  dps310_osr_e osr_press,
+                  dps310_pm_rate_e mr_press,
+                  dps310_temperature_src_e temp_src)
 {
 
-        s32 ret;
-        u8  config;
+    s32 ret;
+    u8  config;
 
-        if (drv_state == NULL)
-			return -EINVAL;
+    if (drv_state == NULL)
+        return -EINVAL;
 
-       /* configure temperature measurements first*/
-       /*Prepare a configuration word for TMP_CFG register*/
-        config = (u8) temp_src;
+    /* configure temperature measurements first*/
+    /*Prepare a configuration word for TMP_CFG register*/
+    config = (u8) temp_src;
 
-        /*First Set the TMP_RATE[2:0] -> 6:4 */
-        config |= ((u8)mr_temp);
+    /*First Set the TMP_RATE[2:0] -> 6:4 */
+    config |= ((u8)mr_temp);
 
-       /*Set the TMP_PRC[3:0] -> 2:0 */
-        config |= ((u8)osr_temp);
+    /*Set the TMP_PRC[3:0] -> 2:0 */
+    config |= ((u8)osr_temp);
 
-        ret = drv_state->io->write_byte(IFX_DPS310_TMP_CFG_REG_ADDR,
-                                  config);
-        if (ret < 0)
-            return -EIO;
+    ret = drv_state->io->write_byte(IFX_DPS310_TMP_CFG_REG_ADDR,
+                                    config);
+    if (ret < 0)
+        return -EIO;
 
-        /*Prepare a configuration word for PRS_CFG register*/
-        /*First Set the PM_RATE[2:0] -> 6:4 */
-        config = (u8) ( 0x00 ) | ((u8)mr_press);
+    /*Prepare a configuration word for PRS_CFG register*/
+    /*First Set the PM_RATE[2:0] -> 6:4 */
+    config = (u8) ( 0x00 ) | ((u8)mr_press);
 
-        /*Set the PM_PRC[3:0] -> 3:0 */
-        config |= ((u8)osr_press);
+    /*Set the PM_PRC[3:0] -> 3:0 */
+    config |= ((u8)osr_press);
 
-        ret = drv_state->io->write_byte(IFX_DPS310_PRS_CFG_REG_ADDR,
-                                  config);
-        if (ret < 0)
-            return -EIO;
+    ret = drv_state->io->write_byte(IFX_DPS310_PRS_CFG_REG_ADDR,
+                                    config);
+    if (ret < 0)
+        return -EIO;
 
-        /* always take configuration word from state*/
-        config = drv_state->cfg_word;
+    /* always take configuration word from state*/
+    config = drv_state->cfg_word;
 
-        /*If oversampling rate for temperature is greater than 8 times, then set TMP_SHIFT bit in CFG_REG */
-        if ((u8)osr_temp > (u8) OSR_8){
-                config |= (u8) IFX_DPS310_CFG_TMP_SHIFT_EN_SET_VAL;
-        }
+    /*If oversampling rate for temperature is greater than 8 times, then set TMP_SHIFT bit in CFG_REG */
+    if ((u8)osr_temp > (u8) OSR_8) {
+        config |= (u8) IFX_DPS310_CFG_TMP_SHIFT_EN_SET_VAL;
+    }
 
-        /*If oversampling rate for pressure is greater than 8 times, then set P_SHIFT bit in CFG_REG */
-        if ((u8)osr_press > (u8) OSR_8){
-                config |= (u8) IFX_DPS310_CFG_PRS_SHIFT_EN_SET_VAL;
-        }
+    /*If oversampling rate for pressure is greater than 8 times, then set P_SHIFT bit in CFG_REG */
+    if ((u8)osr_press > (u8) OSR_8) {
+        config |= (u8) IFX_DPS310_CFG_PRS_SHIFT_EN_SET_VAL;
+    }
 
-        /* write CFG_REG */
-        ret =  drv_state->io->write_byte(IFX_DPS310_CFG_REG_ADDR,
-                                  config);
-        if (ret < 0)
-            return -EIO;
+    /* write CFG_REG */
+    ret =  drv_state->io->write_byte(IFX_DPS310_CFG_REG_ADDR,
+                                     config);
+    if (ret < 0)
+        return -EIO;
 
-       /*Update state accordingly with proper scaling factors based on oversampling rates*/
-        drv_state->tmp_osr_scale_coeff = dps310_get_scaling_coef(osr_temp);
+    /*Update state accordingly with proper scaling factors based on oversampling rates*/
+    drv_state->tmp_osr_scale_coeff = dps310_get_scaling_coef(osr_temp);
 
-        drv_state->prs_osr_scale_coeff = dps310_get_scaling_coef(osr_press);
+    drv_state->prs_osr_scale_coeff = dps310_get_scaling_coef(osr_press);
 
-        drv_state->press_mr = mr_press;
+    drv_state->press_mr = mr_press;
 
-        drv_state->temp_mr  = mr_temp;
+    drv_state->temp_mr  = mr_temp;
 
-        drv_state->temp_osr = osr_temp;
+    drv_state->temp_osr = osr_temp;
 
-        drv_state->press_osr = osr_press;
+    drv_state->press_osr = osr_press;
 
-        drv_state->tmp_ext  = temp_src;
+    drv_state->tmp_ext  = temp_src;
 
-        return 0;
+    return 0;
 
 }
 
 
 int dps310_get_processed_data (struct dps310_state *drv_state,
-                                      f64 *pressure,
-                                      f64 *temperature)
+                               f64 *pressure,
+                               f64 *temperature)
 {
-        s32    ret;
-        u8     read_buffer[IFX_DPS310_PSR_TMP_READ_LEN] = {0};
-        f64    press_raw;
-        f64    temp_raw;
+    s32    ret;
+    u8     read_buffer[IFX_DPS310_PSR_TMP_READ_LEN] = {0};
+    f64    press_raw;
+    f64    temp_raw;
 
-        f64 temp_scaled;
-        f64 temp_final;
-        f64 press_scaled;
-        f64 press_final;
+    f64 temp_scaled;
+    f64 temp_final;
+    f64 press_scaled;
+    f64 press_final;
 
-        if (drv_state == NULL)
-            return -EINVAL;
+    if (drv_state == NULL)
+        return -EINVAL;
 
-        ret = test_read_block(IFX_DPS310_PSR_TMP_READ_REG_ADDR,
-                              IFX_DPS310_PSR_TMP_READ_LEN,
-                              read_buffer);
+    ret = test_read_block(IFX_DPS310_PSR_TMP_READ_REG_ADDR,
+                          IFX_DPS310_PSR_TMP_READ_LEN,
+                          read_buffer);
 
-        if (ret < IFX_DPS310_PSR_TMP_READ_LEN)
-            return -EINVAL;
+    if (ret < IFX_DPS310_PSR_TMP_READ_LEN)
+        return -EINVAL;
 
-        press_raw = (read_buffer[2]) + (read_buffer[1]<<8) + (read_buffer[0] <<16);
-        temp_raw  = (read_buffer[5]) + (read_buffer[4]<<8) + (read_buffer[3] <<16);
+    press_raw = (read_buffer[2]) + (read_buffer[1]<<8) + (read_buffer[0] <<16);
+    temp_raw  = (read_buffer[5]) + (read_buffer[4]<<8) + (read_buffer[3] <<16);
 
-        if(temp_raw > POW_2_23_MINUS_1){
-            temp_raw = temp_raw - POW_2_24;
-        }
+    if(temp_raw > POW_2_23_MINUS_1) {
+        temp_raw = temp_raw - POW_2_24;
+    }
 
-        if(press_raw > POW_2_23_MINUS_1){
-            press_raw = press_raw - POW_2_24;
-        }
+    if(press_raw > POW_2_23_MINUS_1) {
+        press_raw = press_raw - POW_2_24;
+    }
 
-        temp_scaled = (double)temp_raw / (double) (drv_state->tmp_osr_scale_coeff);
+    temp_scaled = (double)temp_raw / (double) (drv_state->tmp_osr_scale_coeff);
 
-        temp_final =  (drv_state->calib_coeffs.C0 /2.0f) + drv_state->calib_coeffs.C1 * temp_scaled ;
+    temp_final =  (drv_state->calib_coeffs.C0 /2.0f) + drv_state->calib_coeffs.C1 * temp_scaled ;
 
-        press_scaled = (double) press_raw / drv_state->prs_osr_scale_coeff;
+    press_scaled = (double) press_raw / drv_state->prs_osr_scale_coeff;
 
-        press_final = drv_state->calib_coeffs.C00 +
-                      press_scaled *  (  drv_state->calib_coeffs.C10 + press_scaled *
-                      ( drv_state->calib_coeffs.C20 + press_scaled * drv_state->calib_coeffs.C30 )  ) +
-                      temp_scaled * drv_state->calib_coeffs.C01 +
-                      temp_scaled * press_scaled * ( drv_state->calib_coeffs.C11 +
-                                                      press_scaled * drv_state->calib_coeffs.C21 );
+    press_final = drv_state->calib_coeffs.C00 +
+                  press_scaled *  (  drv_state->calib_coeffs.C10 + press_scaled *
+                                     ( drv_state->calib_coeffs.C20 + press_scaled * drv_state->calib_coeffs.C30 )  ) +
+                  temp_scaled * drv_state->calib_coeffs.C01 +
+                  temp_scaled * press_scaled * ( drv_state->calib_coeffs.C11 +
+                          press_scaled * drv_state->calib_coeffs.C21 );
 
-        press_final = press_final * 0.01f;	//to convert it into mBar
+    press_final = press_final * 0.01f;	//to convert it into mBar
 
-        *temperature = temp_final;
-        *pressure    = press_final;  //press_final;
+    *temperature = temp_final;
+    *pressure    = press_final;  //press_final;
 
-        return 0;
+    return 0;
 }
 
 int dps310_init(struct dps310_state *drv_state, dps310_bus_connection *io)
 {
-        s32 ret;
+    s32 ret;
 
-        if (!drv_state){
-            return -EINVAL;
-        }
+    if (!drv_state) {
+        return -EINVAL;
+    }
 
-        if (!io){
-            return -EINVAL;
-        }
+    if (!io) {
+        return -EINVAL;
+    }
 
-        drv_state->cfg_word = 0;
-        drv_state->enable = 0;
-       
-        /*first verify chip by reading product and rev id*/
-        ret = io->read_byte(IFX_DPS310_PROD_REV_ID_REG_ADDR);
+    drv_state->cfg_word = 0;
+    drv_state->enable = 0;
 
-        if (ret < 0){
-            ret = -EIO;
-				goto err_handler_iio;
-        }
+    /*first verify chip by reading product and rev id*/
+    ret = io->read_byte(IFX_DPS310_PROD_REV_ID_REG_ADDR);
 
-        if (ret != IFX_DSPS310_PROD_REV_ID_VAL){
-            ret = -EINVAL;
-			goto err_handler_iio;
-        }
+    if (ret < 0) {
+        ret = -EIO;
+        goto err_handler_iio;
+    }
 
-        /* attach bus connection instance to state*/
-        drv_state->io = io;
+    if (ret != IFX_DSPS310_PROD_REV_ID_VAL) {
+        ret = -EINVAL;
+        goto err_handler_iio;
+    }
 
-        /* from here wait for about 40ms till calibration coefficients become available*/
-        if (drv_state->io->delayms != NULL)
-            drv_state->io->delayms(40);
+    /* attach bus connection instance to state*/
+    drv_state->io = io;
 
-        /* read now the calibration coeffs, temperature coef source and store in driver state*/
-        ret = dps310_read_calib_coeffs(drv_state);
+    /* from here wait for about 40ms till calibration coefficients become available*/
+    if (drv_state->io->delayms != NULL)
+        drv_state->io->delayms(40);
 
-        if (ret < 0){
-				goto err_handler_iio;
-        }
+    /* read now the calibration coeffs, temperature coef source and store in driver state*/
+    ret = dps310_read_calib_coeffs(drv_state);
 
-        /* Now apply ADC Temperature gain settings*/
-        /* First write valid signature on 0x0e and 0x0f
-         * to unlock address 0x62 */
-        drv_state->io->write_byte((u8)0x0e,(u8)0xa5);
-        drv_state->io->write_byte((u8)0x0f,(u8)0x96);
-        /*Then update high gain value for Temperature*/
-        drv_state->io->write_byte((u8)0x62,(u8)0x02);
+    if (ret < 0) {
+        goto err_handler_iio;
+    }
 
-        /*Finally lock back the location 0x62*/
-        drv_state->io->write_byte((u8)0x0e,(u8)0x00);
-        drv_state->io->write_byte((u8)0x0f,(u8)0x00);
+    /* Now apply ADC Temperature gain settings*/
+    /* First write valid signature on 0x0e and 0x0f
+     * to unlock address 0x62 */
+    drv_state->io->write_byte((u8)0x0e,(u8)0xa5);
+    drv_state->io->write_byte((u8)0x0f,(u8)0x96);
+    /*Then update high gain value for Temperature*/
+    drv_state->io->write_byte((u8)0x62,(u8)0x02);
+
+    /*Finally lock back the location 0x62*/
+    drv_state->io->write_byte((u8)0x0e,(u8)0x00);
+    drv_state->io->write_byte((u8)0x0f,(u8)0x00);
 
 
-        /* configure sensor for default ODR settings*/
-        ret = dps310_config(drv_state,
-                            IFX_DPS310_TEMPERATURE_OSR,
-                            IFX_DPS310_TEMPERATURE_MR,
-                            IFX_DPS310_PRESSURE_OSR,
-                            IFX_DPS310_PRESSURE_MR,
-                            drv_state->tmp_ext);
-        if (ret < 0){
-            goto err_handler_iio;
-        }
+    /* configure sensor for default ODR settings*/
+    ret = dps310_config(drv_state,
+                        IFX_DPS310_TEMPERATURE_OSR,
+                        IFX_DPS310_TEMPERATURE_MR,
+                        IFX_DPS310_PRESSURE_OSR,
+                        IFX_DPS310_PRESSURE_MR,
+                        drv_state->tmp_ext);
+    if (ret < 0) {
+        goto err_handler_iio;
+    }
 
-        /* activate sensor*/
-        ret = dps310_resume(drv_state);
-        if (ret < 0){
-            goto err_handler_iio;
-        }
+    /* activate sensor*/
+    ret = dps310_resume(drv_state);
+    if (ret < 0) {
+        goto err_handler_iio;
+    }
 
-        return 0;
+    return 0;
 
 err_handler_iio:
-		return ret;
+    return ret;
 
 }
diff --git a/keil/include/drivers/dps368_test.c b/keil/include/drivers/dps368_test.c
index 0da93c7..27f0286 100644
--- a/keil/include/drivers/dps368_test.c
+++ b/keil/include/drivers/dps368_test.c
@@ -12,7 +12,7 @@
 #include "lis3dh_driver.h"
 /*bus communication protocol stubs
 * Please wrap around platform specific implementation
-* for low level bus handling (I2C or SPI), that matches 
+* for low level bus handling (I2C or SPI), that matches
 * prototypes provided by dps310_bus_connection structure
 * in dps310.h
 */
@@ -20,50 +20,50 @@
 /* Should return -1 in case of failure otherwise valid contents*/
 s16 test_read_byte(u8 ReadAddr)
 {
-	
-  uint8_t temp=0;		  	    																 
-	IIC2_Start();  
-	IIC2_Send_Byte(0xee);	     //发送写命令
-	IIC2_Wait_Ack();       
-	IIC2_Send_Byte(ReadAddr);   //发送读地址
-	IIC2_Wait_Ack();	    
-	IIC2_Start();  	 	   
-	IIC2_Send_Byte(0xef);       //发送读命令,进入接收模式		   
-	IIC2_Wait_Ack();	 
-	temp=IIC2_Read_Byte(0);		   
-	IIC2_Stop();								//产生一个停止条件	     
-	return temp;
+
+    uint8_t temp=0;
+    IIC2_Start();
+    IIC2_Send_Byte(0xee);	     //发送写命令
+    IIC2_Wait_Ack();
+    IIC2_Send_Byte(ReadAddr);   //发送读地址
+    IIC2_Wait_Ack();
+    IIC2_Start();
+    IIC2_Send_Byte(0xef);       //发送读命令,进入接收模式
+    IIC2_Wait_Ack();
+    temp=IIC2_Read_Byte(0);
+    IIC2_Stop();								//产生一个停止条件
+    return temp;
 }
 
-/* Should return -1 or negative value in case of failure otherwise length of 
+/* Should return -1 or negative value in case of failure otherwise length of
 * read contents in read_buffer
 * and shall place read contents in read_buffer
 */
 s16 test_read_block(u8 ReadAddr, u8 Len, u8 *read_buffer)
 {
-   	uint8_t t;
-	uint32_t temp=0;
-	for(t=0;t<Len;t++)
-	{
-		*read_buffer=test_read_byte(ReadAddr+t); 	 	
-		 read_buffer++;		
-	}
-	//return temp;	
+    uint8_t t;
+    uint32_t temp=0;
+    for(t=0; t<Len; t++)
+    {
+        *read_buffer=test_read_byte(ReadAddr+t);
+        read_buffer++;
+    }
+    //return temp;
     return Len;
 }
 
 /* Should return -1 in case of failure otherwise non negative number*/
 s16 test_write_byte(u8 WriteAddr, u8 DataToWrite)
 {
-    IIC2_Start();  
-	IIC2_Send_Byte(0xee);	    //发送写命令
-	IIC2_Wait_Ack();
-	IIC2_Send_Byte(WriteAddr);					//发送地址
-	IIC2_Wait_Ack();	   	 										  		   
-	IIC2_Send_Byte(DataToWrite);     //发送字节							   
-	IIC2_Wait_Ack();  		    	   
-	IIC2_Stop();//产生一个停止条件 
-	delay_us(10);	
+    IIC2_Start();
+    IIC2_Send_Byte(0xee);	    //发送写命令
+    IIC2_Wait_Ack();
+    IIC2_Send_Byte(WriteAddr);					//发送地址
+    IIC2_Wait_Ack();
+    IIC2_Send_Byte(DataToWrite);     //发送字节
+    IIC2_Wait_Ack();
+    IIC2_Stop();//产生一个停止条件
+    delay_us(10);
 }
 
 /* Shall implement delay in milliseconds*/
@@ -72,50 +72,50 @@
 //     printf("Waiting for %dms\n",delay);
 }
 struct dps310_state drv_state;
-f64 pressure,temperature; 
+f64 pressure,temperature;
 int BarInit(void)
 {
 
     /*Instantiate driver state*/
-   
+
 
     /*Instantiate bus connection callback holder*/
     dps310_bus_connection cnn;
-   
-   /* Assign/register platform specific bus handlers*/
+
+    /* Assign/register platform specific bus handlers*/
     cnn.read_byte=&test_read_byte;
     cnn.read_block=&test_read_block;
     cnn.write_byte=&test_write_byte;
 
-   /*If platform doesn't support delay or sleep
-    *please assign NULL to this callback i.e cnn.delayms = NULL
-    */
+    /*If platform doesn't support delay or sleep
+     *please assign NULL to this callback i.e cnn.delayms = NULL
+     */
     cnn.delayms = &test_wait_ms;
 
     /*First call _init
-     * this function verifies chip with appropriate id and 
-     * reads and stores calibration data, configures the sensor 
+     * this function verifies chip with appropriate id and
+     * reads and stores calibration data, configures the sensor
      * to meet default configuration set in dps310.h.
      * This also puts the sensor in background mode
-     * making it measure both pressure and temperature continuously    
+     * making it measure both pressure and temperature continuously
      */
     int ret = dps310_init(&drv_state,&cnn);
 
- //   printf("init ret val = %d\n",ret);
+//   printf("init ret val = %d\n",ret);
 
     /* once sensor is put into background mode
      * pressure and temperature values are available and can be read
      * Here get_processed_data synchrounuously reads 6 bytes of raw data
      * and returns computed double precision pressure and temperature value
-     */ 
+     */
     ret = dps310_get_processed_data(&drv_state,&pressure,&temperature);
     GetPressAndHeight();
-    
+
 //    printf("get_processed_data ret val = %d, pressure = %lf, temp = %lf\n",ret,pressure,temperature);
 
-   /*To change configuration we first need to put sensor in
-    *idle mode by calling _standby
-    */
+    /*To change configuration we first need to put sensor in
+     *idle mode by calling _standby
+     */
 //    ret = dps310_standby(&drv_state);
 
 //    printf("standby ret val = %d\n",ret);
@@ -132,27 +132,27 @@
 //                       drv_state.tmp_ext);
 
 //    printf("config ret val = %d\n",ret);
-//   
+//
 //    /*Resume the sensor in background mode again*/
 //    ret = dps310_resume(&drv_state);
 
 //    printf("resume ret val = %d\n",ret);
-   
+
     return 0;
 }
 float Height;
 float GetPressAndHeight(void)
-{  u8 ret;    
-    
-	
+{   u8 ret;
+
+
     /*Instantiate driver state*/
-  
-	ret = dps310_get_processed_data(&drv_state,&pressure,&temperature);
-   
+
+    ret = dps310_get_processed_data(&drv_state,&pressure,&temperature);
+
     Height = 44330 * (1.0 - pow((pressure / 1013.25), (1 / 5.255)));
     if(pressure==0)
-      Height = 0;
-	return Height;
-	//height=PressToHeight(pressure,temperature);
-	// printf("get_processed_data ret val = %d, pressure = %lf, temp = %lf\n",ret,pressure,temperature);
-   }
\ No newline at end of file
+        Height = 0;
+    return Height;
+    //height=PressToHeight(pressure,temperature);
+    // printf("get_processed_data ret val = %d, pressure = %lf, temp = %lf\n",ret,pressure,temperature);
+}
\ No newline at end of file
diff --git a/keil/include/drivers/global_param.c b/keil/include/drivers/global_param.c
index 044ea70..a89e692 100644
--- a/keil/include/drivers/global_param.c
+++ b/keil/include/drivers/global_param.c
@@ -90,13 +90,13 @@
 
         g_com_map[TCP_IP_0]=0x111;
         g_com_map[TCP_IP_0]=0x198;
-        g_com_map[TCP_IP_0]=0x60; 
+        g_com_map[TCP_IP_0]=0x60;
         g_com_map[TCP_IP_0]=0x6;
         g_com_map[TCP_IP_0]=1234;
-        
+
 //        g_com_map[OTA_FLAG]=0;
-        g_com_map[URT_BQ]=0;  
-        
+        g_com_map[URT_BQ]=0;
+
         preinstall_gpsbaudrate=115200;
         g_com_map[GPSBAUDRATE1_INDEX] = preinstall_gpsbaudrate>>16;
         g_com_map[GPSBAUDRATE2_INDEX] = preinstall_gpsbaudrate;
@@ -135,24 +135,24 @@
         g_com_map[CNT_UPDATE]=0;
         g_com_map[MODBUS_MODE]=0;
         g_com_map[ACTIVE_INDEX]=0;
-        
+
         g_com_map[IP_0]=39;
         g_com_map[IP_1]=106;
         g_com_map[IP_2]=210;
         g_com_map[IP_3]=13;
         g_com_map[PORT]=7000;
-        
+
         g_com_map[TCP_IP_0]=121;
         g_com_map[TCP_IP_1]=33;
         g_com_map[TCP_IP_2]=226;
         g_com_map[TCP_IP_3]=42;
         g_com_map[TCP_PORT]=9039;
-        
+
         g_com_map[GPSENBLE]=1;
         g_com_map[UWBENBLE]=1;
         g_com_map[GPSFrequency]=1;
         g_com_map[UWBFrequency]=1;
-        
+
         g_com_map[HEIGHTOFFEST_INDEX]=0;
         g_com_map[GPS_HZ]=1;
 //        g_com_map[STATIONARY_TIME] = 10;
diff --git a/keil/include/drivers/lis3dh_driver.c b/keil/include/drivers/lis3dh_driver.c
index e01b3b8..089330b 100644
--- a/keil/include/drivers/lis3dh_driver.c
+++ b/keil/include/drivers/lis3dh_driver.c
@@ -168,14 +168,68 @@
 static void delay_us(uint32_t nTimer)
 {
     uint32_t i=0;
-    for(i=0;i<nTimer;i++){
+    for(i=0; i<nTimer; i++) {
         __NOP();
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
 
 
     }
@@ -200,7 +254,7 @@
     io_pin_mux_set(SCL_PIN, IO_FUNC0);
 
     gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
-		//io_open_drain_set(SDA_PIN, 1);
+    //io_open_drain_set(SDA_PIN, 1);
     io_pull_set(SDA_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL2);//输出高阻态
 
     gpio_pin_set_dir(SCL_PIN , GPIO_DIR_OUT, 1);
@@ -225,26 +279,26 @@
 //    {
 //        g_com_map[IMU_ENABLE]=0;
 //    }
-                lisid = mir3da_ReadOneByte(REG_CHIP_ID); 
-                
-                if(lisid == 0x13)
-                {
-                        mir3da_init();
-                }
-                else
-                {
-                        LIS3DH_GetWHO_AM_I(&lisidtemp);  
-                        lisid=(uint16_t)lisidtemp;
-                        
-                        if(lisid == 0x33)
-                        {
-                                LIS3DH_Data_Init();
-                        }
-                        else
-                        {
-                                g_com_map[IMU_ENABLE]=0;
-                        }
-                }
+    lisid = mir3da_ReadOneByte(REG_CHIP_ID);
+
+    if(lisid == 0x13)
+    {
+        mir3da_init();
+    }
+    else
+    {
+        LIS3DH_GetWHO_AM_I(&lisidtemp);
+        lisid=(uint16_t)lisidtemp;
+
+        if(lisid == 0x33)
+        {
+            LIS3DH_Data_Init();
+        }
+        else
+        {
+            g_com_map[IMU_ENABLE]=0;
+        }
+    }
 }
 
 void mir3da_init()
@@ -507,36 +561,36 @@
 
 void  IIC2_SDA_OUT()
 {
-gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
+    gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1);
 }
 void  IIC2_SDA_IN()
 {
-gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号
+    gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号
 }
 //产生IIC起始信号
 void IIC2_Start(void)
 {
-		IIC2_SDA_OUT();     //sda线输出
-		SDA_1;
-//		delay_us(10);	
-		SCL_1;
+    IIC2_SDA_OUT();     //sda线输出
+    SDA_1;
 //		delay_us(10);
-		SDA_0;//START:when CLK is high,DATA change form high to low
-		delay_us(10);
-		SCL_0;//钳住I2C总线,准备发送或接收数据 
-}	  
+    SCL_1;
+//		delay_us(10);
+    SDA_0;//START:when CLK is high,DATA change form high to low
+    delay_us(10);
+    SCL_0;//钳住I2C总线,准备发送或接收数据
+}
 //产生IIC停止信号
 void IIC2_Stop(void)
 {
-		IIC2_SDA_OUT();//sda线输出
-		SCL_0;
+    IIC2_SDA_OUT();//sda线输出
+    SCL_0;
 //		delay_us(10);
-		SDA_0;//STOP:when CLK is high DATA change form low to high
-	 	delay_us(10);
-		SCL_1; 
+    SDA_0;//STOP:when CLK is high DATA change form low to high
+    delay_us(10);
+    SCL_1;
 //		delay_us(10);
-		SDA_1;//发送I2C总线结束信号
-		delay_us(10);	
+    SDA_1;//发送I2C总线结束信号
+    delay_us(10);
 
 }
 
@@ -545,95 +599,95 @@
 //        0,接收应答成功
 uint8_t IIC2_Wait_Ack(void)
 {
-	uint8_t ucErrTime=0;
-IIC2_SDA_IN();
- 	SDA_1;
-	delay_us(15);	   
-	SCL_1;
-	delay_us(15);	
+    uint8_t ucErrTime=0;
+    IIC2_SDA_IN();
+    SDA_1;
+    delay_us(15);
+    SCL_1;
+    delay_us(15);
 
-	while(IIC2_READ_SDA)
-	{
-		ucErrTime++;
-		if(ucErrTime>250)
-		{
-			IIC2_Stop();
-			return 1;
-		}
-	}
-	SCL_0;//时钟输出0
-	return 0;  
-} 
+    while(IIC2_READ_SDA)
+    {
+        ucErrTime++;
+        if(ucErrTime>250)
+        {
+            IIC2_Stop();
+            return 1;
+        }
+    }
+    SCL_0;//时钟输出0
+    return 0;
+}
 //产生ACK应答
 void IIC2_Ack(void)
 {
-	SCL_0;
-	IIC2_SDA_OUT();
-	SDA_0;
-	delay_us(10);
-	SCL_1;
-	delay_us(10);
-	SCL_0;
+    SCL_0;
+    IIC2_SDA_OUT();
+    SDA_0;
+    delay_us(10);
+    SCL_1;
+    delay_us(10);
+    SCL_0;
 }
-//不产生ACK应答		    
+//不产生ACK应答
 void IIC2_NAck(void)
 {
-	SCL_0;
-	IIC2_SDA_OUT();
-	SDA_1;
-	delay_us(10);
-	SCL_1;
-	delay_us(10);
-	SCL_0;
+    SCL_0;
+    IIC2_SDA_OUT();
+    SDA_1;
+    delay_us(10);
+    SCL_1;
+    delay_us(10);
+    SCL_0;
 }
 
 
 //IIC发送一个字节,WRITE
 //返回从机有无应答
 //1,有应答
-//0,无应答			  
+//0,无应答
 void IIC2_Send_Byte(uint8_t txd)
-{                        
-    uint8_t t;   
-		IIC2_SDA_OUT();
-		SCL_0;//拉低时钟开始数据传输
-    for(t=0;t<8;t++)
-    {              
-			if((txd&0x80)>>7)
-			{
-				SDA_1;
-			}
-			else
-			{
-				SDA_0;
-			}
-		txd <<= 1;
-		delay_us(10);
-		SCL_1;
-		delay_us(10);
-		SCL_0;
-		delay_us(10);
-    } 	 
-} 
+{
+    uint8_t t;
+    IIC2_SDA_OUT();
+    SCL_0;//拉低时钟开始数据传输
+    for(t=0; t<8; t++)
+    {
+        if((txd&0x80)>>7)
+        {
+            SDA_1;
+        }
+        else
+        {
+            SDA_0;
+        }
+        txd <<= 1;
+        delay_us(10);
+        SCL_1;
+        delay_us(10);
+        SCL_0;
+        delay_us(10);
+    }
+}
 
-//读1个字节,ack=1时,发送ACK,ack=0,发送nACK   
+//读1个字节,ack=1时,发送ACK,ack=0,发送nACK
 uint8_t IIC2_Read_Byte(unsigned char ack)
 {
-	unsigned char i,receive=0;
-	IIC2_SDA_IN();//SDA设置为输入
-    for(i=0;i<8;i++ )
-	{
-    SCL_0; 
-    delay_us(10);
-		SCL_1;
-    receive<<=1;
-    if(IIC2_READ_SDA)receive++;   
-		delay_us(5); 
-    }					 
+    unsigned char i,receive=0;
+    IIC2_SDA_IN();//SDA设置为输入
+    for(i=0; i<8; i++ )
+    {
+        SCL_0;
+        delay_us(10);
+        SCL_1;
+        receive<<=1;
+        if(IIC2_READ_SDA)receive++;
+        delay_us(5);
+    }
     if (!ack)
         IIC2_NAck();//发送nACK
     else
-        IIC2_Ack(); //发送ACK   
+        IIC2_Ack(); //发送ACK
     return receive;
 }
 
diff --git a/keil/include/drivers/mk_misc.c b/keil/include/drivers/mk_misc.c
index 99604ab..8b4a272 100644
--- a/keil/include/drivers/mk_misc.c
+++ b/keil/include/drivers/mk_misc.c
@@ -389,24 +389,81 @@
     // reboot
     reset_module(RESET_MODULE_REBOOT);
 }
-void delay_US(uint32_t nTimer)  
-{  
-    uint32_t i=0;  
-    for(i=0;i<nTimer;i++){  
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
-        __NOP();__NOP();__NOP();__NOP(); 
-    }  
+void delay_US(uint32_t nTimer)
+{
+    uint32_t i=0;
+    for(i=0; i<nTimer; i++) {
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+    }
 }
-void delay_ms(uint32_t nTimer)  
-{  
-    uint32_t i=1000*nTimer;  
-    delay_US(i);  
-}  
+void delay_ms(uint32_t nTimer)
+{
+    uint32_t i=1000*nTimer;
+    delay_US(i);
+}
 void delay_us(uint32_t cnt)
 {
 #define SYSTEM_CLOCK_MHZ 62.4
@@ -450,18 +507,18 @@
     __asm volatile(".syntax divided\n");
 #endif
 }
-//void delay_us(uint32_t nTimer)  
-//{  
-//    uint32_t i=0;  
-//    for(i=0;i<nTimer;i++){  
+//void delay_us(uint32_t nTimer)
+//{
+//    uint32_t i=0;
+//    for(i=0;i<nTimer;i++){
 //        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
 //		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-//		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
+//		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
 //        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
 //		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-//		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
-//        __NOP();__NOP();__NOP();__NOP(); 
-//    }  
+//		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
+//        __NOP();__NOP();__NOP();__NOP();
+//    }
 //}
 uint8_t count_bits(uint32_t value)
 {
diff --git a/keil/include/drivers/mk_trace.c b/keil/include/drivers/mk_trace.c
index 19f5965..d40da8d 100644
--- a/keil/include/drivers/mk_trace.c
+++ b/keil/include/drivers/mk_trace.c
@@ -1465,7 +1465,7 @@
 
     uint32_t lock = int_lock();
 
-			while (trace_handle.wptr != trace_handle.rptr)
+    while (trace_handle.wptr != trace_handle.rptr)
     {
         if (trace_handle.wptr > trace_handle.rptr)
         {
diff --git a/keil/include/drivers/serial_at_cmd_app.c b/keil/include/drivers/serial_at_cmd_app.c
index a878b6b..5a45325 100644
--- a/keil/include/drivers/serial_at_cmd_app.c
+++ b/keil/include/drivers/serial_at_cmd_app.c
@@ -20,8 +20,8 @@
 
 uint8_t mUsartReceivePack[100] = {0};
 uint8_t mUsart2ReceivePack[150] = {0};
-uint8_t GPS_GGAmessage[150]={0};
-uint8_t GPS_GSVmessage[150]={0};
+uint8_t GPS_GGAmessage[150]= {0};
+uint8_t GPS_GSVmessage[150]= {0};
 double jd,wd;
 int analysis_num,pos_state;
 uint8_t state5V_prase_flag=1,gps_prase_flag=1;
@@ -170,12 +170,12 @@
                 switch(pack_cmd)
                 {
                 case CMD_WRITE:
-                  if(pack_index==MODBUS_MODE*2)
-                  {
-                      Uart1GpsRecDebugSend();                    
-                      g_com_map[MODBUS_MODE] = 1;
-                      return;
-                  }
+                    if(pack_index==MODBUS_MODE*2)
+                    {
+                        Uart1GpsRecDebugSend();
+                        g_com_map[MODBUS_MODE] = 1;
+                        return;
+                    }
                     //从mUsartReceivePack中读取pack_length长度的字节,放到全局变量中,赋值保存的参数并且存入flash
                     memcpy((uint8_t*)&g_com_map + pack_index, mUsartReceivePack, pack_datalen);
                     if(mUsartReceivePack[0]==1)
@@ -234,7 +234,7 @@
             shell_receive_state = 2;
             uart_send(UART_ID1, data,1, NULL);
         } else if ((shell_receive_state == 2) && (data == 0x03)) {
-          DBG_SetMode(DBG_MODE_SHELL);
+            DBG_SetMode(DBG_MODE_SHELL);
             uart_send(UART_ID1, data,1, NULL);
             shell_receive_state=0;
         }
@@ -256,7 +256,7 @@
 //            NTRIPApp_ReportGGA(l_u8GPSBuff, l_u8GPSLen);
 //            l_u8GPSLen = 0;
 //        }
-        
+
 //        l_u8GPSRecvTick = HIDO_TimerGetTick();
 //        //接收数据开始分析
 //        mUsart2ReceivePack[index]  =  data; //char数组传进来参数data
@@ -266,12 +266,12 @@
 //        if( mUsart2ReceivePack_before == 0x0D && mUsart2ReceivePack_now==0x0A )//接收数据到“0x0D 0x0A”结束
 //        {
 //            //解析该条GPS报文
-//           
+//
 //            analysis_num=sscanf((char*)mUsart2ReceivePack,"$%[^,],%*[^,],%[^,],%*[^,],%[^,],%*[^,],%[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*s",gps_header,wdrecv.m_pData,jdrecv.m_pData,Posstate.m_pData);
 //            if(!memcmp(gps_header,"GNGGA",5))
-//            { 
+//            {
 //							memcpy(GPS_GGAmessage,mUsart2ReceivePack,strlen(mUsart2ReceivePack)-2);
-//                   
+//
 //                    wd=strtod(wdrecv.m_pData,NULL);
 //                    jd=strtod(jdrecv.m_pData,NULL);
 //										if(wd!=0)
@@ -280,14 +280,14 @@
 //								{
 //								pos_state=0;//防止多次进入
 //								}
-//						
+//
 //            }
 ////						if(!memcmp(gps_header,"GBGSV",5))
 ////						{memcpy(GPS_GSVmessage,mUsart2ReceivePack,strlen(mUsart2ReceivePack)-2);
 ////						GPS_ParseGSV(GPS_GSVmessage,strlen(GPS_GSVmessage));
-////						
+////
 ////						}
-//            
+//
 //            memset(mUsart2ReceivePack,0,sizeof(mUsart2ReceivePack));
 //            memset(wdrecv.m_pData,0,sizeof(wdrecv.m_pData));
 //            memset(jdrecv.m_pData,0,sizeof(jdrecv.m_pData));
diff --git a/keil/include/src/GPS.c b/keil/include/src/GPS.c
index f57d7f3..639c630 100644
--- a/keil/include/src/GPS.c
+++ b/keil/include/src/GPS.c
@@ -59,54 +59,54 @@
         _pstGPS->m_u8Day++;
         switch (_pstGPS->m_u8Mon)
         {
-            case 1:
-            case 3:
-            case 5:
-            case 7:
-            case 8:
-            case 10:
-                if (_pstGPS->m_u8Day > 31)
+        case 1:
+        case 3:
+        case 5:
+        case 7:
+        case 8:
+        case 10:
+            if (_pstGPS->m_u8Day > 31)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon++;
+            }
+            break;
+        case 2:
+            if (0 == (_pstGPS->m_u16Year % 4))
+            {
+                if (_pstGPS->m_u8Day > 29)
                 {
                     _pstGPS->m_u8Day = 1;
                     _pstGPS->m_u8Mon++;
                 }
-                break;
-            case 2:
-                if (0 == (_pstGPS->m_u16Year % 4))
-                {
-                    if (_pstGPS->m_u8Day > 29)
-                    {
-                        _pstGPS->m_u8Day = 1;
-                        _pstGPS->m_u8Mon++;
-                    }
-                }
-                else
-                {
-                    if (_pstGPS->m_u8Day > 28)
-                    {
-                        _pstGPS->m_u8Day = 1;
-                        _pstGPS->m_u8Mon++;
-                    }
-                }
-                break;
-            case 4:
-            case 6:
-            case 9:
-            case 11:
-                if (_pstGPS->m_u8Day > 30)
+            }
+            else
+            {
+                if (_pstGPS->m_u8Day > 28)
                 {
                     _pstGPS->m_u8Day = 1;
                     _pstGPS->m_u8Mon++;
                 }
-                break;
-            case 12:
-                if (_pstGPS->m_u8Day > 31)
-                {
-                    _pstGPS->m_u8Day = 1;
-                    _pstGPS->m_u8Mon = 1;
-                    _pstGPS->m_u16Year++;
-                }
-                break;
+            }
+            break;
+        case 4:
+        case 6:
+        case 9:
+        case 11:
+            if (_pstGPS->m_u8Day > 30)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon++;
+            }
+            break;
+        case 12:
+            if (_pstGPS->m_u8Day > 31)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon = 1;
+                _pstGPS->m_u16Year++;
+            }
+            break;
         }
     }
 }
@@ -545,7 +545,7 @@
     }
 
     if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%p,%p,%p,%p,%p,%p,%p,%p,%p,%*,%*,%**", &stTimeData, &stStateData,
-            &stLatData, &stLatSignData, &stLonData, &stLonSignData, &stSpeedData, &stDirData, &stDateData) != 13)
+                             &stLatData, &stLatSignData, &stLonData, &stLonSignData, &stSpeedData, &stDirData, &stDateData) != 13)
     {
         return HIDO_ERR;
     }
@@ -556,7 +556,7 @@
     }
 
     if (_pstGPS->m_eState != GPS_STATE_VALID)
-    {   
+    {
         return HIDO_OK;
     }
 
@@ -621,120 +621,120 @@
 {
     switch (l_stGPSRecv.m_eState)
     {
-        case GPS_RECV_STATE_IDLE:
+    case GPS_RECV_STATE_IDLE:
+    {
+        if ('$' == _u8RecvChar)
         {
-            if ('$' == _u8RecvChar)
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_CR;
-                l_stGPSRecv.m_u32RecvLen = 0;
-                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-            }
-            break;
-        }
-        case GPS_RECV_STATE_CR:
-        {
+            l_stGPSRecv.m_eState = GPS_RECV_STATE_CR;
+            l_stGPSRecv.m_u32RecvLen = 0;
             l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-
-            if (l_stGPSRecv.m_u32RecvLen >= (sizeof(l_stGPSRecv.m_acRecvBuf) - 2))
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
-                break;
-            }
-
-            if ('\r' == _u8RecvChar)
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_LF;
-            }
-
-            break;
         }
-        case GPS_RECV_STATE_LF:
+        break;
+    }
+    case GPS_RECV_STATE_CR:
+    {
+        l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+
+        if (l_stGPSRecv.m_u32RecvLen >= (sizeof(l_stGPSRecv.m_acRecvBuf) - 2))
         {
-            if ('\n' == _u8RecvChar)
-            {
-            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
-//                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
-//                UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
-            	if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL)
-            	{
-            		GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
-                    l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
-//                    #ifdef UWB_CG
-                    if(g_com_map[GPSENBLE]==0)
-                    {
-//                    UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf); 
-                    }
-                    else if(g_com_map[GPSENBLE]&&g_com_map[GPSFrequency]==1)
-                    {
-                        if (l_u8PosState >= 1) 
-                        {
-                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);           // 
-                        } 
-                        else if (l_u8PosState == 0)           
-                        {
-                                if (++GPS_UPload_sleep_flag >= 60) 
-                                {
-                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
-                                        GPS_UPload_sleep_flag = 0;    
-                                }
-                        }	
-                    }
-                    else if(g_com_map[GPSENBLE])
-                    {
-                            if (l_u8PosState >= 1) 
-                            {
-                                if (++GPS_UPLOAD_FLAG >= g_com_map[GPSFrequency])      
-                                { 
-                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf); 
-                                        GPS_UPLOAD_FLAG = 0;         
-                                }
-                            } 
-                            else if (l_u8PosState == 0)           
-                            {
-                                if (++GPS_UPload_sleep_flag >= 60) 
-                                {
-                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
-                                        GPS_UPload_sleep_flag = 0;    
-                                }
-                            }
-                    }
-                    switch(l_u8PosState)
-                    {
-                        case 0:
-                        rtkled = RED;
-                        break;
-                        case 1:
-                        rtkled = BLUE; 
-                        break;
-                        case 2:
-                        rtkled = BLUE+GREEN; 
-                        break;
-                        case 4:
-                        rtkled = GREEN; 
-                        break;
-                        case 5:
-                        rtkled = YELLOW; 
-                        break;
-                        default:
-                        rtkled = WHITE; 
-                        break;
-                    } 
-            	}
-
-                else //if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
-            	{
-            		gpserror++;
-            	}
-            }
-
             l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
             break;
         }
-        default:
+
+        if ('\r' == _u8RecvChar)
         {
-            break;
+            l_stGPSRecv.m_eState = GPS_RECV_STATE_LF;
         }
+
+        break;
+    }
+    case GPS_RECV_STATE_LF:
+    {
+        if ('\n' == _u8RecvChar)
+        {
+            l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+            l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
+//                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+            if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL)
+            {
+                GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
+                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                    #ifdef UWB_CG
+                if(g_com_map[GPSENBLE]==0)
+                {
+//                    UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                }
+                else if(g_com_map[GPSENBLE]&&g_com_map[GPSFrequency]==1)
+                {
+                    if (l_u8PosState >= 1)
+                    {
+                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);           //
+                    }
+                    else if (l_u8PosState == 0)
+                    {
+                        if (++GPS_UPload_sleep_flag >= 60)
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPload_sleep_flag = 0;
+                        }
+                    }
+                }
+                else if(g_com_map[GPSENBLE])
+                {
+                    if (l_u8PosState >= 1)
+                    {
+                        if (++GPS_UPLOAD_FLAG >= g_com_map[GPSFrequency])
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPLOAD_FLAG = 0;
+                        }
+                    }
+                    else if (l_u8PosState == 0)
+                    {
+                        if (++GPS_UPload_sleep_flag >= 60)
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPload_sleep_flag = 0;
+                        }
+                    }
+                }
+                switch(l_u8PosState)
+                {
+                case 0:
+                    rtkled = RED;
+                    break;
+                case 1:
+                    rtkled = BLUE;
+                    break;
+                case 2:
+                    rtkled = BLUE+GREEN;
+                    break;
+                case 4:
+                    rtkled = GREEN;
+                    break;
+                case 5:
+                    rtkled = YELLOW;
+                    break;
+                default:
+                    rtkled = WHITE;
+                    break;
+                }
+            }
+
+            else //if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
+            {
+                gpserror++;
+            }
+        }
+
+        l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -823,7 +823,7 @@
 
     while (Uart_GetChar(UART_ID_DBG_GPS, &u8RecvChar) == HIDO_OK)
     {
-    	GPS_RecvFsm(u8RecvChar);
+        GPS_RecvFsm(u8RecvChar);
     }
 }
 
diff --git a/keil/include/src/NTRIPApp.c b/keil/include/src/NTRIPApp.c
index 948483a..2790f73 100644
--- a/keil/include/src/NTRIPApp.c
+++ b/keil/include/src/NTRIPApp.c
@@ -79,8 +79,8 @@
 {
     uint8_t u32Len,l_au8CmdBuff[200];
     HIDO_Debug("4G signal intensity is %u\r\n", _u32SignalIntensity);
-      u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff),"4G signal intensity is %u\r\n", _u32SignalIntensity);
-   TCPClient_Uploadhex(l_au8CmdBuff,u32Len);
+    u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff),"4G signal intensity is %u\r\n", _u32SignalIntensity);
+    TCPClient_Uploadhex(l_au8CmdBuff,u32Len);
 }
 
 /*******************************************************************************
@@ -110,40 +110,40 @@
 {
     switch(_u32Code)
     {
-        case NTRIP_CODE_CONNECT_FAILED:
-        case NTRIP_CODE_DISCONNECT:
+    case NTRIP_CODE_CONNECT_FAILED:
+    case NTRIP_CODE_DISCONNECT:
+    {
+        l_u32RetryCnt++;
+        if(l_u32RetryCnt > CONNECT_RETRY_CNT)
         {
-            l_u32RetryCnt++;
-            if(l_u32RetryCnt > CONNECT_RETRY_CNT)
-            {
-                HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(CONNECT_RETRY_INTERVAL), TimeOutCallback, HIDO_NULL);
-            }
-            else
-            {
-                ConnectSetup();
-            }
-
-            break;
+            HIDO_TimerStart(l_u32TimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(CONNECT_RETRY_INTERVAL), TimeOutCallback, HIDO_NULL);
         }
-        case NTRIP_CODE_RTCM_DATA:
+        else
         {
-            l_u32RetryCnt = 0;
-
-            if(DBG_GetMode() == DBG_MODE_GPS)
-            {
-                if(Uart_Send(UART_ID_DBG_GPS, _pu8Data, _u32Len) != HIDO_OK)
-                {
-                    HIDO_Debug("RTK Data Send Error\r\n");
-                }
-            }
-
-            HIDO_Debug("%uB RTK Data Sent\r\n", _u32Len);
-            break;
+            ConnectSetup();
         }
-        default:
+
+        break;
+    }
+    case NTRIP_CODE_RTCM_DATA:
+    {
+        l_u32RetryCnt = 0;
+
+        if(DBG_GetMode() == DBG_MODE_GPS)
         {
-            break;
+            if(Uart_Send(UART_ID_DBG_GPS, _pu8Data, _u32Len) != HIDO_OK)
+            {
+                HIDO_Debug("RTK Data Send Error\r\n");
+            }
         }
+
+        HIDO_Debug("%uB RTK Data Sent\r\n", _u32Len);
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 
     return HIDO_OK;
@@ -161,8 +161,8 @@
 static HIDO_INT32 ConnectSetup(void)
 {
     return NTRIPClient_Connect((char *)&g_com_map[NTRIP_HOST_INDEX], g_com_map[NTRIP_PORT_INDEX],
-        (char *)&g_com_map[NTRIP_USERNANME_INDEX], (char *)&g_com_map[NTRIP_PASSWORD_INDEX],
-         (char *)&g_com_map[NTRIP_SOURCENAME_INDEX], NTRIPClientCallback, HIDO_NULL);
+                               (char *)&g_com_map[NTRIP_USERNANME_INDEX], (char *)&g_com_map[NTRIP_PASSWORD_INDEX],
+                               (char *)&g_com_map[NTRIP_SOURCENAME_INDEX], NTRIPClientCallback, HIDO_NULL);
 }
 
 /*******************************************************************************
@@ -179,16 +179,16 @@
  *******************************************************************************/
 HIDO_INT32 NTRIPApp_ReportGGA(HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len)
 {
-   // HIDO_UINT8 *pcTestData = "$GPGGA,000001,3112.518576,N,12127.901251,E,1,8,1,0,M,-32,M,3,0*4B\r\n";
+    // HIDO_UINT8 *pcTestData = "$GPGGA,000001,3112.518576,N,12127.901251,E,1,8,1,0,M,-32,M,3,0*4B\r\n";
     return NTRIPClient_ReportGGA(_pu8Data, strlen((HIDO_CHAR*)_pu8Data));
 }
 
 /*******************************************************************************
  * Function Name     : NTRIPApp_Init
- * Description       : 
- * Input             : 
- * Output            : 
- * Return            : 
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
  * Author            : www.hido-studio.com
  * Modified Date:    : 2022年3月30日
  *******************************************************************************/
@@ -198,14 +198,14 @@
     {
         return HIDO_ERR;
     }
-        
+
     if(HIDO_TimerCreate(&l_u32CSQTimerID) != HIDO_OK)
     {
         return HIDO_ERR;
     }
-    
+
     HIDO_TimerStart(l_u32CSQTimerID, HIDO_TIMER_TYPE_LOOP, HIDO_TIMER_TICK_S(10), CSQCallback, HIDO_NULL);
-    
+
     l_u32RetryCnt = 0;
     ConnectSetup();
 
diff --git a/keil/include/src/OTA.c b/keil/include/src/OTA.c
index f1e4d1e..bbaf026 100644
--- a/keil/include/src/OTA.c
+++ b/keil/include/src/OTA.c
@@ -37,7 +37,7 @@
     OTA_STATE_HTTP_REQUEST_FILE_LEN,
     OTA_STATE_HTTP_REQUEST_DATA,
     OTA_STATE_WAIT_HTTP_RESPONSE,
-}E_OTAState;
+} E_OTAState;
 
 /*******************************************************************************
  *                             Local Variable                                  *
@@ -139,76 +139,76 @@
     {
         switch (l_eOTAState)
         {
-            case OTA_STATE_HTTP_REQUEST_FILE_LEN:
+        case OTA_STATE_HTTP_REQUEST_FILE_LEN:
+        {
+            l_u32OTAFileRecvLen = 0;
+            l_u32OTAFileSize = _pstResponse->m_u32RangeTotal;
+            if(0 == l_u32OTAFileSize)
             {
-                l_u32OTAFileRecvLen = 0;
-                l_u32OTAFileSize = _pstResponse->m_u32RangeTotal;
-                if(0 == l_u32OTAFileSize)
-                {
-                    LOG_INFO(TRACE_MODULE_APP,"OTAFileSize error\r\n");
-                }
+                LOG_INFO(TRACE_MODULE_APP,"OTAFileSize error\r\n");
+            }
 
-                LOG_INFO(TRACE_MODULE_APP,"OTAFileSize %u\r\n", l_u32OTAFileSize);
+            LOG_INFO(TRACE_MODULE_APP,"OTAFileSize %u\r\n", l_u32OTAFileSize);
 
-                l_eOTAState = OTA_STATE_HTTP_REQUEST_DATA;
-                OTA_RequestFileData(l_u32OTAFileRecvLen);
-                HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
+            l_eOTAState = OTA_STATE_HTTP_REQUEST_DATA;
+            OTA_RequestFileData(l_u32OTAFileRecvLen);
+            HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
+            break;
+        }
+        case OTA_STATE_HTTP_REQUEST_DATA:
+        {
+            if(_pstResponse->m_u32RangeBegin != l_u32OTAFileRecvLen)
+            {
                 break;
             }
-            case OTA_STATE_HTTP_REQUEST_DATA:
-            {
-                if(_pstResponse->m_u32RangeBegin != l_u32OTAFileRecvLen)
-                {
-                    break;
-                }
-                
-                /* 写入文件 */
+
+            /* 写入文件 */
 #if 0
-                SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_APP_DOWN_LOAD_SPIFLASH_ADDRESS + l_u32OTAFileRecvLen, _pu8Data, _u32Len);
+            SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_APP_DOWN_LOAD_SPIFLASH_ADDRESS + l_u32OTAFileRecvLen, _pu8Data, _u32Len);
 #else
-                flash_write_nbytes(FLASH_ID0, APP2_ADRESS + l_u32OTAFileRecvLen, _pu8Data, _u32Len);
+            flash_write_nbytes(FLASH_ID0, APP2_ADRESS + l_u32OTAFileRecvLen, _pu8Data, _u32Len);
 #endif
-                l_u32OTAFileRecvLen += _u32Len;
-                LOG_INFO(TRACE_MODULE_APP,"OTAFileDownload %u/%u\r\n", l_u32OTAFileRecvLen, l_u32OTAFileSize);
+            l_u32OTAFileRecvLen += _u32Len;
+            LOG_INFO(TRACE_MODULE_APP,"OTAFileDownload %u/%u\r\n", l_u32OTAFileRecvLen, l_u32OTAFileSize);
 
-                /* 文件接收完成 */
-                if (l_u32OTAFileRecvLen == l_u32OTAFileSize)
-                {
-                    l_eOTAState = OTA_STATE_IDLE;
-                    HIDO_TimerCancel(l_u32OTATimerID);
+            /* 文件接收完成 */
+            if (l_u32OTAFileRecvLen == l_u32OTAFileSize)
+            {
+                l_eOTAState = OTA_STATE_IDLE;
+                HIDO_TimerCancel(l_u32OTATimerID);
 
-									  // 执行到这里,已经完成文件的下载,可以执行下一步处理了
+                // 执行到这里,已经完成文件的下载,可以执行下一步处理了
 //#if 0
 //                    HIDO_UINT16 tmp = 0xBBBB,result;
-//                    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP,2, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
-//                    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp)); 
+//                    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP,2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
+//                    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
 //#endif
-									  // HAL_Delay(10);
-                    // Reboot(0);
-                    uint32_t result = 0;
-                    uint16_t tmp = 0xCCCC;
-                    __disable_irq();
-                    result = flash_open(FLASH_ID0,NULL);
-                    if(!result)//打开成功
-                        flash_erase(FLASH_ID0,APP_CONFIG_IAPFLAG_SECTOR_ADDR,FLASH_SECTOR_SIZE);
-                    result = flash_write_nbytes(FLASH_ID0,APP_CONFIG_IAPFLAG_MAP,(uint8_t*)&tmp,2);
-                    __enable_irq();
-                    Serial0PutString("进入升级模式\r\n");
-                    g_com_map[CNT_UPDATE]=0;
-                    save_com_map_to_flash();
-                    delay_us(100000);
-                    NVIC_SystemReset(); //软复位回到bootloader
-                    break;
-                }
+                // HAL_Delay(10);
+                // Reboot(0);
+                uint32_t result = 0;
+                uint16_t tmp = 0xCCCC;
+                __disable_irq();
+                result = flash_open(FLASH_ID0,NULL);
+                if(!result)//打开成功
+                    flash_erase(FLASH_ID0,APP_CONFIG_IAPFLAG_SECTOR_ADDR,FLASH_SECTOR_SIZE);
+                result = flash_write_nbytes(FLASH_ID0,APP_CONFIG_IAPFLAG_MAP,(uint8_t*)&tmp,2);
+                __enable_irq();
+                Serial0PutString("进入升级模式\r\n");
+                g_com_map[CNT_UPDATE]=0;
+                save_com_map_to_flash();
+                delay_us(100000);
+                NVIC_SystemReset(); //软复位回到bootloader
+                break;
+            }
 
-                OTA_RequestFileData(l_u32OTAFileRecvLen);
-                HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
-                break;
-            }
-            default:
-            {
-                break;
-            }
+            OTA_RequestFileData(l_u32OTAFileRecvLen);
+            HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
+            break;
+        }
+        default:
+        {
+            break;
+        }
         }
     }
     else
@@ -232,20 +232,20 @@
 {
     /* 升级参数有误,取消升级 */
     HIDO_UINT16 tmp = 0xFFFF;
-    
+
 //    HIDO_Debug("goto app application\r\n");
 
-		// 执行到这里,说明文件下载失败了,需要进一步处理
+    // 执行到这里,说明文件下载失败了,需要进一步处理
 #if 0
-    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, 2, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
-    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp)); 
-    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K);  
+    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, 2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
+    SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
+    SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K);
 #endif
 //    g_com_map[OTA_FLAG]=0;
 //    save_com_map_to_flash();
 //    delay_us(100000);
     NVIC_SystemReset(); //软复位回到bootloader
-    
+
     return HIDO_OK;
 }
 
@@ -264,34 +264,34 @@
 
     switch (l_eOTAState)
     {
-        case OTA_STATE_HTTP_REQUEST_FILE_LEN:
+    case OTA_STATE_HTTP_REQUEST_FILE_LEN:
+    {
+        l_u32OTARetryCnt++;
+        if(l_u32OTARetryCnt >= 3)
         {
-            l_u32OTARetryCnt++;
-            if(l_u32OTARetryCnt >= 3)
-            {
-                OTA_Failed();
-            }
-            
-            OTA_RequestFileLen();
-            HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
-            break;
+            OTA_Failed();
         }
-        case OTA_STATE_HTTP_REQUEST_DATA:
+
+        OTA_RequestFileLen();
+        HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
+        break;
+    }
+    case OTA_STATE_HTTP_REQUEST_DATA:
+    {
+        l_u32OTARetryCnt++;
+        if(l_u32OTARetryCnt >= 3)
         {
-            l_u32OTARetryCnt++;
-            if(l_u32OTARetryCnt >= 3)
-            {
-                OTA_Failed();
-            }
-            
-            OTA_RequestFileData(l_u32OTAFileRecvLen);
-            HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
-            break;
+            OTA_Failed();
         }
-        default:
-        {
-            break;
-        }
+
+        OTA_RequestFileData(l_u32OTAFileRecvLen);
+        HIDO_TimerStart(l_u32OTATimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(30), OTA_TimerCallBack, HIDO_NULL);
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -329,7 +329,7 @@
     /* 擦除OTA文件缓存存储空间 */
 #if 0
     SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_APP_DOWN_LOAD_SPIFLASH_ADDRESS,
-            APP_CONFIG_APP_DOWN_LOAD_SPIFLASH_SIZE, SPI_FLASH_SECTOR_ERASE_MODE_64K);
+                   APP_CONFIG_APP_DOWN_LOAD_SPIFLASH_SIZE, SPI_FLASH_SECTOR_ERASE_MODE_64K);
 #else
     flash_erase(FLASH_ID0,APP2_ADRESS,APP_SIZE);
 #endif
@@ -377,12 +377,12 @@
     {
         return HIDO_ERR;
     }
-    
+
     if(l_eOTAState == OTA_STATE_IDLE)
     {
         OTA_SetUp(l_acOTAUrl);
     }
-    
+
     return HIDO_OK;
 }
 
@@ -399,8 +399,8 @@
 {
     l_eOTAState = OTA_STATE_IDLE;
     HIDO_TimerCreate(&l_u32OTATimerID);
-    
+
     OTA_SetUp(_pcUrl);
-    
+
     return HIDO_OK;
 }
diff --git a/keil/include/src/SPIV1.07.c b/keil/include/src/SPIV1.07.c
index cbfa055..9f4bb40 100644
--- a/keil/include/src/SPIV1.07.c
+++ b/keil/include/src/SPIV1.07.c
@@ -314,6 +314,6 @@
     gpio_pin_set_dir(SPI_CLK_PIN, GPIO_DIR_OUT, 1);
     gpio_pin_set_dir(SPI_MOSI_PIN, GPIO_DIR_OUT, 1);
     gpio_pin_set_dir(SPI_MISO_PIN, GPIO_DIR_IN, 0);
-    
+
     SPI_CS_H();
 }
diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index a72a78b..ac6b27c 100644
--- a/keil/include/src/TCPClient.c
+++ b/keil/include/src/TCPClient.c
@@ -91,7 +91,7 @@
 {
     HIDO_CHAR *apcSplitStr[12];
     HIDO_UINT32 u32SplitCnt = 0;
-    
+
     HIDO_UINT32 u32Len = 0;
 
 //    HIDO_Debug("%s\r\n", l_au8CmdBuff);
@@ -146,7 +146,7 @@
             if(bChange)
             {
                 save_com_map_to_flash();
-              g_com_map[CNT_RESTART] = 1;
+                g_com_map[CNT_RESTART] = 1;
             }
         }
     }
@@ -168,7 +168,7 @@
 //              uart_send(UART_ID1, (char *)&apcSplitStr[2],strlen(apcSplitStr[3]), NULL);
 //            memcpy(testdata,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
 //              OTA_Start((HIDO_UINT8*)apcSplitStr[2]);
-            
+
 //            g_com_map[OTA_FLAG]=1;
 //            g_com_map[OTA_URL_CHANGDU]=strlen(apcSplitStr[2]) + 1;
 //            memcpy(g_com_map+OTA_URL_INDEX,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
@@ -178,13 +178,13 @@
             uint8_t flag = 0;
             __disable_irq();
             result=flash_open(FLASH_ID0,NULL);
-            if(!result) 
+            if(!result)
             {
-            flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG
-            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp));
-            flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE);//擦除APPFLAG
-            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1);
-            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP+1, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1);
+                flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp));
+                flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE);//擦除APPFLAG
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1);
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP+1, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1);
             }
             __enable_irq();
             NVIC_SystemReset(); //软复位回到bootloader
@@ -211,7 +211,7 @@
     else if(STRCMP(_u8Data, "$control,") == 0)
     {
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     if(u32SplitCnt < 3)
+        if(u32SplitCnt < 3)
         {
             return HIDO_ERR;
         }
@@ -221,27 +221,27 @@
         {
             if(strcmp(apcSplitStr[2],"beeper")==0)
             {
-               
+
 //                    beepontime = HIDO_UtilStrToInt(apcSplitStr[3]);
-                    
+
             }
-            
-                if(strcmp(apcSplitStr[2],"TTS")==0)
-                {
-                    PCA9555_Set_One_Value_Output(TTS_ENABLE,1);         //打开TTS电源
-                    delay_ms(800);                //再短一点,会丢失语音的第一个字,不是不读,而是就像没有下发第一个字
-                    
+
+            if(strcmp(apcSplitStr[2],"TTS")==0)
+            {
+                PCA9555_Set_One_Value_Output(TTS_ENABLE,1);         //打开TTS电源
+                delay_ms(800);                //再短一点,会丢失语音的第一个字,不是不读,而是就像没有下发第一个字
+
 //                    TTS_Play((HIDO_UINT8 *)apcSplitStr[3], strlen(apcSplitStr[3]));             //服务器语音播报
-                    
-                    
-                    u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$Receivevoice,%X\r\n",
-                    g_com_map[DEV_ID]);
-                    
-                    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
-                    
-                   
-                }
-          
+
+
+                u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$Receivevoice,%X\r\n",
+                                           g_com_map[DEV_ID]);
+
+                Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+
+
+            }
+
         }
     }
     else if(STRCMP(_u8Data, "$userdata,") == 0)
@@ -260,14 +260,14 @@
             if(g_com_map[DEV_ID] == HIDO_UtilHexStrToInt((char *)stId.m_pData))
             {
 //                TONE_Play((HIDO_UINT8 *)stData.m_pData, stData.m_u32Len);
-                
+
                 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$Receivevoice,%X\r\n",
-                g_com_map[DEV_ID]);                                                                      //TTS收到回复
-                
+                                           g_com_map[DEV_ID]);                                                                      //TTS收到回复
+
                 Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
             }
         }
-    }else if(STRCMP(_u8Data, "$setpara,") == 0)
+    } else if(STRCMP(_u8Data, "$setpara,") == 0)
     {
         uint16_t tempindex,tempval;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
@@ -282,11 +282,11 @@
             if(tempindex == MOTOR_ONTIME_INDEX)
             {
 //              beepontime = tempval;
-            }else{
-            if(tempindex < COM_MAP_SIZE)
-            g_com_map[tempindex] = tempval;
-            save_com_map_to_flash();
-            g_com_map[CNT_RESTART] = 1;
+            } else {
+                if(tempindex < COM_MAP_SIZE)
+                    g_com_map[tempindex] = tempval;
+                save_com_map_to_flash();
+                g_com_map[CNT_RESTART] = 1;
             }
         }
     }
@@ -303,12 +303,12 @@
             }
             tempindex = HIDO_UtilStrToInt(apcSplitStr[2]);
             templen = HIDO_UtilStrToInt(apcSplitStr[3]);
-						if(templen>10)
-							templen=10;
+            if(templen>10)
+                templen=10;
             buffer_len = sprintf(send_buffer,"$replypara,");
             datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
             buffer_len += datalen;
-            for(uint16_t i=tempindex;i<templen+tempindex;i++)
+            for(uint16_t i=tempindex; i<templen+tempindex; i++)
             {
                 datalen = sprintf(&send_buffer[buffer_len],"%d,",g_com_map[i]);
                 buffer_len += datalen;
@@ -326,7 +326,7 @@
     {
         uint16_t buffer_len,datalen;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        char send_buffer[20]={0};
+        char send_buffer[20]= {0};
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -358,8 +358,8 @@
     {
         uint16_t buffer_len,datalen,datalen1,temp;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        char send_buffer[20]={0};
-        
+        char send_buffer[20]= {0};
+
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -401,8 +401,8 @@
 //            gpsbaudrate1= HIDO_UtilStrToInt(apcSplitStr[6]);
 //            g_com_map[GPSBAUDRATE1_INDEX] = gpsbaudrate1>>16;
 //            g_com_map[GPSBAUDRATE2_INDEX] = gpsbaudrate1;
-//            
-//            
+//
+//
 //            if((g_com_map[GPSENBLE]||g_com_map[GPSENBLE]==0)
 //             &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
 //             &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
@@ -424,7 +424,7 @@
     {
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
         uint16_t buffer_len,datalen;
-        char send_buffer[100]={0};
+        char send_buffer[100]= {0};
         if (u32SplitCnt < 1)
         {
             return HIDO_ERR;
@@ -446,102 +446,102 @@
             }
             checksum = Checksum_u16(&send_buffer[2],5+160);
             memcpy(&send_buffer[7+160],&checksum,2);
-            
+
             Socket_Send(l_i32TCPClientID,send_buffer,9+160);
         }
     }
     else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
     {
-     uint16_t temp,buffer_len,datalen,datalen1;
-     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     char send_buffer[30]={0};
-     if (u32SplitCnt < 3)
-     {
-       return HIDO_ERR;
-     }
-       if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        uint16_t temp,buffer_len,datalen,datalen1;
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        char send_buffer[30]= {0};
+        if (u32SplitCnt < 3)
         {
-             temp=HIDO_UtilStrToInt(apcSplitStr[2]);
-             if(temp==1)
-             {
-              OpenUWB();
-              uwb_OpenClose_flag=1;
-             }
-             else if(temp==0)
-             {
-              CloseUWB();
-              uwb_OpenClose_flag=0;
-             }
-          buffer_len = sprintf(send_buffer,"$rec_uwb_work,");
-          datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
-          buffer_len += datalen;
-          datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
-          buffer_len+= datalen1;
-          Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+            return HIDO_ERR;
         }
-       
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            temp=HIDO_UtilStrToInt(apcSplitStr[2]);
+            if(temp==1)
+            {
+                OpenUWB();
+                uwb_OpenClose_flag=1;
+            }
+            else if(temp==0)
+            {
+                CloseUWB();
+                uwb_OpenClose_flag=0;
+            }
+            buffer_len = sprintf(send_buffer,"$rec_uwb_work,");
+            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            buffer_len += datalen;
+            datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+            buffer_len+= datalen1;
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+
     }
     else if (STRCMP(_u8Data, "$set_uwb_frequency,") == 0)
     {
-     uint16_t temp,buffer_len,datalen,datalen1;
-        
-     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     char send_buffer[30]={0};
-     if (u32SplitCnt < 3)
-     {
-       return HIDO_ERR;
-     }
+        uint16_t temp,buffer_len,datalen,datalen1;
+
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        char send_buffer[30]= {0};
+        if (u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
         if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
         {
-           HIDO_INT32 frequency;
-           frequency=HIDO_UtilStrToInt(apcSplitStr[2]);        
-           g_com_map[UWBFrequency]=frequency;
-           
-           state_start_time=0;
-           uwb_time_count=0; 
-           buffer_len = sprintf(send_buffer,"$rec_uwbfrequency,");
-           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
-           buffer_len += datalen;
-           datalen1=sprintf(&send_buffer[buffer_len],"%d",frequency);
-           buffer_len+= datalen1;
-           save_com_map_to_flash();
-           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+            HIDO_INT32 frequency;
+            frequency=HIDO_UtilStrToInt(apcSplitStr[2]);
+            g_com_map[UWBFrequency]=frequency;
+
+            state_start_time=0;
+            uwb_time_count=0;
+            buffer_len = sprintf(send_buffer,"$rec_uwbfrequency,");
+            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            buffer_len += datalen;
+            datalen1=sprintf(&send_buffer[buffer_len],"%d",frequency);
+            buffer_len+= datalen1;
+            save_com_map_to_flash();
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
 
 
     }
     else if (STRCMP(_u8Data, "$set_gpsuwb_fet,") == 0)
     {
-     uint16_t temp,buffer_len,datalen,datalen1,datalen2,datalen3;
-        
-     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     char send_buffer[30]={0};
-     if (u32SplitCnt < 3)
-     {
-       return HIDO_ERR;
-     }
+        uint16_t temp,buffer_len,datalen,datalen1,datalen2,datalen3;
+
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        char send_buffer[30]= {0};
+        if (u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
         if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
         {
-           HIDO_INT32 frequency,temp,temp1;
-           frequency=HIDO_UtilStrToInt(apcSplitStr[2]); 
-           temp=HIDO_UtilStrToInt(apcSplitStr[3]); 
-           temp1=HIDO_UtilStrToInt(apcSplitStr[4]);              
-           g_com_map[GPSFrequency]=frequency;
-           g_com_map[IMU_ENABLE]=temp;
-           g_com_map[NOMOVESLEEP_TIME]=temp1;         
-           GPS_UPLOAD_FLAG=0;
-           nomove_count=0;
-           buffer_len = sprintf(send_buffer,"$rec_gpsuwb_fet,");
-           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
-           buffer_len += datalen;
-           datalen1=sprintf(&send_buffer[buffer_len],"%d,",frequency);
-           buffer_len+= datalen1;
-           datalen2=sprintf(&send_buffer[buffer_len],"%d,",temp);
-           buffer_len+= datalen2;
-           datalen3=sprintf(&send_buffer[buffer_len],"%d",temp1);
-           buffer_len+= datalen3;    
-           save_com_map_to_flash();            
-           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+            HIDO_INT32 frequency,temp,temp1;
+            frequency=HIDO_UtilStrToInt(apcSplitStr[2]);
+            temp=HIDO_UtilStrToInt(apcSplitStr[3]);
+            temp1=HIDO_UtilStrToInt(apcSplitStr[4]);
+            g_com_map[GPSFrequency]=frequency;
+            g_com_map[IMU_ENABLE]=temp;
+            g_com_map[NOMOVESLEEP_TIME]=temp1;
+            GPS_UPLOAD_FLAG=0;
+            nomove_count=0;
+            buffer_len = sprintf(send_buffer,"$rec_gpsuwb_fet,");
+            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            buffer_len += datalen;
+            datalen1=sprintf(&send_buffer[buffer_len],"%d,",frequency);
+            buffer_len+= datalen1;
+            datalen2=sprintf(&send_buffer[buffer_len],"%d,",temp);
+            buffer_len+= datalen2;
+            datalen3=sprintf(&send_buffer[buffer_len],"%d",temp1);
+            buffer_len+= datalen3;
+            save_com_map_to_flash();
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
 
 
@@ -549,7 +549,7 @@
 //        else if (STRCMP(_u8Data, "$set_sleep_enable_time,") == 0)
 //    {
 //     uint16_t temp,buffer_len,datalen,datalen1,datalen2;
-//        
+//
 //     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
 //     char send_buffer[30]={0};
 //     if (u32SplitCnt < 3)
@@ -559,15 +559,15 @@
 //        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
 //        {
 //           HIDO_INT32 temp,temp1;
-//           temp=HIDO_UtilStrToInt(apcSplitStr[2]); 
+//           temp=HIDO_UtilStrToInt(apcSplitStr[2]);
 //           temp1=HIDO_UtilStrToInt(apcSplitStr[3]);
-//            
-//            
+//
+//
 //           g_com_map[IMU_ENABLE]=temp;
 //           g_com_map[NOMOVESLEEP_TIME]=temp1;
-//           
+//
 //           buffer_len = sprintf(send_buffer,"$rec_sleep_enable_time,");
-//           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+//           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
 //           buffer_len += datalen;
 //           datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
 //           buffer_len+= datalen1;
@@ -663,23 +663,24 @@
 uint8_t uwbsendnum,gpssendnum;
 
 extern uint8_t exercise_state;
-extern uint32_t step_count;    
-extern uint16_t gaodu;void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
+extern uint32_t step_count;
+extern uint16_t gaodu;
+void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
 {
     if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
     {
-        
 
-#ifdef JIBU_XIUMIAN				
+
+#ifdef JIBU_XIUMIAN
         HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
 //                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,0,0,0);
-                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
+                                               _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
 #else
         HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
-                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,0,0);
+                                               _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,0,0);
 
 #endif
-       
+
 //        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
 //        {
 //            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
@@ -687,7 +688,7 @@
 //        }
         //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
         //l_u32UploadBuffLen += u32Len;
-       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+        // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
 //        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
         {
 //            l_u32UdpsendTick = HIDO_TimerGetTick();
@@ -705,14 +706,14 @@
     static HIDO_CHAR l_acUploadBuff[2048];
     static HIDO_UINT32 l_u32UploadBuffLen = 0;
     static HIDO_UINT32 l_u32UdpsendTick = 0;
-	uint8_t i,temp;
-	
-	for(i=0;i<len;i++)
-	{
-		temp = *data++;
-		sprintf(&senddata[2*i],"%x",temp>>4);
-		sprintf(&senddata[2*i+1],"%x",temp&0xf);
-	}
+    uint8_t i,temp;
+
+    for(i=0; i<len; i++)
+    {
+        temp = *data++;
+        sprintf(&senddata[2*i],"%x",temp>>4);
+        sprintf(&senddata[2*i+1],"%x",temp&0xf);
+    }
     senddata[2*len] = 0x0d;
     senddata[2*len+1] = 0x0a;
 //    if(DBG_GetMode() == DBG_MODE_CFG)
@@ -722,13 +723,13 @@
     {
         memcpy(l_acUploadBuff + l_u32UploadBuffLen, senddata, 2*len+2);
         l_u32UploadBuffLen += 2*len+2;
-       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+        // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
 //        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
 //        {
 //            l_u32UdpsendTick = HIDO_TimerGetTick();
-            Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
-            uwbsendnum++;
-            l_u32UploadBuffLen = 0;
+        Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
+        uwbsendnum++;
+        l_u32UploadBuffLen = 0;
 //        }
 
 
@@ -739,30 +740,30 @@
     HIDO_UINT32 u32Len = 0;
     if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
     {
-			
+
         if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
         {   u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.,1",
                                        g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
-            userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
+                                       userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
         } else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
         {
             u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,2%s %s,1",
                                        g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
-            userkey_state,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]);
+                                       userkey_state,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]);
         } else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE)
         {
             u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,1",
                                        g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
-            userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
+                                       userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
         }
-				userkey_state=0;
+        userkey_state=0;
         Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
     }
 //	u32HeartLen = HIDO_UtilSnprintf((HIDO_CHAR *)acHeart, sizeof(acHeart), "$XTB,%X,%02u%%,%d.%d,%s",
-//                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID()); 
+//                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID());
 //    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
-    
-    
+
+
 }
 void TCPReceiveMessageReply(void)
 {
@@ -792,16 +793,16 @@
                 l_eTCPClientState = TCP_CLIENT_STATE_CONNECTING;
 
 
-               HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", g_com_map[IP_0], g_com_map[IP_1], g_com_map[IP_2], g_com_map[IP_3]);
+                HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", g_com_map[IP_0], g_com_map[IP_1], g_com_map[IP_2], g_com_map[IP_3]);
 
                 Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, g_com_map[PORT]);
 
 //             HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "123.57.87.125");
 //                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 8888);
-                
-//                          HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "111.198.60.6");    
+
+//                          HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "111.198.60.6");
 //                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 1234);
-               TCPfail_flag = 1;
+                TCPfail_flag = 1;
             }
             else
             {
@@ -814,16 +815,16 @@
         }
         else if (TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
         {
-           led4g=GREEN;
-           if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(60)||flag_first_TCPconnect||heartbeasend_flag)
-					 //if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
+            led4g=GREEN;
+            if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(60)||flag_first_TCPconnect||heartbeasend_flag)
+                //if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
             {
                 heartbeasend_flag=0;
                 flag_first_TCPconnect = 0;
                 l_u32HeartBeatTick = u32CurTick;
                 // 这里是自定义心跳
                 TCPHeartBeatUpload();
-								//UDPClient_UploadGPS();//先不弄心跳
+                //UDPClient_UploadGPS();//先不弄心跳
 //                HIDO_CHAR acHeart[128];
 //                HIDO_UINT32 u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message heart,%04x,00001,1,50,50,50,,,,\r\n", g_com_map[DEV_ID]);
 //                Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
@@ -859,12 +860,12 @@
     static HIDO_CHAR l_acUploadBuff[1024];
     static HIDO_UINT32 l_u32UploadBuffLen = 0;
     static HIDO_UINT32 l_u32UdpsendTick = 0;
-    
+
     if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
     {
         memcpy(l_acUploadBuff + l_u32UploadBuffLen, _pcGGA, u32Len);
         l_u32UploadBuffLen += u32Len;
-       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+        // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
         if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
         {
             l_u32UdpsendTick = HIDO_TimerGetTick();
@@ -909,17 +910,17 @@
 char str[19]= {"AT+IPR=115200;&W\r\n"};
 void AIR780E_Reset(void)
 {
-		PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
     delay_ms(1500);
     PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
     delay_ms(3000);
 //    Uart_ReConfigBaudRate(UART_ID_4G,115200);
 //    uart_send(UART_ID0, str,17, NULL);
 //    Uart_ReConfigBaudRate(UART_ID_4G,9600);
-} 
+}
 void AIR780E_Reset_usart(void)
 {
-	PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
     delay_ms(1500);
     PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
     delay_ms(3000);
@@ -941,7 +942,7 @@
 char str[17]= {"AT+IPR=9600;&W\r\n"};
 void AIR780E_Reset(void)
 {
-		PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
     delay_ms(1500);
     PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
     delay_ms(3000);
@@ -951,7 +952,7 @@
 }
 void AIR780E_Reset_usart(void)
 {
-	PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
     delay_ms(1500);
     PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
     delay_ms(3000);
diff --git a/keil/include/src/TCPClient.c.orig b/keil/include/src/TCPClient.c.orig
index 2ef8ca4..a72a78b 100644
--- a/keil/include/src/TCPClient.c.orig
+++ b/keil/include/src/TCPClient.c.orig
@@ -20,6 +20,12 @@
 #include "mk_4G.h"
 #include "mk_trace.h"
 #include "dw_app_anchor.h"
+#include "PCA9555.h"
+#include "WS2812.h"
+#include "PCA9555.h"
+#include "mk_flash.h"
+#include <serial_at_cmd_app.h>
+#include "DBG.h"
 /*******************************************************************************
  *                                  Macro                                      *
  *******************************************************************************/
@@ -38,20 +44,21 @@
  *                             Local Variable                                  *
  *******************************************************************************/
 HIDO_INT32 l_i32TCPClientID = 0;
-extern uint8_t gps_power_state,gps_timeout_flag;
+uint8_t gps_power_state;
 static E_TCPClientState l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
 static HIDO_UINT32 l_u32HeartBeatTick = 0;
 static HIDO_UINT8 l_au8CmdBuff[1024];
 
-uint8_t TCPfail_flag = 0,flag_first_TCPconnect=1;
-uint32_t TCPfailetimer;
+uint8_t TCPfail_flag = 0,flag_first_TCPconnect=0;
+static uint32_t TCPfailetimer;
 uint16_t ip0,ip1,ip2,ip3,port;
 
 /*******************************************************************************
  *                        Local Function Declaration                           *
  *******************************************************************************/
-HIDO_INT32 TCPClient_Heartbeat(HIDO_VOID);
+static HIDO_INT32 TCPClient_Heartbeat(HIDO_VOID);
 void TCPHeartBeatUpload(void);
+void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA);
 void TCPReceiveMessageReply(void);
 /*******************************************************************************
  *                             Local Function                                  *
@@ -65,102 +72,512 @@
  * Author            : www.hido-studio.com
  * Modified Date:    : 2021年1月9日
  *******************************************************************************/
-extern uint8_t gps_4g_flag,search_open_flag;
+extern uint8_t gps_4g_flag,search_open_flag,gps_open_flag,gps_wait_count,gps_need_data_flag,gps_wait_count2;
+uint8_t ota_flag;
 extern Operation_step UWB_work_state;
 Commend_Datestruct TCP_command;
 uint8_t result;
 char applyid[10];
+uint16_t receive_id;
+uint16_t g_com_position;
+uint16_t g_com_num;
+uint8_t testdata[100];
+uint8_t uwb_OpenClose_flag=1;
+extern uint32_t state_start_time;
+extern uint32_t uwb_time_count;
+extern uint8_t GPS_UPLOAD_FLAG;
+extern float nomove_count;
 static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
 {
     HIDO_CHAR *apcSplitStr[12];
     HIDO_UINT32 u32SplitCnt = 0;
+    
+    HIDO_UINT32 u32Len = 0;
 
-    LOG_INFO(TRACE_MODULE_APP, "收到数据\r\n");
+//    HIDO_Debug("%s\r\n", l_au8CmdBuff);
 
-
-
-    if(STRCMP(_u8Data, "$instruct,") == 0)
+    /* $config,id,gps_hz,ip,port */
+    if(STRCMP(_u8Data, "$config,") == 0)
     {
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        TCP_command.tagId = HIDO_UtilHexStrToInt(apcSplitStr[3]);
 
-        if(g_com_map[DEV_ID]==TCP_command.tagId)
+        if(u32SplitCnt < 5)
         {
-
-            TCP_command.type = HIDO_UtilStrToInt(apcSplitStr[1]);
-            memcpy(&applyid,apcSplitStr[2],8);
-            // TCP_command.applyID = HIDO_UtilStrToInt(apcSplitStr[2]);
-            TCP_command.gunLableId = HIDO_UtilHexStrToInt(apcSplitStr[4]);
-            TCP_command.warnDistance = HIDO_UtilStrToInt(apcSplitStr[5]);
-            TCP_command.alarmDistance = HIDO_UtilStrToInt(apcSplitStr[6]);
-            TCP_command.frequency = HIDO_UtilStrToInt(apcSplitStr[7]);
-            if(TCP_command.type>0&&TCP_command.type<8)
-                result = 1;
-
-            switch(TCP_command.type)
-            {
-            case BIND_SUCCESS:
-            {
-
-                g_com_map[ALARM_DISTANCE1]= TCP_command.warnDistance;
-                g_com_map[ALARM_DISTANCE2]=TCP_command.alarmDistance;
-                // g_com_map[SEND_4G_FREQUENCY]=1000/TCP_command.frequency;
-                if(g_com_map[BIND_DEV_ID]!=TCP_command.gunLableId)
-                {
-                    g_com_map[BIND_DEV_ID]=TCP_command.gunLableId;
-                    UWB_work_state = SEARCH_DEV;
-                    search_open_flag = 1;
-                }
-
-
-            }
-            break;
-            case UNBIND:
-                g_com_map[BIND_DEV_ID] = 0;
-                UWB_work_state = UN_BIND;
-
-
-                break;
-                // bind_resetbreak();
-            case OPEN_GNSS:
-                gps_4g_flag = 1;
-
-                break;
-
-            case CLOSE_VIBRATION:
-                g_com_map[MOTOR_ENABLE]=0;
-
-
-                break;
-            case OPEN_VIBRATION:
-                g_com_map[MOTOR_ENABLE]=1;
-
-
-                break;
-            case QUARY_INFORMATION:
-                //??
-
-                break;
-            case CHANGE_POLL_FREQUENCY:
-
-                g_com_map[SEND_4G_SECOND]=TCP_command.frequency*60;
-                break;
-            }
-            result = 1;
-            TCPHeartBeatUpload();
-            if(TCP_command.type!=QUARY_INFORMATION||TCP_command.type!=OPEN_GNSS)
-                save_com_map_to_flash();
-            result = 0;
-            memset(&applyid,0,8);
+            return HIDO_ERR;
         }
-    } else if(STRCMP(_u8Data, "$message_reply,") == 0)
-    {
-        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        TCP_command.tagId = HIDO_UtilHexStrToInt(apcSplitStr[1]);
-        if(g_com_map[DEV_ID]==TCP_command.tagId)
+
+        /* 设备ID检查 */
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
         {
+            HIDO_UINT32 u32Temp = 0;
+            HIDO_BOOL bChange = HIDO_FALSE;
+            HIDO_UINT8 au8IP[4];
+
+            /* GPS HZ */
+            u32Temp = HIDO_UtilStrToInt(apcSplitStr[2]);
+            if(u32Temp != g_com_map[GPS_HZ])
+            {
+                g_com_map[GPS_HZ] = u32Temp;
+                bChange = HIDO_TRUE;
+            }
+
+            /* IP=192.168.1.1 */
+            HIDO_UtilIPStringToByteArrary(apcSplitStr[3], au8IP);
+            /* IP变化 */
+            if((au8IP[0] != g_com_map[IP_0]) || (au8IP[1] != g_com_map[IP_1])
+                    || (au8IP[2] != g_com_map[IP_2]) || (au8IP[3] != g_com_map[IP_3]))
+            {
+                bChange = HIDO_TRUE;
+                g_com_map[IP_0] = au8IP[0];
+                g_com_map[IP_1] = au8IP[1];
+                g_com_map[IP_2] = au8IP[2];
+                g_com_map[IP_3] = au8IP[3];
+
+                l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
+            }
+
+            /* 端口=0-65535 */
+            if( g_com_map[PORT] != HIDO_UtilStrToInt(apcSplitStr[4]))
+            {
+                g_com_map[PORT] = HIDO_UtilStrToInt(apcSplitStr[4]);
+                bChange = HIDO_TRUE;
+            }
+
+            if(bChange)
+            {
+                save_com_map_to_flash();
+              g_com_map[CNT_RESTART] = 1;
+            }
         }
     }
+    /* $update,id,url,version */
+    else if(STRCMP(_u8Data, "$update,") == 0)
+    {
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+
+        if(u32SplitCnt < 4)
+        {
+            return HIDO_ERR;
+        }
+
+        /* 设备ID检查 */
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+//              ota_flag=1;
+//              LOG_INFO(TRACE_MODULE_APP,"OTA文件地址名称:%s.\r\n",(char *)&apcSplitStr[2]);
+//              uart_send(UART_ID1, (char *)&apcSplitStr[2],strlen(apcSplitStr[3]), NULL);
+//            memcpy(testdata,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
+//              OTA_Start((HIDO_UINT8*)apcSplitStr[2]);
+            
+//            g_com_map[OTA_FLAG]=1;
+//            g_com_map[OTA_URL_CHANGDU]=strlen(apcSplitStr[2]) + 1;
+//            memcpy(g_com_map+OTA_URL_INDEX,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
+//            save_com_map_to_flash();
+//            delay_us(100000);
+            uint16_t tmp = 0xCCCC;
+            uint8_t flag = 0;
+            __disable_irq();
+            result=flash_open(FLASH_ID0,NULL);
+            if(!result) 
+            {
+            flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG
+            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp));
+            flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE);//擦除APPFLAG
+            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1);
+            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP+1, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1);
+            }
+            __enable_irq();
+            NVIC_SystemReset(); //软复位回到bootloader
+        }
+    }
+    /* $getlog,id,url */
+    else if(STRCMP(_u8Data, "$getlog,") == 0)
+    {
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+
+        if(u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
+
+        /* 设备ID检查 */
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+#if 0
+            Log_Upload(apcSplitStr[2]);
+#endif
+        }
+    }    /* $control,id,bepper,time */
+    else if(STRCMP(_u8Data, "$control,") == 0)
+    {
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     if(u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
+
+        /* ?豸ID??? */
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            if(strcmp(apcSplitStr[2],"beeper")==0)
+            {
+               
+//                    beepontime = HIDO_UtilStrToInt(apcSplitStr[3]);
+                    
+            }
+            
+                if(strcmp(apcSplitStr[2],"TTS")==0)
+                {
+                    PCA9555_Set_One_Value_Output(TTS_ENABLE,1);         //打开TTS电源
+                    delay_ms(800);                //再短一点,会丢失语音的第一个字,不是不读,而是就像没有下发第一个字
+                    
+//                    TTS_Play((HIDO_UINT8 *)apcSplitStr[3], strlen(apcSplitStr[3]));             //服务器语音播报
+                    
+                    
+                    u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$Receivevoice,%X\r\n",
+                    g_com_map[DEV_ID]);
+                    
+                    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+                    
+                   
+                }
+          
+        }
+    }
+    else if(STRCMP(_u8Data, "$userdata,") == 0)
+    {
+//        if(DBG_GetMode() == DBG_MODE_CFG)
+//        HIDO_Debug2("%s\r\n", l_au8CmdBuff);
+    }
+    else if(STRCMP(_u8Data, "$settone,") == 0)
+    {
+        HIDO_DataStruct stData;
+        HIDO_DataStruct stId;
+
+        if(HIDO_UtilParseFormat(_u8Data, _u32Len, "$settone,%p,%p\r\n", &stId, &stData) == 2)
+        {
+            ((char *)stId.m_pData)[stId.m_u32Len] = '\0';
+            if(g_com_map[DEV_ID] == HIDO_UtilHexStrToInt((char *)stId.m_pData))
+            {
+//                TONE_Play((HIDO_UINT8 *)stData.m_pData, stData.m_u32Len);
+                
+                u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$Receivevoice,%X\r\n",
+                g_com_map[DEV_ID]);                                                                      //TTS收到回复
+                
+                Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+            }
+        }
+    }else if(STRCMP(_u8Data, "$setpara,") == 0)
+    {
+        uint16_t tempindex,tempval;
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            if(u32SplitCnt < 2)
+            {
+                return HIDO_ERR;
+            }
+            tempindex = HIDO_UtilStrToInt(apcSplitStr[2]);
+            tempval = HIDO_UtilStrToInt(apcSplitStr[3]);
+            if(tempindex == MOTOR_ONTIME_INDEX)
+            {
+//              beepontime = tempval;
+            }else{
+            if(tempindex < COM_MAP_SIZE)
+            g_com_map[tempindex] = tempval;
+            save_com_map_to_flash();
+            g_com_map[CNT_RESTART] = 1;
+            }
+        }
+    }
+    else if(STRCMP(_u8Data, "$readpara,") == 0)
+    {
+        uint16_t tempindex,templen,buffer_len,datalen;
+        char send_buffer[500];
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            if(u32SplitCnt < 2)
+            {
+                return HIDO_ERR;
+            }
+            tempindex = HIDO_UtilStrToInt(apcSplitStr[2]);
+            templen = HIDO_UtilStrToInt(apcSplitStr[3]);
+						if(templen>10)
+							templen=10;
+            buffer_len = sprintf(send_buffer,"$replypara,");
+            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            buffer_len += datalen;
+            for(uint16_t i=tempindex;i<templen+tempindex;i++)
+            {
+                datalen = sprintf(&send_buffer[buffer_len],"%d,",g_com_map[i]);
+                buffer_len += datalen;
+            }
+            send_buffer[buffer_len++] = 'e';
+            send_buffer[buffer_len++] = 'n';
+            send_buffer[buffer_len++] = 'd';
+            send_buffer[buffer_len++] = 0x0d;
+            send_buffer[buffer_len++] = 0x0a;
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+    }
+    /* $download_audio,http://39.106.210.13:8080/hfs/xxx.bin */
+    else if (STRCMP(_u8Data, "$download_audio,") == 0)
+    {
+        uint16_t buffer_len,datalen;
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        char send_buffer[20]={0};
+        if (u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            uint16_t tmp = 0xCCCC;
+            uint8_t flag = 1;
+//            buffer_len = sprintf(send_buffer,"$rec_voicece,");
+//            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+//            buffer_len += datalen;
+//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+            __disable_irq();
+            result = flash_open(FLASH_ID0, NULL);
+            if (!result)
+            {
+                flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE); // 擦除APPFLAG
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t *)&tmp, sizeof(tmp));
+                flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE); // 擦除APPFLAG
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1);
+                flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP + 1, (HIDO_UINT8 *)apcSplitStr[2], strlen(apcSplitStr[2]) + 1);
+            }
+            __enable_irq();
+            NVIC_SystemReset(); // 软复位回到bootloader
+        }
+    }
+    /* $play_audio,0-9 */
+    else if (STRCMP(_u8Data, "$play_audio,") == 0)
+    {
+        uint16_t buffer_len,datalen,datalen1,temp;
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        char send_buffer[20]={0};
+        
+        if (u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            PCA9555_Set_One_Value_Output(TTS_ENABLE,1);//输出高电平切换为5V输入
+            delay_ms(100);
+            WT588E_PLAY(atoi(apcSplitStr[2]));
+            temp= HIDO_UtilStrToInt(apcSplitStr[2]);
+            buffer_len = sprintf(send_buffer,"$Receivevoice,");
+            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            buffer_len += datalen;
+            datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+            buffer_len+= datalen1;
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+    }
+//    else if (STRCMP(_u8Data, "$set_gpsuwbpara,") == 0)
+//    {
+//        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+//        uint16_t buffer_len,datalen;
+//        char send_buffer[20]={0};
+//        if (u32SplitCnt < 6)
+//        {
+//            return HIDO_ERR;
+//        }
+//        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+//        {
+//            HIDO_INT32 gpskaiguan,uwbkaiguan,gpspinlv,uwbpinlv,gpsbaudrate1;
+//            gpskaiguan= HIDO_UtilStrToInt(apcSplitStr[2]);
+//            g_com_map[GPSENBLE] = gpskaiguan;
+//            uwbkaiguan= HIDO_UtilStrToInt(apcSplitStr[3]);
+//            g_com_map[UWBENBLE] = uwbkaiguan;
+//            gpspinlv= HIDO_UtilStrToInt(apcSplitStr[4]);
+//            g_com_map[GPSFrequency] = gpspinlv;
+//            uwbpinlv= HIDO_UtilStrToInt(apcSplitStr[5]);
+//            g_com_map[UWBFrequency] = uwbpinlv;
+//            gpsbaudrate1= HIDO_UtilStrToInt(apcSplitStr[6]);
+//            g_com_map[GPSBAUDRATE1_INDEX] = gpsbaudrate1>>16;
+//            g_com_map[GPSBAUDRATE2_INDEX] = gpsbaudrate1;
+//            
+//            
+//            if((g_com_map[GPSENBLE]||g_com_map[GPSENBLE]==0)
+//             &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
+//             &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
+//             &&(g_com_map[UWBFrequency]==1||g_com_map[UWBFrequency]==3||g_com_map[UWBFrequency]==5||g_com_map[UWBFrequency]==10)
+//             &&(gpsbaudrate1==9600||gpsbaudrate1==115200)
+//            )
+//            {
+//            save_com_map_to_flash();
+////            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+//            g_com_map[CNT_RESTART] = 1;
+//            }
+//            else
+//            {
+//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,10);
+//            }
+//        }
+//    }
+    else if (STRCMP(_u8Data, "$read_gpsuwbpara,") == 0)
+    {
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+        uint16_t buffer_len,datalen;
+        char send_buffer[100]={0};
+        if (u32SplitCnt < 1)
+        {
+            return HIDO_ERR;
+        }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+            uint16_t checksum = 0;
+            send_buffer[0] = 0x55;
+            send_buffer[1] = 0xAA;
+            send_buffer[2] = 0x03;
+            send_buffer[3] = 160+5;
+            send_buffer[4] = CMD_REPLY;
+            send_buffer[5] = 0;
+            send_buffer[6] = 160;
+            memcpy(&send_buffer[7], &g_com_map, 160);
+            for(uint8_t i = 0; i<(160+5); i++)
+            {
+                checksum += send_buffer[2+i];
+            }
+            checksum = Checksum_u16(&send_buffer[2],5+160);
+            memcpy(&send_buffer[7+160],&checksum,2);
+            
+            Socket_Send(l_i32TCPClientID,send_buffer,9+160);
+        }
+    }
+    else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen,datalen1;
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[30]={0};
+     if (u32SplitCnt < 3)
+     {
+       return HIDO_ERR;
+     }
+       if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+             temp=HIDO_UtilStrToInt(apcSplitStr[2]);
+             if(temp==1)
+             {
+              OpenUWB();
+              uwb_OpenClose_flag=1;
+             }
+             else if(temp==0)
+             {
+              CloseUWB();
+              uwb_OpenClose_flag=0;
+             }
+          buffer_len = sprintf(send_buffer,"$rec_uwb_work,");
+          datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+          buffer_len += datalen;
+          datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+          buffer_len+= datalen1;
+          Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+       
+    }
+    else if (STRCMP(_u8Data, "$set_uwb_frequency,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen,datalen1;
+        
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[30]={0};
+     if (u32SplitCnt < 3)
+     {
+       return HIDO_ERR;
+     }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+           HIDO_INT32 frequency;
+           frequency=HIDO_UtilStrToInt(apcSplitStr[2]);        
+           g_com_map[UWBFrequency]=frequency;
+           
+           state_start_time=0;
+           uwb_time_count=0; 
+           buffer_len = sprintf(send_buffer,"$rec_uwbfrequency,");
+           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+           buffer_len += datalen;
+           datalen1=sprintf(&send_buffer[buffer_len],"%d",frequency);
+           buffer_len+= datalen1;
+           save_com_map_to_flash();
+           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+
+
+    }
+    else if (STRCMP(_u8Data, "$set_gpsuwb_fet,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen,datalen1,datalen2,datalen3;
+        
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[30]={0};
+     if (u32SplitCnt < 3)
+     {
+       return HIDO_ERR;
+     }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+           HIDO_INT32 frequency,temp,temp1;
+           frequency=HIDO_UtilStrToInt(apcSplitStr[2]); 
+           temp=HIDO_UtilStrToInt(apcSplitStr[3]); 
+           temp1=HIDO_UtilStrToInt(apcSplitStr[4]);              
+           g_com_map[GPSFrequency]=frequency;
+           g_com_map[IMU_ENABLE]=temp;
+           g_com_map[NOMOVESLEEP_TIME]=temp1;         
+           GPS_UPLOAD_FLAG=0;
+           nomove_count=0;
+           buffer_len = sprintf(send_buffer,"$rec_gpsuwb_fet,");
+           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+           buffer_len += datalen;
+           datalen1=sprintf(&send_buffer[buffer_len],"%d,",frequency);
+           buffer_len+= datalen1;
+           datalen2=sprintf(&send_buffer[buffer_len],"%d,",temp);
+           buffer_len+= datalen2;
+           datalen3=sprintf(&send_buffer[buffer_len],"%d",temp1);
+           buffer_len+= datalen3;    
+           save_com_map_to_flash();            
+           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+
+
+    }
+//        else if (STRCMP(_u8Data, "$set_sleep_enable_time,") == 0)
+//    {
+//     uint16_t temp,buffer_len,datalen,datalen1,datalen2;
+//        
+//     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+//     char send_buffer[30]={0};
+//     if (u32SplitCnt < 3)
+//     {
+//       return HIDO_ERR;
+//     }
+//        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+//        {
+//           HIDO_INT32 temp,temp1;
+//           temp=HIDO_UtilStrToInt(apcSplitStr[2]); 
+//           temp1=HIDO_UtilStrToInt(apcSplitStr[3]);
+//            
+//            
+//           g_com_map[IMU_ENABLE]=temp;
+//           g_com_map[NOMOVESLEEP_TIME]=temp1;
+//           
+//           buffer_len = sprintf(send_buffer,"$rec_sleep_enable_time,");
+//           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+//           buffer_len += datalen;
+//           datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+//           buffer_len+= datalen1;
+//           datalen2=sprintf(&send_buffer[buffer_len],"%d",temp1);
+//           buffer_len+= datalen2;
+//           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+//        }
+
+
+//    }
     return HIDO_OK;
 }
 
@@ -209,6 +626,7 @@
         i32Ret = Socket_Recv(l_i32TCPClientID, l_au8CmdBuff, sizeof(l_au8CmdBuff) - 1, &u32RecvLen);
         if(HIDO_OK == i32Ret)
         {
+            l_au8CmdBuff[u32RecvLen]=0;
             TCPClient_DataProc(l_au8CmdBuff, u32RecvLen);
         }
         break;
@@ -236,25 +654,116 @@
 uint8_t alarm_type;
 extern double jd,wd;
 extern int32_t distance;
+extern  uint8_t userkey_state;
+uint8_t gps_timeout_flag;
+extern uint8_t GPS_GGAmessage[150];
+uint16_t g_spsum,g_snum,ave_sp;
+extern uint8_t GPS_ParseGGA_data[256];
+extern uint8_t GPS_ParseGGA_changdu;
+uint8_t uwbsendnum,gpssendnum;
+
+extern uint8_t exercise_state;
+extern uint32_t step_count;    
+extern uint16_t gaodu;void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
+{
+    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
+    {
+        
+
+#ifdef JIBU_XIUMIAN				
+        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
+//                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,0,0,0);
+                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
+#else
+        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
+                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,0,0);
+
+#endif
+       
+//        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
+//        {
+//            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
+//            l_u32UploadBuffLen += u32Len;
+//        }
+        //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
+        //l_u32UploadBuffLen += u32Len;
+       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
+            Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+            gpssendnum++;
+//            l_u32UploadBuffLen = 0;
+        }
+
+
+    }
+}
+char senddata[2048];
+void HexToAsciiSendUDP(uint8_t* data,uint8_t len)
+{
+    static HIDO_CHAR l_acUploadBuff[2048];
+    static HIDO_UINT32 l_u32UploadBuffLen = 0;
+    static HIDO_UINT32 l_u32UdpsendTick = 0;
+	uint8_t i,temp;
+	
+	for(i=0;i<len;i++)
+	{
+		temp = *data++;
+		sprintf(&senddata[2*i],"%x",temp>>4);
+		sprintf(&senddata[2*i+1],"%x",temp&0xf);
+	}
+    senddata[2*len] = 0x0d;
+    senddata[2*len+1] = 0x0a;
+//    if(DBG_GetMode() == DBG_MODE_CFG)
+//    Uart_Send(0, (HIDO_UINT8 *) senddata, 2*len+2);
+//    UDPClient_Uploadhex(senddata,2*len+2);
+    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
+    {
+        memcpy(l_acUploadBuff + l_u32UploadBuffLen, senddata, 2*len+2);
+        l_u32UploadBuffLen += 2*len+2;
+       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+//        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
+            Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
+            uwbsendnum++;
+            l_u32UploadBuffLen = 0;
+//        }
+
+
+    }
+}
 void TCPHeartBeatUpload(void)
 {
-    HIDO_CHAR acHeart[200];
-    HIDO_UINT32 u32HeartLen;
-//    if(alarm_type)
-//    {
-//        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,alarm,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
-//                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
-//    } else {
-//        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,heart,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
-//                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
-//    }
-	
-	u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,GPS,%04x,%d,%lf,%lf\r\n", \
-                               g_com_map[DEV_ID],gps_timeout_flag,jd,wd);
-
-    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
+    HIDO_UINT32 u32Len = 0;
+    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
+    {
+			
+        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
+        {   u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.,1",
+                                       g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
+            userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
+        } else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
+        {
+            u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,2%s %s,1",
+                                       g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
+            userkey_state,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]);
+        } else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE)
+        {
+            u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,1",
+                                       g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\
+            userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
+        }
+				userkey_state=0;
+        Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+    }
+//	u32HeartLen = HIDO_UtilSnprintf((HIDO_CHAR *)acHeart, sizeof(acHeart), "$XTB,%X,%02u%%,%d.%d,%s",
+//                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID()); 
+//    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
+    
+    
 }
-
 void TCPReceiveMessageReply(void)
 {
     HIDO_CHAR acHeart[200];
@@ -264,11 +773,12 @@
 void _4GAlarmUpload(uint8_t alarm)
 {
     alarm_type = alarm;
-    //TCPHeartBeatUpload();
+    TCPHeartBeatUpload();
     if(alarm_type == 2)
         alarm_type = 0;
 }
-
+extern uint32_t uwbled,rtkled,led4g,powerled;
+extern uint8_t heartbeasend_flag;
 HIDO_INT32 TCPClient_Poll(void)
 {
     if (Internet_IsIPReady() == HIDO_TRUE)
@@ -276,14 +786,15 @@
         HIDO_UINT32 u32CurTick = HIDO_TimerGetTick();
         if (TCP_CLIENT_STATE_IDLE == l_eTCPClientState)
         {
+            led4g=RED;
             if (!TCPfail_flag)
             {
                 l_eTCPClientState = TCP_CLIENT_STATE_CONNECTING;
 
 
-                HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", ip0,ip1, ip2, ip3);
+               HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", g_com_map[IP_0], g_com_map[IP_1], g_com_map[IP_2], g_com_map[IP_3]);
 
-                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, port);
+                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, g_com_map[PORT]);
 
 //             HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "123.57.87.125");
 //                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 8888);
@@ -303,16 +814,16 @@
         }
         else if (TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
         {
-
-
-
-      //      if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
-            if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(15)||flag_first_TCPconnect)
+           led4g=GREEN;
+           if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(60)||flag_first_TCPconnect||heartbeasend_flag)
+					 //if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
             {
+                heartbeasend_flag=0;
                 flag_first_TCPconnect = 0;
                 l_u32HeartBeatTick = u32CurTick;
                 // 这里是自定义心跳
-                //TCPHeartBeatUpload();
+                TCPHeartBeatUpload();
+								//UDPClient_UploadGPS();//先不弄心跳
 //                HIDO_CHAR acHeart[128];
 //                HIDO_UINT32 u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message heart,%04x,00001,1,50,50,50,,,,\r\n", g_com_map[DEV_ID]);
 //                Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
@@ -321,6 +832,7 @@
     }
     else
     {
+        led4g=RED;
         l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
     }
 
@@ -342,7 +854,29 @@
 
     return HIDO_OK;
 }
+HIDO_INT32 TCPClient_Uploadhex(uint8_t *_pcGGA,uint16_t u32Len)
+{
+    static HIDO_CHAR l_acUploadBuff[1024];
+    static HIDO_UINT32 l_u32UploadBuffLen = 0;
+    static HIDO_UINT32 l_u32UdpsendTick = 0;
+    
+    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
+    {
+        memcpy(l_acUploadBuff + l_u32UploadBuffLen, _pcGGA, u32Len);
+        l_u32UploadBuffLen += u32Len;
+       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+        {
+            l_u32UdpsendTick = HIDO_TimerGetTick();
+            Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
+            l_u32UploadBuffLen = 0;
+        }
 
+
+    }
+
+    return HIDO_OK;
+}
 HIDO_BOOL TCPClient_IsSendOver(HIDO_VOID)
 {
     return Socket_IsSendQueueEmpty(l_i32TCPClientID);
@@ -371,17 +905,71 @@
 
     return HIDO_OK;
 }
+#ifdef _4G_115200
+char str[19]= {"AT+IPR=115200;&W\r\n"};
+void AIR780E_Reset(void)
+{
+		PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
+    delay_ms(3000);
+//    Uart_ReConfigBaudRate(UART_ID_4G,115200);
+//    uart_send(UART_ID0, str,17, NULL);
+//    Uart_ReConfigBaudRate(UART_ID_4G,9600);
+} 
+void AIR780E_Reset_usart(void)
+{
+	PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
+    delay_ms(3000);
+    Uart_ReConfigBaudRate(UART_ID_4G,9600);
+    uart_send(UART_ID0, str,19, NULL);
+    Uart_ReConfigBaudRate(UART_ID_4G,115200);
+    delay_ms(200);
+    rtkled=GREEN;
+    uwbled=GREEN;
+    led4g=GREEN;
+    powerled=GREEN;
+    Set4LEDColor(uwbled,rtkled,led4g,powerled);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);
+    NVIC_SystemReset();
+}
+#else
 char str[17]= {"AT+IPR=9600;&W\r\n"};
 void AIR780E_Reset(void)
 {
-    gps_air780_power_change(gps_power_state,0);//开启gps,4G
-    delay_us(1500000);
-    gps_air780_power_change(gps_power_state,1);//开启gps,4G
-//    delay_us(3000000);
+		PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
+    delay_ms(3000);
 //    Uart_ReConfigBaudRate(UART_ID_4G,115200);
 //    uart_send(UART_ID0, str,17, NULL);
 //    Uart_ReConfigBaudRate(UART_ID_4G,9600);
 }
+void AIR780E_Reset_usart(void)
+{
+	PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
+    delay_ms(3000);
+    Uart_ReConfigBaudRate(UART_ID_4G,115200);
+    uart_send(UART_ID0, str,17, NULL);
+    Uart_ReConfigBaudRate(UART_ID_4G,9600);
+    delay_ms(200);
+    rtkled=GREEN;
+    uwbled=GREEN;
+    led4g=GREEN;
+    powerled=GREEN;
+    Set4LEDColor(uwbled,rtkled,led4g,powerled);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+    delay_ms(1500);
+    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);
+    NVIC_SystemReset();
+}
+#endif
 uint8_t IfTCPConnected(void)
 {
     if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
diff --git a/keil/include/src/TCPClient_1.c b/keil/include/src/TCPClient_1.c
index 98847d6..18d8003 100644
--- a/keil/include/src/TCPClient_1.c
+++ b/keil/include/src/TCPClient_1.c
@@ -34,7 +34,7 @@
     TCP_CLIENT_STATE_IDLE,
     TCP_CLIENT_STATE_CONNECTING,
     TCP_CLIENT_STATE_CONNECTED,
-}E_TCPClientState;
+} E_TCPClientState;
 
 /*******************************************************************************
  *                             Local Variable                                  *
@@ -65,16 +65,16 @@
 //uint16_t ceshichangdu;
 static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
 {
-    
+
     l_u32HeartBeatTick = HIDO_TimerGetTick();
 //    memcpy(ceshidata,_u8Data,_u32Len);
 //    ceshichangdu=_u32Len;
     if(_u32Len!=0)
-    if(uart_send(UART_ID1, _u8Data, _u32Len,NULL) != HIDO_OK)
-    {
-        HIDO_Debug("RTK Data Send Error\r\n");
-    }
-    
+        if(uart_send(UART_ID1, _u8Data, _u32Len,NULL) != HIDO_OK)
+        {
+            HIDO_Debug("RTK Data Send Error\r\n");
+        }
+
     HIDO_Debug("%uB RTK Data Sent\r\n", _u32Len);
 
     return HIDO_OK;
@@ -93,44 +93,44 @@
 {
     switch(_eEvent)
     {
-        case SOCKET_EVENT_CONNECT_FAILED:
-        {
-            if(l_eTCPClientState ==  TCP_CLIENT_STATE_CONNECTING)
-            {
-                l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
-            }
-            
-            break;
-        }
-        case SOCKET_EVENT_CONNECTED:
-        {
-            if(l_eTCPClientState ==  TCP_CLIENT_STATE_CONNECTING)
-            {
-                l_eTCPClientState = TCP_CLIENT_STATE_CONNECTED;
-            }
-            break;
-        }
-        case SOCKET_EVENT_CLOSED:
+    case SOCKET_EVENT_CONNECT_FAILED:
+    {
+        if(l_eTCPClientState ==  TCP_CLIENT_STATE_CONNECTING)
         {
             l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
-            break;
         }
-        case SOCKET_EVENT_RECV_DATA:
-        {
-            HIDO_INT32 i32Ret = 0;
-            HIDO_UINT32 u32RecvLen = 0;
 
-            i32Ret = Socket_Recv(l_i32TCPClientID, l_au8CmdBuff, sizeof(l_au8CmdBuff) - 1, &u32RecvLen);
-            if(HIDO_OK == i32Ret)
-            {
-                TCPClient_DataProc(l_au8CmdBuff, u32RecvLen);
-            }
-            break;
-        }
-        default:
+        break;
+    }
+    case SOCKET_EVENT_CONNECTED:
+    {
+        if(l_eTCPClientState ==  TCP_CLIENT_STATE_CONNECTING)
         {
-            break;
+            l_eTCPClientState = TCP_CLIENT_STATE_CONNECTED;
         }
+        break;
+    }
+    case SOCKET_EVENT_CLOSED:
+    {
+        l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
+        break;
+    }
+    case SOCKET_EVENT_RECV_DATA:
+    {
+        HIDO_INT32 i32Ret = 0;
+        HIDO_UINT32 u32RecvLen = 0;
+
+        i32Ret = Socket_Recv(l_i32TCPClientID, l_au8CmdBuff, sizeof(l_au8CmdBuff) - 1, &u32RecvLen);
+        if(HIDO_OK == i32Ret)
+        {
+            TCPClient_DataProc(l_au8CmdBuff, u32RecvLen);
+        }
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -160,7 +160,7 @@
                 l_eTCPClientState = TCP_CLIENT_STATE_CONNECTING;
 
                 HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", g_com_map[TCP_IP_0],
-                        g_com_map[TCP_IP_1], g_com_map[TCP_IP_2], g_com_map[TCP_IP_3]);
+                                  g_com_map[TCP_IP_1], g_com_map[TCP_IP_2], g_com_map[TCP_IP_3]);
 
                 Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, g_com_map[TCP_PORT]);
             }
diff --git a/keil/include/src/gps.c.orig b/keil/include/src/gps.c.orig
index e02ad9f..f57d7f3 100644
--- a/keil/include/src/gps.c.orig
+++ b/keil/include/src/gps.c.orig
@@ -1,112 +1,882 @@
-#include "board.h"
-#include "TCPClient.h"
-#include "global_param.h"
-#define GPS_OPEN_TIME_OUT  240
-#define GPS_RESTART_TIME1  1200
-#define GPS_RESTART_TIME2  120
-#define GPS_RESTART_TIME3  60
-#define GPS_OPEN_TIME_OUT1 600
-extern uint16_t gps_wait_count;
-uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag,gps_timeout_flag,gps_need_data_flag = 1,gps_1h_open_flag=1;
-extern uint8_t air780_success_state;
-extern HIDO_INT32 l_i32TCPClientID;
-extern double jd,wd;
-void GPS_Poll(void)
+#include "stdio.h"
+#include "stdarg.h"
+#include "stdlib.h"
+#include "string.h"
+//#include "stm32l0xx_hal.h"
+#include "math.h"
+#include "HIDO_Util.h"
+#include "HIDO_Debug.h"
+#include "HIDO_Timer.h"
+#include "DBG.h"
+#include "GPS.h"
+//#include "GPIO.h"
+#include "Uart.h"
+#include "WS2812.h"
+#define GPS_DBG(level, fmt, ...) HIDO_Debug(fmt, __VA_ARGS__)
+#include <global_param.h>
+#define GPS_UART_RX_BUF_SIZE                    1000
+#define GPS_UART_TX_BUF_SIZE                    (4)
+
+typedef enum
 {
+    GPS_RECV_STATE_IDLE = 0,
+    GPS_RECV_STATE_HEAD,
+    GPS_RECV_STATE_CR,
+    GPS_RECV_STATE_LF,
+} E_GPSRecvState;
 
-    if(gps_4g_flag||gps_uwb_flag) {
-        gps_power_state = 1;  //打开GPS电源
-        if(!gps_timeout_flag) {
-            if(gps_need_data_flag) {
-                gps_wait_count++;
-                if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //超时切换工作状态
-                    gps_timeout_flag=1;//串口添加改变timeout逻辑
-                    gps_wait_count=0;
-                    gps_need_data_flag=0;//切换为关闭模式
-                }
-            } else {
-                gps_wait_count++;
-                gps_power_state=0;//关闭GPS
-                if(gps_wait_count>GPS_RESTART_TIME2) {
-                    gps_power_state=1;//开启GPS
-                    gps_need_data_flag=1;
-                    gps_wait_count=0;
-                }
-            }
-        } else { //超时工作状态
-            if(gps_need_data_flag) {
-                gps_wait_count++;
-                if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //超时切换工作状态
-                    gps_timeout_flag=1;
-                    gps_need_data_flag=0;
-                    gps_wait_count=0;
-                }
-            } else {
-                gps_wait_count++;
-                gps_power_state=0;//关闭GPS
-                if(gps_wait_count>GPS_RESTART_TIME1) {
-                    gps_power_state=1;//开启GPS
-                    gps_need_data_flag=1;
-                    gps_wait_count=0;
-                }
-            }
-
-        }
-    } else {
-        gps_power_state=0;//关闭gps
-        gps_wait_count=0;
-        gps_timeout_flag=0;
-        gps_need_data_flag=1;
-    }
-}
-
-
-void GPS_Poll_1h(void)
+typedef struct
 {
+    E_GPSRecvState m_eState;
+    HIDO_CHAR m_acRecvBuf[128];
+    HIDO_UINT32 m_u32RecvLen;
+} ST_GPSRecv;
 
-    if(gps_1h_open_flag) {
-        
-            if(gps_need_data_flag) {
-							gps_power_state = 1;  //打开GPS电源
-							air780_success_state=1;//4G亮起
-                gps_wait_count++;
-                if(gps_wait_count>=GPS_OPEN_TIME_OUT1) { //超时切换工作状态
-                    gps_timeout_flag=1;//串口添加改变timeout逻辑
-                    gps_wait_count=0;
-                    gps_need_data_flag=0;//切换为关闭模式
-									TCPHeartBeatUpload();//上传GPS超时无效数据
-                }
-            } else {
-                gps_wait_count++;
-                gps_power_state=0;//关闭GPS
-								air780_success_state=0;//关闭gps1234
-                if(gps_wait_count>GPS_RESTART_TIME3) {
-                    gps_power_state=1;//开启GPS
-                    gps_need_data_flag=1;
-                    gps_wait_count=0;
-                }
-            }
-    } else {
-        gps_power_state=0;//关闭gps
-        gps_wait_count=0;
-        gps_timeout_flag=0;
-        gps_need_data_flag=1;
-    }
-}
-void GpsConrol(uint8_t flag_4g_uwb,uint8_t open_close)
+static HIDO_UINT8 l_au8GPSUartRxBuf[GPS_UART_RX_BUF_SIZE];
+static HIDO_UINT8 l_au8GPSUartTxBuf[GPS_UART_TX_BUF_SIZE];
+
+//static ST_GPIO l_astGPSPin[GPS_PIN_LAST];
+static HIDO_BOOL l_bIsPowerOn = HIDO_FALSE;
+static ST_GPSRecv l_stGPSRecv;
+static FN_GPSEventCallback l_fnGPSEventCallback;
+ST_GPS l_stGPS;
+static HIDO_UINT8 l_u8PosState = 0;
+/*******************************************************************************
+ * Function Name     : GPS_AddHours
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+static void GPS_AddHours(ST_GPS *_pstGPS, HIDO_UINT32 _u32Hours)
 {
-    if(gps_4g_flag==0&&gps_uwb_flag==0)
-        if(open_close)
-        {
-            gps_wait_count = 0;
-            gps_need_data_flag = 1;
-            gps_timeout_flag = 0;
-        }
-    if(flag_4g_uwb)
+    _pstGPS->m_u8Hour += _u32Hours;
+    if (_pstGPS->m_u8Hour >= 24)
     {
-        gps_4g_flag = open_close;
-    } else {
-        gps_uwb_flag = open_close;
+        _pstGPS->m_u8Hour -= 24;
+        _pstGPS->m_u8Day++;
+        switch (_pstGPS->m_u8Mon)
+        {
+            case 1:
+            case 3:
+            case 5:
+            case 7:
+            case 8:
+            case 10:
+                if (_pstGPS->m_u8Day > 31)
+                {
+                    _pstGPS->m_u8Day = 1;
+                    _pstGPS->m_u8Mon++;
+                }
+                break;
+            case 2:
+                if (0 == (_pstGPS->m_u16Year % 4))
+                {
+                    if (_pstGPS->m_u8Day > 29)
+                    {
+                        _pstGPS->m_u8Day = 1;
+                        _pstGPS->m_u8Mon++;
+                    }
+                }
+                else
+                {
+                    if (_pstGPS->m_u8Day > 28)
+                    {
+                        _pstGPS->m_u8Day = 1;
+                        _pstGPS->m_u8Mon++;
+                    }
+                }
+                break;
+            case 4:
+            case 6:
+            case 9:
+            case 11:
+                if (_pstGPS->m_u8Day > 30)
+                {
+                    _pstGPS->m_u8Day = 1;
+                    _pstGPS->m_u8Mon++;
+                }
+                break;
+            case 12:
+                if (_pstGPS->m_u8Day > 31)
+                {
+                    _pstGPS->m_u8Day = 1;
+                    _pstGPS->m_u8Mon = 1;
+                    _pstGPS->m_u16Year++;
+                }
+                break;
+        }
+    }
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseDate
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseDate(HIDO_DataStruct *_pstDateData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstDateData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *)_pstDateData->m_pData;
+
+    if (u32Len != 6)
+    {
+        return HIDO_ERR;
     }
 
-}
\ No newline at end of file
+    _pstGPS->m_u8Day = HIDO_UtilStrBufToInt(pcStart, 2);
+    _pstGPS->m_u8Mon = HIDO_UtilStrBufToInt(pcStart + 2, 2);
+    _pstGPS->m_u16Year = HIDO_UtilStrBufToInt(pcStart + 4, 2) + 2000;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseState
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseState(HIDO_DataStruct *_pstStateData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstStateData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstStateData->m_pData;
+
+    if (u32Len != 1)
+    {
+        return HIDO_ERR;
+    }
+
+    if(pcStart[0] == 'A')
+    {
+        _pstGPS->m_eState = GPS_STATE_VALID;
+    }
+    else
+    {
+        _pstGPS->m_eState = GPS_STATE_INVALID;
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseTime
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseTime(HIDO_DataStruct *_pstTimeData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstTimeData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstTimeData->m_pData;
+    HIDO_CHAR *pcDot = NULL;
+
+    pcDot = HIDO_UtilStrnchr(pcStart, '.', u32Len);
+    if (NULL == pcDot)
+    {
+        return HIDO_ERR;
+    }
+
+    if ((pcDot - pcStart) != 6)
+    {
+        return HIDO_ERR;
+    }
+
+    _pstGPS->m_u8Hour = HIDO_UtilStrBufToInt(pcStart, 2);
+    _pstGPS->m_u8Min = HIDO_UtilStrBufToInt(pcStart + 2, 2);
+    _pstGPS->m_u8Sec = HIDO_UtilStrBufToInt(pcStart + 4, 2);
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseLat
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseLat(HIDO_DataStruct *_pstLatData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstLatData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstLatData->m_pData;
+    HIDO_CHAR *pcDot = NULL;
+    HIDO_UINT32 u32TempLen = 0;
+    double dd;
+    double mmmm;
+    double mm;
+
+    if (u32Len < 9)
+    {
+        return HIDO_ERR;
+    }
+
+    pcDot = HIDO_UtilStrnchr(pcStart, '.', u32Len);
+    if (NULL == pcDot || (pcDot - pcStart) != 4)
+    {
+        return HIDO_ERR;
+    }
+
+    dd = HIDO_UtilStrBufToInt(pcStart, 2);
+    mm = HIDO_UtilStrBufToInt(pcStart + 2, 2);
+    u32TempLen = u32Len - (pcDot + 1 - pcStart);
+    mmmm = HIDO_UtilStrBufToInt(pcDot + 1, u32TempLen);
+    while(u32TempLen != 0)
+    {
+        mmmm /= 10.0;
+        u32TempLen--;
+    }
+
+    mm = mm + mmmm;
+    _pstGPS->m_dLat = dd + (mm / 60.0);
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseLon
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseLon(HIDO_DataStruct *_pstLonData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstLonData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstLonData->m_pData;
+    HIDO_CHAR *pcDot = NULL;
+    HIDO_UINT32 u32TempLen = 0;
+    double ddd;
+    double mmmm;
+    double mm;
+
+    if (u32Len < 10)
+    {
+        return HIDO_ERR;
+    }
+
+    pcDot = HIDO_UtilStrnchr(pcStart, '.', u32Len);
+    if (NULL == pcDot || (pcDot - pcStart) != 5)
+    {
+        return HIDO_ERR;
+    }
+
+    ddd = HIDO_UtilStrBufToInt(pcStart, 3);
+    mm = HIDO_UtilStrBufToInt(pcStart + 3, 2);
+    u32TempLen = u32Len - (pcDot + 1 - pcStart);
+    mmmm = HIDO_UtilStrBufToInt(pcDot + 1, u32TempLen);
+    while(u32TempLen != 0)
+    {
+        mmmm /= 10.0;
+        u32TempLen--;
+    }
+
+    mm = mm + mmmm;
+    _pstGPS->m_dLon = ddd + (mm / 60.0);
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseDir
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseDir(HIDO_DataStruct *_pstDirData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstDirData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstDirData->m_pData;
+    HIDO_CHAR *pcDot = NULL;
+
+    if (u32Len >= 1)
+    {
+        pcDot = HIDO_UtilStrnchr(pcStart, '.', u32Len);
+        if (pcDot)
+        {
+            _pstGPS->m_u16Dir = HIDO_UtilStrBufToInt(pcStart, pcDot - pcStart);
+        }
+        else
+        {
+            _pstGPS->m_u16Dir = HIDO_UtilStrBufToInt(pcStart, u32Len);
+        }
+    }
+    else
+    {
+        _pstGPS->m_u16Dir = 0;
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseLatSign
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseLatSign(HIDO_DataStruct *_pstLatSignData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstLatSignData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstLatSignData->m_pData;
+
+    if (u32Len > 1)
+    {
+        return HIDO_ERR;
+    }
+
+    if (0 == u32Len)
+    {
+        return HIDO_OK;
+    }
+    else
+    {
+        if (pcStart[0] == 'S')
+        {
+            _pstGPS->m_dLat = -_pstGPS->m_dLat;
+        }
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseLonSign
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseLonSign(HIDO_DataStruct *_pstLonSignData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstLonSignData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstLonSignData->m_pData;
+
+    if (u32Len > 1)
+    {
+        return HIDO_ERR;
+    }
+
+    if (0 == u32Len)
+    {
+        return HIDO_OK;
+    }
+    else
+    {
+        if (pcStart[0] == 'W')
+        {
+            _pstGPS->m_dLon = -_pstGPS->m_dLon;
+        }
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseSpeed
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+static HIDO_INT32 GPS_ParseSpeed(HIDO_DataStruct *_pstSpeedData, ST_GPS *_pstGPS)
+{
+    HIDO_UINT32 u32Len = _pstSpeedData->m_u32Len;
+    HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstSpeedData->m_pData;
+    HIDO_CHAR acSpeed[10];
+
+    if (u32Len >= 10)
+    {
+        return HIDO_ERR;
+    }
+
+    if (u32Len >= 1)
+    {
+        memcpy(acSpeed, pcStart, u32Len);
+        acSpeed[u32Len] = 0;
+        _pstGPS->m_u16Speed = atof(acSpeed) * 1.852;
+    }
+    else
+    {
+        _pstGPS->m_u16Speed = 0;
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_DataCheck
+ * Description       : GPS数据格式检查
+ * Input             : _pcData GPS数据
+ *                   : _u32Len GPS数据长度
+ * Output            : None
+ * Return            : HIDO_OK 成功, HIDO_ERR 失败
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年5月07日
+ *******************************************************************************/
+static HIDO_INT32 GPS_DataCheck(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
+{
+    HIDO_DataStruct stData;
+    HIDO_DataStruct stCheckValue;
+    HIDO_UINT8 u8CheckValue = 0;
+    HIDO_UINT8 u8CalcValue = 0;
+    HIDO_UINT32 i = 0;
+
+    if(HIDO_UtilParseFormat((HIDO_UINT8 *)_pcData, _u32Len, "$%p*%p\r\n", &stData, &stCheckValue) != 2)
+    {
+        return HIDO_ERR;
+    }
+
+    u8CheckValue = HIDO_UtilHexStrBufToInt((HIDO_CHAR *)stCheckValue.m_pData, stCheckValue.m_u32Len);
+    u8CalcValue = ((HIDO_UINT8 *)stData.m_pData)[0];
+    for(i = 1; i < stData.m_u32Len; i++)
+    {
+        u8CalcValue ^= ((HIDO_UINT8 *)stData.m_pData)[i];
+    }
+
+    if(u8CalcValue != u8CheckValue)
+    {
+        return HIDO_ERR;
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseGGA
+ * Description       : GPS GGA数据解析(仅检查数据是否有效)
+ * Input             : _pcData GGA数据
+ *                   : _u32Len GGA数据长度
+ * Output            : None
+ * Return            : HIDO_OK 成功, HIDO_ERR 失败
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年5月07日
+ *******************************************************************************/
+uint8_t GPS_data[100];
+uint8_t GPS_successful_flag;
+extern uint32_t uwbled,rtkled,led4g,powerled;
+uint8_t jinru_parsegga_flag;
+uint8_t fangchai_flag;
+uint8_t GPS_ParseGGA_data[256];
+uint8_t GPS_ParseGGA_changdu;
+uint8_t YUANGPS_ParseGGA_data[256];
+uint8_t YUANGPS_ParseGGA_changdu;
+//extern uint16_t g_com_map[256];
+extern uint8_t bat_percent;
+uint8_t gpsbaoxu;
+extern uint8_t gps_ntripsend;
+//static HIDO_UINT8 l_u8GPSBuff[512];
+//static HIDO_UINT32 l_u8GPSLen = 0;
+//static HIDO_UINT32 l_u8GPSRecvTick = 0;
+uint8_t gps_error1,gps_error2;
+static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
+{
+    ST_GPS stGPS;
+    HIDO_DataStruct stPosState;
+
+    memset(&stGPS, 0, sizeof(ST_GPS));
+    if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK)
+    {
+        gps_error1++;
+        return HIDO_ERR;
+    }
+
+    if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%*,%*,%*,%*,%**", &stPosState) != 15)
+    {
+        gps_error2++;
+        return HIDO_ERR;
+    }
+
+    l_u8PosState = atoi((HIDO_CHAR *)stPosState.m_pData);
+
+    return HIDO_OK;
+}
+
+
+/*******************************************************************************
+ * Function Name     : GPS_ParseRMC
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : wx:duj_an
+ *******************************************************************************/
+HIDO_INT32 GPS_ParseRMC(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
+{
+    HIDO_DataStruct stTimeData;
+    HIDO_DataStruct stStateData;
+    HIDO_DataStruct stLatData;
+    HIDO_DataStruct stLatSignData;
+    HIDO_DataStruct stLonData;
+    HIDO_DataStruct stLonSignData;
+    HIDO_DataStruct stSpeedData;
+    HIDO_DataStruct stDirData;
+    HIDO_DataStruct stDateData;
+    ST_GPS *_pstGPS = &l_stGPS;
+
+    if(NULL == _pstGPS)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK)
+    {
+        _pstGPS->m_eState = GPS_STATE_INVALID;
+        return HIDO_ERR;
+    }
+
+    if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%p,%p,%p,%p,%p,%p,%p,%p,%p,%*,%*,%**", &stTimeData, &stStateData,
+            &stLatData, &stLatSignData, &stLonData, &stLonSignData, &stSpeedData, &stDirData, &stDateData) != 13)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseState(&stStateData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (_pstGPS->m_eState != GPS_STATE_VALID)
+    {   
+        return HIDO_OK;
+    }
+
+    if (GPS_ParseTime(&stTimeData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseDate(&stDateData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseLat(&stLatData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseLon(&stLonData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseSpeed(&stSpeedData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseDir(&stDirData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseLatSign(&stLatSignData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    if (GPS_ParseLonSign(&stLonSignData, _pstGPS) != HIDO_OK)
+    {
+        return HIDO_ERR;
+    }
+
+    GPS_AddHours(_pstGPS, 8);
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_RecvFsm
+ * Description       : GPS 数据接收状态机
+ * Input             : _u8RecvChar 一个接收字符
+ * Output            : None
+ * Return            : one
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年5月07日
+ *******************************************************************************/
+extern uint8_t GPS_UPLOAD_FLAG;
+uint16_t GPS_UPload_sleep_flag=0;
+uint8_t gpserror;
+HIDO_VOID GPS_RecvFsm(HIDO_UINT8 _u8RecvChar)
+{
+    switch (l_stGPSRecv.m_eState)
+    {
+        case GPS_RECV_STATE_IDLE:
+        {
+            if ('$' == _u8RecvChar)
+            {
+                l_stGPSRecv.m_eState = GPS_RECV_STATE_CR;
+                l_stGPSRecv.m_u32RecvLen = 0;
+                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+            }
+            break;
+        }
+        case GPS_RECV_STATE_CR:
+        {
+            l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+
+            if (l_stGPSRecv.m_u32RecvLen >= (sizeof(l_stGPSRecv.m_acRecvBuf) - 2))
+            {
+                l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
+                break;
+            }
+
+            if ('\r' == _u8RecvChar)
+            {
+                l_stGPSRecv.m_eState = GPS_RECV_STATE_LF;
+            }
+
+            break;
+        }
+        case GPS_RECV_STATE_LF:
+        {
+            if ('\n' == _u8RecvChar)
+            {
+            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
+//                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+            	if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL)
+            	{
+            		GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
+                    l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                    #ifdef UWB_CG
+                    if(g_com_map[GPSENBLE]==0)
+                    {
+//                    UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf); 
+                    }
+                    else if(g_com_map[GPSENBLE]&&g_com_map[GPSFrequency]==1)
+                    {
+                        if (l_u8PosState >= 1) 
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);           // 
+                        } 
+                        else if (l_u8PosState == 0)           
+                        {
+                                if (++GPS_UPload_sleep_flag >= 60) 
+                                {
+                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                                        GPS_UPload_sleep_flag = 0;    
+                                }
+                        }	
+                    }
+                    else if(g_com_map[GPSENBLE])
+                    {
+                            if (l_u8PosState >= 1) 
+                            {
+                                if (++GPS_UPLOAD_FLAG >= g_com_map[GPSFrequency])      
+                                { 
+                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf); 
+                                        GPS_UPLOAD_FLAG = 0;         
+                                }
+                            } 
+                            else if (l_u8PosState == 0)           
+                            {
+                                if (++GPS_UPload_sleep_flag >= 60) 
+                                {
+                                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                                        GPS_UPload_sleep_flag = 0;    
+                                }
+                            }
+                    }
+                    switch(l_u8PosState)
+                    {
+                        case 0:
+                        rtkled = RED;
+                        break;
+                        case 1:
+                        rtkled = BLUE; 
+                        break;
+                        case 2:
+                        rtkled = BLUE+GREEN; 
+                        break;
+                        case 4:
+                        rtkled = GREEN; 
+                        break;
+                        case 5:
+                        rtkled = YELLOW; 
+                        break;
+                        default:
+                        rtkled = WHITE; 
+                        break;
+                    } 
+            	}
+
+                else //if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
+            	{
+            		gpserror++;
+            	}
+            }
+
+            l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
+            break;
+        }
+        default:
+        {
+            break;
+        }
+    }
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_Rest
+ * Description       : GPS复位
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+//static HIDO_VOID GPS_Rest(void)
+//{
+//    GPIO_SET(&l_astGPSPin[GPS_PIN_REST]);
+//    HAL_Delay(10);
+//    GPIO_RESET(&l_astGPSPin[GPS_PIN_REST]);
+//    HAL_Delay(10);
+//    GPIO_SET(&l_astGPSPin[GPS_PIN_REST]);
+//}
+
+/*******************************************************************************
+ * Function Name     : GPS_Powe.\Objects\uwb_simple_example.axf: Error: L6218E: Undefined symbol gps_power_state (referred from sn74hc595.o).rOn
+ * Description       : GPS上电
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+//HIDO_VOID GPS_PowerOn(void)
+//{
+//    l_bIsPowerOn = HIDO_TRUE;
+////    GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]);
+//    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);
+//}
+
+/*******************************************************************************
+ * Function Name     : GPS_PowerOff
+ * Description       : GPS掉电
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+//HIDO_VOID GPS_PowerOff(void)
+//{
+//    l_bIsPowerOn = HIDO_FALSE;
+////    GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]);
+//    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);
+//}
+
+/*******************************************************************************
+ *                             Global Function                                 *
+ *******************************************************************************/
+
+/*******************************************************************************
+ * Function Name     : GPS_PinRegister
+ * Description       : GPS模块管脚注册
+ * Input             : _ePin 管脚定义
+ *                   : _pstGPIOx GPIOx
+ *                   : _u16GPIOPin GPIO_PIN_x
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ * Modified Date:    : 2021年1月8日
+ *******************************************************************************/
+//HIDO_VOID GPS_PinRegister(E_GPSPin _ePin, GPIO_TypeDef* _pstGPIOx, HIDO_UINT16 _u16GPIOPin)
+//{
+//    l_astGPSPin[_ePin].m_pstGPIOx = _pstGPIOx;
+//    l_astGPSPin[_ePin].m_u16GPIOPin = _u16GPIOPin;
+//}
+
+/*******************************************************************************
+ * Function Name     : GPS_Poll
+ * Description       : GPS轮询处理
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ *******************************************************************************/
+HIDO_VOID GPS_Poll(void)
+{
+    HIDO_UINT8 u8RecvChar = 0;
+
+    while (Uart_GetChar(UART_ID_DBG_GPS, &u8RecvChar) == HIDO_OK)
+    {
+    	GPS_RecvFsm(u8RecvChar);
+    }
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_SetEventCallback
+ * Description       : GPS设置GPS事件回调
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ *******************************************************************************/
+HIDO_VOID GPS_SetEventCallback(FN_GPSEventCallback _fnEventCallback)
+{
+    l_fnGPSEventCallback = _fnEventCallback;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_IsIdle
+ * Description       : GPS轮询处理
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ *******************************************************************************/
+HIDO_BOOL GPS_IsIdle(void)
+{
+    if(l_bIsPowerOn)
+    {
+        return HIDO_FALSE;
+    }
+
+    return HIDO_TRUE;
+}
+
+/*******************************************************************************
+ * Function Name     : GPS_Init
+ * Description       : GPS模块初始化
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : hido.ltd
+ *******************************************************************************/
+HIDO_VOID GPS_Init(void)
+{
+    char str[19]= {"$POLCFGMSG,0,2,0\r\n"};
+//    GPS_PowerOn();
+//    GPS_Rest();
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+    sprintf(str,"$POLCFGMSG,0,1,0\r\n");
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+    sprintf(str,"$POLCFGSAVE\r\n");
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+}
diff --git a/keil/uwb_simple_example.uvguix.zhyin b/keil/uwb_simple_example.uvguix.zhyin
index 9a65894..53a39ce 100644
--- a/keil/uwb_simple_example.uvguix.zhyin
+++ b/keil/uwb_simple_example.uvguix.zhyin
@@ -15,17 +15,17 @@
     <View>
       <WinId>38003</WinId>
       <ViewName>Registers</ViewName>
-      <TableColWidths>138 122</TableColWidths>
+      <TableColWidths>138 139</TableColWidths>
     </View>
     <View>
       <WinId>346</WinId>
       <ViewName>Code Coverage</ViewName>
-      <TableColWidths>770 486</TableColWidths>
+      <TableColWidths>770 160</TableColWidths>
     </View>
     <View>
       <WinId>204</WinId>
       <ViewName>Performance Analyzer</ViewName>
-      <TableColWidths>878 139 139 100</TableColWidths>
+      <TableColWidths>930</TableColWidths>
     </View>
   </SECTreeCtrl>
 
@@ -110,8 +110,8 @@
     <MDIClientArea>
       <RegID>0</RegID>
       <MDITabState>
-        <Len>383</Len>
-        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000300000001000000010000002D453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C7372635C4750532E6300000000054750532E6300000000C1838300FFFFFFFF2F453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C6D61696E5C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF31453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C647269766572735C4442472E6300000000054442472E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000023010000660000000006000040020000</Data>
+        <Len>1108</Len>
+        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C0000000B000000010000002D453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C7372635C4750532E6300000000054750532E6300000000C5D4F200FFFFFFFF2F453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C6D61696E5C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF31453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C647269766572735C4442472E6300000000054442472E6300000000BECEA100FFFFFFFF35453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C647269766572735C504341393535352E630000000009504341393535352E6300000000F0A0A100FFFFFFFF24453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C64775F7461672E63000000000864775F7461672E6300000000BCA8E100FFFFFFFF25453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C7577625F6170702E6300000000097577625F6170702E63000000009CC1B600FFFFFFFF25453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C7577625F7461672E6300000000097577625F7461672E6300000000F7B88600FFFFFFFF35453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C7372635C544350436C69656E745F312E63000000000D544350436C69656E745F312E6300000000D9ADC200FFFFFFFF54453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C636F6D706F6E656E74735C7773665C736F75726365735C706F72745C626172656D6574616C5C7773665F686561702E63000000000A7773665F686561702E6300000000A5C2D700FFFFFFFF48453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C7372635C4149523738304546534D2E63000000000C4149523738304546534D2E6300000000B3A6BE00FFFFFFFF39453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C696E636C7564655C636F6D706F6E656E74735C68616C5C554152542E630000000006554152542E6300000000EAD6A300FFFFFFFF2B453A5C4749545C4368696E6155574250726F6A6563745C6B65696C5C64775F6170705F616E63686F722E63000000000F64775F6170705F616E63686F722E6300000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000023010000660000000006000040020000</Data>
       </MDITabState>
     </MDIClientArea>
     <ViewEx>
@@ -1805,8 +1805,8 @@
         <RegID>59392</RegID>
         <Name>File</Name>
         <Buttons>
-          <Len>2627</Len>
-          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000007737072696E746696000000000000000400084442475F496E697407737072696E746626504341393535355F5365745F4F6E655F56616C75655F4F7574707574284750535F504F5745520A736C6565705F666C616700000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
+          <Len>2867</Len>
+          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000084442475F496E697496000000000000001200084442475F496E697407737072696E746626504341393535355F5365745F4F6E655F56616C75655F4F7574707574284750535F504F5745520A736C6565705F666C6167063131353230300C6C5F617538436D644275666612544350436C69656E745F4461746150726F630D7265635F616E6369646C6973740B414E435F4D41585F4E554D0A554152545F49445F344709556172745F496E697406646D615F656E06696E745F72780D6C5F75333252657370436F646505434752454718414952373830455F41545F524543565F4255465F53495A4518414952373830455F41545F53454E445F4255465F53495A450C756172745F72656365697665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
         </Buttons>
         <OriginalItems>
           <Len>1423</Len>
@@ -1822,7 +1822,7 @@
         <Name>Build</Name>
         <Buttons>
           <Len>988</Len>
-          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
+          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
         </Buttons>
         <OriginalItems>
           <Len>583</Len>
@@ -3603,12 +3603,12 @@
     <ActiveMDIGroup>0</ActiveMDIGroup>
     <MDIGroup>
       <Size>100</Size>
-      <ActiveTab>1</ActiveTab>
+      <ActiveTab>11</ActiveTab>
       <Doc>
         <Name>.\include\src\GPS.c</Name>
         <ColumnNumber>0</ColumnNumber>
-        <TopLine>855</TopLine>
-        <CurrentLine>876</CurrentLine>
+        <TopLine>856</TopLine>
+        <CurrentLine>877</CurrentLine>
         <Folding>1</Folding>
         <ContractedFolders></ContractedFolders>
         <PaneID>0</PaneID>
@@ -3616,7 +3616,7 @@
       <Doc>
         <Name>.\include\main\main.c</Name>
         <ColumnNumber>5</ColumnNumber>
-        <TopLine>987</TopLine>
+        <TopLine>1001</TopLine>
         <CurrentLine>1022</CurrentLine>
         <Folding>1</Folding>
         <ContractedFolders></ContractedFolders>
@@ -3625,8 +3625,89 @@
       <Doc>
         <Name>.\include\drivers\DBG.c</Name>
         <ColumnNumber>0</ColumnNumber>
-        <TopLine>429</TopLine>
-        <CurrentLine>450</CurrentLine>
+        <TopLine>430</TopLine>
+        <CurrentLine>451</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\include\drivers\PCA9555.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>2</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\dw_tag.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\uwb_app.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\uwb_tag.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\include\src\TCPClient_1.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\include\components\wsf\sources\port\baremetal\wsf_heap.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\include\components\internet\src\AIR780EFSM.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>2</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\include\components\hal\UART.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>2</CurrentLine>
+        <Folding>1</Folding>
+        <ContractedFolders></ContractedFolders>
+        <PaneID>0</PaneID>
+      </Doc>
+      <Doc>
+        <Name>.\dw_app_anchor.c</Name>
+        <ColumnNumber>0</ColumnNumber>
+        <TopLine>1</TopLine>
+        <CurrentLine>1</CurrentLine>
         <Folding>1</Folding>
         <ContractedFolders></ContractedFolders>
         <PaneID>0</PaneID>

--
Gitblit v1.9.3