WXK
2025-03-12 d5d1ca2ebf9087415d3d11907cd79ba58162760e
加入shell模式跟ntrip。目前没有调试好,等外包改一下
已添加5个文件
已修改18个文件
38932 ■■■■ 文件已修改
keil/JLinkLog.txt 10594 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Listings/uwb_simple_example.map 8227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.build_log.htm 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.hex 11569 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.htm 6056 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.lnp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example_MK8000 Release.dep 101 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/dw_tag.c 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/components/hido/HIDO_Base64.c 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/DBG.c 438 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/DBG.h 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/Shell.c 727 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/Shell.h 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/global_param.c 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/global_param.h 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/serial_at_cmd_app.c 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/main/main.c 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/src/TCPClient.c 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvguix.WXK 279 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvguix.hido 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvoptx 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvprojx 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_tag.c 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/JLinkLog.txt
ÎļþÌ«´ó
keil/Listings/uwb_simple_example.map
ÎļþÌ«´ó
keil/Objects/uwb_simple_example.build_log.htm
@@ -22,7 +22,7 @@
 
<h2>Project:</h2>
C:\git-mk8000\ChinaUWBProject - 4G\keil\uwb_simple_example.uvprojx
Project File Date:  03/11/2025
Project File Date:  03/12/2025
<h2>Output:</h2>
*** Using Compiler 'V6.14', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
@@ -42,7 +42,7 @@
  C:\Keil_v5\ARM\PACK\MKSEMI\MK800X_DFP\1.0.3\Device\Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed:  00:00:00
Build Time Elapsed:  00:00:01
</pre>
</body>
</html>
keil/Objects/uwb_simple_example.hex
ÎļþÌ«´ó
keil/Objects/uwb_simple_example.htm
ÎļþÌ«´ó
keil/Objects/uwb_simple_example.lnp
@@ -42,6 +42,9 @@
".\objects\uwb_app.o"
".\objects\uwb_tag.o"
".\objects\gps.o"
".\objects\ntripapp.o"
".\objects\dbg.o"
".\objects\shell.o"
".\objects\wsf_assert.o"
".\objects\wsf_buf.o"
".\objects\wsf_bufio.o"
@@ -58,6 +61,7 @@
".\objects\crc.o"
".\objects\libc.o"
".\include\components\hido\hido.lib"
".\objects\hido_base64.o"
".\objects\air780ecsq.o"
".\objects\air780edriver.o"
".\objects\air780efsm.o"
@@ -65,6 +69,7 @@
".\objects\internet.o"
".\objects\module.o"
".\objects\socket.o"
".\objects\ntripclient.o"
".\objects\uart.o"
--library_type=microlib --strict --scatter ".\include\devices\MK800X\Source\ARM\MK800X_ac6_copy.sct"
--summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
keil/Objects/uwb_simple_example_MK8000 Release.dep
@@ -591,7 +591,7 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\mk_io.h)(0x67206CDC)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (..\keil\sn74hc595.h)(0x67B456FF)
F (.\include\drivers\lis3dh_driver.c)(0x67B456FF)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x672050F0)
@@ -613,8 +613,8 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
I (include\devices\MK800X\Include\system_MK800X.h)(0x67B456FF)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\global_param.h)(0x67D00C27)
F (.\dw_tag.c)(0x67B456FF)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/dw_tag.o -MD)
I (include\drivers\global_param.h)(0x67D0ECC2)
F (.\dw_tag.c)(0x67D0EB6C)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/dw_tag.o -MD)
I (..\keil\dw_tag.h)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
@@ -638,13 +638,13 @@
I (include\drivers\mk_dma.h)(0x67B456FF)
I (include\drivers\mk_trace.h)(0x67206CDC)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
F (.\dw_app_anchor.c)(0x672050F0)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/dw_app_anchor.o -MD)
I (..\keil\dw_app_anchor.h)(0x67B4570A)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
F (.\include\drivers\global_param.c)(0x67B456FF)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x67D00C27)
F (.\include\drivers\global_param.c)(0x67D0F569)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x67D0ECC2)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (include\drivers\mk_flash.h)(0x67B456FF)
I (include\drivers\mk_common.h)(0x67B456FF)
@@ -662,10 +662,10 @@
I (..\user_config.h)(0x67B4570A)
I (include\drivers\mk_dma.h)(0x67B456FF)
I (include\drivers\mk_misc.h)(0x67B456FF)
F (.\include\drivers\serial_at_cmd_app.c)(0x67B83E5E)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x67D12886)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
I (include\drivers\Usart.h)(0x672050F0)
@@ -690,6 +690,8 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\mk_io.h)(0x67206CDC)
I (include\drivers\DBG.h)(0x67909B96)
I (include\components\hido\Include\HIDO_TypeDef.h)(0x672050F0)
F (.\include\board\board.c)(0x67C909D1)(-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 ./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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/board.o -MD)
I (include\board\board.h)(0x67B456FF)
I (include\drivers\mk_common.h)(0x67B456FF)
@@ -742,7 +744,7 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\Usart.h)(0x672050F0)
F (.\include\main\main.c)(0x67D013CC)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/main.o -MD)
F (.\include\main\main.c)(0x67D14FB6)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/main.o -MD)
I (include\drivers\mk_trace.h)(0x67206CDC)
I (include\drivers\mk_common.h)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
@@ -770,7 +772,7 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
I (C:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x5DDFFD6C)
I (include\drivers\serial_at_cmd_app.h)(0x67B456FF)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (include\board\board.h)(0x67B456FF)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\mk_io.h)(0x67206CDC)
@@ -797,7 +799,8 @@
I (include\src\TCPClient.h)(0x672050F0)
I (include\drivers\PCA9555.h)(0x67B541FD)
I (include\drivers\WS2812.h)(0x67BBEBA7)
F (.\include\src\TCPClient.c)(0x67D00CF1)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/tcpclient.o -MD)
I (include\drivers\DBG.h)(0x67909B96)
F (.\include\src\TCPClient.c)(0x67D13ADC)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x672050F0)
I (include\components\hido\Include\HIDO_TYpeDef.h)(0x672050F0)
I (include\components\internet\inc\Socket.h)(0x672050F0)
@@ -809,7 +812,7 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (include\components\hido\Include\HIDO_Timer.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Util.h)(0x672050F0)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (include\components\hal\Uart.h)(0x672050F0)
I (include\drivers\mk_uart.h)(0x67B456FF)
@@ -863,12 +866,12 @@
I (include\components\algo\inc\lib_ranging.h)(0x67B456FF)
I (include\components\algo\inc\lib_aoa.h)(0x67B456FF)
I (..\keil\dw_app_anchor.h)(0x67B4570A)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (include\board\board.h)(0x67B456FF)
I (include\drivers\mk_gpio.h)(0x67206CDC)
I (include\drivers\mk_io.h)(0x67206CDC)
I (include\drivers\WS2812.h)(0x67BBEBA7)
F (.\uwb_tag.c)(0x67CFE773)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/uwb_tag.o -MD)
F (.\uwb_tag.c)(0x67D0EDF2)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/uwb_tag.o -MD)
I (include\drivers\mk_trace.h)(0x67206CDC)
I (include\drivers\mk_common.h)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
@@ -957,8 +960,71 @@
I (include\devices\MK800X\Include\system_MK800X.h)(0x67B456FF)
I (..\user_config.h)(0x67B4570A)
I (include\drivers\mk_dma.h)(0x67B456FF)
I (include\drivers\global_param.h)(0x67D00C27)
I (include\drivers\global_param.h)(0x67D0ECC2)
I (include\components\internet\inc\Module.h)(0x672050F0)
F (.\include\drivers\DBG.c)(0x67D13A25)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/dbg.o -MD)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (include\components\hido\Include\HIDO_VLQueue.h)(0x672050F0)
I (include\components\hido\Include\HIDO_TypeDef.h)(0x672050F0)
I (include\components\hido\Include\HIDO_BaseQueue.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Input.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Timer.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Util.h)(0x672050F0)
I (include\components\hal\Uart.h)(0x672050F0)
I (include\drivers\mk_uart.h)(0x67B456FF)
I (include\drivers\mk_common.h)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x5DDFFD72)
I (include\devices\MK800X\Include\MK800X.h)(0x67B456FF)
I (include\CMSIS\Include\core_cm0.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_version.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_compiler.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_armclang.h)(0x67206CDC)
I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x5E0CC2EC)
I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
I (include\devices\MK800X\Include\system_MK800X.h)(0x67B456FF)
I (..\user_config.h)(0x67B4570A)
I (include\drivers\mk_dma.h)(0x67B456FF)
I (include\drivers\DBG.h)(0x67909B96)
I (include\drivers\Usart.h)(0x672050F0)
F (.\include\drivers\Shell.c)(0x67D12634)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/shell.o -MD)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (include\drivers\Shell.h)(0x659377B0)
I (include\components\hido\Include\HIDO_TypeDef.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Shell.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Input.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Util.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Debug.h)(0x672050F0)
I (include\drivers\DBG.h)(0x67909B96)
I (include\components\hido\Include\HIDO_ATLite.h)(0x672050F0)
I (include\components\hido\Include\HIDO_FSM.h)(0x672050F0)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
I (include\components\internet\inc\Module.h)(0x672050F0)
I (include\components\hido\Include\HIDO_Log.h)(0x672050F0)
I (include\components\internet\inc\Socket.h)(0x672050F0)
I (include\components\hido\Include\HIDO_VLQueue.h)(0x672050F0)
I (include\components\hido\Include\HIDO_BaseQueue.h)(0x672050F0)
I (include\components\hal\Uart.h)(0x672050F0)
I (include\drivers\mk_uart.h)(0x67B456FF)
I (include\drivers\mk_common.h)(0x67B456FF)
I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x5DDFFD72)
I (include\devices\MK800X\Include\MK800X.h)(0x67B456FF)
I (include\CMSIS\Include\core_cm0.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_version.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_compiler.h)(0x67206CDC)
I (include\CMSIS\Include\cmsis_armclang.h)(0x67206CDC)
I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x5E0CC2EC)
I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
I (include\devices\MK800X\Include\system_MK800X.h)(0x67B456FF)
I (..\user_config.h)(0x67B4570A)
I (include\drivers\mk_dma.h)(0x67B456FF)
I (include\drivers\global_param.h)(0x67D0ECC2)
F (.\include\components\wsf\sources\port\baremetal\wsf_assert.c)(0x67206CDE)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x67206CDE)
I (include\components\wsf\include\wsf_trace.h)(0x67206CDE)
@@ -1264,6 +1330,11 @@
I (C:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
I (C:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x5DDFFD6C)
F (.\include\components\hido\hido.lib)(0x672050F0)()
F (.\include\components\hido\HIDO_Base64.c)(0x67D04DC6)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/Keil_v5/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/hido_base64.o -MD)
I (include\components\hido\Include\HIDO_Base64.h)(0x672050F0)
I (include\components\hido\Include\HIDO_TypeDef.h)(0x672050F0)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdlib.h)(0x5DDFFD6A)
I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
F (.\include\components\internet\src\AIR780ECSQ.c)(0x672050F0)(-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 -IC:/Keil_v5/ARM/PACK/MKSEMI/MK800X_DFP/1.0.3/Device/Include -IC:/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)(0x672050F0)
I (include\components\hido\Include\HIDO_TypeDef.h)(0x672050F0)
keil/dw_tag.c
@@ -75,64 +75,4 @@
    {
        return (ts_a - ts_b);
    }
}
void CalculateDists(int64_t poll_tx_ts)
{
    for(int i=0;i<MAX_NEARBASE_NUM;i++)
    {
      if(exsistbase_list[i]==KEEP_TIMES)
      {
            //temp_freq_offset=freq_offset_filter;//测试
            memcpy(&resp_tx_timestamp,&anc_resptx[i],4);
            memcpy(&poll_rx_timestamp,&anc_pollrx[i],4);
            treply = ranging_timestamp_diff(resp_tx_timestamp, poll_rx_timestamp);
            //基站
//    // correct antenna delay
//    treply += ranging_ant_delays_get((uint8_t)(RX_MAIN_ANT_PORT));
//            uint32_t tag_tx_temp=(uint32_t)poll_tx_ts;//测试
//            memcpy(&tag_polltx[0],&tag_tx_temp,4);//测试
            //poll_tx_timestamp=poll_tx_ts;
            memcpy(&poll_tx_timestamp,&tag_polltx[i],4);
            memcpy(&resp_rx_timestamp,&tag_resprx[i],4);
            tround=ranging_timestamp_diff(resp_rx_timestamp, poll_tx_timestamp);
                tround_temp=tround;
                treply_temp=treply;
                //标签
            // correct antenna delay
//    tround -= ranging_ant_delays_get(uwb_app_config.ppdu_params.rx_ant_id);
            // corrected by frequency offset
            tround = (int64_t)((double)tround * (1 - (double)freq_offset_filter / ch_center_freq_map[UWB_CH_NUM]));
            tround_temp=tround;
            treply_temp=treply;
            tof_i = (int32_t)(tround - treply) / 2;
//            tof_i_ui=(uint32_t)tof_i;
                // outlier filter去掉负值过滤未添加offset
//      if (tof_i < 0)
//      {
//      tof_i = 0;
//            }
            //tof_f = (double)TIMESTAMP_UNIT_TO_NS((uint32_t)tof_i);//yuan
            tof_f = (double)TIMESTAMP_UNIT_TO_NS(tof_i);
            //distance_tag=(uint16_t)(tof_f * 0.299702547 * VP_VAL - RANGING_CORR);//yuan
            distance_tag=tof_f * 0.299702547 * VP_VAL - RANGING_CORR;
            distance_tag=distance_tag+30;//测试加的offset
            //LOG_INFO(TRACE_MODULE_APP, "distance_tag is %lf\r\n",distance_tag);
             if(distance_tag>-1000&&distance_tag<100000)
          {
            nearbase_distlist[i]  = distance_tag+(int16_t)g_com_map[OFFSET_AS_TAG];//offset加入上位机校准
          }
      }else{
          nearbase_distlist[i] = 0x1ffff;
      }
            }
}
//#endif
}
keil/include/components/hido/HIDO_Base64.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
/*******************************************************************************
 * File Name         : HIDO_Base64.c
 * Description       :
 * Created on        : 2018å¹´6月1日
 * Author            : www.hido-studio.com
 *******************************************************************************/
/*******************************************************************************
 *                              Include Files                                  *
 *******************************************************************************/
#include "HIDO_Base64.h"
#include "stdlib.h"
#include "string.h"
/*******************************************************************************
 *                                  Macro                                      *
 *******************************************************************************/
/*******************************************************************************
 *                             Type Definition                                 *
 *******************************************************************************/
/*******************************************************************************
 *                             Local Variable                                  *
 *******************************************************************************/
/*******************************************************************************
 *                        Local Function Declaration                           *
 *******************************************************************************/
/*******************************************************************************
 *                             Local Function                                  *
 *******************************************************************************/
/*******************************************************************************
 *                             Global Function                                 *
 *******************************************************************************/
/*******************************************************************************
 * Function Name     : HIDO_Base64Encode
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : www.hido-studio.com
 * Modified Date:    : 2018å¹´6月1日
 *******************************************************************************/
HIDO_INT32 HIDO_Base64Encode(HIDO_UINT8 *_pcSrc, HIDO_UINT32 _u32SrcLen, HIDO_CHAR *_pcDst, HIDO_UINT32 _u32DstSize)
{
    HIDO_UINT32 u32DstLen = 0;
    HIDO_UINT32 i = 0;
    HIDO_UINT32 j = 0;
    HIDO_CHAR *pcBase64EncodeTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    if(0 == _u32SrcLen)
    {
        return HIDO_ERR;
    }
    if ((_u32SrcLen % 3) == 0)
    {
        u32DstLen = (_u32SrcLen / 3) * 4;
    }
    else
    {
        u32DstLen = ((_u32SrcLen / 3) + 1) * 4;
    }
    if (_u32DstSize < (u32DstLen + 1))
    {
        return HIDO_ERR;
    }
    _pcDst[u32DstLen] = '\0';
    for (i = 0, j = 0; i < u32DstLen - 2; j += 3, i += 4)
    {
        _pcDst[i] = pcBase64EncodeTable[_pcSrc[j] >> 2];
        _pcDst[i + 1] = pcBase64EncodeTable[(_pcSrc[j] & 0x3) << 4 | (_pcSrc[j + 1] >> 4)];
        _pcDst[i + 2] = pcBase64EncodeTable[(_pcSrc[j + 1] & 0xf) << 2 | (_pcSrc[j + 2] >> 6)];
        _pcDst[i + 3] = pcBase64EncodeTable[_pcSrc[j + 2] & 0x3f];
    }
    switch (_u32SrcLen % 3)
    {
        case 1:
            _pcDst[i - 2] = '=';
            _pcDst[i - 1] = '=';
            break;
        case 2:
            _pcDst[i - 1] = '=';
            break;
    }
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : HIDO_Base64Encode
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : www.hido-studio.com
 * Modified Date:    : 2018å¹´6月1日
 *******************************************************************************/
HIDO_INT32 HIDO_Base64Decode(HIDO_CHAR *_pcSrc, HIDO_UINT8 *_pu8Dst, HIDO_UINT32 _u32DstSize, HIDO_UINT32 *_pu32DstLen)
{
    const HIDO_UINT8 au8Base64DecodeTable[] =
    {
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
            5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28,
            29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
    };
    HIDO_UINT32 u32DstLen = 0;
    HIDO_UINT32 u32SrcLen = 0;
    HIDO_UINT32 i = 0;
    HIDO_UINT32 j = 0;
    u32SrcLen = strlen(_pcSrc);
    if (u32SrcLen < 4)
    {
        return HIDO_ERR;
    }
    for (i = 0; _pcSrc[i] != '\0'; i++)
    {
        if(!((_pcSrc[i] >= 'A' && _pcSrc[i] <= 'Z') || (_pcSrc[i] >= 'a' && _pcSrc[i] <= 'z')
                || (_pcSrc[i] >= '0' && _pcSrc[i] <= '9') || _pcSrc[i] == '=' || _pcSrc[i] == '+' || _pcSrc[i] == '/'))
        {
            return HIDO_ERR;
        }
    }
    if (strstr(_pcSrc, "==") != HIDO_NULL)
    {
        u32DstLen = (u32SrcLen / 4) * 3 - 2;
    }
    else if (strstr(_pcSrc, "="))
    {
        u32DstLen = (u32SrcLen / 4) * 3 - 1;
    }
    else
    {
        u32DstLen = (u32SrcLen / 4) * 3;
    }
    for (i = 0, j = 0; i < u32SrcLen - 2; j += 3, i += 4)
    {
        _pu8Dst[j] = (((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i]]) << 2) | (((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i + 1]]) >> 4);
        _pu8Dst[j + 1] = (((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i + 1]]) << 4) | (((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i + 2]]) >> 2);
        _pu8Dst[j + 2] = (((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i + 2]]) << 6) | ((HIDO_UINT8) au8Base64DecodeTable[_pcSrc[i + 3]]);
    }
    if (_pu32DstLen != HIDO_NULL)
    {
        *_pu32DstLen = u32DstLen;
    }
    return HIDO_OK;
}
keil/include/drivers/DBG.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,438 @@
/*******************************************************************************
 * File Name         : DBG.c
 * Description       :
 * Created on        : 2018å¹´7月23日
 * Author            : æœé”®
 *******************************************************************************/
/*******************************************************************************
 *                              Include Files                                  *
 *******************************************************************************/
#include "stdio.h"
#include "stdarg.h"
#include "string.h"
//#include "AppConfig.h"
#include "HIDO_VLQueue.h"
#include "HIDO_Input.h"
#include "HIDO_Timer.h"
#include "HIDO_Util.h"
#include "Uart.h"
#include "DBG.h"
//#include "RTC.h"
//#include "stm32f4xx_hal.h"
#include "Usart.h"
/*******************************************************************************
 *                                  Macro                                      *
 *******************************************************************************/
#define OUTPUT_BUF_SIZE                         512
#define DBG_UART_RX_BUF_SIZE                    256
#define DBG_UART_TX_BUF_SIZE                    (1024*2)
#define DBG_UART_TX_QUEUE_MEMBER_CNT            64
/*******************************************************************************
 *                             Local Variable                                  *
 *******************************************************************************/
static HIDO_InputStruct l_stSerialInput = { 0 };
static HIDO_UINT8 l_au8DBGUartRxBuf[DBG_UART_RX_BUF_SIZE];
#if DBG_TX_DMA
static HIDO_UINT8 l_au8DBGUartTxBuf[DBG_UART_TX_BUF_SIZE];
#endif
static HIDO_UINT8 l_u8DBGFlag = DBG_FLAG_ON;
static E_DBGMode l_eDBGMode = DBG_MODE_CHARGE;
//static E_DBGMode l_eDBGMode = DBG_MODE_SHELL;
/*******************************************************************************
 *                        Local Function Declaration                           *
 *******************************************************************************/
static HIDO_INT32 DBG_SerialGetChar(HIDO_UINT8 *_pu8Char);
static HIDO_INT32 DBG_SerialPutString(const char *_pcString);
static HIDO_INT32 DBG_SerialPutChar(HIDO_UINT8 _u8Char);
/*******************************************************************************
 *                             Local Function                                  *
 *******************************************************************************/
/*******************************************************************************
 * Function Name     : DBG_SerialGetChar
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
static HIDO_INT32 DBG_SerialGetChar(HIDO_UINT8 *_pu8Char)
{
    return Uart_GetChar(UART_ID_DBG, _pu8Char);
}
/*******************************************************************************
 * Function Name     : DBG_SerialPrintf
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
static HIDO_INT32 DBG_SerialPrintf(const HIDO_CHAR *_pcFmt, ...)
{
    va_list ap;
    HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
    va_start(ap, _pcFmt);
    vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
    va_end(ap);
    return Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
}
/*******************************************************************************
 * Function Name     : DBG_SerialPutString
 * Description       :
 * Input             : _pcString                          è¾“出字符串
 * Output            :
 * Return            : HIDO_OK                            æˆåŠŸ
 *                     HIDO_ERR                           å¤±è´¥
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
static HIDO_INT32 DBG_SerialPutString(const char *_pcString)
{
    HIDO_INT32 s32Ret = 0;
    s32Ret = Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) _pcString, strlen(_pcString));
    return s32Ret;
}
/*******************************************************************************
 * Function Name     : DBG_SerialPutChar
 * Description       : DBG输出一个字符
 * Input             : _u8Char                            è¾“出字符
 * Output            :
 * Return            : HIDO_OK                            æˆåŠŸ
 *                     HIDO_ERR                           å¤±è´¥
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
static HIDO_INT32 DBG_SerialPutChar(HIDO_UINT8 _u8Char)
{
    HIDO_INT32 s32Ret = 0;
    s32Ret = Uart_Send(UART_ID_DBG, &_u8Char, 1);
    return s32Ret;
}
/*******************************************************************************
 *                             Global Function                                 *
 *******************************************************************************/
/*******************************************************************************
 * Function Name     : HIDO_Debug
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_INT32 HIDO_Debug(const HIDO_CHAR *_pcFmt, ...)
{
    if(DBG_GetMode() != DBG_MODE_SHELL)
    {
        return HIDO_OK;
    }
    va_list ap;
    HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
    HIDO_UINT32 u32Len = 0;
    va_start(ap, _pcFmt);
    u32Len = vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
    va_end(ap);
    if(u32Len > (sizeof(acOutputBuf) - 1))
    {
        u32Len = sizeof(acOutputBuf) - 1;
    }
    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
    return HIDO_OK;
}
HIDO_INT32 HIDO_Debug2(const HIDO_CHAR *_pcFmt, ...)
{
    va_list ap;
    HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
    HIDO_UINT32 u32Len = 0;
    va_start(ap, _pcFmt);
    u32Len = vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
    va_end(ap);
    if(u32Len > (sizeof(acOutputBuf) - 1))
    {
        u32Len = sizeof(acOutputBuf) - 1;
    }
    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : HIDO_Debug
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_INT32 HIDO_DebugEx(const HIDO_CHAR *_pcFmt, ...)
{
    if(DBG_GetMode() != DBG_MODE_SHELL)
    {
        return HIDO_OK;
    }
    va_list ap;
    HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
    HIDO_UINT32 u32Len = 0;
//    ST_RTCDateTime stRTCDateTime;
    /* è¾“出日志格式 */
//    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);
//
    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
    va_start(ap, _pcFmt);
    u32Len = vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
    va_end(ap);
    if(u32Len > (sizeof(acOutputBuf) - 1))
    {
        u32Len = sizeof(acOutputBuf) - 1;
    }
    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : HIDO_DebugHex
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_INT32 HIDO_DebugHex(const HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len)
{
    if(DBG_GetMode() != DBG_MODE_SHELL)
    {
        return HIDO_OK;
    }
    HIDO_UINT32 u32Len = 0;
    HIDO_CHAR acOutputBuf[64];
    if(l_u8DBGFlag != DBG_FLAG_ON)
    {
        return HIDO_OK;
    }
    do
    {
        if(_u32Len > 16)
        {
            u32Len = 16;
        }
        else
        {
            u32Len = _u32Len;
        }
        memset(acOutputBuf, 0, sizeof(acOutputBuf));
        HIDO_UtilByteArrayToHexString(_pu8Data, u32Len, acOutputBuf, sizeof(acOutputBuf), HIDO_TRUE);
        strcat(acOutputBuf, "\r\n");
        Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
        _u32Len -= u32Len;
        _pu8Data += u32Len;
    }
    while(_u32Len != 0);
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : HIDO_DebugString
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_INT32 HIDO_DebugString(const HIDO_CHAR *_pu8String, HIDO_UINT32 _u32StringLen)
{
    if(DBG_GetMode() != DBG_MODE_SHELL)
    {
        return HIDO_OK;
    }
#if 0
    HIDO_CHAR acOutputBuf[64];
    HIDO_UINT32 u32Len = 0;
    ST_RTCDateTime stRTCDateTime;
    /* è¾“出日志格式 */
    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);
    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
#endif
    return Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) _pu8String, _u32StringLen);
}
/*******************************************************************************
 * Function Name     : DBG_SetDebugFlag
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_VOID DBG_SetDebugFlag(HIDO_UINT8 _u8Flag)
{
    l_u8DBGFlag = _u8Flag;
}
/*******************************************************************************
 * Function Name     : DBG_SetMode
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_INT32 DBG_SetMode(E_DBGMode _eMode)
{
    l_eDBGMode = _eMode;
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : DBG_SetDebugFlag
 * Description       :
 * Input             :
 * Output            :
 * Return            :
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
E_DBGMode DBG_GetMode(void)
{
    return l_eDBGMode;
}
//#ifdef __APP_CODE__
/*******************************************************************************
 * Function Name     : DBG_Init
 * Description       : è°ƒè¯•打印轮询
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
uint8_t chargedbg_flag;
HIDO_VOID DBG_Poll(void)
{
    if(DBG_GetMode() == DBG_MODE_SHELL)
    {
        HIDO_InputPoll();
    }
    else if(DBG_GetMode() == DBG_MODE_CHARGE)
    {
         static HIDO_UINT32 l_u32ModeTick = 0;;
        HIDO_UINT8 u8RecvChar = 0;
//        UART_HandleTypeDef *pstUartHandle = HIDO_NULL;
       while (Uart_GetChar(UART_ID_DBG, &u8RecvChar) == HIDO_OK)
        {
            if(u8RecvChar == 0x03)
            {
                if(l_u32ModeTick != 0)
                {
                    if(HIDO_TimerGetTick() - l_u32ModeTick > 200)
                    {
                        chargedbg_flag = 1;
                        DBG_SetMode(DBG_MODE_SHELL);
                    }
                }
                else
                {
                    l_u32ModeTick = HIDO_TimerGetTick();
                }
            }
            else
            {
                l_u32ModeTick = 0;
            }
            UsartParseDataHandler(u8RecvChar);
           // HAL_UART_Transmit(pstUartHandle, &u8RecvChar, 1, 1000);
        }
    }
}
//#endif
/*******************************************************************************
 * Function Name     : DBG_Init
 * Description       : è°ƒè¯•打印初始化
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : æœé”®
 * Modified Date:    : 2018å¹´7月23日
 *******************************************************************************/
HIDO_VOID DBG_Init(void)
{
//    ST_UartInit stInit;
//
//    memset(&stInit, 0, sizeof(stInit));
//    stInit.m_eRxMode = UART_RX_MODE_DMA;
//#if DBG_TX_DMA
//    stInit.m_eTxMode = UART_TX_MODE_DMA;
//#else
//    stInit.m_eTxMode = UART_TX_MODE_POLL;
//#endif
//    stInit.m_pu8RxBuf = l_au8DBGUartRxBuf;
//    stInit.m_u32RxBufSize = DBG_UART_RX_BUF_SIZE;
//#if DBG_TX_DMA
//    stInit.m_pu8TxBuf = l_au8DBGUartTxBuf;
//#endif
//    stInit.m_u32TxBufSize = DBG_UART_TX_BUF_SIZE;
//    stInit.m_u32TxQueueMemberCnt = DBG_UART_TX_QUEUE_MEMBER_CNT;
//    Uart_Init(UART_ID_DBG, &stInit);
    l_stSerialInput.m_fnPrintf = DBG_SerialPrintf;
    l_stSerialInput.m_fnGetc = DBG_SerialGetChar;
    l_stSerialInput.m_fnPutc = DBG_SerialPutChar;
    l_stSerialInput.m_fnPuts = DBG_SerialPutString;
    HIDO_InputRegister(&l_stSerialInput);
}
keil/include/drivers/DBG.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
/*******************************************************************************
 * File Name         : DBG.h
 * Description       :
 * Created on        : 2018å¹´7月23日
 * Author            : æœé”®
 *******************************************************************************/
#ifndef FML_DBG_H_
#define FML_DBG_H_
/*******************************************************************************
 *                              Include Files                                  *
 *******************************************************************************/
#include "HIDO_TypeDef.h"
/*******************************************************************************
 *                                  Macro                                      *
 *******************************************************************************/
#define DBG_FLAG_OFF                              0
#define DBG_FLAG_ON                               1
#define DBG_TX_DMA                                0
/*******************************************************************************
 *                             Type Definition                                 *
 *******************************************************************************/
typedef enum
{
    DBG_MODE_SHELL,
    DBG_MODE_GPS,
    DBG_MODE_CFG,
    DBG_MODE_CHARGE,
}E_DBGMode;
/*******************************************************************************
 *                             Global Function                                 *
 *******************************************************************************/
HIDO_VOID DBG_SetDebugFlag(HIDO_UINT8 _u8Flag);
HIDO_INT32 DBG_SetMode(E_DBGMode _eMode);
E_DBGMode DBG_GetMode(void);
HIDO_VOID DBG_Poll(void);
HIDO_VOID DBG_Init(void);
#endif /* FML_DBG_H_ */
keil/include/drivers/Shell.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,727 @@
//#include "stm32f4xx_hal.h"
#include "stdlib.h"
#include "string.h"
//#include "AppConfig.h"
#include "Shell.h"
#include "HIDO_Shell.h"
#include "HIDO_Util.h"
#include "HIDO_Debug.h"
//#include "GPIO.h"
#include "DBG.h"
//#include "RTC.h"
//#include "Reboot.h"
#include "HIDO_ATLite.h"
#include "Module.h"
#include "HIDO_Log.h"
//#include "Log.h"
#include "Socket.h"
#include "Uart.h"
#include "Module.h"
//#include "Flash.h"
//#include "SPIFlash.h"
//#include "AppConfig.h"
//#include "OTA.h"
#include <global_param.h>
extern uint16_t dev_id;
static HIDO_INT32 Shell_Test(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_Reboot(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_RTCGet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_RTCSet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_RTCAlarm(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_Info(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_ATCmd(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_DebugOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_DebugOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_CloseWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_OpenWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_PowerOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_PowerOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_Update(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_TCPCreate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_TCPConnect(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_TCPSend(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_TCPClose(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetRTCMMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_DBGMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_DEVID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetServerInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetRTCMTCPInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_GPSBaudRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetDataRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_OTA(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_LogUpload(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_Log(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_LogPrint(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_LogClean(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetQXWZ(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetNtrip(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static HIDO_INT32 Shell_SetUWBEnable(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
static const HIDO_ShellCmdStruct l_astShellCmdList[] =
{
    { "test", Shell_Test },
    { "reboot", Shell_Reboot },
    { "rtc_set", Shell_RTCSet },
    { "rtc_set_alarm", Shell_RTCAlarm },
    { "rtc_get", Shell_RTCGet },
    { "sleep", Shell_Sleep },
    { "info", Shell_Info },
    { "at_cmd", Shell_ATCmd },
    { "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 },
    { "tcp_close", Shell_TCPClose },
    { "dbg_mode", Shell_DBGMode },
    { "gps_baud_rate", Shell_GPSBaudRate },
    { "set_datarate", Shell_SetDataRate },
    { "device_id", Shell_DEVID },
    { "server_info", Shell_SetServerInfo },
    { "set_rtcm", Shell_SetRTCMTCPInfo },
    { "set_qxwz", Shell_SetQXWZ },
     { "set_rtcmmode", Shell_SetRTCMMode },
    { "set_uwbenable", Shell_SetUWBEnable },
    { "set_ntrip", Shell_SetNtrip },
    { "ota", Shell_OTA },
    { "log_upload", Shell_LogUpload },
    { "log", Shell_Log },
    { "log_clean", Shell_LogClean },
    { "log_print", Shell_LogPrint },
};
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]);
    }
    save_com_map_to_flash();
    HIDO_ShellPrintf("OK\r\n");
    g_com_map[CNT_RESTART] = 1;
    return HIDO_OK;
}
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;
}
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();
    return HIDO_OK;
}
static HIDO_INT32 Shell_Reboot(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
//    Reboot(0);
    NVIC_SystemReset();
    return HIDO_OK;
}
static HIDO_INT32 Shell_RTCSet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc != 7)
    {
        HIDO_ShellPrintf("usage: rtc_set yyyy mm dd hh mm ss\r\n");
        return HIDO_ERR;
    }
#if 0
    ST_RTCDateTime stDateTime;
    stDateTime.m_u16Year = atoi(_ppcArgv[1]);
    stDateTime.m_u8Month = atoi(_ppcArgv[2]);
    stDateTime.m_u8Day = atoi(_ppcArgv[3]);
    stDateTime.m_u8Hour = atoi(_ppcArgv[4]);
    stDateTime.m_u8Min = atoi(_ppcArgv[5]);
    stDateTime.m_u8Sec = atoi(_ppcArgv[6]);
    if(RTC_SetDateTime(&stDateTime) == HIDO_OK)
    {
        HIDO_ShellPrintf("OK\r\n");
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
#endif
    return HIDO_OK;
}
static HIDO_INT32 Shell_RTCAlarm(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc != 2)
    {
        HIDO_ShellPrintf("usage: rtc_set_alarm sec\r\n");
        return HIDO_ERR;
    }
    //RTC_SetAlarm(atoi(_ppcArgv[1]));
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_RTCGet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
//    ST_RTCDateTime stDateTime;
//#if 0
//    if(RTC_GetDateTime(&stDateTime) == HIDO_OK)
//    {
//        HIDO_ShellPrintf("%04u-%02u-%02u %02u:%02u:%02u\r\n", stDateTime.m_u16Year, stDateTime.m_u8Month,
//                stDateTime.m_u8Day, stDateTime.m_u8Hour, stDateTime.m_u8Min, stDateTime.m_u8Sec);
//        HIDO_ShellPrintf("OK\r\n");
//    }
//    else
//    {
//        HIDO_ShellPrintf("ERROR\r\n");
//    }
//#endif
//    return HIDO_OK;
}
static HIDO_INT32 Shell_DebugOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc < 2)
    {
        HIDO_ShellPrintf("debug_on flag\r\n");
        return HIDO_ERR;
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_DebugOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc < 2)
    {
        HIDO_ShellPrintf("debug_off flag\r\n");
        return HIDO_ERR;
    }
    return HIDO_OK;
}
#define APP_CONFIG_VERSION                                  "V2021051000"
static HIDO_INT32 Shell_Info(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    HIDO_ShellPrintf("Version:         %s\r\n", APP_CONFIG_VERSION);
    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;
}
//#ifdef _RTK_MODE_
static HIDO_INT32 Shell_CloseWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    Module_PowerOff(MODULE_GSM);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_OpenWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    Module_PowerOn(MODULE_GSM);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_PowerOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    Module_PowerOn(MODULE_MAIN);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_PowerOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    Module_PowerOff(MODULE_MAIN);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_Update(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
//    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));
//    g_com_map[CNT_RESTART] = 1;
//    return HIDO_OK;
}
static HIDO_INT32 Shell_ATCmd(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 2)
    {
        HIDO_ShellPrintf("ERROR\r\n");
        return HIDO_OK;
    }
    Module_RunATCmd(_ppcArgv[1]);
    return HIDO_OK;
}
static  HIDO_VOID Shell_SocketEventProc(HIDO_INT32 _i32SockID, E_SocketEvent _eEvent, HIDO_VOID *_pData)
{
    HIDO_Debug("Event:%u\r\n", _eEvent);
}
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);
        HIDO_ShellPrintf("OK\r\n");
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_TCPConnect(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 4)
    {
        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");
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_TCPSend(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 3)
    {
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    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");
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_TCPClose(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 2)
    {
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
    if(Socket_Close(i32SockID) == HIDO_OK)
    {
        HIDO_ShellPrintf("OK\r\n");
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_DEVID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    uint32_t temp2,hex;
    temp2 =  atoi(_ppcArgv[1]);
    hex = (temp2/1000)*4096+((temp2/100)%10)*256+((temp2/10)%10)*16 +((temp2)%10);
    g_com_map[DEV_ID] = hex;
    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变化 */
    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]))
    {
        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];
    }
    /* ç«¯å£=0-65535 */
    if( g_com_map[PORT] != HIDO_UtilStrToInt(_ppcArgv[2]))
    {
        g_com_map[PORT] = HIDO_UtilStrToInt(_ppcArgv[2]);
    }
    save_com_map_to_flash();
    g_com_map[CNT_RESTART] = 1;
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
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_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;
}
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;
}
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变化 */
    if((au8IP[0] != g_com_map[TCP_IP_0]) || (au8IP[1] != g_com_map[TCP_IP_1])
            || (au8IP[2] != g_com_map[TCP_IP_2]) || (au8IP[3] != g_com_map[TCP_IP_3]))
    {
        g_com_map[TCP_IP_0] = au8IP[0];
        g_com_map[TCP_IP_1] = au8IP[1];
        g_com_map[TCP_IP_2] = au8IP[2];
        g_com_map[TCP_IP_3] = au8IP[3];
    }
    /* ç«¯å£=0-65535 */
    if( g_com_map[TCP_PORT] != HIDO_UtilStrToInt(_ppcArgv[2]))
    {
        g_com_map[TCP_PORT] = HIDO_UtilStrToInt(_ppcArgv[2]);
    }
    save_com_map_to_flash();
    HIDO_ShellPrintf("OK\r\n");
    g_com_map[CNT_RESTART] = 1;
    return HIDO_OK;
}
static HIDO_INT32 Shell_DBGMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 2)
    {
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    HIDO_INT32 i32Mode = atoi(_ppcArgv[1]);
    if(i32Mode == 0)
    {
        DBG_SetMode(DBG_MODE_SHELL);
        HIDO_ShellPrintf("OK\r\n");
    }
    else if(i32Mode == 1)
    {
        HIDO_ShellPrintf("OK\r\n");
        DBG_SetMode(DBG_MODE_GPS);
    }else if(i32Mode == 2)
    {
        HIDO_ShellPrintf("OK\r\n");
        DBG_SetMode(DBG_MODE_CFG);
    }
    else
    {
        HIDO_ShellPrintf("ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_GPSBaudRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc != 2)
    {
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    HIDO_INT32 i32BaudRate = atoi(_ppcArgv[1]);
    g_com_map[GPSBAUDRATE1_INDEX] = i32BaudRate>>16;
    g_com_map[GPSBAUDRATE2_INDEX] = i32BaudRate;
    save_com_map_to_flash();
    Uart_ReConfigBaudRate(UART_ID_GPS, i32BaudRate);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_SetDataRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if (_i32Argc != 3)
    {
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    HIDO_INT32 datarate1 = atoi(_ppcArgv[1]);
    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{
        HIDO_ShellPrintf("Arg ERROR\r\n");
    }
    return HIDO_OK;
}
static HIDO_INT32 Shell_OTA(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
//    if(_i32Argc != 2)
//    {
//        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);
//    delay_ms(10);
////    Reboot(0);
//    NVIC_SystemReset();
//    return HIDO_OK;
}
static HIDO_INT32 Shell_LogUpload(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    //Log_Upload("http://39.106.210.13:8080/hfs/");
    return HIDO_OK;
}
static HIDO_INT32 Shell_Log(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    if(_i32Argc != 2)
    {
        HIDO_ShellPrintf("usage: log string\r\n");
        return HIDO_ERR;
    }
//    HIDO_Log(HIDO_LOG_LEVEL_DEBUG, "%s\r\n", _ppcArgv[1]);
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
static HIDO_INT32 Shell_LogPrint(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
    HIDO_INT32 i32Result = HIDO_OK;
    if(_i32Argc != 3)
    {
        HIDO_ShellPrintf("usage: log_print asc[0-1] cnt\r\n");
        return HIDO_ERR;
    }
#if 0
    if(HIDO_UtilStrToInt(_ppcArgv[1]) == 0)
    {
        i32Result = Log_Print(HIDO_FALSE, HIDO_UtilStrToInt(_ppcArgv[2]));
    }
    else
    {
        i32Result = Log_Print( HIDO_TRUE, HIDO_UtilStrToInt(_ppcArgv[2]));
    }
    if(i32Result != HIDO_OK)
    {
        HIDO_ShellPrintf("Print Error\r\n");
    }
    else
    {
        HIDO_ShellPrintf("Print Over\r\n");
    }
#endif
    return HIDO_OK;
}
static HIDO_INT32 Shell_LogClean(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
{
#if 0
    Log_Clean();
#endif
    HIDO_ShellPrintf("OK\r\n");
    return HIDO_OK;
}
HIDO_INT32 Shell_Init(void)
{
    HIDO_ShellCmdRegister(&l_astShellCmdList[0], HIDO_ARRARY_COUNT(l_astShellCmdList));
    return HIDO_OK;
}
keil/include/drivers/Shell.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
#ifndef _SHELL_H_
#define _SHELL_H_
#include "HIDO_TypeDef.h"
HIDO_INT32 Shell_Init(void);
#endif /* _SHELL_H_ */
keil/include/drivers/global_param.c
@@ -108,12 +108,12 @@
        g_com_map[0] = 0x55AA;
        g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID;    //默认设备ID
        g_com_map[COM_INTERVAL]=200;   //频率2HZ
        g_com_map[COM_INTERVAL]=1000;   //频率2HZ
        g_com_map[MAX_REPORT_ANC_NUM]=10;
        g_com_map[GROUP_ID]=0;
        g_com_map[DIST_OFFSET]=-31;
        g_com_map[DEV_ROLE] =0x0;  //基站
        g_com_map[DEV_ROLE] =0x1;  //标签
        g_com_map[HEARTBEAT]=0;
@@ -123,20 +123,28 @@
        g_com_map[NOMOVESLEEP_TIME]=120;   //静止休眠2分钟
        g_com_map[MOTOR_ENABLE]=1;       //震动电机使能
        g_com_map[IMU_ENABLE]=1;        //静止休眠使能
        g_com_map[RTCMMODE_INDEX] = 0;
        g_com_map[CNT_RESTART]=0;
        g_com_map[CNT_REBOOT]=0;
        g_com_map[CNT_UPDATE]=0;
        g_com_map[MODBUS_MODE]=0;
        g_com_map[ACTIVE_INDEX]=0;
        g_com_map[TCP_IP_0]=0x111;
        g_com_map[TCP_IP_1]=0x198;
        g_com_map[TCP_IP_2]=0x60;
        g_com_map[TCP_IP_3]=0x6;
        g_com_map[TCP_PORT]=0x1234;
        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[HEIGHTOFFEST_INDEX]=0;
        g_com_map[GPS_HZ]=1;
//        g_com_map[STATIONARY_TIME] = 10;
        save_com_map_to_flash();
    }
}
keil/include/drivers/global_param.h
@@ -34,12 +34,6 @@
#define    MOTOR_ONTIME_INDEX                0x10
#define     TCP_IP_0                        0x11
#define     TCP_IP_1                        0x12
#define     TCP_IP_2                        0x13
#define     TCP_IP_3                        0x14
#define     TCP_PORT                        ALARM_DISTANCE3
#define      NEARBASE_ID1                    0x11
#define      NEARBASE_ID2                    0x12
#define      NEARBASE_ID3                    0x13
@@ -66,9 +60,33 @@
#define     UWB_ACTIVE_FLAG_IDX                 0x23
#define     HEIGHTOFFEST_INDEX                 0x28
#define     GPSBAUDRATE1_INDEX              0x29
#define     GPSBAUDRATE2_INDEX              0x2A
#define     RTCMMODE_INDEX                  0x2B
#define     UWBENABLE_INDEX                 0x2C
#define     CNT_RESTART                        0x30
#define     CNT_REBOOT                        0x31
#define     CNT_UPDATE                        0x32
#define     ANCHOR_UPDATE                    0x32
#define     IP_0                        0x33
#define     IP_1                        0x34
#define     IP_2                        0x35
#define     IP_3                        0x36
#define     PORT                        0x37
#define     GPS_HZ                      0x38
#define     TCP_IP_0                        0x39
#define     TCP_IP_1                        0x3a
#define     TCP_IP_2                        0x3b
#define     TCP_IP_3                        0x3c
#define     TCP_PORT                        0x3d
#define     SWNAME_INDEX        0x3e
#define     QXWZ_APPKEY_INDEX       0x100
#define     QXWZ_APPSECRET_INDEX    0x110
#define     QXWZ_DEVTYPE_INDEX      0x120
#define     QXWZ_DEVID_INDEX        0x130
#define     NTRIP_HOST_INDEX         0x140
#define     NTRIP_PORT_INDEX         0x150
keil/include/drivers/serial_at_cmd_app.c
@@ -10,7 +10,7 @@
#include "board.h"
//#include "Spi.h"
//#include "radio.h"
#include "DBG.h"
//#define EUART_RX_BUF_SIZE 100
@@ -138,6 +138,7 @@
}
double d_value;
uint8_t shell_receive_state;
void UsartParseDataHandler(uint8_t data)
{
    if(state5V_prase_flag&&!g_com_map[MODBUS_MODE])
@@ -146,7 +147,7 @@
        uint16_t checksum = 0;
        static uint8_t pack_datalen = 0,pack_length = 0,pack_index = 0,pack_msgtype = 0,pack_cmd = CMD_READ;
        static uint8_t index = 0;
//uint8_t shell_receive_state;
@@ -223,6 +224,16 @@
        } else if ((usart_receive_state == UsartReceiveWaitMsgType) && (data == 0x3)) {
            usart_receive_state = UsartReceiveWaitLength;
            pack_msgtype = data;
        } else if ((shell_receive_state == 0) && (data == 0x03)) {
            shell_receive_state = 1;
            uart_send(UART_ID1, data,1, NULL);
        } else if ((shell_receive_state == 1) && (data == 0x03)) {
            shell_receive_state = 2;
            uart_send(UART_ID1, data,1, NULL);
        } else if ((shell_receive_state == 2) && (data == 0x03)) {
          DBG_SetMode(DBG_MODE_SHELL);
            uart_send(UART_ID1, data,1, NULL);
            shell_receive_state=0;
        }
        else {
            usart_receive_state = UsartReceiveWaitHead0;
keil/include/main/main.c
@@ -1,43 +1,3 @@
/*
 * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and
 * its subsidiaries and affiliates (collectly called MKSEMI).
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form, except as embedded into an MKSEMI
 *    integrated circuit in a product or a software update for such product,
 *    must reproduce the above copyright notice, this list of conditions and
 *    the following disclaimer in the documentation and/or other materials
 *    provided with the distribution.
 *
 * 3. Neither the name of MKSEMI nor the names of its contributors may be used
 *    to endorse or promote products derived from this software without
 *    specific prior written permission.
 *
 * 4. This software, with or without modification, must only be used with a
 *    MKSEMI integrated circuit.
 *
 * 5. Any software provided in binary form under this license must not be
 *    reverse engineered, decompiled, modified and/or disassembled.
 *
 * THIS SOFTWARE IS PROVIDED BY MKSEMI "AS IS" AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL MKSEMI OR CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
#include "mk_trace.h"
#include "mk_wdt.h"
#include "mk_calib.h"
@@ -63,6 +23,13 @@
#include "TCPClient.h"
#include "PCA9555.h"
#include "WS2812.h"
#include "DBG.h"
typedef enum
{
    RTCMMODE_NONE,
    RTCMMODE_TCP,
    RTCMMODE_NTRIP,
}RTCMMode;
//#define DEBUG_MODE
extern int simple_main(void);
@@ -84,7 +51,7 @@
extern uint8_t state5V_prase_flag,gps_prase_flag;
extern int distance;
extern uint8_t anchordata_num;
uint32_t dev_id;
uint16_t dev_id;
uint8_t group_id;
uint16_t tag_frequency;
uint16_t disoffset;
@@ -203,7 +170,6 @@
                    LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n");
                }
        PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高
  //  LOG_INFO(TRACE_MODULE_APP, "The voltage is %%%d \r\n",bat_percent);
}
extern uint8_t gps_uwb_flag,gps_need_data_flag;
uint8_t TCP_reconnect_timer,flag_TCP_reconnectting = 1,flag_alam_state = 0,userkey_state;
@@ -275,35 +241,6 @@
{        
        PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
}
void Air780eTask(void)
{
//            if(!power_low_flag)//确认是否休眠下才开启功能
//            {
        if(flag_TCP_reconnectting||IfTCPConnected())
        {
//        //    LOG_INFO(TRACE_MODULE_APP, "处理4G任务\r\n");
//
////            if(flag_4guart_needinit)
////            {
////                flag_4guart_needinit = 0;
////                AIR780EUartInit();
////            }//yuan
            if(flag_4G_recdata==1)
            {
                flag_4G_recdata = 2;
                //LOG_INFO(TRACE_MODULE_APP, "运行Socket_RecvAll tt2 %d\r\n",tt2);
                Socket_RecvAll();
            }
            Internet_Poll();
            HIDO_ATLitePoll();
            HIDO_TimerPoll();
            TCPClient_Poll();
        }
//        }
}
void SecondTask(void)
{static uint8_t second_count;
@@ -417,16 +354,27 @@
    dev_id=g_com_map[DEV_ID];//这里不太对
    g_com_map[GROUP_ID]=9;
    group_id=g_com_map[GROUP_ID];//组ID
//    tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间
    memcpy(&disoffset,&g_com_map[DIST_OFFSET],2);
//    g_com_map[ALARM_DISTANCE1] = 40;
//    g_com_map[ALARM_DISTANCE2] = 40;
    warning_distance=g_com_map[ALARM_DISTANCE1];
    prewarning_distance=g_com_map[ALARM_DISTANCE2];
    send_struct.warnDistence=warning_distance;
    send_struct.alarmDistence=prewarning_distance;//更新报警距离
    memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID
    send_struct.tagId=dev_id;//更新设备ID
    g_com_map[IP_0]=111;
    g_com_map[IP_1]=198;
    g_com_map[IP_2]=60;
    g_com_map[IP_3]=6;
    g_com_map[PORT]=6666;
    g_com_map[RTCMMODE_INDEX] = RTCMMODE_NTRIP;
    snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "140.143.212.42");
    g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt("8005");
//    snprintf((char *)&g_com_map[NTRIP_PORT_INDEX], 32, "8005");
    snprintf((char *)&g_com_map[NTRIP_USERNANME_INDEX], 32, "test005");
    snprintf((char *)&g_com_map[NTRIP_PASSWORD_INDEX], 32, "Hxzk0228");
    snprintf((char *)&g_com_map[NTRIP_SOURCENAME_INDEX], 32, "RTCM32_GNSS2");
    if(g_com_map[BIND_DEV_ID]==0)
    {
@@ -443,21 +391,35 @@
        }
    g_com_map[MODBUS_MODE] = 0;
        log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
    ip0 = (g_com_map[TCP_IP_0]>>12&0xf)*1000+(g_com_map[TCP_IP_0]>>8&0xf)*100+(g_com_map[TCP_IP_0]>>4&0xf)*10+(g_com_map[TCP_IP_0]&0xf);
    ip1 = (g_com_map[TCP_IP_1]>>12&0xf)*1000+(g_com_map[TCP_IP_1]>>8&0xf)*100+(g_com_map[TCP_IP_1]>>4&0xf)*10+(g_com_map[TCP_IP_1]&0xf);
    ip2 = (g_com_map[TCP_IP_2]>>12&0xf)*1000+(g_com_map[TCP_IP_2]>>8&0xf)*100+(g_com_map[TCP_IP_2]>>4&0xf)*10+(g_com_map[TCP_IP_2]&0xf);
    ip3 = (g_com_map[TCP_IP_3]>>12&0xf)*1000+(g_com_map[TCP_IP_3]>>8&0xf)*100+(g_com_map[TCP_IP_3]>>4&0xf)*10+(g_com_map[TCP_IP_3]&0xf);
    port = g_com_map[TCP_PORT];
    g_com_map[VERSION] = (1<<8)|3;
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
    LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
    LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port);
    LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[IP_0],g_com_map[IP_1],g_com_map[IP_2],g_com_map[IP_3],g_com_map[PORT]);
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
    {
    LOG_INFO(TRACE_MODULE_APP,"TCP_RTCM模式,服务器地址: %d.%d.%d.%d:%d.\r\n",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)
    {
        LOG_INFO(TRACE_MODULE_APP,"NtripHost:%s.\r\n",(char *)&g_com_map[NTRIP_HOST_INDEX]);
        LOG_INFO(TRACE_MODULE_APP,"NtripPort:%d.\r\n",g_com_map[NTRIP_PORT_INDEX]);
        LOG_INFO(TRACE_MODULE_APP,"NtripUsername:%s.\r\n",(char *)&g_com_map[NTRIP_USERNANME_INDEX]);
        LOG_INFO(TRACE_MODULE_APP,"NtripPassword:%s.\r\n",(char *)&g_com_map[NTRIP_PASSWORD_INDEX]);
        LOG_INFO(TRACE_MODULE_APP,"NtripSourcename:%s.\r\n",(char *)&g_com_map[NTRIP_SOURCENAME_INDEX]);
    }
    else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE)
    {
        LOG_INFO(TRACE_MODULE_APP,"单点定位模式模式. \r\n");
    }
}
uint32_t adctick = 0;
uint8_t only_one_flag;
uint16_t chongman_time;
uint8_t bat_percent_old=100;
uint8_t input5vflag;
uint8_t kai_4g_flag;
void IdleTask(void)
{
if(read_5v_input_pca())
@@ -498,11 +460,21 @@
                }else{
                    powerled = RED;
                }
                UART_CheckReceive();
                if(DBG_GetMode() == DBG_MODE_SHELL)
                {
                    if(kai_4g_flag==0)
                    {
                    kai_4g_flag=1;
//                    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);
                    Shell_Init();
                    }
                HIDO_InputPoll();
                Internet_Poll();
                HIDO_TimerPoll();
                HIDO_ATLitePoll();
                TCPClient_Poll();
                }
                UART_CheckReceive();
                if(flag_secondtask)
                {
                    flag_secondtask = 0;
@@ -529,24 +501,18 @@
                state5V_prase_flag=state5v;
                gps_prase_flag=1;//恢复gps解析
                uart1_change_from_debug_to_gps();//测试
                            PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
                PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
            }
//            input5vflag=0;
        }
        UART_CheckReceive();
        if(g_com_map[CNT_RESTART]==1)
        {
            g_com_map[CNT_RESTART]=0;
//            printf("%s URTRestart",__debug_info__);
//            URTRestart();
            NVIC_SystemReset();
            
        }
        if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0)
        {
//            printf("%s URTRestart",__debug_info__);
//            URTRestart();
//              //  SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
            NVIC_SystemReset();
        }
        HIDO_TimerPoll();
@@ -584,12 +550,10 @@
    board_clock_run();
    boot_deinit();
    board_pins_config();
        board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
    board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
    // Reset reason
    reset_cause_get();
    reset_cause_clear();
//注意串口一波特率改为9600了为了能和GPS通信上
    // Load calibration parameters from NVM
    uint32_t internal_flash = (REG_READ(0x40000018) >> 17) & 0x1;
    uint32_t external_flash = (REG_READ(0x40010030) >> 28) & 0x3;
    if (internal_flash || external_flash == 1)
@@ -602,31 +566,36 @@
    {
        board_calibration_params_default();
    }
    // Chip calibration
    calib_chip();
    // Disable watchdog timer
    wdt_close(WDT_ID0);
    LOG_INFO(TRACE_MODULE_APP, "UWB simple example\r\n");
    // open system timer
    //sys_timer_open();
        // TODO 4G
    Uart_Register(UART_ID_4G, UART_ID0);
//    Uart_Register(UART_ID_DBG, UART_ID1);
    Program_Init();
    Internet_Init();
    TCPClient_Init();
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
    {
        NTRIPClient_Init();
        NTRIPApp_Init();
    }
    gpio_open();
    LED_output_init();//配置彩色灯引脚
    IIC2_Init();
    Accelerometer_Init();
    PCA9555_init();
        //AIR780E_Reset();
    adc_open(&usr_adc_cfg);
    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
    power_init();
    sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
    sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
    PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
    pca_input_detection_init(pca_handler);//pca检测输入
    Uwb_init();
    OpenUWB();
    DBG_Init();
//    Shell_Init();
    if(!read_5v_input_pca())
    {
     Set4LEDColor(BLUE,GREEN,WHITE,RED);
@@ -635,28 +604,6 @@
     delay_ms(500);        
     Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);       
    }
//    io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形
//    gpio_pin_set_dir(SCL_PIN , GPIO_DIR_IN, 0);
//    io_pull_set(SCL_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL4);
           Program_Init();
    //uart_open(UART_ID1, &test_uart_cfg);
   // uart1_change_from_gps_to_debug();
    //Uart1GpsRecDebugSend();
    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
    // Initialize low power mode
    power_init();
      //AIR780E_Reset(); //4G模块重启,耗时1.5秒,这个是无法同步的关键
    sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
    //sleep_timer_start(__MS_TO_32K_CNT(g_com_map[COM_INTERVAL]));//测试
    sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
        PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
         adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
    //board_acceleration_detection_init(move_handler);
        pca_input_detection_init(pca_handler);//pca检测输入
        //board_4GUsart_detection_init(_4gUsart_handler);
        Uwb_init();
        OpenUWB();
//                        state5v=1;
//                state5V_prase_flag=state5v;
//                gps_prase_flag=0;//解除gps解析
@@ -678,48 +625,5 @@
        IMUTask();
        UserKeyTask();
        IdleTask();
#ifndef DEBUG_MODE
////if(flag_sleeptimer)
////        if(!gps_need_data_flag&&!gpio_pin_get_val(INPUT_5V_Pin)&&((IfTCPConnected()&&Socket_IsSendQueueEmpty(0))||!flag_TCP_reconnectting&&!IfTCPConnected())) //进入休眠条件(与关系,全满足才进):1.没有5V输入 2 TCP已连接时发送队列为空||TCP无连接时不在重连状态。
////        {
////                 if(!flag_4guart_needinit)
////            {
////                           LOG_INFO(TRACE_MODULE_APP, "4G RX ä¸­æ–­æ‰“å¼€\r\n");
////                             board_4GUsart_detection_init(_4gUsart_handler);
////            }
////               flag_sleeptimer =0;
//            //LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n");
////                flag_4guart_needinit = 1;
////        trace_flush();
////        uint32_t lock = int_lock();
////        //LOG_INFO(TRACE_MODULE_APP, "进入低功耗");
////        power_enter_power_down_mode(0);
////        int_unlock(lock);
////        }//yuan
//                if(delaysleep_count==0)
//        if(!gps_power_state&&!gpio_pin_get_val(INPUT_5V_Pin)&&((IfTCPConnected()&&AIR780E_IsIPIdle()&&Socket_IsSendQueueEmpty(0))||((!flag_TCP_reconnectting)&&!IfTCPConnected())||power_low_flag))
//        {
////                    test1=gpio_pin_get_val(_4G_USART_RX_Pin);
//            uint32_t lock;
//            //flag_4guart_needinit = 1;
////            Internet_Poll();
////            HIDO_ATLitePoll();
////            HIDO_TimerPoll();
////            TCPClient_Poll();
//
//           // delay_us(300000);
//            trace_flush();
//            lock = int_lock();
//            power_enter_power_down_mode(0);
//                        uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
////                    test3=gpio_pin_get_val(_4G_USART_RX_Pin);
//                    //LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n");
//            int_unlock(lock);
//        }
#endif
    }
}
keil/include/src/TCPClient.c
@@ -378,9 +378,9 @@
                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);
keil/uwb_simple_example.uvguix.WXK
@@ -15,17 +15,17 @@
    <View>
      <WinId>38003</WinId>
      <ViewName>Registers</ViewName>
      <TableColWidths>140 63</TableColWidths>
      <TableColWidths>140 100</TableColWidths>
    </View>
    <View>
      <WinId>346</WinId>
      <ViewName>Code Coverage</ViewName>
      <TableColWidths>1037 160</TableColWidths>
      <TableColWidths>1037 656</TableColWidths>
    </View>
    <View>
      <WinId>204</WinId>
      <ViewName>Performance Analyzer</ViewName>
      <TableColWidths>1197</TableColWidths>
      <TableColWidths>1197 179 179 138</TableColWidths>
    </View>
  </SECTreeCtrl>
@@ -93,25 +93,25 @@
      <flags>2</flags>
      <showCmd>3</showCmd>
      <MinPosition>
        <xPos>-32000</xPos>
        <yPos>-32000</yPos>
        <xPos>-1</xPos>
        <yPos>-1</yPos>
      </MinPosition>
      <MaxPosition>
        <xPos>-1</xPos>
        <yPos>-1</yPos>
      </MaxPosition>
      <NormalPosition>
        <Top>78</Top>
        <Left>-8</Left>
        <Right>2129</Right>
        <Bottom>1051</Bottom>
        <Top>238</Top>
        <Left>2736</Left>
        <Right>5308</Right>
        <Bottom>1323</Bottom>
      </NormalPosition>
    </WindowPosition>
    <MDIClientArea>
      <RegID>0</RegID>
      <MDITabState>
        <Len>1998</Len>
        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001300000000000000010000003B433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C6D61696E5C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF31433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C7577625F6170702E6300000000097577625F6170702E6300000000FFDC7800FFFFFFFF56433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C646576696365735C4D4B383030585C536F757263655C737461727475705F4D4B383030582E630000000010737461727475705F4D4B383030582E6300000000BECEA100FFFFFFFF37433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C64775F6170705F616E63686F722E68000000000F64775F6170705F616E63686F722E6800000000F0A0A100FFFFFFFF3F433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C7372635C544350436C69656E742E63000000000B544350436C69656E742E6300000000BCA8E100FFFFFFFF3E433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C7372635C4E545249504170702E63000000000A4E545249504170702E63000000009CC1B600FFFFFFFF57433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C7372635C41495237383045536F636B65742E63000000000F41495237383045536F636B65742E6300000000F7B88600FFFFFFFF46433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C676C6F62616C5F706172616D2E63000000000E676C6F62616C5F706172616D2E6300000000D9ADC200FFFFFFFF46433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C676C6F62616C5F706172616D2E68000000000E676C6F62616C5F706172616D2E6800000000A5C2D700FFFFFFFF55433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C6869646F5C496E636C7564655C4849444F5F4261736536342E68000000000D4849444F5F4261736536342E6800000000B3A6BE00FFFFFFFF55433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C7372635C4E54524950436C69656E742E63000000000D4E54524950436C69656E742E6300000000EAD6A300FFFFFFFF2F433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C70696E5F636F6E6669672E63000000000C70696E5F636F6E6669672E6300000000F6FA7D00FFFFFFFF41433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C6D6B5F6770696F2E6300000000096D6B5F6770696F2E6300000000B5E99D00FFFFFFFF41433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C504341393535352E630000000009504341393535352E63000000005FC3CF00FFFFFFFF3F433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C55736172742E63000000000755736172742E6300000000C1838300FFFFFFFF4B433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C73657269616C5F61745F636D645F6170702E63000000001373657269616C5F61745F636D645F6170702E6300000000CACAD500FFFFFFFF39433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C7372635C4750532E6300000000054750532E6300000000C5D4F200FFFFFFFF42433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C6D6B5F74726163652E68000000000A6D6B5F74726163652E6800000000FFDC7800FFFFFFFF3D433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C626F6172645C626F6172642E680000000007626F6172642E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D900000066000000AB06000080020000</Data>
        <Len>557</Len>
        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000003000000010000003B433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C6D61696E5C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF3F433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C5368656C6C2E6300000000075368656C6C2E6300000000FFDC7800FFFFFFFF46433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C676C6F62616C5F706172616D2E63000000000E676C6F62616C5F706172616D2E6300000000BECEA100FFFFFFFF4B433A5C6769742D6D6B383030305C4368696E6155574250726F6A656374202D2034475C6B65696C5C696E636C7564655C647269766572735C73657269616C5F61745F636D645F6170702E63000000001373657269616C5F61745F636D645F6170702E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D90A000066000000801100009F030000</Data>
      </MDITabState>
    </MDIClientArea>
    <ViewEx>
@@ -134,7 +134,7 @@
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
          <Data>D90000006600000090050000F4000000</Data>
          <Data>D90A000066000000900F0000F4000000</Data>
        </RectRecentFloat>
      </Window>
      <Window>
@@ -150,7 +150,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000050020000</Data>
          <Data>0300000066000000D20000006F030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -170,7 +170,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000050020000</Data>
          <Data>0300000066000000D20000006F030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -450,7 +450,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000050020000</Data>
          <Data>0300000066000000D20000006F030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -470,7 +470,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000050020000</Data>
          <Data>0300000066000000D20000006F030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -490,7 +490,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000084020000A806000055030000</Data>
          <Data>03000000A30300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -530,7 +530,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000084020000A806000055030000</Data>
          <Data>03000000A30300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1170,7 +1170,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000840200007D07000055030000</Data>
          <Data>03000000A30300007D07000074040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1190,7 +1190,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000840200007D07000055030000</Data>
          <Data>03000000A30300007D07000074040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1250,7 +1250,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000840200007D07000055030000</Data>
          <Data>03000000A30300007D07000074040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1270,7 +1270,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000840200007D07000055030000</Data>
          <Data>03000000A30300007D07000074040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1730,7 +1730,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>000000006E030000AB06000081030000</Data>
          <Data>00000000E603000080070000F9030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1799,14 +1799,14 @@
      </Window>
      <DockMan>
        <Len>3312</Len>
        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D90000006600000090050000F4000000D90000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFB70400004F000000BB04000023020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000BB04000066000000900500003A020000BB0400004F000000900500002302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000069020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000D5000000F8020000000000004F000000D5000000690200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000000F020000900500001302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000002A02000090050000CC020000000000001302000090050000B502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000013020000CC020000B502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000069020000AB0600006D020000010000000100001004000000010000006EFDFFFFFA000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000FC02000080070000FD030000000000006D020000AB0600006E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D90A000066000000900F0000F4000000D90000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFB70400004F000000BB04000023020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000BB0E000066000000900F00003A020000BB0400004F000000900500002302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000088030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000A000066000000D50A0000F8020000000000004F000000D5000000880300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000000F020000900500001302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000A00002A020000900F0000CC020000000000001302000090050000B502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000013020000CC020000B502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000088030000800700008C0300000100000001000010040000000100000073FDFFFFFF000000FFFFFFFF06000000C7000000C5000000B4010000D2010000CF0100007794000001800080000001000000000A0000FC02000080110000FD030000000000008C03000080070000E60300000000000040820056060000000D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC700000001000000FFFFFFFFC7000000000000000000000000000000</Data>
      </DockMan>
      <ToolBar>
        <RegID>59392</RegID>
        <Name>File</Name>
        <Buttons>
          <Len>2916</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C50726F6772616D5F496E6974960000000000000013000C50726F6772616D5F496E6974084442475F496E6974116C5F6173745368656C6C436D644C697374084442475F506F6C6C0D746573745F756172745F636667063131353230300A74726163655F6F70656E1D626F6172645F64656275675F636F6E736F6C655F6F70656E5F62617564077374617465357612737461746535565F70726173655F666C61670E6770735F70726173655F666C616711554152545F436865636B526563656976650E4442475F4D4F44455F5348454C4C1054524143455F504F52545F55415254311574726163655F6F75747075745F626C6F636B696E67104E5649435F53797374656D52657365740A5368656C6C5F496E69740E706172616D657465725F696E697416675F636F6D5F6D61705B305D203D203078353541413B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
          <Len>2673</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E5254434D4D4F44455F494E444558960000000000000005000E5254434D4D4F44455F494E44455819675F636F6D5F6D61705B5254434D4D4F44455F494E4445585D104E545249505F484F53545F494E4445581B675F636F6D5F6D61705B4E545249505F484F53545F494E4445585D0F675F636F6D5F6D61705B49505F305D0000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
        </Buttons>
        <OriginalItems>
          <Len>1423</Len>
@@ -1822,7 +1822,7 @@
        <Name>Build</Name>
        <Buttons>
          <Len>988</Len>
          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
        </Buttons>
        <OriginalItems>
          <Len>583</Len>
@@ -1871,11 +1871,11 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>83050000E1000000800700003C030000</Data>
          <Data>83050000E10000008007000013030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
          <Data>830F0000F80000008011000053030000</Data>
          <Data>830F0000F8000000801100002A030000</Data>
        </RectRecentFloat>
      </Window>
      <Window>
@@ -1891,7 +1891,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000023030000</Data>
          <Data>0300000066000000D2000000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1911,7 +1911,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000023030000</Data>
          <Data>0300000066000000D2000000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1931,7 +1931,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1951,7 +1951,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1971,7 +1971,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1991,7 +1991,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2051,7 +2051,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2071,7 +2071,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2091,7 +2091,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2111,7 +2111,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2131,7 +2131,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2151,7 +2151,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2171,7 +2171,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2191,7 +2191,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000023030000</Data>
          <Data>0300000066000000D2000000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2211,7 +2211,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000023030000</Data>
          <Data>0300000066000000D2000000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2231,7 +2231,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000570300007D070000CD030000</Data>
          <Data>030000002E0300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2271,7 +2271,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>000000005403000080070000E6030000</Data>
          <Data>000000002B03000080070000E6030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2371,7 +2371,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2891,7 +2891,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000066000000D200000023030000</Data>
          <Data>0300000066000000D2000000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2911,7 +2911,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000570300007D070000CD030000</Data>
          <Data>030000002E0300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2931,7 +2931,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000570300007D070000CD030000</Data>
          <Data>030000002E0300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2951,7 +2951,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2971,7 +2971,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -2991,7 +2991,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000570300007D070000CD030000</Data>
          <Data>030000002E0300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -3011,7 +3011,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000570300007D070000CD030000</Data>
          <Data>030000002E0300007D070000CD030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -3531,7 +3531,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>86050000F80000007D07000023030000</Data>
          <Data>86050000F80000007D070000FA020000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -3540,14 +3540,14 @@
      </Window>
      <DockMan>
        <Len>3415</Len>
        <Data>000000000C000000000000000040000001000000FFFFFFFFFFFFFFFF7F050000E1000000830500003C03000001000000020000100400000001000000B5FCFFFF5103000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E650040000001000000830F0000F8000000801100005303000083050000E1000000800700003C03000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000DD00000080070000E1000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000D90A00006600000080110000F4000000D90000004F00000080070000DD0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFB70400004F000000BB04000023020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000BB0E000066000000900F00003A020000BB0400004F000000900500002302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D90000003C030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000A000066000000D50A000053030000000000004F000000D50000003C0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000AE02000080070000B202000000000000010000000400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFFC003000044030000C4030000E603000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000003C030000800700004003000001000000010000100400000001000000E5FDFFFFDF000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000A00005703000080110000FD030000000000004003000080070000E60300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
        <Data>000000000C000000000000000040000001000000FFFFFFFFFFFFFFFF7F050000E1000000830500001303000001000000020000100400000001000000B5FCFFFF5103000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E650040000001000000830F0000F8000000801100002A03000083050000E1000000800700001303000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000DD00000080070000E1000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000D90A00006600000080110000F4000000D90000004F00000080070000DD0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFB70400004F000000BB04000023020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000BB0E000066000000900F00003A020000BB0400004F000000900500002302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000013030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000A000066000000D50A00002A030000000000004F000000D5000000130300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000AE02000080070000B202000000000000010000000400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFFC003000044030000C4030000E603000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000013030000800700001703000001000000010000100400000001000000AAFDFFFFA4000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000A00002E03000080110000FD030000000000001703000080070000E60300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
      </DockMan>
      <ToolBar>
        <RegID>59392</RegID>
        <Name>File</Name>
        <Buttons>
          <Len>2601</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B4750535F5265637646736D960000000000000003000B4750535F5265637646736D0A416E63686F725F417070114849444F5F426173653634456E636F6465000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
          <Len>2673</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E5254434D4D4F44455F494E444558960000000000000005000E5254434D4D4F44455F494E44455819675F636F6D5F6D61705B5254434D4D4F44455F494E4445585D104E545249505F484F53545F494E4445581B675F636F6D5F6D61705B4E545249505F484F53545F494E4445585D0F675F636F6D5F6D61705B49505F305D0000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
        </Buttons>
        <OriginalItems>
          <Len>1423</Len>
@@ -3563,7 +3563,7 @@
        <Name>Build</Name>
        <Buttons>
          <Len>955</Len>
          <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
          <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
        </Buttons>
        <OriginalItems>
          <Len>583</Len>
@@ -3579,7 +3579,7 @@
        <Name>Debug</Name>
        <Buttons>
          <Len>2362</Len>
          <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
          <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
        </Buttons>
        <OriginalItems>
          <Len>898</Len>
@@ -3603,66 +3603,21 @@
    <ActiveMDIGroup>0</ActiveMDIGroup>
    <MDIGroup>
      <Size>100</Size>
      <ActiveTab>0</ActiveTab>
      <ActiveTab>3</ActiveTab>
      <Doc>
        <Name>.\include\main\main.c</Name>
        <ColumnNumber>24</ColumnNumber>
        <TopLine>580</TopLine>
        <CurrentLine>586</CurrentLine>
        <ColumnNumber>17</ColumnNumber>
        <TopLine>452</TopLine>
        <CurrentLine>476</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\uwb_app.c</Name>
        <ColumnNumber>12</ColumnNumber>
        <TopLine>499</TopLine>
        <CurrentLine>518</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\devices\MK800X\Source\startup_MK800X.c</Name>
        <Name>.\include\drivers\Shell.c</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>239</TopLine>
        <CurrentLine>246</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>..\keil\dw_app_anchor.h</Name>
        <ColumnNumber>8</ColumnNumber>
        <TopLine>7</TopLine>
        <CurrentLine>26</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\src\TCPClient.c</Name>
        <ColumnNumber>1</ColumnNumber>
        <TopLine>433</TopLine>
        <CurrentLine>441</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\src\NTRIPApp.c</Name>
        <ColumnNumber>1</ColumnNumber>
        <TopLine>63</TopLine>
        <CurrentLine>78</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\components\internet\src\AIR780ESocket.c</Name>
        <ColumnNumber>21</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>16</CurrentLine>
        <TopLine>149</TopLine>
        <CurrentLine>159</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
@@ -3670,107 +3625,17 @@
      <Doc>
        <Name>.\include\drivers\global_param.c</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>1</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>include\drivers\global_param.h</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>1</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>C:\git-mk8000\ChinaUWBProject - 4G\keil\include\components\hido\Include\HIDO_Base64.h</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>3</TopLine>
        <CurrentLine>22</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\components\internet\src\NTRIPClient.c</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>570</TopLine>
        <CurrentLine>587</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>..\pin_config.c</Name>
        <ColumnNumber>2</ColumnNumber>
        <TopLine>81</TopLine>
        <CurrentLine>104</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\drivers\mk_gpio.c</Name>
        <ColumnNumber>4</ColumnNumber>
        <TopLine>51</TopLine>
        <CurrentLine>63</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\drivers\PCA9555.c</Name>
        <ColumnNumber>5</ColumnNumber>
        <TopLine>509</TopLine>
        <CurrentLine>510</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\drivers\Usart.c</Name>
        <ColumnNumber>5</ColumnNumber>
        <TopLine>20</TopLine>
        <CurrentLine>39</CurrentLine>
        <TopLine>111</TopLine>
        <CurrentLine>126</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\drivers\serial_at_cmd_app.c</Name>
        <ColumnNumber>19</ColumnNumber>
        <TopLine>223</TopLine>
        <CurrentLine>238</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\src\GPS.c</Name>
        <ColumnNumber>1</ColumnNumber>
        <TopLine>663</TopLine>
        <CurrentLine>682</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>include\drivers\mk_trace.h</Name>
        <ColumnNumber>4</ColumnNumber>
        <TopLine>93</TopLine>
        <CurrentLine>111</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>include\board\board.h</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>241</TopLine>
        <CurrentLine>260</CurrentLine>
        <ColumnNumber>68</ColumnNumber>
        <TopLine>211</TopLine>
        <CurrentLine>214</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
keil/uwb_simple_example.uvguix.hido
@@ -6,7 +6,7 @@
  <Header>### uVision Project, (C) Keil Software</Header>
  <PrjGuiSettings>
    <LastAddFilePath>F:\外包\北京华星北斗\ChinaUWBProject\keil\include\src</LastAddFilePath>
    <LastAddFilePath>F:\外包\北京华星北斗\2025-03-11\UBK工卡4G\keil\include\components\hido</LastAddFilePath>
  </PrjGuiSettings>
  <ViewPool/>
@@ -15,7 +15,7 @@
    <View>
      <WinId>38003</WinId>
      <ViewName>Registers</ViewName>
      <TableColWidths>155 155</TableColWidths>
      <TableColWidths>359 30</TableColWidths>
    </View>
    <View>
      <WinId>346</WinId>
@@ -40,7 +40,7 @@
      <WinId>1506</WinId>
      <ViewName>Symbols</ViewName>
      <UserString></UserString>
      <TableColWidths>68 68 68</TableColWidths>
      <TableColWidths>201 201 201</TableColWidths>
    </View>
    <View>
      <WinId>1936</WinId>
@@ -101,17 +101,17 @@
        <yPos>-1</yPos>
      </MaxPosition>
      <NormalPosition>
        <Top>317</Top>
        <Left>305</Left>
        <Right>1223</Right>
        <Bottom>886</Bottom>
        <Top>375</Top>
        <Left>192</Left>
        <Right>1110</Right>
        <Bottom>944</Bottom>
      </NormalPosition>
    </WindowPosition>
    <MDIClientArea>
      <RegID>0</RegID>
      <MDITabState>
        <Len>60</Len>
        <Data>010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000</Data>
        <Len>993</Len>
        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000700000001000000010000005C463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C7372635C4E54524950436C69656E742E63000000000D4E54524950436C69656E742E6300000000C5D4F200FFFFFFFF45463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C7372635C4E545249504170702E63000000000A4E545249504170702E6300000000FFDC7800FFFFFFFF5C463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C6869646F5C496E636C7564655C4849444F5F4261736536342E68000000000D4849444F5F4261736536342E6800000000BECEA100FFFFFFFF64463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C646576696365735C4D4B383030585C536F757263655C41524D5C4D4B383030585F6163365F636F70792E73637400000000134D4B383030585F6163365F636F70792E73637400000000F0A0A100FFFFFFFF54463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C6869646F5C4849444F5F4261736536342E63000000000D4849444F5F4261736536342E6300000000BCA8E100FFFFFFFF57463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C7372635C536F636B65742E630000000008536F636B65742E63000000009CC1B600FFFFFFFF57463A5CCDE2B0FC5CB1B1BEA9BBAAD0C7B1B1B6B75C323032352D30332D31315C55424BB9A4BFA834475C6B65696C5C696E636C7564655C636F6D706F6E656E74735C696E7465726E65745C696E635C536F636B65742E680000000008536F636B65742E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000E3120000F8030000</Data>
      </MDITabState>
    </MDIClientArea>
    <ViewEx>
@@ -134,7 +134,7 @@
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
          <Data>D000000066000000BA040000DD000000</Data>
          <Data>98010000E5010000820500005C020000</Data>
        </RectRecentFloat>
      </Window>
      <Window>
@@ -150,7 +150,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000660000003D01000060020000</Data>
          <Data>03000000660000003D010000C8030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -170,7 +170,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000660000003D01000060020000</Data>
          <Data>03000000660000003D010000C8030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -450,7 +450,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000660000003D01000060020000</Data>
          <Data>03000000660000003D010000C8030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -470,7 +470,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>03000000660000003D01000060020000</Data>
          <Data>03000000660000003D010000C8030000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -490,7 +490,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC030000E012000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -530,7 +530,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC030000E012000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1170,7 +1170,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC0300006006000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1190,7 +1190,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC0300006006000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1250,7 +1250,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC0300006006000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1270,7 +1270,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>0300000094020000600600002B030000</Data>
          <Data>03000000FC0300006006000093040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1730,7 +1730,7 @@
        <RecentRowIndex>0</RecentRowIndex>
        <RectRecentDocked>
          <Len>16</Len>
          <Data>00000000440300006306000057030000</Data>
          <Data>00000000AC040000E3120000BF040000</Data>
        </RectRecentDocked>
        <RectRecentFloat>
          <Len>16</Len>
@@ -1799,14 +1799,14 @@
      </Window>
      <DockMan>
        <Len>3312</Len>
        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD0000000C6000000BA040000CA000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D000000066000000BA040000DD000000D00000004F000000BA040000C60000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEA0300004F000000EE030000C9010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000EE03000066000000BA040000E0010000EE0300004F000000BA040000C901000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000790200000100000002000010040000000100000036FFFFFF0E080000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000004001000090020000000000004F00000040010000790200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000B5010000BA040000B901000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000D0010000BA0400005B02000000000000B9010000BA0400004402000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF5D020000B9010000610200004402000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000079020000630600007D02000001000000010000100400000001000000DBFDFFFFC5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000094020000630600005B030000000000007D02000063060000440300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD0000000C6000000BA040000CA000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000098010000E5010000820500005C020000D00000004F000000BA040000C60000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEA0300004F000000EE030000C9010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B6040000E5010000820500005F030000EE0300004F000000BA040000C901000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000E10300000100000002000010040000000100000036FFFFFF0E080000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000C8000000E5010000080200000F040000000000004F00000040010000E10300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000B5010000BA040000B901000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000C80000004F03000082050000DA03000000000000B9010000BA0400004402000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF5D020000B9010000610200004402000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000E1030000E3120000E503000001000000010000100400000001000000DBFDFFFFC5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000C8000000130400002B070000DA04000000000000E5030000E3120000AC0400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
      </DockMan>
      <ToolBar>
        <RegID>59392</RegID>
        <Name>File</Name>
        <Buttons>
          <Len>2725</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000000A4849444F5F54696D657296000000000000000D000375736200065443505F4950027538037533320A4849444F5F54696D65720B4849444F5F41544C697465154849444F5F41544C697465446576696365496E69740D496E7465726E65745F496E697412414952373830454472697665725F496E697408494F5F50494E5F540E6C5F73744149523738304550696E044750494F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
          <Len>2889</Len>
          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000A554152545F49445F3447960000000000000014000A554152545F49445F344704415445300F536D735F5365745265637644617461154543363030535F4556454E545F534D535F444154410C536D735F52656164446174610847505253536D735F104D41585F524551554553545F53495A451348545450436C69656E745F526573706F6E73650C4D585F54494D325F496E6974056874696D32056874696D331344656C61795F54696D657252656769737465720A44656C61795F496E69740A47657435313242797465044253525218444154415F4348414E47455F53494E474C455F53544152540B5350495F434C4B203D20300B5350495F434C4B203D203112444154415F4348414E47455F53494E474C450844656C61795F4D730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
        </Buttons>
        <OriginalItems>
          <Len>1423</Len>
@@ -1822,7 +1822,7 @@
        <Name>Build</Name>
        <Buttons>
          <Len>988</Len>
          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E4D4B383030302052656C65617365960000000000000001000E4D4B383030302052656C65617365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
        </Buttons>
        <OriginalItems>
          <Len>583</Len>
@@ -1838,7 +1838,7 @@
        <Name>Debug</Name>
        <Buttons>
          <Len>2373</Len>
          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
        </Buttons>
        <OriginalItems>
          <Len>898</Len>
@@ -1851,10 +1851,82 @@
      </ToolBar>
      <ControlBarsSummary>
        <Bars>0</Bars>
        <ScreenCX>1635</ScreenCX>
        <ScreenCY>918</ScreenCY>
        <ScreenCX>4835</ScreenCX>
        <ScreenCY>1278</ScreenCY>
      </ControlBarsSummary>
    </ViewEx>
  </WinLayoutEx>
  <MDIGroups>
    <Orientation>1</Orientation>
    <ActiveMDIGroup>0</ActiveMDIGroup>
    <MDIGroup>
      <Size>100</Size>
      <ActiveTab>1</ActiveTab>
      <Doc>
        <Name>.\include\components\internet\src\NTRIPClient.c</Name>
        <ColumnNumber>17</ColumnNumber>
        <TopLine>22</TopLine>
        <CurrentLine>19</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\src\NTRIPApp.c</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>16</TopLine>
        <CurrentLine>1</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>include\components\hido\Include\HIDO_Base64.h</Name>
        <ColumnNumber>28</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>26</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>F:\外包\北京华星北斗\2025-03-11\UBK工卡4G\keil\include\devices\MK800X\Source\ARM\MK800X_ac6_copy.sct</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>25</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\components\hido\HIDO_Base64.c</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>109</TopLine>
        <CurrentLine>1</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>.\include\components\internet\src\Socket.c</Name>
        <ColumnNumber>12</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>12</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
      <Doc>
        <Name>include\components\internet\inc\Socket.h</Name>
        <ColumnNumber>0</ColumnNumber>
        <TopLine>1</TopLine>
        <CurrentLine>1</CurrentLine>
        <Folding>1</Folding>
        <ContractedFolders></ContractedFolders>
        <PaneID>0</PaneID>
      </Doc>
    </MDIGroup>
  </MDIGroups>
</ProjectGui>
keil/uwb_simple_example.uvoptx
@@ -1027,6 +1027,30 @@
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>49</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\DBG.c</PathWithFileName>
      <FilenameWithoutPath>DBG.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>50</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\Shell.c</PathWithFileName>
      <FilenameWithoutPath>Shell.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
  </Group>
  <Group>
@@ -1037,7 +1061,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>49</FileNumber>
      <FileNumber>51</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1049,7 +1073,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>50</FileNumber>
      <FileNumber>52</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1061,7 +1085,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>51</FileNumber>
      <FileNumber>53</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1073,7 +1097,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>52</FileNumber>
      <FileNumber>54</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1085,7 +1109,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>53</FileNumber>
      <FileNumber>55</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1097,7 +1121,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>54</FileNumber>
      <FileNumber>56</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1109,7 +1133,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>55</FileNumber>
      <FileNumber>57</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1121,7 +1145,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>56</FileNumber>
      <FileNumber>58</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1133,7 +1157,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>57</FileNumber>
      <FileNumber>59</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1145,7 +1169,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>58</FileNumber>
      <FileNumber>60</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1159,13 +1183,13 @@
  <Group>
    <GroupName>Platform</GroupName>
    <tvExp>0</tvExp>
    <tvExp>1</tvExp>
    <tvExpOptDlg>0</tvExpOptDlg>
    <cbSel>0</cbSel>
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>59</FileNumber>
      <FileNumber>61</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1177,7 +1201,7 @@
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>60</FileNumber>
      <FileNumber>62</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1189,7 +1213,7 @@
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>61</FileNumber>
      <FileNumber>63</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1211,13 +1235,13 @@
  <Group>
    <GroupName>Utility</GroupName>
    <tvExp>0</tvExp>
    <tvExp>1</tvExp>
    <tvExpOptDlg>0</tvExpOptDlg>
    <cbSel>0</cbSel>
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>8</GroupNumber>
      <FileNumber>62</FileNumber>
      <FileNumber>64</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1229,7 +1253,7 @@
    </File>
    <File>
      <GroupNumber>8</GroupNumber>
      <FileNumber>63</FileNumber>
      <FileNumber>65</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1243,19 +1267,31 @@
  <Group>
    <GroupName>HidoLib</GroupName>
    <tvExp>0</tvExp>
    <tvExp>1</tvExp>
    <tvExpOptDlg>0</tvExpOptDlg>
    <cbSel>0</cbSel>
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>9</GroupNumber>
      <FileNumber>64</FileNumber>
      <FileNumber>66</FileNumber>
      <FileType>4</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\components\hido\hido.lib</PathWithFileName>
      <FilenameWithoutPath>hido.lib</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>9</GroupNumber>
      <FileNumber>67</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\components\hido\HIDO_Base64.c</PathWithFileName>
      <FilenameWithoutPath>HIDO_Base64.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
@@ -1269,7 +1305,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>65</FileNumber>
      <FileNumber>68</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1281,7 +1317,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>66</FileNumber>
      <FileNumber>69</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1293,7 +1329,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>67</FileNumber>
      <FileNumber>70</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1305,7 +1341,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>68</FileNumber>
      <FileNumber>71</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1317,7 +1353,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>69</FileNumber>
      <FileNumber>72</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1329,7 +1365,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>70</FileNumber>
      <FileNumber>73</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1341,7 +1377,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>71</FileNumber>
      <FileNumber>74</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1353,7 +1389,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>72</FileNumber>
      <FileNumber>75</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1373,7 +1409,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>11</GroupNumber>
      <FileNumber>73</FileNumber>
      <FileNumber>76</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
keil/uwb_simple_example.uvprojx
@@ -1015,57 +1015,16 @@
              <FileName>NTRIPApp.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\src\NTRIPApp.c</FilePath>
              <FileOption>
                <CommonProperty>
                  <UseCPPCompiler>2</UseCPPCompiler>
                  <RVCTCodeConst>0</RVCTCodeConst>
                  <RVCTZI>0</RVCTZI>
                  <RVCTOtherData>0</RVCTOtherData>
                  <ModuleSelection>0</ModuleSelection>
                  <IncludeInBuild>0</IncludeInBuild>
                  <AlwaysBuild>2</AlwaysBuild>
                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
                  <PublicsOnly>2</PublicsOnly>
                  <StopOnExitCode>11</StopOnExitCode>
                  <CustomArgument></CustomArgument>
                  <IncludeLibraryModules></IncludeLibraryModules>
                  <ComprImg>1</ComprImg>
                </CommonProperty>
                <FileArmAds>
                  <Cads>
                    <interw>2</interw>
                    <Optim>0</Optim>
                    <oTime>2</oTime>
                    <SplitLS>2</SplitLS>
                    <OneElfS>2</OneElfS>
                    <Strict>2</Strict>
                    <EnumInt>2</EnumInt>
                    <PlainCh>2</PlainCh>
                    <Ropi>2</Ropi>
                    <Rwpi>2</Rwpi>
                    <wLevel>0</wLevel>
                    <uThumb>2</uThumb>
                    <uSurpInc>2</uSurpInc>
                    <uC99>2</uC99>
                    <uGnu>2</uGnu>
                    <useXO>2</useXO>
                    <v6Lang>0</v6Lang>
                    <v6LangP>0</v6LangP>
                    <vShortEn>2</vShortEn>
                    <vShortWch>2</vShortWch>
                    <v6Lto>2</v6Lto>
                    <v6WtE>2</v6WtE>
                    <v6Rtti>2</v6Rtti>
                    <VariousControls>
                      <MiscControls></MiscControls>
                      <Define></Define>
                      <Undefine></Undefine>
                      <IncludePath></IncludePath>
                    </VariousControls>
                  </Cads>
                </FileArmAds>
              </FileOption>
            </File>
            <File>
              <FileName>DBG.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\drivers\DBG.c</FilePath>
            </File>
            <File>
              <FileName>Shell.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\drivers\Shell.c</FilePath>
            </File>
          </Files>
        </Group>
@@ -1374,6 +1333,11 @@
              <FileType>4</FileType>
              <FilePath>.\include\components\hido\hido.lib</FilePath>
            </File>
            <File>
              <FileName>HIDO_Base64.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\components\hido\HIDO_Base64.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
@@ -1418,57 +1382,6 @@
              <FileName>NTRIPClient.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\components\internet\src\NTRIPClient.c</FilePath>
              <FileOption>
                <CommonProperty>
                  <UseCPPCompiler>2</UseCPPCompiler>
                  <RVCTCodeConst>0</RVCTCodeConst>
                  <RVCTZI>0</RVCTZI>
                  <RVCTOtherData>0</RVCTOtherData>
                  <ModuleSelection>0</ModuleSelection>
                  <IncludeInBuild>0</IncludeInBuild>
                  <AlwaysBuild>2</AlwaysBuild>
                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
                  <PublicsOnly>2</PublicsOnly>
                  <StopOnExitCode>11</StopOnExitCode>
                  <CustomArgument></CustomArgument>
                  <IncludeLibraryModules></IncludeLibraryModules>
                  <ComprImg>1</ComprImg>
                </CommonProperty>
                <FileArmAds>
                  <Cads>
                    <interw>2</interw>
                    <Optim>0</Optim>
                    <oTime>2</oTime>
                    <SplitLS>2</SplitLS>
                    <OneElfS>2</OneElfS>
                    <Strict>2</Strict>
                    <EnumInt>2</EnumInt>
                    <PlainCh>2</PlainCh>
                    <Ropi>2</Ropi>
                    <Rwpi>2</Rwpi>
                    <wLevel>0</wLevel>
                    <uThumb>2</uThumb>
                    <uSurpInc>2</uSurpInc>
                    <uC99>2</uC99>
                    <uGnu>2</uGnu>
                    <useXO>2</useXO>
                    <v6Lang>0</v6Lang>
                    <v6LangP>0</v6LangP>
                    <vShortEn>2</vShortEn>
                    <vShortWch>2</vShortWch>
                    <v6Lto>2</v6Lto>
                    <v6WtE>2</v6WtE>
                    <v6Rtti>2</v6Rtti>
                    <VariousControls>
                      <MiscControls></MiscControls>
                      <Define></Define>
                      <Undefine></Undefine>
                      <IncludePath></IncludePath>
                    </VariousControls>
                  </Cads>
                </FileArmAds>
              </FileOption>
            </File>
          </Files>
        </Group>
keil/uwb_tag.c
@@ -45,7 +45,7 @@
    uint8_t phy_work_mode; /* PHY_TX / PHY_RX / PHT_TX|PHY_RX */
    struct UWB_CONFIG_T phy_cfg;
};
extern uint32_t dev_id;
extern uint16_t dev_id;
extern uint8_t group_id;
/* Default communication configuration. */
static struct mk_uwb_configure config = {//yuan