diff --git a/CablePositioning_APP_V1.0/CableMonitor_APP_V3.2.ioc b/CablePositioning_APP_V1.0/CableMonitor_APP_V3.2.ioc
index f6c3537..599b1ef 100644
--- a/CablePositioning_APP_V1.0/CableMonitor_APP_V3.2.ioc
+++ b/CablePositioning_APP_V1.0/CableMonitor_APP_V3.2.ioc
@@ -32,7 +32,8 @@ Dma.Request1=USART3_TX
Dma.Request2=UART4_RX
Dma.Request3=SPI1_RX
Dma.Request4=SPI1_TX
-Dma.RequestsNb=5
+Dma.Request5=USART2_RX
+Dma.RequestsNb=6
Dma.SPI1_RX.3.Direction=DMA_PERIPH_TO_MEMORY
Dma.SPI1_RX.3.Instance=DMA2_Channel3
Dma.SPI1_RX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
@@ -60,6 +61,15 @@ Dma.UART4_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART4_RX.2.PeriphInc=DMA_PINC_DISABLE
Dma.UART4_RX.2.Priority=DMA_PRIORITY_LOW
Dma.UART4_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
+Dma.USART2_RX.5.Direction=DMA_PERIPH_TO_MEMORY
+Dma.USART2_RX.5.Instance=DMA1_Channel6
+Dma.USART2_RX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART2_RX.5.MemInc=DMA_MINC_ENABLE
+Dma.USART2_RX.5.Mode=DMA_NORMAL
+Dma.USART2_RX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART2_RX.5.PeriphInc=DMA_PINC_DISABLE
+Dma.USART2_RX.5.Priority=DMA_PRIORITY_LOW
+Dma.USART2_RX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.USART3_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART3_RX.0.Instance=DMA1_Channel3
Dma.USART3_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
@@ -95,8 +105,9 @@ Mcu.Family=STM32L4
Mcu.IP0=ADC1
Mcu.IP1=DMA
Mcu.IP10=UART4
-Mcu.IP11=USART2
-Mcu.IP12=USART3
+Mcu.IP11=USART1
+Mcu.IP12=USART2
+Mcu.IP13=USART3
Mcu.IP2=FREERTOS
Mcu.IP3=NVIC
Mcu.IP4=RCC
@@ -105,7 +116,7 @@ Mcu.IP6=SPI1
Mcu.IP7=SPI3
Mcu.IP8=SYS
Mcu.IP9=TIM7
-Mcu.IPNb=13
+Mcu.IPNb=14
Mcu.Name=STM32L496Z(E-G)Tx
Mcu.Package=LQFP144
Mcu.Pin0=PE2
@@ -121,34 +132,38 @@ Mcu.Pin17=PB11
Mcu.Pin18=PD14
Mcu.Pin19=PD15
Mcu.Pin2=PF0
-Mcu.Pin20=PG3
-Mcu.Pin21=PG4
-Mcu.Pin22=PA13 (JTMS/SWDIO)
-Mcu.Pin23=PA14 (JTCK/SWCLK)
-Mcu.Pin24=PC10
-Mcu.Pin25=PC11
-Mcu.Pin26=PC12
-Mcu.Pin27=PD3
-Mcu.Pin28=PD4
-Mcu.Pin29=PD5
+Mcu.Pin20=PG2
+Mcu.Pin21=PG3
+Mcu.Pin22=PG4
+Mcu.Pin23=PA9
+Mcu.Pin24=PA10
+Mcu.Pin25=PA13 (JTMS/SWDIO)
+Mcu.Pin26=PA14 (JTCK/SWCLK)
+Mcu.Pin27=PC10
+Mcu.Pin28=PC11
+Mcu.Pin29=PC12
Mcu.Pin3=PF9
-Mcu.Pin30=PD6
-Mcu.Pin31=PG10
-Mcu.Pin32=PG13
-Mcu.Pin33=PG14
-Mcu.Pin34=PE0
-Mcu.Pin35=VP_ADC1_TempSens_Input
-Mcu.Pin36=VP_FREERTOS_VS_CMSIS_V2
-Mcu.Pin37=VP_RTC_VS_RTC_Activate
-Mcu.Pin38=VP_SYS_VS_Systick
-Mcu.Pin39=VP_TIM7_VS_ClockSourceINT
+Mcu.Pin30=PD3
+Mcu.Pin31=PD4
+Mcu.Pin32=PD5
+Mcu.Pin33=PD6
+Mcu.Pin34=PG9
+Mcu.Pin35=PG10
+Mcu.Pin36=PG13
+Mcu.Pin37=PG14
+Mcu.Pin38=PE0
+Mcu.Pin39=VP_ADC1_TempSens_Input
Mcu.Pin4=PH0-OSC_IN (PH0)
+Mcu.Pin40=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin41=VP_RTC_VS_RTC_Activate
+Mcu.Pin42=VP_SYS_VS_Systick
+Mcu.Pin43=VP_TIM7_VS_ClockSourceINT
Mcu.Pin5=PH1-OSC_OUT (PH1)
Mcu.Pin6=PA0
Mcu.Pin7=PA1
Mcu.Pin8=PA4
Mcu.Pin9=PA5
-Mcu.PinsNb=40
+Mcu.PinsNb=44
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32L496ZGTx
@@ -158,6 +173,7 @@ NVIC.ADC1_2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.DMA1_Channel2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.DMA1_Channel6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Channel4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Channel5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
@@ -185,6 +201,8 @@ PA0.Signal=UART4_TX
PA1.Locked=true
PA1.Mode=Asynchronous
PA1.Signal=UART4_RX
+PA10.Mode=Asynchronous
+PA10.Signal=USART1_RX
PA13\ (JTMS/SWDIO).Locked=true
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
PA13\ (JTMS/SWDIO).Signal=SYS_JTMS-SWDIO
@@ -206,6 +224,8 @@ PA6.Signal=SPI1_MISO
PA7.Locked=true
PA7.Mode=Full_Duplex_Master
PA7.Signal=SPI1_MOSI
+PA9.Mode=Asynchronous
+PA9.Signal=USART1_TX
PB0.Signal=ADCx_IN15
PB10.Locked=true
PB10.Mode=Asynchronous
@@ -286,6 +306,10 @@ PG14.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PG14.Locked=true
PG14.PinState=GPIO_PIN_SET
PG14.Signal=GPIO_Output
+PG2.GPIOParameters=GPIO_Label
+PG2.GPIO_Label=RS485_A_DE
+PG2.Locked=true
+PG2.Signal=GPIO_Output
PG3.GPIOParameters=GPIO_Label
PG3.GPIO_Label=BAT_CHECK
PG3.Locked=true
@@ -294,6 +318,10 @@ PG4.GPIOParameters=GPIO_Label
PG4.GPIO_Label=LED_RUN
PG4.Locked=true
PG4.Signal=GPIO_Output
+PG9.GPIOParameters=GPIO_Label
+PG9.GPIO_Label=POWER_RS485
+PG9.Locked=true
+PG9.Signal=GPIO_Output
PH0-OSC_IN\ (PH0).Locked=true
PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
@@ -331,7 +359,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_UART4_Init-UART4-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_TIM7_Init-TIM7-false-HAL-true,8-MX_ADC1_Init-ADC1-false-HAL-true,9-MX_RTC_Init-RTC-false-HAL-true,10-MX_SPI3_Init-SPI3-false-HAL-true,11-MX_SPI1_Init-SPI1-false-HAL-true,12-MX_USART2_UART_Init-USART2-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_UART4_Init-UART4-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true,6-MX_TIM7_Init-TIM7-false-HAL-true,7-MX_ADC1_Init-ADC1-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_SPI3_Init-SPI3-false-HAL-true,10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_USART2_UART_Init-USART2-false-HAL-true,12-MX_USART1_UART_Init-USART1-false-HAL-true
RCC.ADCFreq_Value=32500000
RCC.AHBFreq_Value=80000000
RCC.APB1Freq_Value=80000000
@@ -424,6 +452,8 @@ TIM7.Period=20
TIM7.Prescaler=7999
UART4.BaudRate=115200
UART4.IPParameters=BaudRate
+USART1.IPParameters=VirtualMode-Asynchronous
+USART1.VirtualMode-Asynchronous=VM_ASYNC
USART2.IPParameters=VirtualMode-Asynchronous
USART2.VirtualMode-Asynchronous=VM_ASYNC
USART3.BaudRate=115200
diff --git a/CablePositioning_APP_V1.0/Core/Inc/ADC_collect.h b/CablePositioning_APP_V1.0/Core/Inc/ADC_collect.h
index 3bcfdb0..b8724fd 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/ADC_collect.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/ADC_collect.h
@@ -67,7 +67,6 @@ typedef struct
{
osThreadId_t ADCHandle; // ADC 任务句柄.
-
ADC_HandleTypeDef *ADCi_adc; // ADCi 使用硬件句柄.
uint16_t ADCi_value[ADCi_COLLECT_SUM]; // ADCi 采样原始值.
uint32_t ADCi_param1; // ADCi 温度传感器校准系数 1.
@@ -85,9 +84,6 @@ typedef struct
uint32_t collect_time; // ADC 上次采集结束时间.
uint8_t ADC_state; // ADC 采样状态.
uint8_t ADC_err_cnt; // ADC 采样失败次数.
- int16_t ADC_value[CFG_ADC_CH_CNT][ADC_COLLECT_CNT]; // ADC 采样原始值.
- int16_t ADC_value_elec[CFG_ADC_CH_CNT][ADC_COLLECT_CNT];// ADC 采样计算电流值.
- uint32_t ADC_elec[CFG_ADC_CH_CNT]; // ADC 采样计算后的电流有效值 mA.
uint8_t up_finish; // 上传是否完成 BOOL.
diff --git a/CablePositioning_APP_V1.0/Core/Inc/RS485_debug.h b/CablePositioning_APP_V1.0/Core/Inc/RS485_debug.h
index 5740235..85c624b 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/RS485_debug.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/RS485_debug.h
@@ -52,7 +52,7 @@ typedef struct
uint16_t vbat; // 电池电压, 单位: mv.
int16_t CSQ; // 4G 信号质量 > -51dBm 统一显示 -51dBm, < -113 dBm 为无信号.
uint16_t vin; // 工作电压, 单位: mv.
- uint32_t elec[CFG_ADC_CH_CNT]; // 通道电流有效值 mA.
+ uint32_t elec[DAU_PORT_POWER_CNT]; // 通道电流有效值 mA.
uint16_t vsc; // 超级电容电压, 单位: mv.
int16_t sen_temp[SENSOR_SUM]; // 传感器温度: 单位: 0.1℃.
uint16_t sen_x[SENSOR_SUM]; // 传感器震动 x 轴.
diff --git a/CablePositioning_APP_V1.0/Core/Inc/common.h b/CablePositioning_APP_V1.0/Core/Inc/common.h
index d61fdcf..06fcd40 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/common.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/common.h
@@ -69,10 +69,12 @@
/* uint32_t无效数据.*/
#define INVALID_DATA_U32 0xFFFFFFFF
-/* ADC 通道数. */
-#define CFG_ADC_CH_CNT 8 // ADC 通道数.
+/* DAU 工频通道数. */
+#define DAU_PORT_POWER_CNT 8
+#define DAU_PORT_DEFECT_MAX 4
+#define DAU_PORT_FAULT_MAX 4
/* ADC 校准点. */
-#define CFG_ADC_ADJ_CNT 5
+#define DAU_POWER_ADJ_CNT 5
/* RS485 传感器数量. */
#define SENSOR_SUM 8
@@ -90,6 +92,8 @@
#define COM_WDG_ADC 0x0002
#define COM_WDG_CLI 0x0004
#define COM_WDG_WIR 0x0008
+#define COM_WDG_DAU 0x0010
+#define COM_WDG_GPS 0x0020
#define CSG_CIPHERTEXT_LEN 4
#define CSG_PASSWD_LEN 4
@@ -138,8 +142,9 @@ typedef enum
DBG_M_4G,
DBG_M_RS485_SEN,
DBG_M_RS485_DEBUG,
- DBG_M_WAVE,
- DBG_M_POSITION,
+ DBG_M_DAU,
+ DBG_M_DAU_TXRX,
+ DBG_M_GPS,
DBG_M_COUNT
} DBG_MODULE_E;
@@ -166,14 +171,14 @@ enum DEBUG_CMD_TYPE
{
DEBUG_CT_REQUEST = 1,
DEBUG_CT_REPLY = 2,
- DEBUG_CT_PRV_REQUEST = 128,
- DEBUG_CT_PRV_REPLY = 129,
+ DEBUG_CT_PRV_REQUEST = 121,
+ DEBUG_CT_PRV_REPLY = 122,
};
/* 共有命令字. */
enum DEBUG_CMD
{
- DEBUG_C_DEV_INFO = 1,
+ DEBUG_C_CONTACT = 1,
DEBUG_C_DEV_INFO_SET = 2,
DEBUG_C_RESET = 3,
DEBUG_C_DEFAULT = 4,
@@ -182,29 +187,33 @@ enum DEBUG_CMD
DEBUG_C_DEV_CONFIG = 7,
DEBUG_C_DEV_CONFIG_SET = 8,
DEBUG_C_UPDATE_APP_RT = 9,
- DEBUG_C_KEEPALIVE = 10
+ DEBUG_C_KEEPALIVE = 10,
+ DEBUG_C_TIME = 11
};
/* 私有命令字. */
enum DEBUG_CM_CMD
{
- DEBUG_PRV_ADJ_INFO = 1,
- DEBUG_PRV_REAL_DATA = 2,
- DEBUG_PRV_POWER_FRE = 3,
- DEBUG_PRV_ADJ_INFO_SET = 4,
- DEBUG_PRV_ADJ_AUTO = 5,
- DEBUG_PRV_WAVE = 6,
- DEBUG_PRV_DEV_STATE = 7,
- DEBUG_PRV_WAVE_COL = 8,
- DEBUG_PRV_WAVE_CAL = 9,
- DEBUG_PRV_WAVE_MAX = 10,
- DEBUG_PRV_LOG = 11,
- DEBUG_PRV_HISTORY_DATA = 12,
- DEBUG_PRV_ADJ_MANUAL = 13,
- DEBUG_PRV_CSG_CONFIG = 14,
- DEBUG_PRV_CSG_CONFIG_SET = 15,
- DEBUG_PRV_POSITION_WAVE = 16,
- DEBUG_PRV_POSITION = 17
+ DEBUG_PRV_REALDATA = 1,
+ DEBUG_PRV_POWER = 2,
+ DEBUG_PRV_DEFECT = 3,
+ DEBUG_PRV_REALDATA_FUALT = 4,
+ DEBUG_PRV_POWER_FAULT = 5,
+ DEBUG_PRV_FAULT = 6,
+ DEBUG_PRV_ADJ_INFO = 7,
+ DEBUG_PRV_ADJ_INFO_SET = 8,
+ DEBUG_PRV_ADJ_AUTO = 9,
+ DEBUG_PRV_DEV_STATE = 10,
+ DEBUG_PRV_WAVE_COL = 11,
+ DEBUG_PRV_WAVE_CAL = 12,
+ DEBUG_PRV_WAVE_MAX = 13,
+ DEBUG_PRV_LOG = 14,
+ DEBUG_PRV_HISTORY_DATA = 15,
+ DEBUG_PRV_ADJ_MANUAL = 16,
+ DEBUG_PRV_CSG_CONFIG = 17,
+ DEBUG_PRV_CSG_CONFIG_SET = 18,
+ DEBUG_PRV_POSITION_WAVE = 19,
+ DEBUG_PRV_POSITION = 20
};
/* . */
@@ -326,6 +335,14 @@ typedef struct
} \
} while(0)
+#define E_RETURN(_f_) \
+ do { \
+ if ((rv = _f_) != HAL_OK) \
+ { \
+ return rv; \
+ } \
+ } while(0)
+
#if LD_DEBUG
#define DBG_BYTE_LEN 16
extern int32_t dbg_cmd_hander(uint8_t cmd, uint8_t data);
diff --git a/CablePositioning_APP_V1.0/Core/Inc/dau.h b/CablePositioning_APP_V1.0/Core/Inc/dau.h
new file mode 100644
index 0000000..9434be8
--- /dev/null
+++ b/CablePositioning_APP_V1.0/Core/Inc/dau.h
@@ -0,0 +1,141 @@
+/*****************************************************************************
+ * file Inc/dau.h
+ * author YuLiang
+ * version 1.0.0
+ * date 15-Aug-2024
+ * brief This file provides all the headers of DAU function.
+ ******************************************************************************
+ * Attention
+ *
+ *
© COPYRIGHT(c) 2022 LandPower
+ *
+ * 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 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 WTOE nor the names of its contributors may be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
+ *
+ ******************************************************************************/
+
+#ifndef __DAU_H__
+#define __DAU_H__
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "cmsis_os.h"
+
+/* Define --------------------------------------------------------------------*/
+#define DAU_PORT_FAULT_CNT 3 // DAU 故障波形通道数
+#define DAU_PORT_DEFECT_CNT 3 // DAU 缺陷波形通道数
+#define DAU_PORT_GROUND_CNT 4 // DAU 工频接地波形通道数
+#define DAU_BUF_LEN 1280
+#define DAU_GPS_BUF_LEN 2560
+
+#define DAU_PKT_FAULT_CNT 40 // DAU 故障波形总包数
+#define DAU_PKT_FAULT_BYTE_CNT 1024 // DAU 故障波形每包数据大小
+#define DAU_FAULT_BYTE_CNT 122880 // DAU 缺陷波形数据大小
+
+#define DAU_PKT_DEFECT_CNT 40 // DAU 缺陷波形总包数
+#define DAU_PKT_DEFECT_BYTE_CNT 1024 // DAU 缺陷波形每包数据大小
+#define DAU_DEFECT_BYTE_CNT 122880 // DAU 缺陷波形数据大小
+
+#define DAU_PKT_POWER_CNT 4 // DAU 工频波形总包数
+#define DAU_PKT_POWER_BYTE_CNT 1024 // DAU 工频波形每包数据大小
+#define DAU_POWER_DATE_LEN 2048 // DAU 工频数据长度, 每个数据大小 2byte
+
+/* Exported types ------------------------------------------------------------*/
+/* 采集标志位 */
+typedef enum
+{
+ DAU_COL_FLAG_FAULT_CMP = 0, // 故障触发波形上传完成
+ DAU_COL_FLAG_REG_DEFECT, // 寄存器触发缺陷波形有效
+ DAU_COL_FLAG_REG_POWER, // 寄存器触发工频波形有效
+ DAU_COL_FLAG_REG_CMP, // 寄存器触发波形上传完成
+} DAU_COL_FLAG_E;
+
+/* DAU 全局寄存器. */
+typedef struct
+{
+ uint16_t GSCR; // 全局软件特征寄存器 (Global Softwave Characteristic Register)
+ uint16_t GSVR; // 全局软件版本寄存器 (Global Softwave Version Register)
+ uint16_t GSR; // 全局状态寄存器 (Global Status Register)
+ uint16_t GFTR; // 全局故障触发录波状态寄存器 (Global Fault Triggering Register)
+ uint32_t GFTUR; // 全局故障触发 UTC 时间点寄存器 (Global Fault Triggering UTC Register)
+ uint32_t GFTNR; // 全局故障触发 ns 时间点寄存器 (Global Fault Triggering ns Register)
+ uint16_t GRTR; // 全局寄存器触发录波状态寄存器 (Global Register Triggering Register)
+ uint16_t reserve;
+ uint32_t GUR; // 全局 UTC 寄存器 (Global UTC Register)
+ uint32_t GNR; // 全局 ns 寄存器 (Global ns Register)
+} dau_reg_global_t;
+
+/* DAU 通道状态寄存器. */
+typedef struct
+{
+ uint16_t MSRR[4]; // 缺陷电流通道周波原始采样值的平均值 (Mean Square Root Register).
+ int16_t AVR[4]; // 缺陷电流通道周波校准值寄存器 (Adjust Value Register).
+ int16_t MAX[4]; // 缺陷电流通道周波校准值最大值寄存器 (Max Value Register).
+ int16_t FAULT[4]; // 故障触发电流值寄存器 (Fault Value Register).
+} dau_port_state_reg_t;
+
+/* DAU 全局结构体 */
+typedef struct
+{
+ osThreadId_t dau_handle; // DAU 任务句柄
+ SPI_HandleTypeDef *spi; // DAU 通讯使用的 SPI 句柄
+ uint8_t buf_dau_tx[DAU_BUF_LEN]; // DAU 发包缓存
+ uint8_t buf_dau_rx[DAU_BUF_LEN]; // DAU 收包缓存
+ uint32_t addr_fault; // DAU 故障触发录波 flash 地址
+ uint32_t addr_reg; // DAU 寄存器触发录波 flash 地址
+ uint32_t col_time; // DAU 采集时间
+ uint8_t col_flag; // DAU 采集标志位
+ uint32_t fault_utc; // 故障触发时间
+ uint32_t fault_ns; // 故障触发时间纳秒
+ int16_t fault_power[DAU_PORT_POWER_CNT][DAU_POWER_DATE_LEN]; // 故障触发工频波形采样电流值, 接地电流 0.1A, 运行电流 0.25A
+ uint32_t fault_elec[DAU_PORT_POWER_CNT];// 故障触发工频电流有效值 mA
+ int16_t fault_trig[DAU_PORT_FAULT_MAX]; // 故障触发电流值 A
+ int16_t reg_power[DAU_PORT_POWER_CNT][DAU_POWER_DATE_LEN]; // 寄存器触发工频波形采样电流值, 接地电流 0.1A, 运行电流 0.25A
+ uint32_t reg_elec[DAU_PORT_POWER_CNT]; // 寄存器触发工频电流有效值 mA
+ int16_t reg_defect_max[DAU_PORT_DEFECT_MAX]; // 寄存器触发缺陷电流最大值 mA
+ dau_reg_global_t reg_global; // DAU 全局寄存器
+ dau_port_state_reg_t reg_port_state; // DAU 端口状态寄存器
+
+ osThreadId_t gps_handle; // GPS 任务句柄
+ UART_HandleTypeDef *uart; // GPS 通讯使用的串口句柄
+ uint8_t buf_gps[DAU_GPS_BUF_LEN]; // GPS 收包缓存
+ uint16_t len_buf_gps; // 接收到的报文长度
+ uint8_t is_half_buf_gps; // DMA 收包一半的时候会产生中断, 这个标志用于过滤这给中断
+ uint8_t is_utc_valid; // GPS 对时 UTC 时间有效
+ uint32_t utc; // GPS 对时 UTC 时间
+} dau_ctrl_t;
+
+/* Exported macro ------------------------------------------------------------*/
+#define DAU_CS_ENABLE() HAL_GPIO_WritePin(DAU_CS_GPIO_Port, DAU_CS_Pin, GPIO_PIN_RESET)
+#define DAU_CS_DISABLE() HAL_GPIO_WritePin(DAU_CS_GPIO_Port, DAU_CS_Pin, GPIO_PIN_SET)
+
+/* Extern global variables ---------------------------------------------------*/
+extern dau_ctrl_t dau_ctrl;
+
+/* Extern functions ----------------------------------------------------------*/
+extern void dau_init(void);
+extern void dau_show(void);
+
+#endif
+/******************* (C) COPYRIGHT LandPower ***** END OF FILE ****************/
diff --git a/CablePositioning_APP_V1.0/Core/Inc/dev_config.h b/CablePositioning_APP_V1.0/Core/Inc/dev_config.h
index 60e56fa..b71d4e4 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/dev_config.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/dev_config.h
@@ -118,13 +118,13 @@ typedef struct
/* 校准参数信息. */
typedef struct
{
- uint16_t ADCRatio[CFG_ADC_CH_CNT];
- uint32_t ADCBase_elec[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
- uint16_t ADCAdj[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
- float ADCBase[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
+ uint16_t ADCRatio[DAU_PORT_POWER_CNT];
+ uint32_t ADCBase_elec[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
+ uint16_t ADCAdj[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
+ float ADCBase[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
uint16_t vin;
uint16_t vin_adj;
- uint8_t ADC_turns[CFG_ADC_CH_CNT];
+ uint8_t ADC_turns[DAU_PORT_POWER_CNT];
} dev_adj_t;
/* 设备状态信息. */
@@ -173,18 +173,19 @@ typedef struct
/* 器件名字. 128byte */
uint8_t host[DEV_NAME_LEN];
/* ADC 校准. 418byte */
- uint16_t ADC_ratio[CFG_ADC_CH_CNT];
- uint32_t ADC_base_elec[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
- uint16_t ADC_adj[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
- float ADC_base[CFG_ADC_CH_CNT][CFG_ADC_ADJ_CNT];
+ uint16_t ADC_ratio[DAU_PORT_POWER_CNT];
+ uint32_t ADC_base_elec[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
+ uint16_t ADC_adj[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
+ float ADC_base[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT];
uint16_t vin_adj;
/* 各种 bool 类型配置, 见 DEV_FLAG_E. 2byte */
uint16_t flag;
/* 8 路传感器 id 配置. 8byte */
- uint8_t sensor_id[SENSOR_SUM];
+ uint8_t sensor_id[4];
+ uint32_t keepalive; //保活间隔 ms
/* 采样间隔配置. 4byte */
uint16_t collect_interval;
- uint16_t wave_interval;
+ uint16_t reserve1;
/* ADCi 电压校准配置. 2byte */
uint16_t vin;
/* 工作模式配置. 2byte */
@@ -201,7 +202,7 @@ typedef struct
uint8_t is_wave_col;
uint8_t csg_beat_interval;
uint8_t reserve0[1];
- uint8_t ADC_turns[CFG_ADC_CH_CNT];
+ uint8_t ADC_turns[DAU_PORT_POWER_CNT];
uint8_t csg_ciphertext[CSG_CIPHERTEXT_LEN];
uint8_t csg_passwd[8];
uint16_t csg_sleep;
@@ -284,7 +285,6 @@ extern void dev_config_flag_assgin(uint16_t flag);
extern void dev_config_flag_set(uint8_t flag_bit);
extern void dev_config_flag_unset(uint8_t flag_bit);
extern void dev_config_collect_interval_set(uint16_t interval);
-extern void dev_config_wave_interval_set(uint16_t interval);
extern void dev_config_defaults_set(void);
extern HAL_StatusTypeDef dev_config_save(void);
diff --git a/CablePositioning_APP_V1.0/Core/Inc/flash_if.h b/CablePositioning_APP_V1.0/Core/Inc/flash_if.h
index 5ed4463..9d42837 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/flash_if.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/flash_if.h
@@ -50,7 +50,7 @@
#define FLASH_PAGE_NBPERBANK 256
/* spi flash分配示意图.注意:以下地址必须是扇区对齐.
-0x0 0x4000 0x8000 0xc000 0x10000 0x18000 0x20000 0x100000 0x900000 0xB00000 0xD00000 0xF00000
+0x0 0x4000 0x8000 0xc000 0x10000 0x18000 0x20000 0x100000 0xD00000 0xE00000 0xF00000 0x1000000
*************************************************************************************************
| INFO | INFOB | RECO | RECOB | CONF | CONFB | TFTP IMG | WARE | LOG | DATA | STATE |
*************************************************************************************************/
@@ -62,17 +62,18 @@
#define CONFIG_ADDRESS_BAK (uint32_t)0x18000
#define TFTP_APP_ADDRESS (uint32_t)0x20000
#define TFTP_APP_ADDRESS_END (uint32_t)0x100000
-#define WARE_ADDRESS (uint32_t)0x100000
-#define WARE_ADDRESS_END (uint32_t)0x900000
-#define POSITION_ADDRESS (uint32_t)0x100000
-#define POSITION_ADDRESS_END (uint32_t)0x300000
-#define LOG_ADDRESS (uint32_t)0x900000
-#define LOG_ADDRESS_END (uint32_t)0xB00000
-#define FD_ADDRESS (uint32_t)0xB00000
-#define FD_ADDRESS_END (uint32_t)0xD00000
-#define ST_ADDRESS (uint32_t)0xD00000
-#define ST_ADDRESS_END (uint32_t)0xF00000
-
+#define WARE_FAULT_ADDRESS (uint32_t)0x100000
+#define WARE_FAULT_ADDRESS_END (uint32_t)0x280000
+#define WARE_REG_ADDRESS (uint32_t)0x280000
+#define WARE_REG_ADDRESS_END (uint32_t) 0xD00000
+#define POSITION_ADDRESS (uint32_t)0x300000
+#define POSITION_ADDRESS_END (uint32_t)0x500000
+#define LOG_ADDRESS (uint32_t)0xD00000
+#define LOG_ADDRESS_END (uint32_t)0xE00000
+#define FD_ADDRESS (uint32_t)0xE00000
+#define FD_ADDRESS_END (uint32_t)0xF00000
+#define ST_ADDRESS (uint32_t)0xF00000
+#define ST_ADDRESS_END (uint32_t)0x1000000
#define SPI_FLASH_END_ADDRESS (uint32_t)0x1000000
/* 内部flash分配示意图.
diff --git a/CablePositioning_APP_V1.0/Core/Inc/flash_log.h b/CablePositioning_APP_V1.0/Core/Inc/flash_log.h
index 30b9c8b..9d46491 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/flash_log.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/flash_log.h
@@ -100,22 +100,16 @@ typedef struct
typedef struct
{
uint64_t id;
- uint32_t run_time; // 时间, 单位 s.
- int16_t temperature; // 设备温度, 单位: 0.1℃.
- uint16_t vin; // 工作电压, 单位: mv.
- uint16_t vbat; // 电池电压, 单位: mv.
- uint16_t vsc; // 超级电容电压, 单位: mv.
- uint32_t elec[CFG_ADC_CH_CNT]; // 通道电流有效值 mA.
- uint16_t sen_temp[SENSOR_SUM]; // 传感器温度: 单位: 0.1℃.
- uint16_t sen_x[SENSOR_SUM]; // 传感器震动 x 轴.
- uint16_t sen_y[SENSOR_SUM]; // 传感器震动 y 轴.
- uint16_t sen_z[SENSOR_SUM]; // 传感器震动 z 轴.
- uint8_t energy_mode;
- uint8_t sen_short; // 传感器是否短路, 0 – 没有短路, 1 – 短路.
- uint8_t is_not_updata; // 数据是否上传.
- uint8_t reserve[1];
- uint8_t sen_valid[SENSOR_SUM]; // 传感器数据是否有效, 0 - 无效, 1 - 有效.
-} fd_date_t;
+ uint32_t run_time; // 时间, 单位 s
+ int16_t temperature; // 设备温度, 单位: 0.1℃
+ uint16_t vin; // 工作电压, 单位: mv
+ uint16_t vbat; // 电池电压, 单位: mv
+ uint16_t vsc; // 超级电容电压, 单位: mv
+ uint16_t defect[4]; // 缺陷电流最大值 mA
+ uint32_t elec[DAU_PORT_POWER_CNT]; // 通道电流有效值 mA
+ uint8_t col_flag; // DAU 采集标志位
+ uint8_t reserve[3]; // Reserve
+} fd_data_t;
typedef struct
{
@@ -150,9 +144,8 @@ typedef struct
uint8_t wave_up_start;
uint8_t wave_start;
uint16_t wave_index;
- int16_t wave_min_save;
- int16_t wave_max_save;
- int16_t wave_max[WAVE_SUM];
+ uint32_t addr_reg;
+ uint32_t addr_fault;
} st_date_t;
/* Extern global variables ---------------------------------------------------*/
@@ -160,6 +153,7 @@ extern uint64_t flash_log_id;
extern uint64_t fd_id;
extern uint64_t position_id;
extern uint64_t st_id;
+extern fd_data_t fd_data;
/* Extern macro --------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
@@ -168,9 +162,9 @@ extern HAL_StatusTypeDef flash_log_read(uint64_t log_id, falsh_log_t *log_data);
extern void flash_log_show(uint32_t num);
extern HAL_StatusTypeDef flash_log_clear(void);
extern void flash_log_init(void);
-extern HAL_StatusTypeDef fd_write(fd_date_t *data);
-extern HAL_StatusTypeDef fd_modify(uint64_t id, fd_date_t *data);
-extern HAL_StatusTypeDef fd_read(uint64_t id, fd_date_t *data);
+extern HAL_StatusTypeDef fd_write(fd_data_t *data);
+extern HAL_StatusTypeDef fd_modify(uint64_t id, fd_data_t *data);
+extern HAL_StatusTypeDef fd_read(uint64_t id, fd_data_t *data);
extern HAL_StatusTypeDef fd_clear(void);
extern void fd_show(uint32_t num);
extern HAL_StatusTypeDef position_write(position_data_t *data);
diff --git a/CablePositioning_APP_V1.0/Core/Inc/main.h b/CablePositioning_APP_V1.0/Core/Inc/main.h
index f787b53..d8186d8 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/main.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/main.h
@@ -70,18 +70,12 @@ void Error_Handler(void);
/* Private defines -----------------------------------------------------------*/
#define POWER_GPS_Pin GPIO_PIN_2
#define POWER_GPS_GPIO_Port GPIOE
-#define POWER_3V3_Pin GPIO_PIN_3
-#define POWER_3V3_GPIO_Port GPIOE
#define WDG_Pin GPIO_PIN_0
#define WDG_GPIO_Port GPIOF
-#define DAU_50HZ_Pin GPIO_PIN_8
-#define DAU_50HZ_GPIO_Port GPIOF
#define DAU_RST_Pin GPIO_PIN_9
#define DAU_RST_GPIO_Port GPIOF
#define DAU_CS_Pin GPIO_PIN_4
#define DAU_CS_GPIO_Port GPIOA
-#define CH1_FREQ_Pin GPIO_PIN_1
-#define CH1_FREQ_GPIO_Port GPIOG
#define POWER_DAU_Pin GPIO_PIN_11
#define POWER_DAU_GPIO_Port GPIOE
#define BAT_CHARGE_Pin GPIO_PIN_14
@@ -98,8 +92,6 @@ void Error_Handler(void);
#define RS485_B_DE_GPIO_Port GPIOD
#define GPS_RST_Pin GPIO_PIN_4
#define GPS_RST_GPIO_Port GPIOD
-#define POWER_RS485_CHECK_Pin GPIO_PIN_7
-#define POWER_RS485_CHECK_GPIO_Port GPIOD
#define POWER_RS485_Pin GPIO_PIN_9
#define POWER_RS485_GPIO_Port GPIOG
#define G4G_RST_Pin GPIO_PIN_10
@@ -110,8 +102,6 @@ void Error_Handler(void);
#define SPI_FLASH_CS_GPIO_Port GPIOG
#define POWER_4G_Pin GPIO_PIN_0
#define POWER_4G_GPIO_Port GPIOE
-#define POWER_12V_Pin GPIO_PIN_1
-#define POWER_12V_GPIO_Port GPIOE
/* USER CODE BEGIN Private defines */
extern uint8_t system_init_flag;
diff --git a/CablePositioning_APP_V1.0/Core/Inc/stm32l4xx_it.h b/CablePositioning_APP_V1.0/Core/Inc/stm32l4xx_it.h
index db29c06..53633cc 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/stm32l4xx_it.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/stm32l4xx_it.h
@@ -55,9 +55,9 @@ void DebugMon_Handler(void);
void SysTick_Handler(void);
void DMA1_Channel2_IRQHandler(void);
void DMA1_Channel3_IRQHandler(void);
+void DMA1_Channel6_IRQHandler(void);
void ADC1_2_IRQHandler(void);
void SPI1_IRQHandler(void);
-void USART1_IRQHandler(void);
void USART2_IRQHandler(void);
void USART3_IRQHandler(void);
void UART4_IRQHandler(void);
diff --git a/CablePositioning_APP_V1.0/Core/Inc/wireless.h b/CablePositioning_APP_V1.0/Core/Inc/wireless.h
index ef17b90..1fa066f 100644
--- a/CablePositioning_APP_V1.0/Core/Inc/wireless.h
+++ b/CablePositioning_APP_V1.0/Core/Inc/wireless.h
@@ -46,52 +46,9 @@
#define WL_CRC32_LEN 4
#define WL_DMA_RX_BUF_LEN 1088
#define WL_DMA_TX_BUF_LEN 1088
-
+#define WL_CMD_BUF_LEN 2176
#define WL_BUF_LIST_LEN 4
-
-#define CSG_PKT_DATA_SUM 60
-
-#define CSG_START_FLAG 0x68
-#define CSG_END_FLAG 0x16
-
-#define CSG_HEAD_LEN 10
-#define CSG_CRC_LEN 1
-#define CSG_OTHER_LEN 12
-
-#define CSG_CONNECT_LEN 2
-#define CSG_TIMING_LEN 0
-#define CSG_DATA_LEN 26
-#define CSG_DATA_FOLLOW_LEN 16
-#define CSG_BEAT_LEN 8
-#define CSG_SERVER_GET_LEN 12
-#define CSG_CONFIG_GET_LEN 21
-#define CSG_TIME_GET_LEN 6
-#define CSG_ERROR_LEN 2
-
-/* 共有命令字. */
-enum CSG_CMD
-{
- CSG_CONNECT = 0x00, // 开机联络.
- CSG_TIMING, // 校时.
- CSG_PASSWD_SET, // 设置密码.
- CSG_CONFIG_SET, // 主站下发参数配置.
- CSG_BEAT = 0x05, // 装置心跳信息.
- CSG_SERVER_SET, // 更改主站 IP\端口\卡号.
- CSG_SERVER_GET, // 查询主站 IP\端口\卡号.
- CSG_RESET, // 装置复位.
- CSG_CONFIG_GET = 0x0A, // 查询装置配置.
- CSG_TIME_GET = 0x0D, // 查询装置时间.
- CSG_DATA_GET = 0x21, // 主站请求装置数据.
- CSG_DATA = 0x44 // 接地电流数据.
-};
-
-/* 共有命令字. */
-enum CSG_DATA_TYPE
-{
- CSG_DATA_TYPE_NONE = 0x00, // 无请求数据.
- CSG_DATA_TYPE_HIS, // 请求历史数据.
- CSG_DATA_TYPE_REAL, // 请求实时数据.
-};
+#define WL_QCCID_LEN 32
/* Exported types ------------------------------------------------------------*/
/* 无线 buf 数组. */
@@ -107,108 +64,29 @@ typedef struct
/* 无线 buf 数组. */
typedef struct
{
+ osThreadId_t handle;
+ UART_HandleTypeDef *uart;
uint16_t cmd_buf_index;
int16_t CSQ;
- uint8_t cmd_buf[WL_DMA_RX_BUF_LEN];
- uint8_t csg_buf[WL_DMA_RX_BUF_LEN];
+ char QCCID[WL_QCCID_LEN];
uint8_t dma_rx_buf[WL_DMA_RX_BUF_LEN];
+ uint8_t cmd_buf[WL_CMD_BUF_LEN];
uint8_t dma_tx_buf[WL_DMA_TX_BUF_LEN];
+ uint8_t dma_tx_buf_recv[WL_DMA_TX_BUF_LEN];
uint32_t time_send;
uint32_t mul_idx;
uint8_t state;
+ uint8_t err_cnt;
uint8_t send_cnt;
- uint16_t wave_index;
- uint8_t energy_mode_old;
- uint8_t is_update;
uint16_t update_len;
int32_t update_rt;
uint32_t keepalive;
uint16_t pkt_id;
- uint8_t err_cnt;
- uint8_t data_request;
- uint32_t time_beat;
+ uint16_t pkt_id_recv;
} wl_ctrl_t;
-/* 南网协议头. */
-typedef struct
-{
- uint8_t flag;
- uint8_t dev_id[6];
- uint8_t cmd;
- uint16_t len;
-} csg_head_t;
-
-/* 南网协议头. */
-typedef struct
-{
- uint8_t year;
- uint8_t mon;
- uint8_t day;
- uint8_t hour;
- uint8_t min;
- uint8_t sec;
-} csg_time_t;
-
-/* 环流数据. */
-typedef struct
-{
- uint8_t Ciphertext[4];
- uint8_t flag; // 帧标识.
- uint8_t sum; // 包数
- uint8_t time[6]; // 采集时间, 年月日时分秒.
- uint16_t Ia; // CH1: A 相接地电流.
- uint16_t Ib; // CH2: B 相接地电流.
- uint16_t Ic; // CH3: C 相接地电流.
- uint16_t ground; // CH4: 总接地电流.
- uint16_t rIa; // CH5: 运行电流.
- uint16_t rIb;
- uint16_t rIc;
-} csg_data_t;
-
-/* 环流数据. */
-typedef struct
-{
- uint16_t time; // 采集时间, 与第一包的时间差.
- uint16_t Ia; // CH1: A 相接地电流.
- uint16_t Ib; // CH2: B 相接地电流.
- uint16_t Ic; // CH3: C 相接地电流.
- uint16_t ground; // CH4: 总接地电流.
- uint16_t rIa; // CH5: 运行电流.
- uint16_t rIb;
- uint16_t rIc;
-} csg_data_follow_t;
-
-typedef struct{
- uint8_t time[6]; // 时间, 年月日时分秒.
- uint8_t CSQ; // 信号强度.
- uint8_t vbat; // 电池电压 实际值乘 10.
-} csg_beat_t;
-
-typedef struct{
- uint8_t passwd_old[CSG_PASSWD_LEN]; // 原始密码.
- uint8_t passwd_new[CSG_PASSWD_LEN]; // 新密码.
-} csg_passwd_t;
-
-typedef struct{
- uint8_t passwd[CSG_PASSWD_LEN];
- uint8_t ip1[4];
- uint16_t port1;
- uint8_t ip2[4];
- uint16_t port2;
- uint8_t card1[6];
- uint8_t card2[6];
-} csg_server_t;
-
-typedef struct{
-
- uint8_t ip[4];
- uint16_t port;
- uint8_t card[6];
-} csg_server_get_t;
-
-/* Exported macro ----tm_structure.tm_sec --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
/* Extern global variables ---------------------------------------------------*/
-extern osThreadId_t WLHandle;
extern wl_buf_list_t wl_buf_list_rx;
extern wl_ctrl_t wl_ctrl;
diff --git a/CablePositioning_APP_V1.0/Core/Src/ADC_collect.c b/CablePositioning_APP_V1.0/Core/Src/ADC_collect.c
index a1b76f8..c848bbb 100644
--- a/CablePositioning_APP_V1.0/Core/Src/ADC_collect.c
+++ b/CablePositioning_APP_V1.0/Core/Src/ADC_collect.c
@@ -59,7 +59,7 @@ const osThreadAttr_t ADC_attributes =
{
.name = "ADC",
.stack_size = 160 * 4,
- .priority = (osPriority_t) osPriorityRealtime,
+ .priority = (osPriority_t) osPriorityHigh,
};
/* ADC 全局结构体 */
@@ -225,6 +225,7 @@ static void _ADC_temp_sensor_init(void)
/* 内部 ADC 采样初始化. */
static void _ADC_init(void)
{
+ ADC_ctrl.ADCi_adc = &hadc1;
/* 初始化 ADCi 温度传感器的内部校准系数. */
_ADC_temp_sensor_init();
/* 校准 ADCi, 提高 ADCi 精度. */
@@ -235,9 +236,6 @@ static void _ADC_init(void)
/* ADC 采集主任务循环. */
static void _ADC_start(void *argument)
{
- /* 状态初始化 */
- ADC_ctrl.ADCi_adc = &hadc1;
-
_ADC_init();
for (;;)
diff --git a/CablePositioning_APP_V1.0/Core/Src/RS485_debug.c b/CablePositioning_APP_V1.0/Core/Src/RS485_debug.c
index bd8a598..eeac2a0 100644
--- a/CablePositioning_APP_V1.0/Core/Src/RS485_debug.c
+++ b/CablePositioning_APP_V1.0/Core/Src/RS485_debug.c
@@ -484,10 +484,10 @@ static void _debug_pkt_config_get(void)
data->energy_mode = dev_config.energy_mode;
for(i = 0; i < SENSOR_SUM; i++)
{
- data->sensor_id[i] = dev_config.sensor_id[i];
+ data->sensor_id[i] = 0;
}
data->collect_interval = dev_config.collect_interval;
- data->wave_interval = dev_config.wave_interval;
+ data->wave_interval = 12;
data->collect_threshold = dev_config.threshold;
data->wave_threshold = dev_config.wave_threshold;
data->main_cable = dev_config.main_cable;
@@ -516,7 +516,6 @@ static void _debug_pkt_config_set(void)
uint8_t is_reboot = FALSE;
uint32_t reset_delay = 2;
uint32_t *crc = NULL;
- uint8_t i = 0;
/* 保存数据. */
if (dev_config.flag != data->flag)
@@ -526,12 +525,8 @@ static void _debug_pkt_config_set(void)
}
dev_config.energy_mode = data->energy_mode;
- for(i = 0; i < SENSOR_SUM; i++)
- {
- dev_config.sensor_id[i] = data->sensor_id[i];
- }
dev_config.collect_interval = data->collect_interval;
- dev_config.wave_interval = data->wave_interval;
+ dev_config.keepalive = data->wave_interval * 60000;
dev_config.threshold = data->collect_threshold;
dev_config.wave_threshold = data->wave_threshold;
dev_config.main_cable = data->main_cable;
@@ -582,7 +577,7 @@ static void _debug_pkt_adj_get(void)
memcpy(data->ADCBase, dev_config.ADC_base, sizeof(dev_config.ADC_base));
data->vin = dev_config.vin;
data->vin_adj = dev_config.vin_adj;
- memcpy(data->ADC_turns, dev_config.ADC_turns, CFG_ADC_CH_CNT);
+ memcpy(data->ADC_turns, dev_config.ADC_turns, DAU_PORT_POWER_CNT);
/* 计算校验和. */
crc = (uint32_t*)(debug_buf.buf + head->len);
@@ -608,7 +603,7 @@ static void _debug_pkt_adj_set(void)
memcpy(dev_config.ADC_base, data->ADCBase, sizeof(dev_config.ADC_base));
dev_config.vin = data->vin;
dev_config.vin_adj = data->vin_adj;
- memcpy(dev_config.ADC_turns, data->ADC_turns, CFG_ADC_CH_CNT);
+ memcpy(dev_config.ADC_turns, data->ADC_turns, DAU_PORT_POWER_CNT);
/* 封装报文头. */
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
@@ -695,7 +690,7 @@ static HAL_StatusTypeDef _debug_adj_source_set(uint8_t ch_bitmap, uint8_t index)
uint8_t turn_num = 10;
/* 以第一个校准通道的校准点为准. */
- for(ch = 0; ch < CFG_ADC_CH_CNT; ch++)
+ for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
{
if (IS_MONITOR_BIT_SET(ch_bitmap, ch))
{
@@ -703,7 +698,7 @@ static HAL_StatusTypeDef _debug_adj_source_set(uint8_t ch_bitmap, uint8_t index)
}
}
/* 没有通道被选择直接退出. */
- if (CFG_ADC_CH_CNT == ch)
+ if (DAU_PORT_POWER_CNT == ch)
{
return HAL_OK;
}
@@ -852,7 +847,7 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
/* 设置开始操作. */
HAL_E_RETURN(_debug_adj_start());
- for(i = 0; i < CFG_ADC_CH_CNT; i++)
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
{
/* 过滤不需要的通道. */
if (!IS_MONITOR_BIT_SET(bitmap, i) || 0 == dev_config.ADC_ratio[i])
@@ -862,7 +857,7 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
/* 将变比相同的通道归到同一个 bitmap 中. */
bitmap_new = 0;
- for (j = i; j < CFG_ADC_CH_CNT; j++)
+ for (j = i; j < DAU_PORT_POWER_CNT; j++)
{
if (!IS_MONITOR_BIT_SET(bitmap, j)
|| dev_config.ADC_ratio[i] != dev_config.ADC_ratio[j])
@@ -875,7 +870,7 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
}
/* 开始自动校准, 注意不同变比的通道不能一起校准. */
- for (j = 0; j < CFG_ADC_ADJ_CNT; j++)
+ for (j = 0; j < DAU_POWER_ADJ_CNT; j++)
{
HAL_E_RETURN(_debug_adj_source_set(bitmap_new, j));
//HAL_E_RETURN(ADC_base_auto(bitmap_new, j + 1));
@@ -949,9 +944,9 @@ static void _debug_pkt_data_get(void)
data->vin = ADC_ctrl.ADCi_vin;
data->vsc = ADC_ctrl.ADCi_vsc;
data->CSQ = wl_ctrl.CSQ;
- for(i = 0; i < CFG_ADC_CH_CNT; i++)
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
{
- data->elec[i] = ADC_ctrl.ADC_elec[i];
+ //data->elec[i] = ADC_ctrl.ADC_elec[i];
}
/* 计算校验和. */
@@ -969,7 +964,7 @@ static void _debug_pkt_power_fre_get(void)
{
proto_head_t *head = (proto_head_t*)debug_buf.buf;
mul_head_t *m_head = (mul_head_t*)(debug_buf.buf + sizeof(proto_head_t));
- uint8_t *data = (uint8_t*)(debug_buf.buf + sizeof(proto_head_t) + sizeof(mul_head_t));
+ //uint8_t *data = (uint8_t*)(debug_buf.buf + sizeof(proto_head_t) + sizeof(mul_head_t));
int32_t data_len = 0;
uint32_t *crc = NULL;
@@ -994,7 +989,7 @@ static void _debug_pkt_power_fre_get(void)
if (m_head->len > 0)
{
- memcpy(data, (uint8_t*)(&ADC_ctrl.ADC_value_elec[0][0]) + m_head->index * DEBUG_DATA_SIZE, m_head->len);
+ //memcpy(data, (uint8_t*)(&ADC_ctrl.ADC_value_elec[0][0]) + m_head->index * DEBUG_DATA_SIZE, m_head->len);
}
/* 计算校验和. */
@@ -1039,7 +1034,7 @@ static void _debug_pkt_wave_get(void)
if (m_head->len > 0)
{
- addr = WARE_ADDRESS + m_head->index * DEBUG_DATA_SIZE;
+ addr = WARE_FAULT_ADDRESS + m_head->index * DEBUG_DATA_SIZE;
spi_flash_read(addr, debug_flash, DEBUG_DATA_SIZE);
wave = (int16_t*)debug_flash;
@@ -1093,13 +1088,9 @@ static void _debug_pkt_dev_state_get(void)
data->wave_force = st_data.wave_force;
data->wl_state = wl_ctrl.state;
data->wl_cnt = wl_ctrl.send_cnt;
- data->is_wl_update = wl_ctrl.is_update;
- data->wl_wave_idx = wl_ctrl.wave_index;
data->force_sleep_up = st_data.force_sleep_up;
data->is_bat_charge = HAL_GPIO_ReadPin(BAT_CHECK_GPIO_Port, BAT_CHECK_Pin);
data->wave_adj = dev_config.wave_adj;
- data->wave_min = st_data.wave_min_save;
- data->wave_max = st_data.wave_max_save;
data->sys_time = HAL_GetTick() / 1000;
/* 计算校验和. */
@@ -1118,19 +1109,13 @@ static void _debug_pkt_wave_col(void)
proto_head_t *head = (proto_head_t*)debug_buf.buf;
uint32_t *crc = NULL;
uint32_t reset_delay = 2;
- uint8_t i = 0;
st_data.wave_time = 0;
st_data.wave_start = TRUE;
st_data.wave_up_start = TRUE;
st_data.wave_index = 0;
- for(i = 0; i < WAVE_SUM; i++)
- {
- st_data.wave_max[i] = 0;
- }
flash_log_write(FLASH_LOG_TYPE_INFO, "Force wavc collect system reset!\r\n");
- st_write(&st_data);
common_sys_set(COM_SYS_RESET, (void*)&reset_delay);
/* 封装报文头. */
@@ -1252,7 +1237,7 @@ static void _debug_pkt_history_data_get(void)
proto_head_t *head = (proto_head_t*)debug_buf.buf;
mul_head_t *m_head = (mul_head_t*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *data = (uint32_t*)(debug_buf.buf + sizeof(proto_head_t) + sizeof(mul_head_t));
- fd_date_t *history = NULL;
+ fd_data_t *history = NULL;
int32_t data_len = 0;
uint32_t *crc = NULL;
uint16_t real_len = 0;
@@ -1290,7 +1275,7 @@ static void _debug_pkt_history_data_get(void)
{
read_id = data_id - 4 * m_head->index - i;
- history = (fd_date_t*)(debug_buf.buf + sizeof(proto_head_t) + sizeof(mul_head_t) + i * FD_BUF_LEN);
+ history = (fd_data_t*)(debug_buf.buf + sizeof(proto_head_t) + sizeof(mul_head_t) + i * FD_BUF_LEN);
if (fd_read(read_id, history) != HAL_OK)
break;
@@ -1321,7 +1306,7 @@ static HAL_StatusTypeDef _debug_adj_manual(uint8_t bitmap, uint8_t index)
uint8_t j = 0;
/* 参数检查. */
- if (index >= CFG_ADC_ADJ_CNT)
+ if (index >= DAU_POWER_ADJ_CNT)
{
vty_print("@E1\r\n");
return HAL_ERROR;
@@ -1332,7 +1317,7 @@ static HAL_StatusTypeDef _debug_adj_manual(uint8_t bitmap, uint8_t index)
return HAL_OK;
}
- for(i = 0; i < CFG_ADC_CH_CNT; i++)
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
{
/* 过滤不需要的通道. */
if (!IS_MONITOR_BIT_SET(bitmap, i) || 0 == dev_config.ADC_ratio[i])
@@ -1341,7 +1326,7 @@ static HAL_StatusTypeDef _debug_adj_manual(uint8_t bitmap, uint8_t index)
}
/* 通道分段点不同, 不能同时校准. */
- for (j = i; j < CFG_ADC_CH_CNT; j++)
+ for (j = i; j < DAU_PORT_POWER_CNT; j++)
{
if (!IS_MONITOR_BIT_SET(bitmap, j))
{
@@ -1480,7 +1465,7 @@ static void _debug_pkt_process(void)
/* 共有命令处理. */
switch (head->cmd)
{
- case DEBUG_C_DEV_INFO:
+ case DEBUG_C_CONTACT:
_debug_pkt_info_get();
break;
case DEBUG_C_DEV_INFO_SET:
@@ -1513,24 +1498,24 @@ static void _debug_pkt_process(void)
/* 私有命令处理. */
switch (head->cmd)
{
- case DEBUG_PRV_ADJ_INFO:
- _debug_pkt_adj_get();
- break;
- case DEBUG_PRV_REAL_DATA:
+ case DEBUG_PRV_REALDATA:
_debug_pkt_data_get();
break;
- case DEBUG_PRV_POWER_FRE:
+ case DEBUG_PRV_POWER:
_debug_pkt_power_fre_get();
break;
+ case DEBUG_PRV_DEFECT:
+ _debug_pkt_wave_get();
+ break;
+ case DEBUG_PRV_ADJ_INFO:
+ _debug_pkt_adj_get();
+ break;
case DEBUG_PRV_ADJ_INFO_SET:
_debug_pkt_adj_set();
break;
case DEBUG_PRV_ADJ_AUTO:
_debug_pkt_adj_auto();
break;
- case DEBUG_PRV_WAVE:
- _debug_pkt_wave_get();
- break;
case DEBUG_PRV_DEV_STATE:
_debug_pkt_dev_state_get();
break;
@@ -1678,6 +1663,7 @@ int32_t debug_app_check(uint32_t addr, uint32_t size, uint8_t file_type)
/* 比较报文头信息 */
if (crc32_value != pkt_tail->crc32
|| dev_info.type_m != pkt_tail->dev_type_m
+ || dev_info.type_s != pkt_tail->dev_type_s
|| pkt_tail->file_type != file_type)
{
goto CRC_CHECK_ERROR;
diff --git a/CablePositioning_APP_V1.0/Core/Src/adc.c b/CablePositioning_APP_V1.0/Core/Src/adc.c
index 56924ac..e24dd96 100644
--- a/CablePositioning_APP_V1.0/Core/Src/adc.c
+++ b/CablePositioning_APP_V1.0/Core/Src/adc.c
@@ -155,12 +155,12 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
PB0 ------> ADC1_IN15
*/
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
- GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0;
- GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
diff --git a/CablePositioning_APP_V1.0/Core/Src/cli.c b/CablePositioning_APP_V1.0/Core/Src/cli.c
index 0ff6b8c..4bf628d 100644
--- a/CablePositioning_APP_V1.0/Core/Src/cli.c
+++ b/CablePositioning_APP_V1.0/Core/Src/cli.c
@@ -56,6 +56,7 @@
#include "ADC_collect.h"
#include "RS485_debug.h"
#include "flash_log.h"
+#include "dau.h"
/* Private define ------------------------------------------------------------*/
/* cli buffer 长度定义. */
@@ -117,7 +118,6 @@ static BaseType_t _cli_id(const char *string);
static BaseType_t _cli_password(const char *string);
static BaseType_t _cli_reset(const char *string);
static BaseType_t _cli_save(const char *string);
-static BaseType_t _cli_sen_id(const char *string);
static BaseType_t _cli_show(const char *string);
static BaseType_t _cli_test(const char *string);
static BaseType_t _cli_work_mode(const char *string);
@@ -130,8 +130,9 @@ static const char *debug_str[DBG_M_COUNT] =
"4g",
"sen",
"dbg",
- "wave",
- "position"
+ "dau",
+ "dau_txrx"
+ "gps"
};
static const CLI_Command_Definition_t cmd_debug = {"debug", _cli_debug, 2};
#endif
@@ -144,7 +145,6 @@ static const CLI_Command_Definition_t cmd_id = {"id", _cli_id, 1};
static const CLI_Command_Definition_t cmd_pw = {"passwd", _cli_password, 1};
static const CLI_Command_Definition_t cmd_reset = {"reset", _cli_reset, 1};
static const CLI_Command_Definition_t cmd_save = {"save", _cli_save, 1};
-static const CLI_Command_Definition_t cmd_sen_id = {"sen-id", _cli_sen_id, 8};
static const CLI_Command_Definition_t cmd_show = {"show", _cli_show, 2};
static const CLI_Command_Definition_t cmd_test = {"test", _cli_test, 1};
static const CLI_Command_Definition_t cmd_work_mode = {"work-mode", _cli_work_mode, 1};
@@ -533,45 +533,6 @@ BaseType_t _cli_save(const char *string)
return pdFALSE;
}
-/* 设置传感器 id. */
-static BaseType_t _cli_sen_id(const char *string)
-{
- const char *param = NULL;
- uint8_t param_len = 0;
- uint8_t i = 0;
- uint32_t id = 0;
-
- for(i = 0; i < SENSOR_SUM; i++)
- {
- param = FreeRTOS_CLIGetParameter(string, i + 1, (BaseType_t *)¶m_len);
- if (NULL == param)
- {
- vty_print(cli_param_erro);
- return pdFALSE;
- }
-
- if (0 == strncmp(param, "h", param_len))
- {
- vty_print("sen-id \r\n");
- vty_print(" Set sensor id.\r\n");
- return pdFALSE;
- }
- else
- {
- if (sscanf(param, "%d", &id) <= 0)
- {
- vty_print(cli_param_erro);
- return pdFALSE;
- }
-
- dev_config.sensor_id[i] = id;
- }
- }
-
- vty_print(cli_rv_ok);
- return pdFALSE;
-}
-
/* 打印版本信息. */
static BaseType_t _cli_show(const char *string)
{
@@ -603,6 +564,10 @@ static BaseType_t _cli_show(const char *string)
{
fd_show(20);
}
+ else if(0 == strncmp(param, "dau", param_len))
+ {
+ dau_show();
+ }
else if(0 == strncmp(param, "info", param_len))
{
dev_info_print();
@@ -621,7 +586,7 @@ static BaseType_t _cli_show(const char *string)
vty_print("BAT charge: %d\r\n", HAL_GPIO_ReadPin(BAT_CHECK_GPIO_Port, BAT_CHECK_Pin));
vty_print("Collect interval: %d min\r\n", dev_config.collect_interval);
vty_print("Collect threshold: %d A\r\n", dev_config.threshold);
- vty_print("Wave interval: %d hour\r\n", dev_config.wave_interval);
+ vty_print("Wave interval: %d hour\r\n", dev_config.keepalive);
vty_print("Wave threshold: %d mV\r\n", dev_config.wave_threshold);
vty_print("Mian cable: %d\r\n", dev_config.main_cable);
vty_print("Voltage col: %d\r\n", dev_config.is_voltage_col);
@@ -669,21 +634,6 @@ static BaseType_t _cli_test(const char *string)
//flash_log_write(FLASH_LOG_TYPE_WARNING, "test%d\r\n", 2);
//flash_log_write(FLASH_LOG_TYPE_NOTIFY, "test%d\r\n", 3);
//flash_log_write(FLASH_LOG_TYPE_INFO, "test%d\r\n", 4);
-
-#if 1
- uint8_t i = 0;
- st_data.wave_time = 0;
- st_data.wave_start = TRUE;
- st_data.wave_up_start = TRUE;
- st_data.wave_index = 0;
- for(i = 0; i < WAVE_SUM; i++)
- {
- st_data.wave_max[i] = 0;
- }
- st_write(&st_data);
- uint32_t reset_delay = 2;
- common_sys_set(COM_SYS_RESET, (void*)&reset_delay);
-#endif
vty_print(cli_rv_ok);
return pdFALSE;
@@ -859,7 +809,6 @@ static void _cli_start(void)
FreeRTOS_CLIRegisterCommand(&cmd_pw, CLI_NODE_CONFIG);
FreeRTOS_CLIRegisterCommand(&cmd_reset, CLI_NODE_CONFIG);
FreeRTOS_CLIRegisterCommand(&cmd_save, CLI_NODE_CONFIG);
- FreeRTOS_CLIRegisterCommand(&cmd_sen_id, CLI_NODE_CONFIG);
FreeRTOS_CLIRegisterCommand(&cmd_show, CLI_NODE_COMMON);
FreeRTOS_CLIRegisterCommand(&cmd_test, CLI_NODE_COMMON);
FreeRTOS_CLIRegisterCommand(&cmd_work_mode, CLI_NODE_CONFIG);
@@ -910,22 +859,23 @@ void cli_start(void const * argument)
/* 配置系统初始化. */
dev_config_init();
dev_config_flag_set(DEV_FLAG_CLI);
+ dev_config.keepalive = 300000;
flash_log_init();
st_init();
/* 公共监控任务初始化. */
common_sys_init();
/* 默认开启的 debug. */
- //dbg_cmd_hander(DBG_CMD_ON, DBG_M_4G);
- //dbg_cmd_hander(DBG_CMD_ON, DBG_M_RS485_SEN);
- //dbg_cmd_hander(DBG_CMD_ON, DBG_M_WAVE);
+ //dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU);
+ dbg_cmd_hander(DBG_CMD_ON, DBG_M_4G);
/* 初始化 ADC 采样任务. */
ADC_init();
-
+ /* 初始化 DAU 任务. */
+ dau_init();
+ /* 初始化无线通讯任务. */
if (!IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ)
&& !IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_FACTORY))
{
- /* 4G 通讯任务.*/
- //wl_init();
+ wl_init();
}
/* 在这个标志置位前vty_print是原地循环等待,置位后变为任务调度. */
@@ -941,8 +891,7 @@ void cli_start(void const * argument)
else
{
/* 使用 PC 调试软件调试. */
- //debug_start();
- _cli_start();
+ debug_start();
}
}
diff --git a/CablePositioning_APP_V1.0/Core/Src/common.c b/CablePositioning_APP_V1.0/Core/Src/common.c
index 383b365..38c520c 100644
--- a/CablePositioning_APP_V1.0/Core/Src/common.c
+++ b/CablePositioning_APP_V1.0/Core/Src/common.c
@@ -73,7 +73,7 @@ typedef struct
const osThreadAttr_t COMMON_SYS_attributes = {
.name = "COMMON_SYS",
.stack_size = 128 * 4,
- .priority = (osPriority_t) osPriorityAboveNormal,
+ .priority = (osPriority_t) osPriorityLow,
};
static common_sys_data_t common_sys_data;
static RTC_DateTypeDef common_date;
@@ -128,6 +128,7 @@ static void _common_sys_handle(void)
{
if (0 == common_sys_data.reset_delay)
{
+ st_write(&st_data);
HAL_NVIC_SystemReset();
}
else
@@ -136,6 +137,7 @@ static void _common_sys_handle(void)
if (bit_list_tst(common_sys_data.flag, COM_SYS_SHUTDOWN))
{
bit_list_clr(common_sys_data.flag, COM_SYS_SHUTDOWN);
+ st_write(&st_data);
system_shtudown(common_sys_data.reset_delay);
}
}
@@ -166,7 +168,7 @@ static void _common_sys_start(void *argument)
HAL_GPIO_WritePin(WDG_GPIO_Port, WDG_Pin, GPIO_PIN_SET);
osDelay(1);
HAL_GPIO_WritePin(WDG_GPIO_Port, WDG_Pin, GPIO_PIN_RESET);
- vty_print("WDG\r\n");
+ vty_print("WDG %d\r\n", HAL_GetTick());
}
count++;
@@ -530,7 +532,7 @@ int32_t common_watchdog_tst(uint32_t id)
/* 查询看门狗标记.0-没有置位,1-置位. */
int32_t common_watchdog_tst_all(void)
{
- uint32_t temp = COM_WDG_COM | COM_WDG_ADC | COM_WDG_CLI | COM_WDG_WIR;
+ uint32_t temp = COM_WDG_COM | COM_WDG_ADC | COM_WDG_CLI | COM_WDG_DAU | COM_WDG_GPS;
return ((common_watchdog & temp) == temp);
}
@@ -556,7 +558,7 @@ uint32_t abs_cal_u(uint32_t a, uint32_t b)
void rtc_time_set(uint32_t utc)
{
utc += 8 * 3600;
- struct tm *day = localtime(&utc);
+ struct tm *day = NULL;
time_t temp = 0;
HAL_RTC_GetTime(&hrtc, &time_structure, RTC_FORMAT_BIN);
@@ -569,12 +571,13 @@ void rtc_time_set(uint32_t utc)
tm_structure.tm_sec = time_structure.Seconds;
temp = mktime(&tm_structure);
- if (abs_cal_u(temp, utc) >= 10)
+ if (abs_cal_u(temp, utc) > 1)
{
- vty_print("%ld %d\r\n", temp, utc);
+ //vty_print("%ld %d\r\n", temp, utc);
memset(&time_structure,0,sizeof(RTC_TimeTypeDef));
memset(&date_structure,0,sizeof(RTC_DateTypeDef));
+ day = localtime(&utc);
time_structure.Hours = day->tm_hour;
time_structure.Minutes = day->tm_min;
time_structure.Seconds = day->tm_sec;
@@ -587,9 +590,9 @@ void rtc_time_set(uint32_t utc)
date_structure.Month = day->tm_mon + 1;
date_structure.Date = day->tm_mday;
HAL_RTC_SetDate(&hrtc, &date_structure, RTC_FORMAT_BIN);
+ vty_print("Set date to %d/%d/%d %d:%d:%d.\r\n", date_structure.Year, date_structure.Month, date_structure.Date,
+ time_structure.Hours, time_structure.Minutes, time_structure.Seconds);
}
- vty_print("%d/%d/%d %d:%d:%d\r\n", date_structure.Year, date_structure.Month, date_structure.Date,
- time_structure.Hours, time_structure.Minutes, time_structure.Seconds);
}
void restart_ontime(void)
diff --git a/CablePositioning_APP_V1.0/Core/Src/dau.c b/CablePositioning_APP_V1.0/Core/Src/dau.c
new file mode 100644
index 0000000..f230f71
--- /dev/null
+++ b/CablePositioning_APP_V1.0/Core/Src/dau.c
@@ -0,0 +1,960 @@
+/******************************************************************************
+ * file Core/Src/dau.c
+ * author YuLiang
+ * version 1.0.0
+ * date 15-Aug-2024
+ * brief This file provides all the DAU related operation functions.
+ ******************************************************************************
+ * Attention
+ *
+ * © COPYRIGHT(c) 2024 LandPower
+ *
+ * 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 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 WTOE nor the names of its contributors may be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
+ *
+ ******************************************************************************/
+
+/* Includes ------------------------------------------------------------------*/
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "time.h"
+#include "math.h"
+
+#include "spi.h"
+#include "usart.h"
+
+#include "common.h"
+#include "dev_config.h"
+#include "flash_if.h"
+#include "flash_log.h"
+#include "ADC_collect.h"
+#include "dau.h"
+
+/* Private define ------------------------------------------------------------*/
+#define DAU_WAVE_WAIT_MAX 5 // DAU 波形等待次数
+
+/* 全局状态寄存器地址 -------------------------------- */
+#define DAU_REG_ADDR_GSCR 0x0000 // 全局状态寄存器 - 软件特征寄存器
+#define DAU_REG_ADDR_GSVR 0x0001 // 全局状态寄存器 - 软件版本寄存器
+#define DAU_REG_ADDR_GSR 0x0002 // 全局状态寄存器 - 状态寄存器
+#define DAU_REG_ADDR_GFTR 0x0003 // 全局状态寄存器 - 故障触发录波状态寄存器
+#define DAU_REG_ADDR_GFTUR 0x0004 // 全局状态寄存器 - 故障触发 UTC 时间点寄存器
+#define DAU_REG_ADDR_GFTNR 0x0006 // 全局状态寄存器 - 故障触发 ns 时间点寄存器
+#define DAU_REG_ADDR_GRTR 0x0008 // 全局状态寄存器 - 寄存器触发录波状态寄存器
+#define DAU_REG_ADDR_GUR 0x000a // 全局状态寄存器 - UTC 寄存器
+#define DAU_REG_ADDR_GNR 0x000c // 全局状态寄存器 - ns 寄存器
+
+/* 全局状态寄存器 - 状态寄存器 bit mask */
+#define DAU_GSR_FLASH_Pos (2) // spi flash 空闲状态
+#define DAU_GSR_FLASH_Msk (0x1 << DAU_GSR_FLASH_Pos) /*!< 0x0004 */
+
+/* 全局状态寄存器 - 故障触发录波状态寄存器 bit mask */
+#define DAU_GFTR_POWER_WAVE_Pos (3) // 故障触发工频电流波形状态
+#define DAU_GFTR_POWER_WAVE_Msk (0x1 << DAU_GFTR_POWER_WAVE_Pos) /*!< 0x0008 */
+#define DAU_GFTR_DEFECT_WAVE_Pos (2) // 故障触发缺陷电流波形状态
+#define DAU_GFTR_DEFECT_WAVE_Msk (0x1 << DAU_GFTR_DEFECT_WAVE_Pos) /*!< 0x0004 */
+#define DAU_GFTR_FAULT_WAVE_Pos (1) // 故障电流波形状态
+#define DAU_GFTR_FAULT_WAVE_Msk (0x1 << DAU_GFTR_FAULT_WAVE_Pos) /*!< 0x0002 */
+#define DAU_GFTR_FAULT_Pos (0) // 故障触发录波完成状态
+#define DAU_GFTR_FAULT_Msk (0x1 << DAU_GFTR_FAULT_Pos) /*!< 0x0001 */
+
+/* 全局状态寄存器 - 寄存器触发录波状态寄存器 bit mask */
+#define DAU_GRTR_POWER_WAVE_Pos (3) // 寄存器触发工频电流波形状态
+#define DAU_GRTR_POWER_WAVE_Msk (0x1 << DAU_GRTR_POWER_WAVE_Pos) /*!< 0x0008 */
+#define DAU_GRTR_DEFECT_WAVE_Pos (2) // 寄存器触发缺陷电流波形状态
+#define DAU_GRTR_DEFECT_WAVE_Msk (0x1 << DAU_GRTR_DEFECT_WAVE_Pos) /*!< 0x0004 */
+#define DAU_GRTR_COMPLETE_Pos (0) // 寄存器触发录波完成状态
+#define DAU_GRTR_COMPLETE_Msk (0x1 << DAU_GRTR_COMPLETE_Pos) /*!< 0x0001 */
+
+/* 全局控制寄存器地址 -------------------------------- */
+#define DAU_REG_ADDR_GCFTR 0x0203 // 全局控制寄存器 - 故障触发录波控制寄存器
+#define DAU_REG_ADDR_GCRTR 0x0204 // 全局控制寄存器 - 寄存器触发录波控制寄存器
+#define DAU_REG_ADDR_GCUR 0x0205 // 全局控制寄存器 - UTC 配置寄存器
+
+/* 全局控制寄存器 - 故障触发录波控制寄存器 bit mask */
+#define DAU_GCFTR_PORT_Pos (4) // 故障触发波形端口
+#define DAU_GCFTR_PORT_Msk (0x7 << DAU_GCFTR_PORT_Pos) /*!< 0x0070 */
+#define DAU_GCFTR_POWER_WAVE_Pos (3) // 故障触发波形端口
+#define DAU_GCFTR_POWER_WAVE_Msk (0x1 << DAU_GCFTR_POWER_WAVE_Pos) /*!< 0x0008 */
+#define DAU_GCFTR_DEFECT_WAVE_Pos (2) // 故障触发缺陷电流波形读取
+#define DAU_GCFTR_DEFECT_WAVE_Msk (0x1 << DAU_GCFTR_DEFECT_WAVE_Pos) /*!< 0x0004 */
+#define DAU_GCFTR_FAULT_WAVE_Pos (1) // 故障电流波形读取
+#define DAU_GCFTR_FAULT_WAVE_Msk (0x1 << DAU_GCFTR_FAULT_WAVE_Pos) /*!< 0x0002 */
+
+/* 全局控制寄存器 - 寄存器触发录波控制寄存器 bit mask */
+#define DAU_GCRTR_PORT_Pos (4) // 寄存器触发波形端口
+#define DAU_GCRTR_PORT_Msk (0x7 << DAU_GCRTR_PORT_Pos) /*!< 0x0070 */
+#define DAU_GCRTR_POWER_WAVE_Pos (3) // 寄存器触发工频电流波形读取
+#define DAU_GCRTR_POWER_WAVE_Msk (0x1 << DAU_GCRTR_POWER_WAVE_Pos) /*!< 0x0008 */
+#define DAU_GCRTR_DEFECT_WAVE_Pos (2) // 寄存器触发缺陷电流波形读取
+#define DAU_GCRTR_DEFECT_WAVE_Msk (0x1 << DAU_GCRTR_DEFECT_WAVE_Pos) /*!< 0x0004 */
+#define DAU_GCRTR_START_WAVE_Pos (0) // 录波控制
+#define DAU_GCRTR_START_WAVE_Msk (0x1 << DAU_GCRTR_START_WAVE_Pos) /*!< 0x0001 */
+
+/* 通道状态寄存器地址 -------------------------------- */
+#define DAU_REG_ADDR_PMSR 0x0300 // 通道状态寄存器 - 缺陷电流通道周波原始采样值的平均值寄存器
+#define DAU_REG_ADDR_PPWR 0x03b0 // 通道状态寄存器 - 工频电流通道录波数据寄存器
+#define DAU_REG_ADDR_PDWR 0x03c0 // 通道状态寄存器 - 缺陷电流通道录波数据寄存器
+#define DAU_REG_ADDR_PFWR 0x03d0 // 通道状态寄存器 - 故障电流通道录波数据寄存器
+
+#define DAU_ID 0x0702 // DAU 软件识别码
+
+/* Private typedef -----------------------------------------------------------*/
+/* 波形触发源 */
+typedef enum
+{
+ DAU_SOURCE_FAULT = 0,
+ DAU_SOURCE_REG,
+ DAU_SOURCE_CNT,
+} DAU_SOURCE_E;
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* DAU 任务参数 */
+const osThreadAttr_t dau_attributes =
+{
+ .name = "DAU",
+ .stack_size = 160 * 4,
+ .priority = (osPriority_t) osPriorityRealtime,
+};
+
+const osThreadAttr_t dau_gps_attributes =
+{
+ .name = "GPS",
+ .stack_size = 160 * 4,
+ .priority = (osPriority_t) osPriorityNormal,
+};
+
+/* DAU 全局结构体 */
+dau_ctrl_t dau_ctrl;
+static struct tm _dau_tm;
+
+/* Private function prototypes -----------------------------------------------*/
+/* Internal functions --------------------------------------------------------*/
+/* description: DAU 写寄存器报文发送
+ param: addr -- 寄存器地址
+ len -- 写长度
+ return: HAL_xxx */
+int32_t _dau_reg_write(uint16_t addr, uint16_t len)
+{
+ uint8_t *pkt_tx = dau_ctrl.buf_dau_tx;
+ uint8_t *pkt_rx = dau_ctrl.buf_dau_rx;
+ uint32_t notify_value = 0xff;
+ int32_t rv = 0;
+
+ /* 发送数据. */
+ /* 组装报文, 报文头是大端模式 */
+ pkt_tx[0] = (addr >> 8) & 0x7f; // 最高位为 0 表示读
+ pkt_tx[1] = addr & 0x00ff;
+ len +=2;
+
+ /* 调试打印报文 */
+ DBG(DBG_M_DAU_TXRX, "DAU write send(%d):\r\n", len);
+ if (dbg_stat_get(DBG_M_DAU_TXRX))
+ {
+ buf_print(pkt_tx, len > 16 ? 16 : len);
+ }
+
+ /* 发送数据. */
+ DAU_CS_ENABLE();
+ rv = HAL_SPI_TransmitReceive_DMA(dau_ctrl.spi, pkt_tx, pkt_rx, len);
+ if (rv != HAL_OK)
+ {
+ DBG(DBG_M_DAU, "DAU spi read err %d\r\n", rv);
+ return rv;
+ }
+
+ /* 等待收包完成. */
+ notify_value = ulTaskNotifyTake(pdTRUE, 1000);
+ if (0 == notify_value)
+ {
+ /* 收包超时 */
+ DAU_CS_DISABLE();
+ DBG(DBG_M_DAU, "DAU spi read timeout\r\n");
+ return HAL_TIMEOUT;
+ }
+
+ return HAL_OK;
+}
+
+/* description: DAU 读取寄存器报文发送
+ param: addr -- 寄存器地址
+ len -- 读取长度
+ return: HAL_xxx */
+int32_t _dau_reg_read(uint16_t addr, uint16_t len)
+{
+ uint8_t *pkt_tx = dau_ctrl.buf_dau_tx;
+ uint8_t *pkt_rx = dau_ctrl.buf_dau_rx;
+ uint32_t notify_value = 0xff;
+ int32_t rv = 0;
+
+ /* 发送数据. */
+ /* 组装报文, 报文头是大端模式 */
+ pkt_tx[0] = (addr >> 8) | 0x80; // 最高位为 1 表示读
+ pkt_tx[1] = addr & 0x00ff;
+
+ /* 调试打印报文 */
+ DBG(DBG_M_DAU_TXRX, "DAU read send:\r\n");
+ if (dbg_stat_get(DBG_M_DAU_TXRX))
+ {
+ buf_print(pkt_tx, 2);
+ }
+
+ /* 发送数据. */
+ DAU_CS_ENABLE();
+ rv = HAL_SPI_TransmitReceive_DMA(dau_ctrl.spi, pkt_tx, pkt_rx, len + 2);
+ if (rv != HAL_OK)
+ {
+ DAU_CS_DISABLE();
+ DBG(DBG_M_DAU, "DAU spi read err %d\r\n", rv);
+ return rv;
+ }
+
+ /* 等待收包完成. */
+ notify_value = ulTaskNotifyTake(pdTRUE, 1000);
+ if (0 == notify_value)
+ {
+ /* 收包超时 */
+ DBG(DBG_M_DAU, "DAU spi read timeout\r\n");
+ return HAL_TIMEOUT;
+ }
+
+ /* 调试打印报文. */
+ DBG(DBG_M_DAU_TXRX, "DAU read recv(%d):\r\n", len);
+ if (dbg_stat_get(DBG_M_DAU_TXRX))
+ {
+ buf_print(pkt_rx + 2, len > 16 ? 16 : len);
+ vty_print("\r\n");
+ }
+
+ return HAL_OK;
+}
+
+/* description: DAU 读取全局状态寄存器报文发送
+ param:
+ return: HAL_xxx */
+int32_t _dau_reg_read_global_state(void)
+{
+ dau_reg_global_t *p = (dau_reg_global_t*)(dau_ctrl.buf_dau_rx + 2);
+ int32_t rv = HAL_ERROR;
+
+ /* 读取全局寄存器 */
+ rv = _dau_reg_read(DAU_REG_ADDR_GSCR, sizeof(dau_reg_global_t));
+ if (rv != HAL_OK)
+ {
+ return rv;
+ }
+
+ if (p->GSCR != DAU_ID)
+ {
+ DBG(DBG_M_DAU, "DAU read 0x0 data %x err\r\n", p->GSCR);
+ return HAL_ERROR;
+
+ }
+
+ memcpy(&dau_ctrl.reg_global, p, sizeof(dau_reg_global_t));
+ return rv;
+}
+
+/* description: DAU 读取端口状态寄存器报文发送
+ param:
+ return: HAL_xxx */
+int32_t _dau_reg_read_port_state(void)
+{
+ int32_t rv = HAL_ERROR;
+
+ /* 读取全局寄存器 */
+ rv = _dau_reg_read(DAU_REG_ADDR_PMSR, sizeof(dau_port_state_reg_t));
+ if (rv != HAL_OK)
+ {
+ return rv;
+ }
+
+ memcpy(&dau_ctrl.reg_port_state, dau_ctrl.buf_dau_rx + 2, sizeof(dau_port_state_reg_t));
+ return rv;
+}
+
+/* description: DAU 历史数据保存
+ param:
+ return: */
+static void _dau_data_save(void)
+{
+ uint8_t i = 0;
+
+ /* 装填数据. */
+ fd_data.temperature = ADC_ctrl.ADCi_temp;
+ fd_data.vbat = ADC_ctrl.ADCi_vbat;
+ fd_data.vin = ADC_ctrl.ADCi_vin;
+ fd_data.vsc = ADC_ctrl.ADCi_vsc;
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ fd_data.defect[i] = dau_ctrl.reg_port_state.MAX[i];
+ }
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ fd_data.elec[i] = dau_ctrl.reg_elec[i];
+ }
+ fd_data.col_flag = dau_ctrl.col_flag;
+
+ fd_write(&fd_data);
+}
+
+/* description: DAU UTC 对时处理
+ param:
+ return: */
+void _dau_utc(void)
+{
+ uint32_t *utc = (uint32_t*)&dau_ctrl.buf_dau_tx[2];
+
+ /* dau 主循环大概 250ms 运行一次, 在第 3 次循环 (500 ~ 750ms) 对时, 此时 GPS 对时一定是可用的 */
+ if (500000000 < dau_ctrl.reg_global.GNR && dau_ctrl.reg_global.GNR <= 750000000
+ && dau_ctrl.is_utc_valid
+ && dau_ctrl.reg_global.GUR != dau_ctrl.utc)
+ {
+ *utc = dau_ctrl.utc;
+ _dau_reg_write(DAU_REG_ADDR_GCUR, sizeof(uint32_t));
+ }
+}
+
+/* description: 寄存器触发波形采集开始
+ param:
+ return: HAL_xxx */
+int32_t _dau_wave_col_start(void)
+{
+ uint16_t *reg = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
+ uint8_t i = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 请求录波 */
+ *reg = DAU_GCRTR_START_WAVE_Msk;
+ E_RETURN(_dau_reg_write(DAU_REG_ADDR_GCRTR, sizeof(uint16_t)));
+
+ /* 等待录波完成 */
+ while(1)
+ {
+ if (i >= DAU_WAVE_WAIT_MAX)
+ {
+ DBG(DBG_M_DAU, "DAU wave err\r\n", rv);
+ return HAL_TIMEOUT;
+ }
+ osDelay(100);
+
+ E_RETURN(_dau_reg_read_global_state());
+ if ((dau_ctrl.reg_global.GRTR & DAU_GRTR_COMPLETE_Msk) >> DAU_GRTR_COMPLETE_Pos)
+ {
+ break;
+ }
+
+ i++;
+ }
+
+ return rv;
+}
+
+/* description: 故障波形采集
+ param:
+ return: HAL_xxx */
+int32_t _dau_wave_col_fault(void)
+{
+ uint16_t *reg = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
+ uint8_t i = 0;
+ uint8_t j = 0;
+ uint32_t addr = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 读取触发电流值 */
+ E_RETURN(_dau_reg_read_port_state());
+
+ /* 数据地址应该是被擦除过的地址 (当前地址向前偏移 128k). */
+ addr = dau_ctrl.addr_fault;
+ /* 读取故障数据 */
+ for(i = 0; i < DAU_PORT_FAULT_CNT; i++)
+ {
+ dau_ctrl.fault_trig[i] = dau_ctrl.reg_port_state.FAULT[i];
+
+ /* 请求读取故障波形 */
+ *reg = DAU_GCFTR_FAULT_WAVE_Msk | (i << DAU_GCFTR_PORT_Pos);
+ E_RETURN(_dau_reg_write(DAU_REG_ADDR_GCFTR, sizeof(uint16_t)));
+
+ /* 等待 DAU 准备故障数据 */
+ while(1)
+ {
+ if (j >= DAU_WAVE_WAIT_MAX)
+ {
+ DBG(DBG_M_DAU, "DAU fault wave err\r\n", rv);
+ return HAL_TIMEOUT;
+ }
+ osDelay(10);
+
+ E_RETURN(_dau_reg_read_global_state());
+ if ((dau_ctrl.reg_global.GFTR & DAU_GFTR_FAULT_WAVE_Msk) >> DAU_GFTR_FAULT_WAVE_Pos)
+ {
+ break;
+ }
+
+ j++;
+ }
+
+ for(j = 0; j < DAU_PKT_FAULT_CNT; j++)
+ {
+ E_RETURN(_dau_reg_read(DAU_REG_ADDR_PFWR + i, DAU_PKT_FAULT_BYTE_CNT));
+ E_RETURN(spi_flash_write(addr, &dau_ctrl.buf_dau_rx[2], DAU_PKT_FAULT_BYTE_CNT));
+ addr += DAU_PKT_FAULT_BYTE_CNT;
+ }
+ }
+
+ return rv;
+}
+
+/* description: 缺陷波形采集
+ param:
+ return: HAL_xxx */
+int32_t _dau_wave_col_defect(void)
+{
+ uint16_t *reg = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
+ uint8_t i = 0;
+ uint8_t j = 0;
+ uint8_t is_exceed = FALSE;
+ uint32_t addr = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 比较缺陷波形是否超过阈值 */
+ E_RETURN(_dau_reg_read_port_state());
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ dau_ctrl.reg_defect_max[i] = dau_ctrl.reg_port_state.MAX[i];
+ if (dau_ctrl.reg_port_state.MAX[i] > dev_config.wave_threshold)
+ {
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
+ is_exceed = TRUE;
+ }
+ }
+ /* 没有超过阈值直接返回 */
+ if (is_exceed)
+ {
+ MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
+ return rv;
+ }
+
+ /* 擦除 flash */
+ addr = dau_ctrl.addr_reg;
+ for(i = 0; i < 2; i++)
+ {
+ E_RETURN(spi_flash_erase(addr, SPI_CMD_BLOCK64_ERASE));
+ addr += SPI_FLASH_BLOCK64_SIZE;
+ }
+
+ /* 数据地址应该是被擦除过的地址 (当前地址向前偏移 128k). */
+ addr = dau_ctrl.addr_reg;
+ /* 读取缺陷数据 */
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ /* 请求读取缺陷波形 */
+ *reg = DAU_GCRTR_DEFECT_WAVE_Msk | (i << DAU_GCRTR_PORT_Pos);
+ E_RETURN(_dau_reg_write(DAU_REG_ADDR_GCRTR, sizeof(uint16_t)));
+
+ /* 等待 DAU 准备缺陷数据 */
+ while(1)
+ {
+ if (j >= DAU_WAVE_WAIT_MAX)
+ {
+ DBG(DBG_M_DAU, "DAU defect wave err\r\n", rv);
+ return HAL_TIMEOUT;
+ }
+ osDelay(10);
+
+ E_RETURN(_dau_reg_read_global_state());
+ if ((dau_ctrl.reg_global.GRTR & DAU_GRTR_DEFECT_WAVE_Msk) >> DAU_GRTR_DEFECT_WAVE_Pos)
+ {
+ break;
+ }
+
+ j++;
+ }
+
+ for(j = 0; j < DAU_PKT_DEFECT_CNT; j++)
+ {
+ E_RETURN(_dau_reg_read(DAU_REG_ADDR_PDWR + i, DAU_PKT_DEFECT_BYTE_CNT));
+ E_RETURN(spi_flash_write(addr, &dau_ctrl.buf_dau_rx[2], DAU_PKT_DEFECT_BYTE_CNT));
+ addr += DAU_PKT_DEFECT_BYTE_CNT;
+ }
+ }
+
+ return rv;
+}
+
+/* description: 工频波形采集
+ param: flag - 采集来源见 DAU_COL_FLAG_E
+ return: HAL_xxx */
+int32_t _dau_wave_col_power(DAU_SOURCE_E source)
+{
+ uint16_t *reg = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
+ int16_t *power = NULL;
+ uint8_t i = 0;
+ uint8_t j = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 读取工频数据 */
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
+ {
+ /* 请求读取工频波形 */
+ if (DAU_SOURCE_FAULT == source)
+ {
+ *reg = DAU_GCFTR_POWER_WAVE_Msk | (i << DAU_GCFTR_PORT_Pos);
+ E_RETURN(_dau_reg_write(DAU_REG_ADDR_GCFTR, sizeof(uint16_t)));
+ }
+ else
+ {
+ *reg = DAU_GCRTR_POWER_WAVE_Msk | (i << DAU_GCRTR_PORT_Pos);
+ E_RETURN(_dau_reg_write(DAU_REG_ADDR_GCRTR, sizeof(uint16_t)));
+ }
+
+ /* 等待 DAU 准备工频数据 */
+ while(1)
+ {
+ if (j >= DAU_WAVE_WAIT_MAX)
+ {
+ DBG(DBG_M_DAU, "DAU power wave err\r\n", rv);
+ return HAL_TIMEOUT;
+ }
+ osDelay(10);
+
+ E_RETURN(_dau_reg_read_global_state());
+ if (DAU_SOURCE_FAULT == source)
+ {
+ if ((dau_ctrl.reg_global.GFTR & DAU_GFTR_POWER_WAVE_Msk) >> DAU_GFTR_POWER_WAVE_Pos)
+ {
+ break;
+ }
+ }
+ else
+ {
+ if ((dau_ctrl.reg_global.GRTR & DAU_GRTR_POWER_WAVE_Msk) >> DAU_GRTR_POWER_WAVE_Pos)
+ {
+ break;
+ }
+ }
+
+ j++;
+ }
+
+ /* 选择存储位置, 读取数据 */
+ power = (DAU_SOURCE_FAULT == source) ? dau_ctrl.fault_power[i] : dau_ctrl.reg_power[i];
+ for(j = 0; j < DAU_PKT_POWER_CNT; j++)
+ {
+ E_RETURN(_dau_reg_read(DAU_REG_ADDR_PPWR + i, DAU_PKT_POWER_BYTE_CNT));
+ memcpy(power, &dau_ctrl.buf_dau_rx[2], DAU_PKT_POWER_BYTE_CNT);
+ power += DAU_PKT_POWER_BYTE_CNT >> 1;
+ }
+ }
+
+ return rv;
+}
+
+/* description: DAU 工频电流计算
+ param:
+ return: */
+void _dau_power_calculate(DAU_SOURCE_E source)
+{
+ int16_t (*val)[DAU_POWER_DATE_LEN] = (DAU_SOURCE_FAULT == source) ? dau_ctrl.fault_power : dau_ctrl.reg_power;
+ uint32_t *power = (DAU_SOURCE_FAULT == source) ? dau_ctrl.fault_elec : dau_ctrl.reg_elec;
+ uint8_t ch = 0;
+ uint8_t adj = 0;
+ uint16_t i = 0;
+ uint64_t square_sum = 0;
+ int32_t mean_sum = 0;
+ float temp = 0;
+
+ /* 遍历通道, 计算有效值 */
+ for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
+ {
+ square_sum = 0;
+ mean_sum = 0;
+ /* 遍历通道所有值, 求和, 并计算出最大值和最小值. */
+ for(i = 0; i < DAU_POWER_DATE_LEN; i++)
+ {
+ square_sum += val[ch][i] * val[ch][i];
+ mean_sum += val[ch][i];
+ }
+
+ /* 根据数据查找数据落在哪个分段点上. */
+ temp = (double)sqrt(square_sum / DAU_POWER_DATE_LEN) - abs(mean_sum / DAU_POWER_DATE_LEN);
+ for(adj = 0; adj < DAU_POWER_ADJ_CNT - 1; adj++)
+ {
+ if (temp <= dev_config.ADC_base[ch][adj])
+ {
+ break;
+ }
+ }
+
+ /* 根据分段点计算有效值. */
+ if (0 == adj)
+ {
+ power[ch] = (uint32_t)(temp * dev_config.ADC_adj[ch][adj] * dev_config.ADC_ratio[ch] * 1.414/ 32768);
+ }
+ else
+ {
+ power[ch] = (uint32_t)((temp - dev_config.ADC_base[ch][adj - 1]) * dev_config.ADC_adj[ch][adj] * dev_config.ADC_ratio[ch] * 1.414 / 32768 + dev_config.ADC_base_elec[ch][adj - 1]);
+ }
+ }
+
+ if (DAU_SOURCE_REG == source)
+ {
+ /* 固定前 4 个通道是接地电流, 判断接地电流有没有突变 */
+ for(ch = 0; ch < DAU_PORT_GROUND_CNT; ch++)
+ {
+ /* 判断工频录波上传阈值 */
+ if (abs_cal_u(power[ch], fd_data.elec[ch]) >= (uint32_t)dev_config.threshold * 1000)
+ {
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER);
+ break;
+ }
+ }
+ if (DAU_PORT_GROUND_CNT == ch)
+ {
+ MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER);
+ return;
+ }
+ }
+
+ /* 计算工频录波每个点的电流值 */
+ if (DAU_SOURCE_FAULT == source
+ || IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER))
+ {
+ for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
+ {
+ for(i = 0; i < DAU_POWER_DATE_LEN; i++)
+ {
+ val[ch][i] = (int64_t)val[ch][i] * 7257 * dev_config.ADC_ratio[ch] / 3276800;
+ }
+ }
+ }
+}
+
+/* description: 故障触发波形采集
+ param:
+ return: HAL_xxx */
+int32_t _dau_wave_col_trigger_by_fault(void)
+{
+ uint8_t i = 0;
+ uint32_t addr = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 上次触发没有完成直接退出 */
+ if (!IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP))
+ {
+ return HAL_OK;
+ }
+
+ /* 没有触发直接退出 */
+ if (!((dau_ctrl.reg_global.GFTR & DAU_GFTR_FAULT_Msk) >> DAU_GFTR_FAULT_Pos))
+ {
+ return HAL_OK;
+ }
+ dau_ctrl.fault_utc = dau_ctrl.reg_global.GFTUR;
+ dau_ctrl.fault_ns = dau_ctrl.reg_global.GFTNR;
+
+ /* 擦除 flash */
+ addr = dau_ctrl.addr_fault;
+ for(i = 0; i < 2; i++)
+ {
+ E_RETURN(spi_flash_erase(addr, SPI_CMD_BLOCK64_ERASE));
+ addr += SPI_FLASH_BLOCK64_SIZE;
+ }
+
+ /* 采集波形 */
+ E_RETURN(_dau_wave_col_fault());
+ E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT));
+ _dau_power_calculate(DAU_SOURCE_FAULT);
+
+ /* 置标志位 */
+ MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP);
+
+ return rv;
+}
+
+/* description: 寄存器触发波形采集
+ param:
+ return: HAL_xxx */
+int32_t _dau_wave_col_trigger_by_reg(void)
+{
+ uint32_t tick = 0;
+ int32_t rv = HAL_ERROR;
+
+ /* 上次触发没有完成直接退出 */
+ if (!IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP))
+ {
+ return HAL_OK;
+ }
+
+ /* 定时开始采集 */
+ tick = HAL_GetTick();
+ if ((tick - dau_ctrl.col_time) < (dev_config.collect_interval * 60000))
+ {
+ return HAL_OK;
+ }
+
+ E_RETURN(_dau_wave_col_start());
+ E_RETURN(_dau_wave_col_defect());
+ E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG));
+ _dau_power_calculate(DAU_SOURCE_REG);
+
+ /* 置标志位, 保存数据 */
+ _dau_data_save();
+ MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+ dau_ctrl.col_time = tick;
+
+ return rv;
+}
+
+/* description: DAU 初始化
+ param:
+ return: */
+static void _dau_init(void)
+{
+ char version[DEV_COMPILE_TIME_LEN] = {0};
+
+ dau_ctrl.spi = &hspi1;
+
+ if (st_data.addr_fault >= WARE_FAULT_ADDRESS && st_data.addr_fault < WARE_FAULT_ADDRESS_END
+ && 0 == (st_data.addr_fault & 0x1ffff))
+ {
+ dau_ctrl.addr_fault = st_data.addr_fault;
+ }
+ else
+ {
+ dau_ctrl.addr_fault = WARE_FAULT_ADDRESS;
+ }
+
+ if (st_data.addr_reg >= WARE_REG_ADDRESS && st_data.addr_reg < WARE_REG_ADDRESS_END
+ && 0 == (st_data.addr_reg & 0x1ffff))
+ {
+ dau_ctrl.addr_reg = st_data.addr_reg;
+ }
+ else
+ {
+ dau_ctrl.addr_reg = WARE_REG_ADDRESS;
+ }
+
+ /* 开启第一次采集前, 默认上传完成 */
+ dau_ctrl.col_time = 600000;
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP);
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+
+ HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET);
+ osDelay(1000);
+
+ /* 读取 FPGA 版本信息 */
+ if (HAL_OK == _dau_reg_read_global_state())
+ {
+ snprintf(version, DEV_COMPILE_TIME_LEN, "%d.%d", dau_ctrl.reg_global.GSVR >> 8, dau_ctrl.reg_global.GSVR & 0xff);
+ if (strncmp((char*)dev_info.FPGA_version, version, DEV_COMPILE_TIME_LEN - 1) != 0)
+ {
+ strncpy((char*)dev_info.FPGA_version, version, DEV_COMPILE_TIME_LEN - 1);
+ common_sys_set(COM_SYS_SAVE_INFO, 0);
+ }
+ }
+}
+
+/* description: DAU 主任务循环
+ param:
+ return: */
+static void _dau_start(void *argument)
+{
+ int32_t rv = HAL_ERROR;
+
+ /* 状态初始化 */
+ _dau_init();
+
+ for (;;)
+ {
+ osDelay(5000);
+ common_watchdog_set(COM_WDG_DAU);
+
+ rv = _dau_reg_read_global_state();
+ if (rv != HAL_OK)
+ {
+ continue;
+ }
+
+ /* utc 对时处理 */
+ _dau_utc();
+
+ /* 故障电流采集 */
+ _dau_wave_col_trigger_by_fault();
+
+ /* 循环工频缺陷电流采集 */
+ _dau_wave_col_trigger_by_reg();
+ }
+}
+
+/* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F)
+ param:
+ return: */
+static void _dau_gps_process(void)
+{
+ char *pkt = (char*)dau_ctrl.buf_gps;
+ uint8_t n = 0;
+ uint16_t i = 0;
+ uint32_t hour = 0;
+ uint32_t min = 0;
+ uint32_t sec = 0;
+ uint32_t day = 0;
+ uint32_t mon = 0;
+ uint32_t year = 0;
+ uint32_t ms = 0;
+
+ /* 遍历字符串 */
+ while(pkt[i])
+ {
+ if (pkt[i] != '$')
+ {
+ i++;
+ continue;
+ }
+
+ /* 查找对时字符串 "$GNZDA" */
+ if (strncmp(&pkt[i], "$GNZDA", 6) != 0)
+ {
+ i++;
+ continue;
+ }
+
+ /* 查找时分秒日月年 */
+ n = sscanf(&pkt[i], "$GNZDA,%02d%02d%02d.%d,%02d,%02d,%04d", &hour, &min, &sec, &ms, &day, &mon, &year);
+ if (n != 7)
+ {
+ break;
+ }
+
+ DBG(DBG_M_GPS, "%d/%d/%d %d:%d:%d\r\n", year, mon, day, hour, min, sec);
+ /* 小于 2024 说明对时不成功. */
+ if (year < 2024)
+ {
+ break;
+ }
+ _dau_tm.tm_year = year - 1900;
+ _dau_tm.tm_mon = mon - 1;
+ _dau_tm.tm_mday = day;
+ _dau_tm.tm_hour = hour;
+ _dau_tm.tm_min = min;
+ _dau_tm.tm_sec = sec;
+
+ dau_ctrl.utc = mktime(&_dau_tm);
+ rtc_time_set(dau_ctrl.utc);
+ dau_ctrl.is_utc_valid = TRUE;
+ break;
+ }
+}
+
+/* description: GPS 初始化
+ param:
+ return: */
+static void _dau_gps_init(void)
+{
+ dau_ctrl.uart = &huart2;
+
+ HAL_GPIO_WritePin(POWER_GPS_GPIO_Port, POWER_GPS_Pin, GPIO_PIN_SET);
+ osDelay(1000);
+ HAL_GPIO_WritePin(GPS_RST_GPIO_Port, GPS_RST_Pin, GPIO_PIN_RESET);
+ osDelay(100);
+ HAL_GPIO_WritePin(GPS_RST_GPIO_Port, GPS_RST_Pin, GPIO_PIN_SET);
+}
+
+/* description: GPS 主任务循环
+ param:
+ return: */
+static void _dau_gps_start(void *argument)
+{
+ uint32_t notify_value = 0xff;
+
+ /* 状态初始化 */
+ _dau_gps_init();
+
+ for (;;)
+ {
+ common_watchdog_set(COM_WDG_GPS);
+
+ /* 开启串口空闲中断收包 */
+ if (HAL_OK == HAL_UARTEx_ReceiveToIdle_DMA(dau_ctrl.uart, dau_ctrl.buf_gps, DAU_GPS_BUF_LEN))
+ {
+ dau_ctrl.len_buf_gps = 0;
+ dau_ctrl.is_half_buf_gps = FALSE;
+ }
+
+ /* 等待收包完成. */
+ notify_value = ulTaskNotifyTake(pdTRUE, 10000);
+ if (0 == notify_value)
+ {
+ /* 收包超时 */
+ dau_ctrl.is_utc_valid = FALSE;
+ continue;
+ }
+
+ dau_ctrl.is_utc_valid = FALSE;
+ DBG(DBG_M_GPS, "Len %d\r\n", dau_ctrl.len_buf_gps);
+
+ /* 命令过长. */
+ if (dau_ctrl.len_buf_gps >= DAU_GPS_BUF_LEN)
+ {
+ continue;
+ }
+
+ /* 字符串结束标志 */
+ dau_ctrl.buf_gps[dau_ctrl.len_buf_gps] = 0;
+
+ _dau_gps_process();
+ }
+}
+
+/* Interface functions -------------------------------------------------------*/
+/* description: DAU 采集任务初始化
+ param:
+ return: */
+void dau_init(void)
+{
+ dau_ctrl.dau_handle = osThreadNew(_dau_start, NULL, &dau_attributes);
+ dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes);
+}
+
+/* description: dau 显示接口
+ param:
+ return: */
+void dau_show(void)
+{
+ struct tm *day = NULL;
+ uint32_t utc = dau_ctrl.utc;
+
+ if (dau_ctrl.is_utc_valid)
+ {
+ utc += 28800;
+ day = localtime(&utc);
+ vty_print("date: %d/%d/%d %d:%d:%d\r\n", day->tm_year - 100, day->tm_mon + 1, day->tm_mday,
+ day->tm_hour, day->tm_min, day->tm_sec);
+ }
+
+ vty_print("\n");
+}
+/******************* (C) COPYRIGHT LandPower ***** END OF FILE ****************/
+
diff --git a/CablePositioning_APP_V1.0/Core/Src/dev_config.c b/CablePositioning_APP_V1.0/Core/Src/dev_config.c
index 605bd87..5ac9259 100644
--- a/CablePositioning_APP_V1.0/Core/Src/dev_config.c
+++ b/CablePositioning_APP_V1.0/Core/Src/dev_config.c
@@ -138,7 +138,7 @@ static HAL_StatusTypeDef _dev_config_default_set(void)
/* 默认密码初始化. */
snprintf((char*)dev_config.password, DEV_PASSWORD_LEN, "%s", DEV_DEFAULT_PASSWORD);
- for(i = 0; i < CFG_ADC_CH_CNT; i++)
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
{
if (i < 4)
{
@@ -185,7 +185,7 @@ static HAL_StatusTypeDef _dev_config_default_set(void)
dev_config.vin_adj = DEV_VIN_ADJ_DEFAULT;
dev_config.vin = DEV_VIN_ADJ_DEFAULT;
dev_config.collect_interval = 10;
- dev_config.wave_interval = 12;
+ dev_config.keepalive = 300000;
dev_config.wave_adj = DEV_WARE_ADJ_DEFAULT;
dev_config.main_cable = 5;
snprintf((char*)dev_config.APN, DEV_APN_LEN, "CMIOT");
@@ -604,15 +604,6 @@ void dev_config_collect_interval_set(uint16_t interval)
_dev_config_mutex_unlock();
}
-void dev_config_wave_interval_set(uint16_t interval)
-{
- _dev_config_mutex_lock();
-
- dev_config.wave_interval = interval;
-
- _dev_config_mutex_unlock();
-}
-
/* 回复出厂配置. */
void dev_config_defaults_set(void)
{
diff --git a/CablePositioning_APP_V1.0/Core/Src/dma.c b/CablePositioning_APP_V1.0/Core/Src/dma.c
index 5093244..1c2bbb3 100644
--- a/CablePositioning_APP_V1.0/Core/Src/dma.c
+++ b/CablePositioning_APP_V1.0/Core/Src/dma.c
@@ -50,6 +50,9 @@ void MX_DMA_Init(void)
/* DMA1_Channel3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
+ /* DMA1_Channel6_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
/* DMA2_Channel3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Channel3_IRQn);
diff --git a/CablePositioning_APP_V1.0/Core/Src/flash_log.c b/CablePositioning_APP_V1.0/Core/Src/flash_log.c
index 6d2444a..91dc974 100644
--- a/CablePositioning_APP_V1.0/Core/Src/flash_log.c
+++ b/CablePositioning_APP_V1.0/Core/Src/flash_log.c
@@ -69,7 +69,8 @@ static char *type_str[FLASH_LOG_TYPE_CNT] =
};
uint64_t fd_id;
-static fd_date_t fd_buf;
+fd_data_t fd_data;
+static fd_data_t fd_buf;
uint64_t position_id;
static position_data_t position_buf;
@@ -178,13 +179,13 @@ static HAL_StatusTypeDef _fd_max_id_get(void)
}
/* 根据 id 读取 data, id从1开始,如果id为0,则读取当前log. */
-static HAL_StatusTypeDef _fd_read(uint64_t id, fd_date_t *data)
+static HAL_StatusTypeDef _fd_read(uint64_t id, fd_data_t *data)
{
uint32_t addr = 0;
addr = _fd_addr_get(id);
- HAL_E_RETURN(spi_flash_read(addr, (uint8_t*)data, sizeof(fd_date_t)));
+ HAL_E_RETURN(spi_flash_read(addr, (uint8_t*)data, sizeof(fd_data_t)));
return HAL_OK;
}
@@ -431,7 +432,7 @@ void flash_log_init(void)
}
/* 向flash中写入1条log数据,大小不能超过128byte. */
-HAL_StatusTypeDef fd_write(fd_date_t *data)
+HAL_StatusTypeDef fd_write(fd_data_t *data)
{
uint32_t addr = 0;
@@ -448,7 +449,7 @@ HAL_StatusTypeDef fd_write(fd_date_t *data)
log_tm.tm_hour = log_time.Hours;
log_tm.tm_min = log_time.Minutes;
log_tm.tm_sec = log_time.Seconds;
- data->run_time = mktime(&log_tm) - 28800;
+ data->run_time = mktime(&log_tm);
/* 获取当前写入地址. */
addr = _fd_addr_get(fd_id);
@@ -458,14 +459,14 @@ HAL_StatusTypeDef fd_write(fd_date_t *data)
FLASH_LOG_RETURN_MUTEX(spi_flash_erase(addr, SPI_CMD_SECTOR_ERASE));
/* 写入 flash, 写入长度是数据长度 + id 大小. */
- FLASH_LOG_RETURN_MUTEX(spi_flash_write(addr, (uint8_t*)data, sizeof(fd_date_t)));
+ FLASH_LOG_RETURN_MUTEX(spi_flash_write(addr, (uint8_t*)data, sizeof(fd_data_t)));
_flash_log_mutex_unlock();
return HAL_OK;
}
/* 修改数据. */
-HAL_StatusTypeDef fd_modify(uint64_t id, fd_date_t *data)
+HAL_StatusTypeDef fd_modify(uint64_t id, fd_data_t *data)
{
uint32_t addr = 0;
@@ -480,14 +481,14 @@ HAL_StatusTypeDef fd_modify(uint64_t id, fd_date_t *data)
addr = _fd_addr_get(id);
/* 写入 flash, 写入长度是数据长度. */
- FLASH_LOG_RETURN_MUTEX(spi_flash_write(addr, (uint8_t*)data, sizeof(fd_date_t)));
+ FLASH_LOG_RETURN_MUTEX(spi_flash_write(addr, (uint8_t*)data, sizeof(fd_data_t)));
_flash_log_mutex_unlock();
return HAL_OK;
}
/* 根据 id 读取 data, id从1开始,如果id为0,则读取当前log. */
-HAL_StatusTypeDef fd_read(uint64_t id, fd_date_t *data)
+HAL_StatusTypeDef fd_read(uint64_t id, fd_data_t *data)
{
if (0 == id || id > fd_id)
{
@@ -542,13 +543,12 @@ void fd_show(uint32_t num)
if (FD_INVALID_ID == fd_buf.id)
break;
- time = fd_buf.run_time + 28800;
+ time = fd_buf.run_time;
day = localtime(&time);
vty_print("%-08lld %-04d/%-02d/%-02d %-02d:%-02d:%-02d ", fd_buf.id, day->tm_year + 1900, day->tm_mon + 1,
day->tm_mday, day->tm_hour, day->tm_min, day->tm_sec);
- vty_print("%-06d %-06d %-06d %-06d %-06d\r\n", fd_buf.elec[0], fd_buf.elec[1], fd_buf.elec[2], fd_buf.elec[3],
- fd_buf.is_not_updata);
+ vty_print("%-06d %-06d %-06d %-06d %-06d\r\n", fd_buf.elec[0], fd_buf.elec[1], fd_buf.elec[2], fd_buf.elec[3]);
fd_buf.id--;
if (0 == fd_buf.id)
diff --git a/CablePositioning_APP_V1.0/Core/Src/freertos.c b/CablePositioning_APP_V1.0/Core/Src/freertos.c
index e26db72..3dbc30f 100644
--- a/CablePositioning_APP_V1.0/Core/Src/freertos.c
+++ b/CablePositioning_APP_V1.0/Core/Src/freertos.c
@@ -29,32 +29,6 @@
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
-/* USER CODE BEGIN Header */
-/**
- ******************************************************************************
- * File Name : freertos.c
- * Description : Code for freertos applications
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2022 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-/* USER CODE END Header */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
@@ -71,6 +45,9 @@
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN Variables */
+
+/* USER CODE END Variables */
+/* Definitions for CLI */
osThreadId_t CLIHandle;
const osThreadAttr_t CLI_attributes = {
.name = "CLI",
@@ -78,34 +55,6 @@ const osThreadAttr_t CLI_attributes = {
.priority = (osPriority_t) osPriorityHigh,
};
-/* USER CODE END Variables */
-/* USER CODE BEGIN Header */
-/**
- ******************************************************************************
- * File Name : freertos.c
- * Description : Code for freertos applications
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2022 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-/* USER CODE END Header */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */
@@ -141,33 +90,35 @@ void MX_FREERTOS_Init(void) {
/* USER CODE BEGIN Init */
/* USER CODE END Init */
-/* USER CODE BEGIN Header */
-/**
- ******************************************************************************
- * File Name : freertos.c
- * Description : Code for freertos applications
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2022 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* creation of CLI */
CLIHandle = osThreadNew(cli_start, NULL, &CLI_attributes);
-/* USER CODE END Header */
-/**
- * @}
- */
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* USER CODE BEGIN RTOS_EVENTS */
+ /* add events, ... */
+ /* USER CODE END RTOS_EVENTS */
-/**
- * @}
- */
}
/* USER CODE BEGIN Header_cli_start */
diff --git a/CablePositioning_APP_V1.0/Core/Src/gpio.c b/CablePositioning_APP_V1.0/Core/Src/gpio.c
index bbb4340..0643e45 100644
--- a/CablePositioning_APP_V1.0/Core/Src/gpio.c
+++ b/CablePositioning_APP_V1.0/Core/Src/gpio.c
@@ -58,10 +58,10 @@ void MX_GPIO_Init(void)
HAL_PWREx_EnableVddIO2();
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOE, POWER_GPS_Pin|POWER_3V3_Pin|POWER_DAU_Pin|POWER_4G_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(GPIOE, POWER_GPS_Pin|POWER_DAU_Pin|POWER_4G_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOF, WDG_Pin|DAU_50HZ_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(WDG_GPIO_Port, WDG_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET);
@@ -78,24 +78,21 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOG, SPI_FLASH_WP_Pin|SPI_FLASH_CS_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(POWER_12V_GPIO_Port, POWER_12V_Pin, GPIO_PIN_SET);
-
- /*Configure GPIO pins : PEPin PEPin PEPin PEPin
- PEPin */
- GPIO_InitStruct.Pin = POWER_GPS_Pin|POWER_3V3_Pin|POWER_DAU_Pin|POWER_4G_Pin
- |POWER_12V_Pin;
+ /*Configure GPIO pins : PEPin PEPin PEPin */
+ GPIO_InitStruct.Pin = POWER_GPS_Pin|POWER_DAU_Pin|POWER_4G_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : PE4 PE5 PE6 PE7
- PE8 PE9 PE10 PE12
- PE13 PE14 PE15 */
- GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
- |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_12
- |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
+ /*Configure GPIO pins : PE3 PE4 PE5 PE6
+ PE7 PE8 PE9 PE10
+ PE12 PE13 PE14 PE15
+ PE1 */
+ GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
+ |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
+ |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
+ |GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
@@ -110,21 +107,21 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pins : PFPin PFPin PFPin */
- GPIO_InitStruct.Pin = WDG_Pin|DAU_50HZ_Pin|DAU_RST_Pin;
+ /*Configure GPIO pins : PFPin PFPin */
+ GPIO_InitStruct.Pin = WDG_Pin|DAU_RST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
/*Configure GPIO pins : PF1 PF2 PF3 PF4
- PF5 PF6 PF7 PF10
- PF11 PF12 PF13 PF14
- PF15 */
+ PF5 PF6 PF7 PF8
+ PF10 PF11 PF12 PF13
+ PF14 PF15 */
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
- |GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10
- |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
- |GPIO_PIN_15;
+ |GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8
+ |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
+ |GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
@@ -156,26 +153,22 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- /*Configure GPIO pins : PG0 PG5 PG6 PG7
- PG8 PG11 PG12 PG15 */
- GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
- |GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15;
+ /*Configure GPIO pins : PG0 PG1 PG5 PG6
+ PG7 PG8 PG11 PG12
+ PG15 */
+ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5|GPIO_PIN_6
+ |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12
+ |GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- /*Configure GPIO pins : PGPin PGPin */
- GPIO_InitStruct.Pin = CH1_FREQ_Pin|BAT_CHECK_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
-
/*Configure GPIO pins : PD8 PD9 PD10 PD11
PD12 PD13 PD0 PD1
- PD2 */
+ PD2 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_1
- |GPIO_PIN_2;
+ |GPIO_PIN_2|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
@@ -197,10 +190,10 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = POWER_RS485_CHECK_Pin;
+ GPIO_InitStruct.Pin = BAT_CHECK_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(POWER_RS485_CHECK_GPIO_Port, &GPIO_InitStruct);
+ HAL_GPIO_Init(BAT_CHECK_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = SPI_FLASH_CS_Pin;
diff --git a/CablePositioning_APP_V1.0/Core/Src/main.c b/CablePositioning_APP_V1.0/Core/Src/main.c
index fb1a6d1..edac87f 100644
--- a/CablePositioning_APP_V1.0/Core/Src/main.c
+++ b/CablePositioning_APP_V1.0/Core/Src/main.c
@@ -93,7 +93,6 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
- MX_USART1_UART_Init();
MX_UART4_Init();
MX_USART3_UART_Init();
MX_TIM7_Init();
@@ -102,8 +101,9 @@ int main(void)
MX_SPI3_Init();
MX_SPI1_Init();
MX_USART2_UART_Init();
+ MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
-
+ HAL_TIM_Base_Start_IT(&htim7);
/* USER CODE END 2 */
/* Init scheduler */
diff --git a/CablePositioning_APP_V1.0/Core/Src/spi.c b/CablePositioning_APP_V1.0/Core/Src/spi.c
index 16a7cf8..25c15d8 100644
--- a/CablePositioning_APP_V1.0/Core/Src/spi.c
+++ b/CablePositioning_APP_V1.0/Core/Src/spi.c
@@ -21,7 +21,8 @@
#include "spi.h"
/* USER CODE BEGIN 0 */
-
+#include "common.h"
+#include "dau.h"
/* USER CODE END 0 */
SPI_HandleTypeDef hspi1;
@@ -242,5 +243,12 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
}
/* USER CODE BEGIN 1 */
-
+void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
+{
+ if (SPI1 == hspi->Instance)
+ {
+ DAU_CS_DISABLE();
+ notify_to_task(dau_ctrl.dau_handle);
+ }
+}
/* USER CODE END 1 */
diff --git a/CablePositioning_APP_V1.0/Core/Src/stm32l4xx_it.c b/CablePositioning_APP_V1.0/Core/Src/stm32l4xx_it.c
index 6c1c33c..6321325 100644
--- a/CablePositioning_APP_V1.0/Core/Src/stm32l4xx_it.c
+++ b/CablePositioning_APP_V1.0/Core/Src/stm32l4xx_it.c
@@ -63,10 +63,10 @@ extern DMA_HandleTypeDef hdma_spi1_tx;
extern SPI_HandleTypeDef hspi1;
extern TIM_HandleTypeDef htim7;
extern DMA_HandleTypeDef hdma_uart4_rx;
+extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart3_rx;
extern DMA_HandleTypeDef hdma_usart3_tx;
extern UART_HandleTypeDef huart4;
-extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
/* USER CODE BEGIN EV */
@@ -221,6 +221,20 @@ void DMA1_Channel3_IRQHandler(void)
/* USER CODE END DMA1_Channel3_IRQn 1 */
}
+/**
+ * @brief This function handles DMA1 channel6 global interrupt.
+ */
+void DMA1_Channel6_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */
+
+ /* USER CODE END DMA1_Channel6_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_usart2_rx);
+ /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */
+
+ /* USER CODE END DMA1_Channel6_IRQn 1 */
+}
+
/**
* @brief This function handles ADC1 and ADC2 interrupts.
*/
@@ -249,20 +263,6 @@ void SPI1_IRQHandler(void)
/* USER CODE END SPI1_IRQn 1 */
}
-/**
- * @brief This function handles USART1 global interrupt.
- */
-void USART1_IRQHandler(void)
-{
- /* USER CODE BEGIN USART1_IRQn 0 */
-
- /* USER CODE END USART1_IRQn 0 */
- HAL_UART_IRQHandler(&huart1);
- /* USER CODE BEGIN USART1_IRQn 1 */
-
- /* USER CODE END USART1_IRQn 1 */
-}
-
/**
* @brief This function handles USART2 global interrupt.
*/
diff --git a/CablePositioning_APP_V1.0/Core/Src/tim.c b/CablePositioning_APP_V1.0/Core/Src/tim.c
index e4bcaff..7375ed7 100644
--- a/CablePositioning_APP_V1.0/Core/Src/tim.c
+++ b/CablePositioning_APP_V1.0/Core/Src/tim.c
@@ -42,9 +42,9 @@ void MX_TIM7_Init(void)
/* USER CODE END TIM7_Init 1 */
htim7.Instance = TIM7;
- htim7.Init.Prescaler = 7999;
+ htim7.Init.Prescaler = 39999;
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim7.Init.Period = 20;
+ htim7.Init.Period = 10000;
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
{
@@ -106,12 +106,12 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint8_t wdg_cnt = 0;
- /* tim1 20s watchdog. */
- if (TIM1 == htim->Instance)
+ /* tim7 5s */
+ if (TIM7 == htim->Instance)
{
- /* 2 分钟看看门狗处理. */
+ /* 30s watchdog */
wdg_cnt++;
- if (wdg_cnt > 6)
+ if (wdg_cnt >= 6)
{
wdg_cnt = 0;
if (!common_watchdog_tst_all()
@@ -128,10 +128,6 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
common_watchdog_clr();
}
- }
- else if (TIM7 == htim->Instance)
- {
- HAL_GPIO_TogglePin(DAU_50HZ_GPIO_Port, DAU_50HZ_Pin);
}
}
/* USER CODE END 1 */
diff --git a/CablePositioning_APP_V1.0/Core/Src/usart.c b/CablePositioning_APP_V1.0/Core/Src/usart.c
index 13c0e60..9ba95cb 100644
--- a/CablePositioning_APP_V1.0/Core/Src/usart.c
+++ b/CablePositioning_APP_V1.0/Core/Src/usart.c
@@ -29,6 +29,7 @@
#include "RS485_debug.h"
#include "cli.h"
#include "ADC_collect.h"
+#include "dau.h"
extern osThreadId_t CLIHandle;
@@ -39,6 +40,7 @@ UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
DMA_HandleTypeDef hdma_uart4_rx;
+DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart3_rx;
DMA_HandleTypeDef hdma_usart3_tx;
@@ -256,9 +258,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- /* USART1 interrupt Init */
- HAL_NVIC_SetPriority(USART1_IRQn, 6, 0);
- HAL_NVIC_EnableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
@@ -293,6 +292,24 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+ /* USART2 DMA Init */
+ /* USART2_RX Init */
+ hdma_usart2_rx.Instance = DMA1_Channel6;
+ hdma_usart2_rx.Init.Request = DMA_REQUEST_2;
+ hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_usart2_rx.Init.Mode = DMA_NORMAL;
+ hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW;
+ if (HAL_DMA_Init(&hdma_usart2_rx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart2_rx);
+
/* USART2 interrupt Init */
HAL_NVIC_SetPriority(USART2_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
@@ -414,8 +431,6 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
- /* USART1 interrupt Deinit */
- HAL_NVIC_DisableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
@@ -434,6 +449,9 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
*/
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);
+ /* USART2 DMA DeInit */
+ HAL_DMA_DeInit(uartHandle->hdmarx);
+
/* USART2 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_MspDeInit 1 */
@@ -471,7 +489,19 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
uint16_t len = 0;
- if (USART3 == huart->Instance)
+ if (USART2 == huart->Instance)
+ {
+ if (Size == huart->RxXferSize / 2U && !dau_ctrl.is_half_buf_gps)
+ {
+ dau_ctrl.is_half_buf_gps = 1;
+ return;
+ }
+
+ dau_ctrl.len_buf_gps = Size;
+
+ notify_to_task(dau_ctrl.gps_handle);
+ }
+ else if (USART3 == huart->Instance)
{
/* calc pkt len */
len = Size - wl_buf_list_rx.buf_addr;
@@ -481,7 +511,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
return;
}
- memcpy(wl_buf_list_rx.buf[wl_buf_list_rx.valid], &huart->pRxBuffPtr[wl_buf_list_rx.buf_addr], len);
+ memcpy(wl_buf_list_rx.buf[wl_buf_list_rx.valid], &wl_ctrl.dma_rx_buf[wl_buf_list_rx.buf_addr], len);
wl_buf_list_rx.buf_cnt[wl_buf_list_rx.valid] = len;
/* refr DMA recv addr */
@@ -500,8 +530,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
wl_buf_list_rx.valid = 0;
}
-
- notify_to_task(WLHandle);
+
+ notify_to_task(wl_ctrl.handle);
}
else if (UART4 == huart->Instance)
{
@@ -540,6 +570,13 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
+ if(USART2 == huart->Instance)
+ {
+ HAL_UART_Abort(huart);
+ dau_ctrl.len_buf_gps = 0;
+ dau_ctrl.is_half_buf_gps = FALSE;
+ HAL_UARTEx_ReceiveToIdle_DMA(huart, dau_ctrl.buf_gps, DAU_GPS_BUF_LEN);
+ }
if(USART3 == huart->Instance)
{
HAL_UART_Abort(huart);
diff --git a/CablePositioning_APP_V1.0/Core/Src/wireless.c b/CablePositioning_APP_V1.0/Core/Src/wireless.c
index ea735a4..bfcfeab 100644
--- a/CablePositioning_APP_V1.0/Core/Src/wireless.c
+++ b/CablePositioning_APP_V1.0/Core/Src/wireless.c
@@ -50,6 +50,7 @@
#include "flash_if.h"
#include "RS485_debug.h"
#include "flash_log.h"
+#include "dau.h"
/* Private define ------------------------------------------------------------*/
#define WL_RX_TIMEOUT 500 // 每 500ms 检查一次收包数据.
@@ -71,44 +72,22 @@ typedef enum
WL_STATE_AT_QICSGP,
WL_STATE_AT_QIACT,
WL_STATE_AT_CSQ,
+ WL_STATE_AT_QCCID,
WL_STATE_AT_QICFGTS,
WL_STATE_AT_QICFGWT,
WL_STATE_AT_QIOPEN,
- WL_STATE_ADC_WAIT,
- WL_STATE_WAKEUP = 128,
+ WL_STATE_AT_COMP,
+ WL_STATE_CONTACT = 128,
WL_STATE_REALDATA,
- WL_STATE_PWR_FRE,
- WL_STATE_UPDATE,
- WL_STATE_UPDATE_RT,
- WL_STATE_WAVE,
- WL_STATE_WAVE_MAX,
- WL_STATE_POSITION,
- WL_STATE_POSITION_WAVE,
+ WL_STATE_POWER,
+ WL_STATE_DEFECT,
+ WL_STATE_REALDATA_FAULT,
+ WL_STATE_POWER_FAULT,
+ WL_STATE_FAULT,
WL_STATE_KEEPALIVE,
- CSG_STATE_CONNECT,
- CSG_STATE_TIME,
- CSG_STATE_BEAT,
- CSG_STATE_IDLE,
- CSG_STATE_DATA,
- CSG_STATE_DATA_HIS,
WL_STATE_END = 255
} WL_STATE_E;
-typedef struct {
- uint32_t start;
- uint16_t len;
- uint16_t type;
- uint32_t id;
- uint32_t life_cnt;
- uint16_t num;
- uint16_t num_index;
-} wl_proto_head_t;
-
-typedef struct {
- uint32_t checksum;
- uint32_t end;
-} wl_proto_tail_t;
-
/* RS485调试通讯协议器件信息. */
typedef struct
{
@@ -132,154 +111,104 @@ typedef struct
uint8_t hardware_version[DEV_VERSION_STR_LEN];
uint8_t FPGA_version[DEV_VERSION_STR_LEN];
uint8_t factory_time[DEV_COMPILE_TIME_LEN];
- /* 设备其他信息. 128byte */
+ /* 设备其他信息. 160byte */
uint8_t name[DEV_NAME_LEN];
+ char QCCID[WL_QCCID_LEN];
} wl_proto_wakeup_t;
-/* 实时数据传输结构体. */
+/* 实时数据传输结构体 */
typedef struct
{
- int16_t temperature; // 设备温度, 单位: 0.1℃.
- uint16_t vbat; // 电池电压, 单位: mv.
- int16_t CSQ; // 4G 信号质量 > -51dBm 统一显示 -51dBm, < -113 dBm 为无信号.
- uint16_t vin; // 工作电压, 单位: mv.
- uint32_t elec[CFG_ADC_CH_CNT]; // 通道电流有效值 mA.
- uint16_t vsc; // 超级电容电压, 单位: mv.
- uint16_t sen_temp[SENSOR_SUM]; // 传感器温度: 单位: 0.1℃.
- uint16_t sen_x[SENSOR_SUM]; // 传感器震动 x 轴.
- uint16_t sen_y[SENSOR_SUM]; // 传感器震动 y 轴.
- uint16_t sen_z[SENSOR_SUM]; // 传感器震动 z 轴.
- uint8_t energy_mode; // 当前设备工作模式.
- uint8_t sen_short; // 传感器是否短路, 0 – 没有短路, 1 – 短路.
- uint8_t sen_valid[SENSOR_SUM]; // 传感器数据是否有效, 0 - 无效, 1 - 有效.
- uint32_t run_time; // 设备运行时长, 单位 s.
- uint8_t fre_valid; // 工频数据有效, 有线协议使用.
- uint8_t wave_valid; // 高频数据有效, 有线协议使用.
- uint8_t reserve[2];
+ uint16_t vbat; // 电池电压, 单位: mv
+ uint16_t vin; // 工作电压, 单位: mv
+ int16_t temperature; // 设备温度, 单位: 0.1℃
+ int16_t CSQ; // 4G 信号质量 > -51dBm 统一显示 -51dBm, < -113 dBm 为无信号
+ uint32_t utc; // 时间
+ uint32_t run_time; // 设备运行时长, 单位 s
+ uint32_t elec[DAU_PORT_POWER_CNT]; // 工频电流有效值 mA
+ uint16_t elec_defect_max[DAU_PORT_FAULT_MAX]; // 缺陷电流最大值 mA
+ uint8_t valid_power; // 工频波形有效
+ uint8_t valid_defect; // 缺陷波形有效
+ uint8_t reserve[2]; // 保留位
} wl_proto_realdata_t;
/* 实时数据传输结构体. */
typedef struct
{
- int16_t wave[WAVE_SUM]; // 高频录波最大值, 0 - 无效, 1 - 有效值.
-} wl_proto_wave_max_t;
+ uint32_t utc; // 故障时间
+ uint32_t ns; // 故障时间纳秒
+ uint16_t fault_trig[DAU_PORT_FAULT_MAX];// 故障电流触发值 A
+} wl_proto_realdata_fault_t;
typedef struct
{
- uint32_t utc;
uint16_t interval;
- uint8_t wave_force;
- uint8_t wave_interval;
- uint16_t threshold;
- uint16_t wave_threshold;
- uint8_t is_updata;
- uint8_t main_cable;
- uint8_t normal_sleep;
- uint8_t is_voltage_col;
- uint8_t is_temp_col;
- uint8_t is_wave_col;
- uint8_t reserve[2]; //字节对齐
- uint32_t position_file_s;
- uint32_t position_file_ns;
+ uint16_t threshold_power;
+ uint16_t threshold_defect;
+ uint16_t threshold_fault;
} wl_proto_config_t;
+typedef struct
+{
+ uint8_t is_utc_valid; // gps 对时是否有效
+ uint8_t reserve[3]; // 保留位
+ uint32_t utc; // gps 对时时间
+} wl_proto_state_t;
+
+
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
-osThreadId_t WLHandle;
const osThreadAttr_t WL_attributes =
{
.name = "WIRELESS",
.stack_size = 160 * 2 * 4,
- .priority = (osPriority_t) osPriorityNormal,
+ .priority = (osPriority_t) osPriorityBelowNormal,
};
wl_buf_list_t wl_buf_list_rx;
-static UART_HandleTypeDef *wl_uart = &huart3;
wl_ctrl_t wl_ctrl;
-static fd_date_t csg_adc_data;
-static uint64_t csg_data_idx[CSG_PKT_DATA_SUM];
+static RTC_DateTypeDef wl_date;
+static RTC_TimeTypeDef wl_time;
+static struct tm wl_tm;
/* Private function prototypes -----------------------------------------------*/
-static void _wl_4G_wakeup_send(void);
-static void _wl_4G_realdata_send(void);
-static void _wl_4G_update_send(void);
-static void _wl_4G_update_rt_send(void);
-static void _wl_4G_power_fre_send(void);
-static void _wl_4G_wave_max_send(void);
-static void _wir_data_process(uint8_t *cmd, uint32_t len);
-static void _csg_pkt_recv(void);
+static void _wl_4G_send_reset(void);
+static void _wl_4G_send_update(void);
+static void _wl_4G_send_cfg_set(void);
+static void _wl_4G_send_update_rt(void);
+static void _wl_4G_send_time(void);
/* Internal functions --------------------------------------------------------*/
-/* 初始化 4G 模块硬件 */
-static void _wl_4G_hw_init(void)
-{
- /* 4G 模块供电打开.*/
- osDelay(1000);
- HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_SET);
-
- /* 4G 模块复位. */
- osDelay(500);
- HAL_GPIO_WritePin(G4G_RST_GPIO_Port, G4G_RST_Pin, GPIO_PIN_SET);
- osDelay(100);
- HAL_GPIO_WritePin(G4G_RST_GPIO_Port, G4G_RST_Pin, GPIO_PIN_RESET);
-}
-
-/* 关闭 4G 模块硬件. */
-static void _wl_4G_hw_close(uint32_t sleep_time)
+/* 4G 模块发送数据. */
+static int32_t _wl_4G_transmit(uint8_t *data, uint16_t len)
{
- HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_RESET);
+ int32_t rv = HAL_ERROR;
- if (sleep_time < 1800)
+ if (wl_ctrl.state < WL_STATE_CONTACT)
{
- sleep_time = 1800;
- }
- common_sys_set(COM_SYS_SHUTDOWN, (void*)&sleep_time);
-
- while(1)
- {
- osDelay(portMAX_DELAY);
+ DBG(DBG_M_4G, "Send: %s\r\n", data);
}
-}
-
-/* 关闭 4G 模块硬件. */
-static void _wl_4G_hw_restart(void)
-{
- DBG(DBG_M_4G, "4G restart(%d),\r\n", wl_ctrl.err_cnt);
-
- /* 开启串口空闲中断收包. */
- if (wl_ctrl.err_cnt)
+ else
{
- if (DEV_TYPE_CT_P != dev_info.type_s)
- {
- flash_log_write(FLASH_LOG_TYPE_WARNING, "Server is disconnect system sleep %ds!\r\n", dev_config.collect_interval * 60 - 30);
- _wl_4G_hw_close(dev_config.collect_interval * 60 - 30);
- return;
- }
- /* 故障定位版本设备出现问题时重启不休眠 */
- else
+ proto_head_t *head = (proto_head_t*)data;
+ mul_head_t *m_head = (mul_head_t*)(data + sizeof(proto_head_t));
+ DBG(DBG_M_4G, "Send(%d): %d %d %d %d\r\n", len, HAL_GetTick(), head->cmd_type, head->cmd, m_head->index);
+ if (dbg_stat_get(DBG_M_4G))
{
- flash_log_write(FLASH_LOG_TYPE_WARNING, "Server is disconnect system reset!\r\n");
- _wl_4G_hw_close(0);
- return;
+ buf_print(data, len > 32 ? 32 : len);
+ vty_print("\r\n");
}
}
- HAL_UART_Abort(wl_uart);
- memset(&wl_buf_list_rx, 0, sizeof(wl_buf_list_t));
- osDelay(200);
- HAL_UARTEx_ReceiveToIdle_DMA(wl_uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
-
- /* 初始化 4G 模块硬件. */
- HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_RESET);
- _wl_4G_hw_init();
+ /* 发送数据, 可能会出现上一帧报文还没有发送完的情况, 这时候等待 100ms 再尝试发送 */
+ HAL_GPIO_WritePin(RS485_B_DE_GPIO_Port, RS485_B_DE_Pin, GPIO_PIN_SET);
+ rv = HAL_UART_Transmit_DMA(wl_ctrl.uart, data, len);
+ if (rv != HAL_OK)
+ {
+ osDelay(100);
+ rv = HAL_UART_Transmit_DMA(wl_ctrl.uart, data, len);
+ }
- /* 20s 内要收到 4G 模块发出的 RDY. */
- wl_ctrl.state = 0;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.mul_idx = 0;
- wl_ctrl.cmd_buf_index = 0;
- wl_ctrl.time_send = HAL_GetTick() + 20000;
- //wl_ctrl.wave_index = dev_record.wave_index;
- wl_ctrl.err_cnt++;
+ return rv;
}
/* AT 命令 CSQ 返回数据处理. */
@@ -299,6 +228,34 @@ static void _wl_4G_AT_CSQ_process(uint8_t *cmd)
}
}
+/* AT 命令 QCCID 返回数据处理 "+QCCID: 898604F2102381008969" */
+static void _wl_4G_AT_QCCID_process(uint8_t *cmd)
+{
+ uint8_t i = 0;
+ uint8_t j = 0;
+
+ while(cmd[i] != ' ')
+ {
+ if (0 == cmd[i])
+ {
+ return;
+ }
+ i++;
+ }
+ i++;
+
+ while(cmd[i] != 0 && cmd[i] != '\r' && cmd[i] != '\n')
+ {
+ wl_ctrl.QCCID[j++] = cmd[i++];
+ if (j >= WL_QCCID_LEN - 1)
+ {
+ wl_ctrl.QCCID[WL_QCCID_LEN - 1] = 0;
+ return;
+ }
+ }
+ wl_ctrl.QCCID[j] = 0;
+}
+
/* AT 命令回复处理. */
static void _wl_4G_AT_process(uint8_t *cmd)
{
@@ -331,6 +288,11 @@ static void _wl_4G_AT_process(uint8_t *cmd)
/* 获取信号质量. */
_wl_4G_AT_CSQ_process(cmd);
}
+ else if (0 == strncmp((char*)cmd, "+QCCID", 6))
+ {
+ /* 获取信号质量. */
+ _wl_4G_AT_QCCID_process(cmd);
+ }
else if (0 == strncmp((char*)cmd, "ERROR", 5))
{
/* 命令执行失败. */
@@ -343,7 +305,7 @@ void _wl_4G_AT_recv(void)
{
wl_buf_list_t *buf_l = &wl_buf_list_rx;
uint8_t *buf = NULL;
- uint8_t i = 0;
+ uint16_t i = 0;
/* 遍历所有有效的 buf. */
while(buf_l->current != buf_l->valid)
@@ -355,6 +317,13 @@ void _wl_4G_AT_recv(void)
{
wl_ctrl.cmd_buf[wl_ctrl.cmd_buf_index] = buf[i];
wl_ctrl.cmd_buf_index++;
+ if (wl_ctrl.cmd_buf_index >= WL_DMA_RX_BUF_LEN)
+ {
+ wl_ctrl.cmd_buf[0] = 0;
+ wl_ctrl.cmd_buf_index = 0;
+ break;
+ }
+
if (buf[i] != 0x0a)
{
/* 不是回车继续读取数据. */
@@ -387,6 +356,7 @@ void _wl_4G_AT_recv(void)
static void _wl_4G_pkt_id_update(void)
{
wl_ctrl.pkt_id++;
+ wl_ctrl.pkt_id = wl_ctrl.pkt_id >= 0x8000 ? 0 : wl_ctrl.pkt_id;
}
static int32_t _wl_4G_pkt_check(uint8_t *cmd, uint32_t len)
@@ -396,7 +366,7 @@ static int32_t _wl_4G_pkt_check(uint8_t *cmd, uint32_t len)
/* 设备进入复位状态后不再处理报文. */
if (IS_MONITOR_BIT_SET(system_init_flag, SYS_INIT_RESET))
{
- vty_print("@0\r\n");
+ DBG(DBG_M_4G, "@0\r\n");
/* 这里挂住线程是因为重启时如果有收包, 会导致收包出错, 从而让设备进入休眠状态. */
osDelay(portMAX_DELAY);
return HAL_ERROR;
@@ -406,60 +376,40 @@ static int32_t _wl_4G_pkt_check(uint8_t *cmd, uint32_t len)
if ((head->dev_type_m != dev_info.type_m)
|| (head->dev_type_s != dev_info.type_s && head->dev_type_s != 0xFF))
{
- vty_print("@1\r\n");
+ DBG(DBG_M_4G, "@1\r\n");
return HAL_ERROR;
}
/* 对设备 id 进行识别, 可以是广播. */
if (head->dev_id != (*(uint32_t*)dev_info.id) && head->dev_id != 0xFFFFFFFF)
{
- vty_print("@2\r\n");
+ DBG(DBG_M_4G, "@2\r\n");
return HAL_ERROR;
}
/* 验证 CRC32. */
if (crc32(cmd, head->len) != (*(uint32_t*)(cmd + head->len)))
{
- vty_print("@3: %x %x\r\n", crc32(cmd, head->len), *(uint32_t*)(cmd + head->len));
+ DBG(DBG_M_4G, "@3: %x %x\r\n", crc32(cmd, head->len), *(uint32_t*)(cmd + head->len));
return HAL_ERROR;
}
- /* pkt_id 验证. */
+ /* pkt_id 验证 */
if (head->pkt_id != wl_ctrl.pkt_id
- && dev_info.type_s != DEV_TYPE_ACDC)
+ || head->pkt_id >= 0x8000)
{
- vty_print("@4: %d %d\r\n", head->pkt_id, wl_ctrl.pkt_id);
+ DBG(DBG_M_4G, "@4: %d %d\r\n", head->pkt_id, wl_ctrl.pkt_id);
return HAL_ERROR;
}
return HAL_OK;
}
-/* 设备信息获取报文处理. */
-static void _wl_4G_pkt_reply(void)
-{
- wl_ctrl.state = WL_STATE_PWR_FRE;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
-
- if (dev_info.type_s != DEV_TYPE_ACDC)
- {
- _wl_4G_pkt_id_update();
- }
- else
- {
- _wl_4G_realdata_send();
- }
-
- return;
-}
-
-/* 设备信息回复. */
-static void _wl_4G_dev_info_reply(uint8_t *cmd, uint32_t len)
+/* 连接报文回复 */
+static void _wl_4G_recv_contect(uint8_t *cmd, uint32_t len)
{
wl_proto_config_t *cfg = (wl_proto_config_t*)(cmd + sizeof(proto_head_t));
uint8_t is_cfg_save = FALSE;
- uint8_t i = 0;
if (cfg->interval != dev_config.collect_interval)
{
@@ -467,52 +417,16 @@ static void _wl_4G_dev_info_reply(uint8_t *cmd, uint32_t len)
dev_config_collect_interval_set(cfg->interval);
}
- if (cfg->wave_interval != dev_config.wave_interval)
- {
- is_cfg_save = TRUE;
- dev_config_wave_interval_set(cfg->wave_interval);
- }
-
- if (cfg->threshold != dev_config.threshold)
- {
- is_cfg_save = TRUE;
- dev_config.threshold = cfg->threshold;
- }
-
- if (cfg->wave_threshold != dev_config.wave_threshold)
- {
- is_cfg_save = TRUE;
- dev_config.wave_threshold = cfg->wave_threshold;
- }
-
- if (cfg->main_cable != dev_config.main_cable)
- {
- is_cfg_save = TRUE;
- dev_config.main_cable = cfg->main_cable;
- }
-
- if (cfg->normal_sleep != dev_config.normal_sleep)
- {
- is_cfg_save = TRUE;
- dev_config.normal_sleep = cfg->normal_sleep;
- }
-
- if (cfg->is_voltage_col != dev_config.is_voltage_col)
- {
- is_cfg_save = TRUE;
- dev_config.is_voltage_col = cfg->is_voltage_col;
- }
-
- if (cfg->is_temp_col != dev_config.is_temp_col)
+ if (cfg->threshold_power != dev_config.threshold)
{
is_cfg_save = TRUE;
- dev_config.is_temp_col = cfg->is_temp_col;
+ dev_config.threshold = cfg->threshold_power;
}
- if (cfg->is_wave_col != dev_config.is_wave_col)
+ if (cfg->threshold_defect != dev_config.wave_threshold)
{
is_cfg_save = TRUE;
- dev_config.is_wave_col = cfg->is_wave_col;
+ dev_config.wave_threshold = cfg->threshold_defect;
}
if (is_cfg_save)
@@ -520,57 +434,31 @@ static void _wl_4G_dev_info_reply(uint8_t *cmd, uint32_t len)
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
}
- is_cfg_save = FALSE;
- if (cfg->wave_force != st_data.wave_force)
- {
- st_data.wave_force = cfg->wave_force;
- is_cfg_save = TRUE;
- }
-
- /* 强制录波或者间隔时间到了, 并且当前录波上传已完成. */
- if ((cfg->wave_force || abs_cal_u(cfg->utc, st_data.wave_time) > (dev_config.wave_interval * 3600))
- && !st_data.wave_up_start && DEV_TYPE_CT_P != dev_info.type_s)
- {
- st_data.wave_time = cfg->utc;
- st_data.wave_start = TRUE;
- st_data.wave_up_start = TRUE;
- st_data.wave_index = 0;
- for(i = 0; i < WAVE_SUM; i++)
- {
- st_data.wave_max[i] = 0;
- }
- wl_ctrl.wave_index = 0;
- is_cfg_save = TRUE;
- }
+ wl_ctrl.state = WL_STATE_END;
+ wl_ctrl.time_send = 0;
+ wl_ctrl.send_cnt = 0;
- if (is_cfg_save)
- {
- st_write(&st_data);
- }
+ _wl_4G_pkt_id_update();
+}
- /* 更新 RTC 时间. */
- rtc_time_set(cfg->utc);
+/* 设备重启 */
+static void _wl_4G_recv_reset(uint8_t *cmd, uint32_t len)
+{
+ proto_head_t *head = (proto_head_t*)cmd;
+ uint32_t reset_delay = 2;
- wl_ctrl.state = WL_STATE_REALDATA;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.is_update = cfg->is_updata;
+ wl_ctrl.pkt_id_recv = head->pkt_id;
+ _wl_4G_send_reset();
- if (dev_info.type_s != DEV_TYPE_ACDC)
- {
- _wl_4G_pkt_id_update();
- }
- else
- {
- _wl_4G_wakeup_send();
- }
-
- return;
+ /* 延迟 2s 等待串口回复报文发送完成. */
+ flash_log_write(FLASH_LOG_TYPE_INFO, "Server system reset!\r\n");
+ common_sys_set(COM_SYS_RESET, (void*)&reset_delay);
}
/* 设备 APP 升级回复. */
-static void _wl_4G_update_reply(uint8_t *cmd, uint32_t len)
+static void _wl_4G_recv_update(uint8_t *cmd, uint32_t len)
{
+ proto_head_t *head = (proto_head_t*)cmd;
mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
uint8_t *data = (uint8_t*)(cmd + sizeof(proto_head_t) + sizeof(mul_head_t));
uint32_t addr = TFTP_APP_ADDRESS;
@@ -620,219 +508,241 @@ static void _wl_4G_update_reply(uint8_t *cmd, uint32_t len)
common_sys_set(COM_SYS_SAVE_INFO, 0);
wl_ctrl.update_rt = HAL_OK;
}
+ }
- wl_ctrl.state = WL_STATE_UPDATE_RT;
+ /* 回复报文发送 */
+ wl_ctrl.pkt_id_recv = head->pkt_id;
+ wl_ctrl.mul_idx = m_head->index;
+ wl_ctrl.update_len = m_head->len;
+ _wl_4G_send_update();
+
+ /* 初始化状态量 */
+ if(m_head->len < DEBUG_DATA_SIZE)
+ {
wl_ctrl.mul_idx = 0;
wl_ctrl.update_len = 0;
}
- else
- {
- wl_ctrl.mul_idx = m_head->index + 1;
- wl_ctrl.update_len = m_head->len;
- }
+}
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
+/* 配置下发报文回复 */
+static void _wl_4G_recv_cfg_set(uint8_t *cmd, uint32_t len)
+{
+ proto_head_t *head = (proto_head_t*)cmd;
+ wl_proto_config_t *cfg = (wl_proto_config_t*)(cmd + sizeof(proto_head_t));
+ uint8_t is_cfg_save = FALSE;
- if (dev_info.type_s != DEV_TYPE_ACDC)
+ if (cfg->interval != dev_config.collect_interval)
{
- _wl_4G_pkt_id_update();
+ is_cfg_save = TRUE;
+ dev_config.collect_interval = cfg->interval;
}
- else
+
+ if (cfg->threshold_power != dev_config.threshold)
{
- wl_ctrl.mul_idx = m_head->index;
- wl_ctrl.update_len = m_head->len;
- wl_ctrl.state = WL_STATE_UPDATE;
- _wl_4G_update_send();
+ is_cfg_save = TRUE;
+ dev_config.threshold = cfg->threshold_power;
}
-
- return;
-}
-/* 设备信息获取报文处理. */
-static void _wl_4G_update_rt_reply(void)
-{
- /* 有线设备需要回复报文后再休眠. */
- if (DEV_TYPE_ACDC == dev_info.type_s)
+ if (cfg->threshold_defect != dev_config.wave_threshold)
{
- _wl_4G_update_rt_send();
+ is_cfg_save = TRUE;
+ dev_config.wave_threshold = cfg->threshold_defect;
}
- if (wl_ctrl.update_rt != HAL_OK)
+ if (is_cfg_save)
{
- if (DEV_TYPE_CT_P == dev_info.type_s)
- {
- wl_ctrl.state = WL_STATE_POSITION;
- }
- else
- {
- wl_ctrl.state = WL_STATE_WAVE;
- }
+ common_sys_set(COM_SYS_SAVE_CONFIG, 0);
}
- else
+
+ wl_ctrl.pkt_id_recv = head->pkt_id;
+ _wl_4G_send_cfg_set();
+}
+
+/* 升级结果报文回复 */
+static void _wl_4G_recv_update_rt(uint8_t *cmd, uint32_t len)
+{
+ proto_head_t *head = (proto_head_t*)cmd;
+ uint32_t reset_delay = 2;
+
+ wl_ctrl.pkt_id_recv = head->pkt_id;
+ _wl_4G_send_update_rt();
+
+ if (HAL_OK == wl_ctrl.update_rt)
{
- /* 延迟 1s 等待串口回复报文发送完成. */
- osDelay(1000);
+ /* 延迟 2s 等待串口回复报文发送完成. */
flash_log_write(FLASH_LOG_TYPE_INFO, "Update APP system sleep 0s!\r\n");
- _wl_4G_hw_close(0);
+ common_sys_set(COM_SYS_RESET, (void*)&reset_delay);
}
+}
- wl_ctrl.is_update = 0;
+/* 保活报文回复. */
+static void _wl_4G_recv_keepalive(void)
+{
+ wl_ctrl.state = WL_STATE_END;
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
- if (dev_info.type_s != DEV_TYPE_ACDC)
+ _wl_4G_pkt_id_update();
+ return;
+}
+
+/* 对时报文 */
+static void _wl_4G_recv_time(uint8_t *cmd, uint32_t len)
+{
+ proto_head_t *head = (proto_head_t*)cmd;
+ uint32_t *utc = (uint32_t*)(cmd + sizeof(proto_head_t));
+
+ if (!dau_ctrl.is_utc_valid)
{
- _wl_4G_pkt_id_update();
+ rtc_time_set(*utc);
}
- return;
+ wl_ctrl.pkt_id_recv = head->pkt_id;
+ _wl_4G_send_time();
}
-/* 工频数据回复. */
-static void _wl_4G_power_fre_reply(uint8_t *cmd, uint32_t len)
+/* 实时数据报文回复 */
+static void _wl_4G_recv_realdata(void)
{
- mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
- mul_head_t *m_head_send = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
-
- if (m_head->len < DEBUG_DATA_SIZE)
+ /* 判断是否发送工频和缺陷波形 */
+ if (IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER))
{
- wl_ctrl.state = WL_STATE_UPDATE;
- wl_ctrl.mul_idx = 0;
- ADC_ctrl.up_finish = TRUE;
- ADC_ctrl.is_ADC_thr = FALSE;
+ wl_ctrl.state = WL_STATE_POWER;
+ }
+ else if(IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT))
+ {
+ wl_ctrl.state = WL_STATE_DEFECT;
}
else
{
- wl_ctrl.mul_idx = m_head->index;
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+ wl_ctrl.state = WL_STATE_END;
}
-
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
- if (dev_info.type_s != DEV_TYPE_ACDC)
+ _wl_4G_pkt_id_update();
+}
+
+/* 工频数据回复 */
+static void _wl_4G_recv_power(uint8_t *cmd, uint32_t len)
+{
+ mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
+
+ if (m_head->len < DEBUG_DATA_SIZE)
{
- _wl_4G_pkt_id_update();
+ /* 判断是否发送缺陷波形 */
+ if(IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT))
+ {
+ wl_ctrl.state = WL_STATE_DEFECT;
+ }
+ else
+ {
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+ wl_ctrl.state = WL_STATE_END;
+ }
+
+ wl_ctrl.mul_idx = 0;
}
else
{
- _wl_4G_power_fre_send();
- /* 发送完成需要通知 ADC继续采集. */
- if (m_head_send->len < DEBUG_DATA_SIZE)
- {
- wl_ctrl.mul_idx = 0;
- ADC_ctrl.up_finish = TRUE;
- ADC_ctrl.is_ADC_thr = FALSE;
- }
+ wl_ctrl.mul_idx = m_head->index + 1;
}
- return;
+ wl_ctrl.time_send = 0;
+ wl_ctrl.send_cnt = 0;
+
+ _wl_4G_pkt_id_update();
}
-/* 高频数据回复. */
-static void _wl_4G_wave_reply(uint8_t *cmd, uint32_t len)
+/* 缺陷波形数据回复 */
+static void _wl_4G_recv_defect(uint8_t *cmd, uint32_t len)
{
mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
- mul_head_t *m_head_send = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
if (m_head->len < DEBUG_DATA_SIZE)
{
- wl_ctrl.state = WL_STATE_WAVE_MAX;
- st_data.wave_up_start = FALSE;
- st_data.wave_index = 0;
+ /* 更新 flash 地址 */
+ dau_ctrl.addr_reg += 0x20000;
+ if (WARE_REG_ADDRESS_END == dau_ctrl.addr_reg)
+ {
+ dau_ctrl.addr_reg = WARE_REG_ADDRESS;
+ }
+
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+ wl_ctrl.state = WL_STATE_END;
+ wl_ctrl.mul_idx = 0;
}
else
{
- st_data.wave_index = m_head->index;
- }
-
- if (!ADC_ctrl.up_finish)
- {
- wl_ctrl.state = WL_STATE_WAKEUP;
+ wl_ctrl.mul_idx = m_head->index + 1;
}
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
- if (dev_info.type_s != DEV_TYPE_ACDC)
- {
- _wl_4G_pkt_id_update();
- }
- else
- {
- /* 发送完成需要通知 ADC继续采集. */
- if (m_head_send->len < DEBUG_DATA_SIZE)
- {
- st_data.wave_up_start = FALSE;
- st_data.wave_index = 0;
- }
- }
-
- return;
+ _wl_4G_pkt_id_update();
}
-/* 高频数据回复. */
-static void _wl_4G_wave_max_reply(uint8_t *cmd, uint32_t len)
-{
- wl_ctrl.state = WL_STATE_END;
+/* 故障触发数据报文回复 */
+static void _wl_4G_recv_realdata_fault(void)
+{
+ wl_ctrl.state = WL_STATE_POWER_FAULT;
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
_wl_4G_pkt_id_update();
- if (dev_info.type_s != DEV_TYPE_ACDC)
+}
+
+/* 故障触发工频数据回复 */
+static void _wl_4G_recv_power_fault(uint8_t *cmd, uint32_t len)
+{
+ mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
+
+ if (m_head->len < DEBUG_DATA_SIZE)
{
- _wl_4G_pkt_id_update();
- st_data.wave_max[0] = 0;
- st_data.wave_max[1] = 0;
- st_data.wave_max[2] = 0;
- st_data.wave_max[3] = 0;
+
+ wl_ctrl.state = WL_STATE_FAULT;
+ wl_ctrl.mul_idx = 0;
}
else
{
- _wl_4G_wave_max_send();
+ wl_ctrl.mul_idx = m_head->index + 1;
}
-
- st_write(&st_data);
- return;
+ wl_ctrl.time_send = 0;
+ wl_ctrl.send_cnt = 0;
+
+ _wl_4G_pkt_id_update();
}
-/* 故障定位波形回复 */
-static void _wl_4G_position_wave_reply(uint8_t *cmd, uint32_t len)
+/* 故障触发故障波形数据回复 */
+static void _wl_4G_recv_fault(uint8_t *cmd, uint32_t len)
{
- position_head_t *p_head = (position_head_t*)(cmd + sizeof(proto_head_t));
+ mul_head_t *m_head = (mul_head_t*)(cmd + sizeof(proto_head_t));
- if (p_head->len < DEBUG_DATA_SIZE)
+ if (m_head->len < DEBUG_DATA_SIZE)
{
+ /* 更新 flash 地址 */
+ dau_ctrl.addr_fault += 0x20000;
+ if (WARE_FAULT_ADDRESS_END == dau_ctrl.addr_fault)
+ {
+ dau_ctrl.addr_fault = WARE_FAULT_ADDRESS;
+ }
+
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP);
wl_ctrl.state = WL_STATE_END;
- wl_ctrl.wave_index = 0;
+ wl_ctrl.mul_idx = 0;
}
else
{
- wl_ctrl.wave_index = p_head->index;
- }
-
- if (!ADC_ctrl.up_finish)
- {
- wl_ctrl.state = WL_STATE_WAKEUP;
+ wl_ctrl.mul_idx = m_head->index + 1;
}
-
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- _wl_4G_pkt_id_update();
- return;
-}
-
-/* 保活报文回复. */
-static void _wl_4G_wave_keepalive_reply(void)
-{
- wl_ctrl.state = WL_STATE_END;
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
_wl_4G_pkt_id_update();
- return;
}
/* 数据回复处理. */
@@ -852,17 +762,26 @@ static void _wl_4G_data_process(uint8_t *cmd, uint32_t len)
/* 共有命令处理. */
switch (head->cmd)
{
- case DEBUG_C_DEV_INFO:
- _wl_4G_dev_info_reply(cmd, len);
+ case DEBUG_C_CONTACT:
+ _wl_4G_recv_contect(cmd, len);
+ break;
+ case DEBUG_C_RESET:
+ _wl_4G_recv_reset(cmd, len);
break;
case DEBUG_C_UPDATE_APP:
- _wl_4G_update_reply(cmd, len);
+ _wl_4G_recv_update(cmd, len);
+ break;
+ case DEBUG_C_DEV_CONFIG_SET:
+ _wl_4G_recv_cfg_set(cmd, len);
break;
case DEBUG_C_UPDATE_APP_RT:
- _wl_4G_update_rt_reply();
+ _wl_4G_recv_update_rt(cmd, len);
break;
case DEBUG_C_KEEPALIVE:
- _wl_4G_wave_keepalive_reply();
+ _wl_4G_recv_keepalive();
+ break;
+ case DEBUG_C_TIME:
+ _wl_4G_recv_time(cmd, len);
break;
default:
break;
@@ -873,20 +792,23 @@ static void _wl_4G_data_process(uint8_t *cmd, uint32_t len)
/* 私有命令处理. */
switch (head->cmd)
{
- case DEBUG_PRV_REAL_DATA:
- _wl_4G_pkt_reply();
+ case DEBUG_PRV_REALDATA:
+ _wl_4G_recv_realdata();
+ break;
+ case DEBUG_PRV_POWER:
+ _wl_4G_recv_power(cmd, len);
break;
- case DEBUG_PRV_POWER_FRE:
- _wl_4G_power_fre_reply(cmd, len);
+ case DEBUG_PRV_DEFECT:
+ _wl_4G_recv_defect(cmd, len);
break;
- case DEBUG_PRV_WAVE:
- _wl_4G_wave_reply(cmd, len);
+ case DEBUG_PRV_REALDATA_FUALT:
+ _wl_4G_recv_realdata_fault();
break;
- case DEBUG_PRV_WAVE_MAX:
- _wl_4G_wave_max_reply(cmd, len);
+ case DEBUG_PRV_POWER_FAULT:
+ _wl_4G_recv_power_fault(cmd, len);
break;
- case DEBUG_PRV_POSITION_WAVE:
- _wl_4G_position_wave_reply(cmd, len);
+ case DEBUG_PRV_FAULT:
+ _wl_4G_recv_fault(cmd, len);
break;
default:
break;
@@ -897,19 +819,17 @@ static void _wl_4G_data_process(uint8_t *cmd, uint32_t len)
/* 发送数据过程中收数据回复. */
void _wl_4G_data_recv(void)
{
- static uint8_t state = 0;
static uint32_t time = 0;
wl_buf_list_t *buf_l = &wl_buf_list_rx;
proto_head_t *head = (proto_head_t*)wl_ctrl.cmd_buf;
- mul_head_t *m_head = (mul_head_t*)(wl_ctrl.cmd_buf + sizeof(proto_head_t));
uint8_t *buf = NULL;
uint16_t len = 0;
+ uint16_t len_pkt = 0;
/* 超过 3s 没有收包说明收包超时, 重新开始收包. */
if (HAL_GetTick() - time > 3000)
{
wl_ctrl.cmd_buf_index = 0;
- state = 0;
}
time = HAL_GetTick();
@@ -927,11 +847,11 @@ void _wl_4G_data_recv(void)
}
/* 如果收包大于协议报文长度或者大于 buf 长度, 认为报文错误. */
- if (wl_ctrl.cmd_buf_index + len > WL_DMA_RX_BUF_LEN
- || (wl_ctrl.cmd_buf_index >= 2 && (wl_ctrl.cmd_buf_index + len) > (head->len + WL_CRC32_LEN)))
+ len_pkt = head->len + WL_CRC32_LEN;
+ if (wl_ctrl.cmd_buf_index + len > WL_CMD_BUF_LEN
+ || (wl_ctrl.cmd_buf_index >= 2 && (len_pkt > WL_DMA_RX_BUF_LEN)))
{
wl_ctrl.cmd_buf_index = 0;
- state = 0;
continue;
}
@@ -939,215 +859,77 @@ void _wl_4G_data_recv(void)
memcpy(&wl_ctrl.cmd_buf[wl_ctrl.cmd_buf_index], buf, len);
wl_ctrl.cmd_buf_index += len;
- if (!state)
+ /* 报文头长度都不够, 不进行处理 */
+ if (wl_ctrl.cmd_buf_index < 2)
{
- /* 报文长度不对, 重新收包. */
- if (head->len + WL_CRC32_LEN > WL_DMA_RX_BUF_LEN)
- {
- wl_ctrl.cmd_buf_index = 0;
- continue;
- }
-
- /* 报文长度与收包长度不对称, 等待后续报文. */
- if (wl_ctrl.cmd_buf_index < head->len + WL_CRC32_LEN)
- {
- state = TRUE;
- continue;
- }
+ continue;
}
- else
- {
- /* 报文长度与收包长度不对称, 等待后续报文. */
- if (wl_ctrl.cmd_buf_index < head->len + WL_CRC32_LEN)
- {
- continue;
- }
- state = FALSE;
+ /* 报文长度与收包长度不对称, 等待后续报文. */
+ if (wl_ctrl.cmd_buf_index < len_pkt)
+ {
+ continue;
}
- DBG(DBG_M_4G, "Recv(%d): %d %d %d %d\r\n", wl_ctrl.cmd_buf_index, HAL_GetTick(), head->cmd_type, head->cmd, m_head->index);
+ DBG(DBG_M_4G, "Recv(%d): %d %d %d\r\n", wl_ctrl.cmd_buf_index, HAL_GetTick(), head->cmd_type, head->cmd);
if (dbg_stat_get(DBG_M_4G))
{
buf_print(wl_ctrl.cmd_buf, wl_ctrl.cmd_buf_index > 32 ? 32 : wl_ctrl.cmd_buf_index);
vty_print("\r\n");
}
- if (DEV_TYPE_ACDC == dev_info.type_s)
+
+ _wl_4G_data_process(wl_ctrl.cmd_buf, wl_ctrl.cmd_buf_index);
+
+ /* 粘包处理 */
+ if (wl_ctrl.cmd_buf_index > len_pkt)
{
- _wir_data_process(wl_ctrl.cmd_buf, wl_ctrl.cmd_buf_index);
+ memcpy(wl_ctrl.cmd_buf, &wl_ctrl.cmd_buf[len_pkt], wl_ctrl.cmd_buf_index - len_pkt);
+ wl_ctrl.cmd_buf_index -= len_pkt;
}
else
{
- _wl_4G_data_process(wl_ctrl.cmd_buf, wl_ctrl.cmd_buf_index);
+ wl_ctrl.cmd_buf_index = 0;
+
}
- wl_ctrl.cmd_buf_index = 0;
+
wl_ctrl.err_cnt = 0;
}
}
-/* 4G 模块发送数据. */
-static HAL_StatusTypeDef _wl_4G_transmit(uint8_t *data, uint16_t len)
-{
- HAL_StatusTypeDef rv = HAL_ERROR;
-
- if (wl_ctrl.state < WL_STATE_WAKEUP)
- {
- DBG(DBG_M_4G, "Send: %s\r\n", data);
- }
- else
- {
- proto_head_t *head = (proto_head_t*)data;
- mul_head_t *m_head = (mul_head_t*)(data + sizeof(proto_head_t));
- DBG(DBG_M_4G, "Send(%d): %d %d %d %d\r\n", len, HAL_GetTick(), head->cmd_type, head->cmd, m_head->index);
- if (dbg_stat_get(DBG_M_4G))
- {
- buf_print(data, len > 32 ? 32 : len);
- vty_print("\r\n");
- }
- /* 每次发送数据更新保活时间. */
- wl_ctrl.keepalive = HAL_GetTick() + 60000;
- }
-
- /* 开启串口空闲中断收包. */
- HAL_UARTEx_ReceiveToIdle_DMA(wl_uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
- HAL_GPIO_WritePin(RS485_B_DE_GPIO_Port, RS485_B_DE_Pin, GPIO_PIN_SET);
- rv = HAL_UART_Transmit_DMA(wl_uart, data, len);
-
- return rv;
-}
-
/* 4G模块接收数据. */
void _wl_4G_receive(void)
{
- if (wl_ctrl.state < WL_STATE_WAKEUP)
+ if (wl_ctrl.state < WL_STATE_CONTACT)
{
/* 初始化过程中收 AT 指令. */
_wl_4G_AT_recv();
}
else
{
- if (DEV_TYPE_CSG == dev_info.type_s)
- {
- /* 南网协议报文处理. */
- _csg_pkt_recv();
- }
- else
- {
- /* 发送数据过程中收数据回复. */
- _wl_4G_data_recv();
- }
- }
-}
-
-/* 初始化 4G 模块软件 */
-static void _wl_4G_init_cmd_send(uint8_t *cmd, uint32_t timeout)
-{
- uint8_t len = strlen((char*)cmd);
-
- /* 复制并发送 AT 命令. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "%s", cmd);
- if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, len))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + timeout;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + WL_USART_ERR_TIMEOUT;
+ /* 发送数据过程中收数据回复. */
+ _wl_4G_data_recv();
}
}
-/* 通过 AT 命令进行模块初始化. */
-void _wl_4G_init_soft(void)
+/* 初始化报文头. */
+static void _wl_4G_head_init(uint16_t len, uint8_t cmdType, uint8_t cmd, uint16_t pkt_id)
{
- uint8_t is_timeout = wl_ctrl.time_send < HAL_GetTick();
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- if ((WL_STATE_SOFT == wl_ctrl.state) && is_timeout)
- {
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.state++;
- }
- else if ((WL_STATE_AT_ATE == wl_ctrl.state) && is_timeout)
- {
- /* 关闭 AT 回显. */
- _wl_4G_init_cmd_send("ATE0\r\n", 1100);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_QICSGP == wl_ctrl.state) && is_timeout)
- {
- /* 创建场景. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QICSGP=1,1,\"%s\",\"\",\"\",1\r\n", dev_config.APN_long);
- _wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 1100);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_QIACT == wl_ctrl.state) && is_timeout)
- {
- /* 使能场景. */
- _wl_4G_init_cmd_send("AT+QIACT=1\r\n", 33000);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_CSQ == wl_ctrl.state) && is_timeout)
- {
- /* 读取网络信号质量. */
- osDelay(5000);
- _wl_4G_init_cmd_send("AT+CSQ\r\n", 1100);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_QICFGTS == wl_ctrl.state) && is_timeout)
- {
- /* 连接远程服务器. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QICFG=\"transpktsize\",1460\r\n");
- _wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 11000);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_QICFGWT == wl_ctrl.state) && is_timeout)
- {
- /* 连接远程服务器. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QICFG=\"transwaittm\",0\r\n");
- _wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 11000);
- wl_ctrl.send_cnt++;
- }
- else if ((WL_STATE_AT_QIOPEN == wl_ctrl.state) && is_timeout)
- {
- /* 连接远程服务器. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QIOPEN=1,0,\"TCP\",\"%d.%d.%d.%d\",%d,19421,2\r\n",
- dev_info.wireless_server_ip[0], dev_info.wireless_server_ip[1], dev_info.wireless_server_ip[2],
- dev_info.wireless_server_ip[3], dev_info.wireless_server_port);
- //_wl_4G_init_cmd_send("AT+QIOPEN=1,0,\"TCP\",\"111.47.21.142\",9467,19421,2\r\n", 10000);
- _wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 11000);
- wl_ctrl.send_cnt++;
- }
- else if (WL_STATE_ADC_WAIT == wl_ctrl.state)
- {
- if (IS_MONITOR_BIT_SET(system_init_flag, SYS_INIT_ADC))
- {
- /* 软件初始化完成. */
- if (DEV_TYPE_CT_P == dev_info.type_s)
- {
- wl_ctrl.state = WL_STATE_END;
- }
- else
- {
- wl_ctrl.state = WL_STATE_WAKEUP;
- }
-
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- else if (is_timeout)
- {
- wl_ctrl.time_send = HAL_GetTick() + 10000;
- wl_ctrl.send_cnt++;
- }
- }
+ /* 封装报文头. */
+ head->len = len;
+ head->dev_type_m = dev_info.type_m;
+ head->dev_type_s= dev_info.type_s;
+ head->dev_id = *(uint32_t*)dev_info.id;
+ head->cmd_type = cmdType;
+ head->cmd = cmd;
+ head->pkt_id = pkt_id;
}
/* 初始化报文头. */
-static void _wl_4G_data_head_init(uint16_t len, uint8_t cmdType, uint8_t cmd)
+static void _wl_4G_head_init_recv(uint16_t len, uint8_t cmdType, uint8_t cmd, uint16_t pkt_id)
{
- proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
/* 封装报文头. */
head->len = len;
@@ -1156,25 +938,23 @@ static void _wl_4G_data_head_init(uint16_t len, uint8_t cmdType, uint8_t cmd)
head->dev_id = *(uint32_t*)dev_info.id;
head->cmd_type = cmdType;
head->cmd = cmd;
- if (dev_info.type_s != DEV_TYPE_ACDC)
- {
- head->pkt_id = wl_ctrl.pkt_id;
- }
+ head->pkt_id = pkt_id;
}
-/* 设备唤醒, 发送配置和数据请求. */
-static void _wl_4G_wakeup_send(void)
+/* 设备连接请求 */
+static void _wl_4G_send_contact(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
wl_proto_wakeup_t *data = (wl_proto_wakeup_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t) + sizeof(wl_proto_wakeup_t), DEBUG_CT_REPLY, DEBUG_C_DEV_INFO);
+ _wl_4G_head_init(sizeof(proto_head_t) + sizeof(wl_proto_wakeup_t), DEBUG_CT_REPLY, DEBUG_C_CONTACT, wl_ctrl.pkt_id);
/* 封装数据. */
memcpy(data, &dev_info.type_m, sizeof(wl_proto_wakeup_t) - DEV_NAME_LEN);
memcpy(data->name, dev_config.host, DEV_NAME_LEN);
+ memcpy(data->QCCID, wl_ctrl.QCCID, WL_QCCID_LEN);
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
@@ -1193,94 +973,97 @@ static void _wl_4G_wakeup_send(void)
}
}
-/* 实时数据发送. */
-static void _wl_4G_realdata_send(void)
+/* 重启报文发送 */
+static void _wl_4G_send_reset(void)
{
- proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- wl_proto_realdata_t *data = (wl_proto_realdata_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
uint32_t *crc = NULL;
- uint8_t i = 0;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t) + sizeof(wl_proto_realdata_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_REAL_DATA);
-
- /* 装填数据. */
- data->temperature = ADC_ctrl.ADCi_temp;
- data->vbat = ADC_ctrl.ADCi_vbat;
- data->vin = ADC_ctrl.ADCi_vin;
- data->vsc = ADC_ctrl.ADCi_vsc;
- data->CSQ = wl_ctrl.CSQ;
- for(i = 0; i < CFG_ADC_CH_CNT; i++)
- {
- data->elec[i] = ADC_ctrl.ADC_elec[i];
- }
- data->run_time = HAL_GetTick() / 1000;
- data->fre_valid = !ADC_ctrl.up_finish && ADC_ctrl.is_ADC_thr;
-
- /* 有线设备不用发送工频时, 需要重新触发工频采样. 需要发送工频时, 在发送完成后设置该标志位. */
- if (!data->fre_valid
- && DEV_TYPE_ACDC == dev_info.type_s)
- {
- ADC_ctrl.up_finish = TRUE;
- }
+ _wl_4G_head_init_recv(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_RESET, wl_ctrl.pkt_id_recv);
/* 计算校验和. */
- crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
- *crc = crc32(wl_ctrl.dma_tx_buf, head->len);
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf_recv + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf_recv, head->len);
- /* 发送报文. */
- if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
+ /* 发送报文 */
+ _wl_4G_transmit(wl_ctrl.dma_tx_buf_recv, head->len + 4);
}
-/* 工频采样数据获取报文发送. */
-static void _wl_4G_power_fre_send(void)
+/* 升级请求报文发送. */
+static void _wl_4G_send_update(void)
{
- proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
- uint8_t *data = (uint8_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t) + sizeof(mul_head_t));
- int32_t data_len = 0;
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
+ mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf_recv + sizeof(proto_head_t));
uint32_t *crc = NULL;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_POWER_FRE);
+ _wl_4G_head_init_recv(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_UPDATE_APP, wl_ctrl.pkt_id_recv);
+ head->len = sizeof(proto_head_t) + sizeof(mul_head_t);
m_head->index = wl_ctrl.mul_idx;
-
- /* 填充数据, 计算数据长度和报文长度. */
- data_len = ADC_COLLECT_CNT * 5 * 2 - m_head->index * DEBUG_DATA_SIZE;
- if (data_len < 0)
- {
- m_head->len = 0;
- }
- else if (data_len > DEBUG_DATA_SIZE)
- {
- m_head->len = DEBUG_DATA_SIZE;
- }
- else
- {
- m_head->len = data_len;
- }
- head->len = sizeof(proto_head_t) + sizeof(mul_head_t) + m_head->len;
-
- if (m_head->len > 0)
- {
- memcpy(data, (uint8_t*)(&ADC_ctrl.ADC_value_elec[0][0]) + m_head->index * DEBUG_DATA_SIZE, m_head->len);
- }
+ m_head->len = wl_ctrl.update_len;
+ /* 计算校验和. */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf_recv + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf_recv, head->len);
+
+ /* 发送报文 */
+ _wl_4G_transmit(wl_ctrl.dma_tx_buf_recv, head->len + 4);
+}
+
+/* 重启报文发送 */
+static void _wl_4G_send_cfg_set(void)
+{
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
+ uint32_t *crc = NULL;
+
+ /* 封装报文头. */
+ _wl_4G_head_init_recv(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_DEV_CONFIG_SET, wl_ctrl.pkt_id_recv);
+
+ /* 计算校验和. */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf_recv + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf_recv, head->len);
+
+ /* 发送报文 */
+ _wl_4G_transmit(wl_ctrl.dma_tx_buf_recv, head->len + 4);
+}
+
+/* 升级结果报文发送 */
+static void _wl_4G_send_update_rt(void)
+{
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
+ int32_t *rt = (int32_t*)(wl_ctrl.dma_tx_buf_recv + sizeof(proto_head_t));
+ uint32_t *crc = NULL;
+
+ /* 封装报文头. */
+ _wl_4G_head_init_recv(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_UPDATE_APP_RT, wl_ctrl.pkt_id_recv);
+
+ head->len = sizeof(proto_head_t) + sizeof(int32_t);
+ *rt = wl_ctrl.update_rt;
+
+ /* 计算校验和. */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf_recv + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf_recv, head->len);
+
+ /* 发送报文 */
+ _wl_4G_transmit(wl_ctrl.dma_tx_buf_recv, head->len + 4);
+}
+
+/* 保活报文发送. */
+static void _wl_4G_send_keepalive(void)
+{
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
+ uint32_t *crc = NULL;
+
+ /* 封装报文头. */
+ _wl_4G_head_init(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_KEEPALIVE, wl_ctrl.pkt_id);
+
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
*crc = crc32(wl_ctrl.dma_tx_buf, head->len);
- /* 发送报文 */
+ /* 发送报文. */
if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
{
/* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
@@ -1291,29 +1074,75 @@ static void _wl_4G_power_fre_send(void)
/* 发送失败, 等待 1s 重发. */
wl_ctrl.time_send = HAL_GetTick() + 1100;
}
-
- return;
}
-/* 升级请求报文发送. */
-static void _wl_4G_update_send(void)
+/* 对时报文回复 */
+static void _wl_4G_send_time(void)
+{
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf_recv;
+ uint32_t *crc = NULL;
+
+ /* 封装报文头 */
+ _wl_4G_head_init_recv(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_TIME, wl_ctrl.pkt_id_recv);
+
+ /* 计算校验和 */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf_recv + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf_recv, head->len);
+
+ /* 发送报文 */
+ _wl_4G_transmit(wl_ctrl.dma_tx_buf_recv, head->len + 4);
+}
+
+
+/* 实时数据发送 */
+static void _wl_4G_send_realdata(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ wl_proto_realdata_t *data = (wl_proto_realdata_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
+ uint8_t i = 0;
+ time_t temp = 0;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_UPDATE_APP);
+ _wl_4G_head_init(sizeof(proto_head_t) + sizeof(wl_proto_realdata_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_REALDATA, wl_ctrl.pkt_id);
+
+ /* 装填数据. */
+ data->vbat = ADC_ctrl.ADCi_vbat;
+ data->vin = ADC_ctrl.ADCi_vin;
+ data->temperature = ADC_ctrl.ADCi_temp;
+ data->CSQ = wl_ctrl.CSQ;
+
+ HAL_RTC_GetTime(&hrtc, &wl_time, RTC_FORMAT_BIN);
+ HAL_RTC_GetDate(&hrtc, &wl_date, RTC_FORMAT_BIN);
+ wl_tm.tm_year = wl_date.Year + 100;
+ wl_tm.tm_mon = wl_date.Month - 1;
+ wl_tm.tm_mday = wl_date.Date;
+ wl_tm.tm_hour = wl_time.Hours;
+ wl_tm.tm_min = wl_time.Minutes;
+ wl_tm.tm_sec = wl_time.Seconds;
+ temp = mktime(&wl_tm);
+ vty_print("tm %d %d\r\n", temp, time(NULL));
+ data->utc = temp;
+ data->run_time = HAL_GetTick() / 1000;
+
+ for(i = 0; i < DAU_PORT_POWER_CNT; i++)
+ {
+ data->elec[i] = dau_ctrl.reg_elec[i];
+ }
- head->len = sizeof(proto_head_t) + sizeof(mul_head_t);
- m_head->index = wl_ctrl.mul_idx;
- m_head->len = wl_ctrl.update_len;
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ data->elec_defect_max[i] = dau_ctrl.reg_defect_max[i];
+ }
+
+ data->valid_power = IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER);
+ data->valid_defect = IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
*crc = crc32(wl_ctrl.dma_tx_buf, head->len);
- /* 发送报文 */
+ /* 发送报文. */
if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
{
/* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
@@ -1324,22 +1153,42 @@ static void _wl_4G_update_send(void)
/* 发送失败, 等待 1s 重发. */
wl_ctrl.time_send = HAL_GetTick() + 1100;
}
-
- return;
}
-/* 升级请求报文发送. */
-static void _wl_4G_update_rt_send(void)
+/* 工频采样波形报文发送 */
+static void _wl_4G_send_power(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- int32_t *rt = (int32_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ uint8_t *data = (uint8_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t) + sizeof(mul_head_t));
+ int32_t data_len = 0;
uint32_t *crc = NULL;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_UPDATE_APP_RT);
+ _wl_4G_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_POWER, wl_ctrl.pkt_id);
- head->len = sizeof(proto_head_t) + sizeof(int32_t);
- *rt = wl_ctrl.update_rt;
+ m_head->index = wl_ctrl.mul_idx;
+
+ /* 填充数据, 计算数据长度和报文长度. */
+ data_len = sizeof(dau_ctrl.reg_power) - m_head->index * DEBUG_DATA_SIZE;
+ if (data_len < 0)
+ {
+ m_head->len = 0;
+ }
+ else if (data_len > DEBUG_DATA_SIZE)
+ {
+ m_head->len = DEBUG_DATA_SIZE;
+ }
+ else
+ {
+ m_head->len = data_len;
+ }
+ head->len = sizeof(proto_head_t) + sizeof(mul_head_t) + m_head->len;
+
+ if (m_head->len > 0)
+ {
+ memcpy(data, (&dau_ctrl.reg_power[0][0]) + m_head->index * DEBUG_DATA_SIZE, m_head->len);
+ }
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
@@ -1356,32 +1205,53 @@ static void _wl_4G_update_rt_send(void)
/* 发送失败, 等待 1s 重发. */
wl_ctrl.time_send = HAL_GetTick() + 1100;
}
-
- return;
}
-/* 高频录波最大值数据发送. */
-static void _wl_4G_wave_max_send(void)
+/* 缺陷采样波形报文发送 */
+static void _wl_4G_send_defect(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
- wl_proto_wave_max_t *data = (wl_proto_wave_max_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ int16_t *data = (int16_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t) + sizeof(mul_head_t));
uint32_t *crc = NULL;
- uint8_t i = 0;
+ int32_t data_len = 0;
+ uint32_t addr = 0;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t) + sizeof(wl_proto_wave_max_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_WAVE_MAX);
-
- /* 装填数据. */
- for(i = 0; i < WAVE_SUM; i ++)
+ _wl_4G_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_DEFECT, wl_ctrl.pkt_id);
+
+ m_head->index = wl_ctrl.mul_idx;
+
+ /* 填充数据, 计算数据长度和报文长度. */
+ data_len = DAU_DEFECT_BYTE_CNT - m_head->index * DEBUG_DATA_SIZE;
+ if (data_len < 0)
{
- data->wave[i] = st_data.wave_max[i];
+ m_head->len = 0;
+ }
+ else if (data_len > DEBUG_DATA_SIZE)
+ {
+ m_head->len = DEBUG_DATA_SIZE;
+ }
+ else
+ {
+ m_head->len = data_len;
+ }
+ head->len = sizeof(proto_head_t) + sizeof(mul_head_t) + m_head->len;
+
+ if (m_head->len > 0)
+ {
+ addr = dau_ctrl.addr_reg + m_head->index * DEBUG_DATA_SIZE;
+ if (spi_flash_read(addr, (uint8_t*)data, DEBUG_DATA_SIZE) != HAL_OK)
+ {
+ return;
+ }
}
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
*crc = crc32(wl_ctrl.dma_tx_buf, head->len);
- /* 发送报文. */
+ /* 发送报文 */
if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
{
/* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
@@ -1394,15 +1264,26 @@ static void _wl_4G_wave_max_send(void)
}
}
-/* 保活报文发送. */
-static void _wl_4G_wave_keepalive_send(void)
+/* 故障定位数据发送 */
+static void _wl_4G_send_realdata_fault(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
+ wl_proto_realdata_fault_t *data = (wl_proto_realdata_fault_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
+ uint8_t i = 0;
/* 封装报文头. */
- _wl_4G_data_head_init(sizeof(proto_head_t), DEBUG_CT_REPLY, DEBUG_C_KEEPALIVE);
+ _wl_4G_head_init(sizeof(proto_head_t) + sizeof(wl_proto_realdata_fault_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_REALDATA_FUALT, wl_ctrl.pkt_id);
+ /* 装填数据. */
+ data->utc = dau_ctrl.fault_utc;
+ data->ns = dau_ctrl.fault_ns;
+
+ for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
+ {
+ data->fault_trig[i] = dau_ctrl.fault_trig[i];
+ }
+
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
*crc = crc32(wl_ctrl.dma_tx_buf, head->len);
@@ -1420,1282 +1301,218 @@ static void _wl_4G_wave_keepalive_send(void)
}
}
-/* 传感器数据发送. */
-void _wl_4G_data_send(void)
-{
- uint8_t is_timeout = wl_ctrl.time_send < HAL_GetTick();
-
- /* 循环内只发送一次报文, 没有报文发送的情况下要跳出循环. */
- while(is_timeout)
- {
- if (WL_STATE_WAKEUP == wl_ctrl.state)
- {
- /* 设备唤醒, 发送配置和数据请求. */
- _wl_4G_wakeup_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else if (WL_STATE_REALDATA == wl_ctrl.state)
- {
- /* 实时数据报文. */
- _wl_4G_realdata_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else if (WL_STATE_PWR_FRE == wl_ctrl.state)
- {
- /* 工频录波报文. */
- if (!ADC_ctrl.up_finish && ADC_ctrl.is_ADC_thr)
- {
- _wl_4G_power_fre_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else
- {
- ADC_ctrl.up_finish = TRUE;
- ADC_ctrl.is_ADC_thr = FALSE;
- wl_ctrl.state = WL_STATE_UPDATE;
- wl_ctrl.mul_idx = 0;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- }
- else if (WL_STATE_UPDATE == wl_ctrl.state)
- {
- if (wl_ctrl.is_update)
- {
- _wl_4G_update_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else
- {
- if (DEV_TYPE_CT_P == dev_info.type_s)
- {
- wl_ctrl.state = WL_STATE_POSITION;
- }
- else
- {
- wl_ctrl.state = WL_STATE_WAVE;
- }
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- }
- else if (WL_STATE_UPDATE_RT == wl_ctrl.state)
- {
- if (wl_ctrl.is_update)
- {
- _wl_4G_update_rt_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else
- {
- if (DEV_TYPE_CT_P == dev_info.type_s)
- {
- wl_ctrl.state = WL_STATE_POSITION;
- }
- else
- {
- wl_ctrl.state = WL_STATE_WAVE;
- }
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- }
- else if (WL_STATE_WAVE == wl_ctrl.state)
- {
- /* 高频录波报文. */
- if (!st_data.wave_start && st_data.wave_up_start)
- {
- wl_ctrl.send_cnt++;
- break;
- }
- else
- {
- wl_ctrl.state = WL_STATE_WAVE_MAX;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- }
- else if (WL_STATE_WAVE_MAX == wl_ctrl.state)
- {
- /* 高频最大值报文. */
- if (st_data.wave_max[0] || st_data.wave_max[1] || st_data.wave_max[2] || st_data.wave_max[3])
- {
- _wl_4G_wave_max_send();
- wl_ctrl.send_cnt++;
- }
- else
- {
- wl_ctrl.state = WL_STATE_END;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- break;
- }
- else if (WL_STATE_POSITION == wl_ctrl.state)
- {
- wl_ctrl.state = WL_STATE_POSITION_WAVE;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- else if (WL_STATE_POSITION_WAVE == wl_ctrl.state)
- {
- wl_ctrl.state = WL_STATE_END;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- if (WL_STATE_KEEPALIVE == wl_ctrl.state)
- {
- /* 设备保活报文发送. */
- _wl_4G_wave_keepalive_send();
- wl_ctrl.send_cnt++;
- break;
- }
- else
- {
- break;
- }
- }
-}
-
-/* 无线模块主任务循环. */
-static void _wl_4G_start(void *argument)
+/* 故障触发工频采样波形报文发送 */
+static void _wl_4G_send_power_fault(void)
{
- uint32_t notify_value = 0;
-
- /* 等待完成 1 次 ADC 采样. */
- while(1)
- {
- if (IS_MONITOR_BIT_SET(system_init_flag, SYS_INIT_ADC))
- {
- break;
- }
-
- osDelay(1000);
- }
-
- /* 开启串口空闲中断收包. */
- HAL_UARTEx_ReceiveToIdle_DMA(wl_uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
+ mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ uint8_t *data = (uint8_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t) + sizeof(mul_head_t));
+ int32_t data_len = 0;
+ uint32_t *crc = NULL;
- /* 初始化 4G 模块硬件. */
- _wl_4G_hw_init();
+ /* 封装报文头. */
+ _wl_4G_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_POWER_FAULT, wl_ctrl.pkt_id);
- /* 20s 内要收到 4G 模块发出的 RDY. */
- wl_ctrl.time_send = HAL_GetTick() + 20000;
- wl_ctrl.wave_index = st_data.wave_index;
-
- for (;;)
- {
- /* AT 指令发送失败, 直接退出. */
- if (wl_ctrl.send_cnt > WL_SOFT_INIT_ERR && wl_ctrl.state < WL_STATE_WAKEUP)
- {
- //flash_log_write(FLASH_LOG_TYPE_INFO, "4G module is ERROR system sleep %ds!\r\n", dev_config.collect_interval * 60);
- //_wl_4G_hw_close(dev_config.collect_interval * 60);
- _wl_4G_hw_restart();
- }
+ m_head->index = wl_ctrl.mul_idx;
- /* 数据发送失败, 重启 4G 模块 1 次. */
- if (wl_ctrl.send_cnt > WL_DATA_ERR && wl_ctrl.state >= WL_STATE_WAKEUP)
- {
- _wl_4G_hw_restart();
- }
-
- if (wl_ctrl.state < WL_STATE_WAKEUP)
- {
- /* 进入软件初始化. */
- _wl_4G_init_soft();
- }
- else if (wl_ctrl.state != WL_STATE_END)
- {
- /* 进入数据交互模式. */
- _wl_4G_data_send();
- }
- else
- {
- /* 当状态为 WL_STATE_END 时, 先判断节能模式. */
- if ((dev_config.normal_sleep && DEV_TYPE_CT_P != dev_info.type_s)
- || DEV_TYPE_BAT == dev_info.type_s)
- {
-
- if(DEV_TYPE_BAT == dev_info.type_s
- && st_data.wave_start
- && dev_config.is_wave_col != 0
- && ADC_ctrl.ADCi_vbat >= 3600)
- {
- if (!st_data.wave_start && st_data.wave_up_start)
- {
- wl_ctrl.state = WL_STATE_WAVE;
- }
- }
- else
- {
- flash_log_write(FLASH_LOG_TYPE_INFO, "System sleep %ds!\r\n", dev_config.collect_interval * 60 - 30);
- _wl_4G_hw_close(dev_config.collect_interval * 60 - 30);
- }
- }
- else if (!ADC_ctrl.up_finish)
- {
- wl_ctrl.state = WL_STATE_WAKEUP;
- }
- else if(!st_data.wave_start && st_data.wave_up_start)
- {
- wl_ctrl.state = WL_STATE_WAVE;
- }
- else if(wl_ctrl.keepalive < HAL_GetTick())
- {
- wl_ctrl.state = WL_STATE_KEEPALIVE;
- /* 每次发送数据更新保活时间. */
- wl_ctrl.keepalive = HAL_GetTick() + 60000;
- }
- }
-
- /* 喂狗. */
- common_watchdog_set(COM_WDG_WIR);
-
- /* 等待 DMA 收包中断. */
- notify_value = ulTaskNotifyTake(pdTRUE, WL_RX_TIMEOUT);
- /* 收包超时, 返回循环头部. */
- if (0 == notify_value)
- {
- continue;
- }
-
- /* 收包处理. */
- _wl_4G_receive();
- }
-}
-
-/* 有线数据处理. */
-static void _wir_data_process(uint8_t *cmd, uint32_t len)
-{
- proto_head_t *head = (proto_head_t*)cmd;
-
- /* 报文头和 CRC 校验. */
- if (_wl_4G_pkt_check(cmd, len) != HAL_OK)
- {
- return;
- }
-
- if (DEBUG_CT_REQUEST == head->cmd_type)
- {
- /* 共有命令处理. */
- switch (head->cmd)
- {
- case DEBUG_C_DEV_INFO:
- _wl_4G_dev_info_reply(cmd, len);
- break;
- case DEBUG_C_UPDATE_APP:
- _wl_4G_update_reply(cmd, len);
- break;
- case DEBUG_C_UPDATE_APP_RT:
- _wl_4G_update_rt_reply();
- break;
- default:
- break;
- }
- }
- else if (DEBUG_CT_PRV_REQUEST == head->cmd_type)
- {
- /* 私有命令处理. */
- switch (head->cmd)
- {
- case DEBUG_PRV_REAL_DATA:
- _wl_4G_pkt_reply();
- break;
- case DEBUG_PRV_POWER_FRE:
- _wl_4G_power_fre_reply(cmd, len);
- break;
- case DEBUG_PRV_WAVE:
- _wl_4G_wave_reply(cmd, len);
- break;
- case DEBUG_PRV_WAVE_MAX:
- _wl_4G_wave_max_reply(cmd, len);
- break;
- default:
- break;
- }
- }
-}
-
-/* 有线模式主任务循环. */
-static void _wir_start(void *argument)
-{
- uint32_t notify_value = 0;
-
- /* RS485 供电打开. */
- HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_SET);
-
- /* 开启串口空闲中断收包. */
- HAL_UARTEx_ReceiveToIdle_DMA(wl_uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
-
- for (;;)
- {
- /* 喂狗. */
- common_watchdog_set(COM_WDG_WIR);
-
- /* 等待 DMA 收包中断. */
- notify_value = ulTaskNotifyTake(pdTRUE, WIR_RX_TIMEOUT);
- /* 收包超时, 返回循环头部. */
- if (0 == notify_value)
- {
- continue;
- }
-
- /* 收包处理. */
- _wl_4G_data_recv();
- }
-}
-
-/* 4G 模块发送数据. */
-static HAL_StatusTypeDef _csg_transmit(uint8_t *data, uint16_t len)
-{
- HAL_StatusTypeDef rv = HAL_ERROR;
-
- if (wl_ctrl.state < WL_STATE_WAKEUP)
- {
- DBG(DBG_M_4G, "Send: %s\r\n", data);
- }
- else
- {
- csg_head_t *head = (csg_head_t*)data;
- DBG(DBG_M_4G, "Send(%d): 0x%x\r\n", len, head->cmd);
- if (dbg_stat_get(DBG_M_4G))
- {
- buf_print(data, len > 32 ? 32 : len);
- //buf_print(data, len);
- vty_print("\r\n");
- }
- /* 每次发送数据更新保活时间. */
- wl_ctrl.keepalive = HAL_GetTick() + 60000;
- }
-
- rv = HAL_UART_Transmit_DMA(wl_uart, data, len);
-
- return rv;
-}
-
-static uint8_t _csg_crc(uint8_t *data, uint16_t len)
-{
- uint8_t crc = 0x00;
- uint32_t sum = 0x0000;
- uint16_t i = 0;
-
- for(i = 0; i < len; i++)
- {
- sum += data[i];
- }
-
- crc = ~(uint8_t)(sum);
- return crc;
-}
-
-/* 初始化报文头. */
-static void _csg_data_head_init(uint16_t len, uint8_t cmd)
-{
- csg_head_t *head = (csg_head_t*)wl_ctrl.dma_tx_buf;
-
- /* 封装报文头. */
- head->flag = CSG_START_FLAG;
- memcpy(head->dev_id, dev_info.csg_id, 6);
- head->cmd = cmd;
- head->len = PP_HTONS(len);
-}
-
-/* 错误回复报文. */
-static void _csg_error_send(uint8_t cmd, uint16_t rt)
-{
- uint16_t *data = (uint16_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_ERROR_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_ERROR_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_ERROR_LEN, cmd);
-
- /* 封装数据. */
- *data = PP_HTONS(rt);
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_ERROR_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- _csg_transmit(wl_ctrl.dma_tx_buf, CSG_ERROR_LEN + CSG_OTHER_LEN);
-}
-
-/* 开机联络报文. */
-static void _csg_connect_send(uint8_t is_request)
-{
- uint16_t *data = (uint16_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_CONNECT_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_CONNECT_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_CONNECT_LEN, CSG_CONNECT);
-
- /* 封装数据. */
- *data = PP_HTONS(dev_info.csg_version);
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_CONNECT_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- if (is_request)
- {
- _csg_transmit(wl_ctrl.dma_tx_buf, CSG_CONNECT_LEN + CSG_OTHER_LEN);
- }
- else
- {
- if (HAL_OK == _csg_transmit(wl_ctrl.dma_tx_buf, CSG_CONNECT_LEN + CSG_OTHER_LEN))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
- }
-}
-
-/* 对时报文. */
-static void _csg_time_send(void)
-{
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_TIMING_LEN, CSG_TIMING);
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- if (HAL_OK == _csg_transmit(wl_ctrl.dma_tx_buf, CSG_OTHER_LEN))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
-}
-
-/* 实时数据报文. */
-static void _csg_data_send_his(void)
-{
- struct tm *day = NULL;
- csg_data_t *data = (csg_data_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_DATA_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_DATA_LEN + CSG_CRC_LEN);
- uint8_t i = 0;
- uint16_t temp = 0;
- uint32_t time = 0;
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_DATA_LEN, CSG_DATA);
-
- /* 封装数据. */
- memcpy(data->Ciphertext, dev_config.csg_ciphertext, CSG_CIPHERTEXT_LEN);
-
- data->flag = 0;
- data->sum = 0;
-
- csg_adc_data.id = fd_id;
- for(i = 0; i < CSG_PKT_DATA_SUM; i++)
- {
- if (fd_read(csg_adc_data.id, &csg_adc_data) != HAL_OK)
- break;
-
- /* 读到全F,表示结束了. */
- if (FD_INVALID_ID == csg_adc_data.id)
- break;
-
- /* 只要历史数据. */
- if (!csg_adc_data.is_not_updata)
- {
- csg_adc_data.id--;
- if (0 == csg_adc_data.id)
- {
- break;
- }
- continue;
- }
-
- csg_data_idx[data->sum] = csg_adc_data.id;
- data->sum++;
- csg_data_idx[data->sum] = 0;
- vty_print("%d %d\r\n", data->sum, csg_adc_data.id);
- vty_print("%d/%d/%d %d:%d:%d\r\n", data->time[0], data->time[1], data->time[2], data->time[3], data->time[4], data->time[5]);
-
- time = csg_adc_data.run_time + 28800;
- day = localtime(&time);
- data->time[0] = day->tm_year - 100;
- data->time[1] = day->tm_mon + 1;
- data->time[2] = day->tm_mday;
- data->time[3] = day->tm_hour;
- data->time[4] = day->tm_min;
- data->time[5] = day->tm_sec;
-
- temp = csg_adc_data.elec[0] / 100;
- data->Ia = PP_HTONS(temp);
- temp = csg_adc_data.elec[1] / 100;
- data->Ib = PP_HTONS(temp);
- temp = csg_adc_data.elec[2] / 100;
- data->Ic = PP_HTONS(temp);
- temp = csg_adc_data.elec[3] / 100;
- data->ground = PP_HTONS(temp);
- temp = csg_adc_data.elec[4] / 100;
- data->rIa = PP_HTONS(temp);
- data->rIb = 0;
- data->rIc = 0;
-
- break;
- }
-
- if (0 == data->sum)
- {
- wl_ctrl.state = CSG_STATE_IDLE;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
- }
- else
- {
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_DATA_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- if (HAL_OK == _csg_transmit(wl_ctrl.dma_tx_buf, CSG_DATA_LEN + CSG_OTHER_LEN))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
- }
-}
-
-/* 实时数据上传. */
-static void _csg_data_send_realtime(void)
-{
- struct tm *day = NULL;
- csg_data_t *data = (csg_data_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_DATA_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_DATA_LEN + CSG_CRC_LEN);
- uint16_t temp = 0;
- uint32_t time = 0;
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_DATA_LEN, CSG_DATA);
-
- /* 封装数据. */
- memcpy(data->Ciphertext, dev_config.csg_ciphertext, CSG_CIPHERTEXT_LEN);
- data->flag = 0x00;
- data->sum = 0x01;
-
- fd_read(fd_id, &csg_adc_data);
- csg_data_idx[0] = fd_id;
- csg_data_idx[1] = 0;
- time = csg_adc_data.run_time + 28800;
- day = localtime(&time);
- data->time[0] = day->tm_year - 100;
- data->time[1] = day->tm_mon + 1;
- data->time[2] = day->tm_mday;
- data->time[3] = day->tm_hour;
- data->time[4] = day->tm_min;
- data->time[5] = day->tm_sec;
-
- vty_print("%d/%d/%d %d:%d:%d\r\n", data->time[0], data->time[1], data->time[2], data->time[3], data->time[4], data->time[5]);
-
- temp = csg_adc_data.elec[0] / 100;
- data->Ia = PP_HTONS(temp);
- temp = csg_adc_data.elec[1] / 100;
- data->Ib = PP_HTONS(temp);
- temp = csg_adc_data.elec[2] / 100;
- data->Ic = PP_HTONS(temp);
- temp = csg_adc_data.elec[3] / 100;
- data->ground = PP_HTONS(temp);
- temp = csg_adc_data.elec[4] / 100;
- data->rIa = PP_HTONS(temp);
- data->rIb = 0;
- data->rIc = 0;
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_DATA_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- if (HAL_OK == _csg_transmit(wl_ctrl.dma_tx_buf, CSG_DATA_LEN + CSG_OTHER_LEN))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
-}
-
-/* 心跳报文. */
-static void _csg_beat_send(void)
-{
- csg_beat_t *data = (csg_beat_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_BEAT_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_BEAT_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_BEAT_LEN, CSG_BEAT);
-
- /* 封装数据. */
- HAL_RTC_GetTime(&hrtc, &time_structure, RTC_FORMAT_BIN);
- HAL_RTC_GetDate(&hrtc, &date_structure, RTC_FORMAT_BIN);
- data->time[0] = date_structure.Year;
- data->time[1] = date_structure.Month;
- data->time[2] = date_structure.Date;
- data->time[3] = time_structure.Hours;
- data->time[4] = time_structure.Minutes;
- data->time[5] = time_structure.Seconds;
- data->CSQ = (wl_ctrl.CSQ + 115) * 100 / 64;
- data->vbat = ADC_ctrl.ADCi_vbat / 100;
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_BEAT_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- if (HAL_OK == _csg_transmit(wl_ctrl.dma_tx_buf, CSG_BEAT_LEN + CSG_OTHER_LEN))
- {
- /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
- wl_ctrl.time_send = HAL_GetTick() + 5500;
- }
- else
- {
- /* 发送失败, 等待 1s 重发. */
- wl_ctrl.time_send = HAL_GetTick() + 1100;
- }
- wl_ctrl.time_beat = HAL_GetTick();
-}
-
-/* 服务器信息报文发送. */
-static void _csg_server_send(void)
-{
- csg_server_get_t *data = (csg_server_get_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_SERVER_GET_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_SERVER_GET_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_SERVER_GET_LEN, CSG_SERVER_GET);
-
- /* 封装数据. */
- memcpy(data->ip, dev_info.wireless_server_ip, 4);
- data->port = PP_HTONS(dev_info.wireless_server_port);
- memcpy(data->card, dev_info.csg_card, 6);
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_SERVER_GET_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- _csg_transmit(wl_ctrl.dma_tx_buf, CSG_SERVER_GET_LEN + CSG_OTHER_LEN);
-}
-
-/* 配饰获取报文发送. */
-static void _csg_config_send(void)
-{
- uint8_t *data = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_CONFIG_GET_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_CONFIG_GET_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_CONFIG_GET_LEN, CSG_CONFIG_GET);
-
- /* 封装数据. */
- /* 心跳间隔. */
- *data = dev_config.csg_beat_interval;
- data += 1;
- /* 采集间隔. */
-
- *(uint16_t*)data = PP_HTONS(dev_config.collect_interval);
- data += 2;
-
- /* 休眠时间. */
- *(uint16_t*)data = PP_HTONS(dev_config.csg_sleep);
- data += 2;
-
- /* 在线时间. */
- *(uint16_t*)data = PP_HTONS(HAL_GetTick() / 1000 / 60);
- data += 2;
-
- /* 重启时间. */
- memcpy(data, dev_config.csg_reset_time, 3);
- data += 3;
-
- memset(data, 0, 10);
- data += 10;
-
- *data = 0x44;
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_CONFIG_GET_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- _csg_transmit(wl_ctrl.dma_tx_buf, CSG_CONFIG_GET_LEN + CSG_OTHER_LEN);
-}
-
-/* 时间获取报文. */
-static void _csg_time_get_send(void)
-{
- uint8_t *data = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN);
- uint8_t *crc = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_TIME_GET_LEN);
- uint8_t *end_flag = (uint8_t*)(wl_ctrl.dma_tx_buf + CSG_HEAD_LEN + CSG_TIME_GET_LEN + CSG_CRC_LEN);
-
- /* 封装报文头. */
- _csg_data_head_init(CSG_TIME_GET_LEN, CSG_TIME_GET);
-
- /* 封装数据. */
- HAL_RTC_GetTime(&hrtc, &time_structure, RTC_FORMAT_BIN);
- HAL_RTC_GetDate(&hrtc, &date_structure, RTC_FORMAT_BIN);
- data[0] = date_structure.Year;
- data[1] = date_structure.Month;
- data[2] = date_structure.Date;
- data[3] = time_structure.Hours;
- data[4] = time_structure.Minutes;
- data[5] = time_structure.Seconds;
-
- /* 计算校验和. */
- *crc = _csg_crc(wl_ctrl.dma_tx_buf + 1, CSG_TIME_GET_LEN + CSG_HEAD_LEN - 1);
- *end_flag = CSG_END_FLAG;
-
- /* 发送报文 */
- _csg_transmit(wl_ctrl.dma_tx_buf, CSG_TIME_GET_LEN + CSG_OTHER_LEN);
-}
-
-/* 状态机改变 */
-void _csg_state_change(void)
-{
- if (wl_ctrl.state != CSG_STATE_IDLE)
- {
- return;
- }
-
- if (wl_ctrl.data_request)
- {
- if (CSG_DATA_TYPE_HIS == wl_ctrl.data_request)
- {
- wl_ctrl.state = CSG_STATE_DATA_HIS;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
- }
-
- wl_ctrl.data_request = CSG_DATA_TYPE_NONE;
- }
- else if ((HAL_GetTick() - wl_ctrl.time_beat) > (dev_config.csg_beat_interval * 60000))
- {
- wl_ctrl.state = CSG_STATE_BEAT;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
- }
- else if (!ADC_ctrl.up_finish)
- {
- wl_ctrl.state = CSG_STATE_DATA;
- ADC_ctrl.up_finish = TRUE;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
- }
-}
-
-/* 数据发送. */
-void _csg_pkt_send(void)
-{
- uint8_t is_timeout = wl_ctrl.time_send < HAL_GetTick();
-
- _csg_state_change();
-
- if ((CSG_STATE_CONNECT == wl_ctrl.state) && is_timeout)
- {
- /* 开机联络. */
- _csg_connect_send(FALSE);
- wl_ctrl.send_cnt++;
- }
- else if ((CSG_STATE_TIME == wl_ctrl.state) && is_timeout)
- {
- /* 设备对时. */
- _csg_time_send();
- wl_ctrl.send_cnt++;
- }
- else if ((CSG_STATE_BEAT == wl_ctrl.state) && is_timeout)
- {
- /* 心跳. */
- _csg_beat_send();
- wl_ctrl.send_cnt++;
- }
- else if ((CSG_STATE_DATA == wl_ctrl.state) && is_timeout)
- {
- /* 实时数据. */
- _csg_data_send_realtime();
- wl_ctrl.send_cnt++;
- }
- else if ((CSG_STATE_DATA_HIS == wl_ctrl.state) && is_timeout)
- {
- /* 历史数据. */
- _csg_data_send_his();
- wl_ctrl.send_cnt++;
- }
-}
-
-static int32_t _csg_pkt_check(uint8_t *cmd, uint32_t len)
-{
- csg_head_t *head = (csg_head_t*)cmd;
-
- /* 设备进入复位状态后不再处理报文. */
- if (IS_MONITOR_BIT_SET(system_init_flag, SYS_INIT_RESET))
- {
- vty_print("@0\r\n");
- /* 这里挂住线程是因为重启时如果有收包, 会导致收包出错, 从而让设备进入休眠状态. */
- osDelay(portMAX_DELAY);
- return HAL_ERROR;
- }
-
- if (len < CSG_OTHER_LEN
- || (CSG_OTHER_LEN + PP_HTONS(head->len) != len))
- {
- vty_print("@1\r\n");
- return HAL_ERROR;
- }
-
- if (head->flag != CSG_START_FLAG || cmd[len - 1] != CSG_END_FLAG)
- {
- vty_print("@2\r\n");
- return HAL_ERROR;
- }
-
- /* 对主次设备号进行识别, 次设备号可以是广播. */
- if (strncmp((char*)head->dev_id, (char*)dev_info.csg_id, 6))
- {
- vty_print("@3\r\n");
- return HAL_ERROR;
- }
-
- /* 验证 CRC32. */
- if (_csg_crc(cmd + 1, PP_HTONS(head->len) + CSG_HEAD_LEN - 1) != cmd[len - 2])
- {
- vty_print("@4: %x %x\r\n", _csg_crc(cmd + 1, PP_HTONS(head->len) + CSG_HEAD_LEN - 1), cmd[len - 2]);
- return HAL_ERROR;
- }
-
- return HAL_OK;
-}
-
-/* 开机联络回复. */
-static void _csg_connect_reply(uint8_t *cmd, uint32_t len)
-{
- csg_head_t *head = (csg_head_t*)cmd;
-
- if (PP_HTONS(head->len) == 0)
- {
- _csg_connect_send(TRUE);
- }
- else
- {
- wl_ctrl.state = CSG_STATE_TIME;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
- }
-}
-
-/* 对时回复. */
-static void _csg_time_reply(uint8_t *cmd, uint32_t len)
-{
- csg_time_t *data = (csg_time_t*)(cmd + CSG_HEAD_LEN);
- time_t temp = 0;
-
- /* 更新 RTC 时间. */
- tm_structure.tm_year = data->year + 100;
- tm_structure.tm_mon = data->mon - 1;
- tm_structure.tm_mday = data->day;
- tm_structure.tm_hour = data->hour;
- tm_structure.tm_min = data->min;
- tm_structure.tm_sec = data->sec;
- temp = mktime(&tm_structure);
- rtc_time_set(temp - 28800);
-
- if (CSG_STATE_TIME == wl_ctrl.state)
- {
- wl_ctrl.state = CSG_STATE_BEAT;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
- }
- else
- {
- /* 发送回复报文. */
- _csg_transmit(cmd, len);
- }
-}
-
-/* 对时回复. */
-static void _csg_passwd_set_reply(uint8_t *cmd, uint32_t len)
-{
- csg_passwd_t *data = (csg_passwd_t*)(cmd + CSG_HEAD_LEN);
-
- if (0 == memcmp(data->passwd_old, dev_config.csg_passwd, CSG_PASSWD_LEN))
- {
- memcpy(dev_config.csg_passwd, data->passwd_new, CSG_PASSWD_LEN);
- dev_config.csg_passwd[CSG_PASSWD_LEN] = 0;
- common_sys_set(COM_SYS_SAVE_CONFIG, 0);
- /* 发送回复报文. */
- _csg_transmit(cmd, len);
- }
- else
- {
- _csg_error_send(CSG_PASSWD_SET, 0xffff);
- }
-}
-
-/* 配置设置回复. */
-static void _csg_config_set_reply(uint8_t *cmd, uint32_t len)
-{
- uint8_t *data = (uint8_t*)(cmd + CSG_HEAD_LEN);
-
- if (0 == memcmp(data, dev_config.csg_passwd, CSG_PASSWD_LEN))
- {
- /* 心跳间隔. */
- data += 4;
- dev_config.csg_beat_interval = *data;
-
- /* 采集间隔. */
- data += 1;
- dev_config.collect_interval = *(uint16_t*)data;
- dev_config.collect_interval = PP_HTONS(dev_config.collect_interval);
-
- /* 休眠时间. */
- data += 2;
- dev_config.csg_sleep = *(uint16_t*)data;
- dev_config.csg_sleep = PP_HTONS(dev_config.csg_sleep);
-
- /* 在线时间. */
- data += 2;
- dev_config.csg_online = *(uint16_t*)data;
- dev_config.csg_online = PP_HTONS(dev_config.csg_online);
-
- /* 重启时间. */
- data += 2;
- memcpy(dev_config.csg_reset_time, data, 3);
-
- /* 验证密文. */
- data += 3;
- memcpy(dev_config.csg_ciphertext, data, 4);
-
- common_sys_set(COM_SYS_SAVE_CONFIG, 0);
- /* 发送回复报文. */
- _csg_transmit(cmd, len);
- }
- else
- {
- _csg_error_send(CSG_CONFIG_SET, 0xffff);
- }
-}
-
-/* 心跳回复处理. */
-static void _csg_beat_reply(uint8_t *cmd, uint32_t len)
-{
- wl_ctrl.state = CSG_STATE_IDLE;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
-}
-
-/* 服务器设置回复. */
-static void _csg_server_set_reply(uint8_t *cmd, uint32_t len)
-{
- csg_server_t *data = (csg_server_t*)(cmd + CSG_HEAD_LEN);
-
- if (0 == memcmp(data->passwd, dev_config.csg_passwd, CSG_PASSWD_LEN))
- {
- if (0 == memcmp(data->ip1, data->ip2, CSG_PASSWD_LEN)
- && 0 == memcmp(data->card1, data->card2, 6)
- && data->port1 == data->port2)
- {
- memcpy(dev_info.wireless_server_ip, data->ip1, 4);
- dev_info.wireless_server_port = PP_HTONS(data->port1);
- memcpy(dev_info.csg_card, data->card1, 6);
-
- common_sys_set(COM_SYS_SAVE_INFO, 0);
- /* 发送回复报文. */
- _csg_transmit(cmd, len);
- }
- else
- {
- _csg_error_send(CSG_SERVER_SET, 0);
- }
+ /* 填充数据, 计算数据长度和报文长度. */
+ data_len = sizeof(dau_ctrl.fault_power) - m_head->index * DEBUG_DATA_SIZE;
+ if (data_len < 0)
+ {
+ m_head->len = 0;
+ }
+ else if (data_len > DEBUG_DATA_SIZE)
+ {
+ m_head->len = DEBUG_DATA_SIZE;
}
else
{
- _csg_error_send(CSG_SERVER_SET, 0xffff);
+ m_head->len = data_len;
}
-}
+ head->len = sizeof(proto_head_t) + sizeof(mul_head_t) + m_head->len;
-/* 服务器设置回复. */
-static void _csg_server_get_reply(uint8_t *cmd, uint32_t len)
-{
- _csg_server_send();
-}
+ if (m_head->len > 0)
+ {
+ memcpy(data, (&dau_ctrl.fault_power[0][0]) + m_head->index * DEBUG_DATA_SIZE, m_head->len);
+ }
-/* 设备重启回复. */
-static void _csg_reset_reply(uint8_t *cmd, uint32_t len)
-{
- uint8_t *data = (uint8_t*)(cmd + CSG_HEAD_LEN);
- uint32_t reset_delay = 2;
+ /* 计算校验和. */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf, head->len);
- if (0 == memcmp(data, dev_config.csg_passwd, CSG_PASSWD_LEN))
+ /* 发送报文 */
+ if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
{
- /* 发送回复报文. */
- _csg_transmit(cmd, len);
-
- flash_log_write(FLASH_LOG_TYPE_INFO, "CSG system reset!\r\n");
- common_sys_set(COM_SYS_RESET, (void*)&reset_delay);
-
+ /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
+ wl_ctrl.time_send = HAL_GetTick() + 5500;
}
else
{
- _csg_error_send(CSG_RESET, 0xffff);
+ /* 发送失败, 等待 1s 重发. */
+ wl_ctrl.time_send = HAL_GetTick() + 1100;
}
}
-/* 服务器设置回复. */
-static void _csg_config_get_reply(uint8_t *cmd, uint32_t len)
+/* 故障触发故障采样波形报文发送 */
+static void _wl_4G_send_fault(void)
{
- _csg_config_send();
-}
+ proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
+ mul_head_t *m_head = (mul_head_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
+ int16_t *data = (int16_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t) + sizeof(mul_head_t));
+ uint32_t *crc = NULL;
+ int32_t data_len = 0;
+ uint32_t addr = 0;
-/* 服务器设置回复. */
-static void _csg_time_get_reply(uint8_t *cmd, uint32_t len)
-{
- _csg_time_get_send();
-}
+ /* 封装报文头. */
+ _wl_4G_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_FAULT, wl_ctrl.pkt_id);
-/* 数据回复处理. */
-static void _csg_data_get_reply(uint8_t *cmd, uint32_t len)
-{
- csg_head_t *head = (csg_head_t*)cmd;
-
- if (PP_HTONS(head->len) == 0)
+ m_head->index = wl_ctrl.mul_idx;
+
+ /* 填充数据, 计算数据长度和报文长度. */
+ data_len = DAU_FAULT_BYTE_CNT - m_head->index * DEBUG_DATA_SIZE;
+ if (data_len < 0)
+ {
+ m_head->len = 0;
+ }
+ else if (data_len > DEBUG_DATA_SIZE)
{
- /* 请求历史数据. */
- wl_ctrl.data_request = CSG_DATA_TYPE_HIS;
+ m_head->len = DEBUG_DATA_SIZE;
}
else
{
- /* 请求实时数据. */
- wl_ctrl.data_request = CSG_DATA_TYPE_REAL;
+ m_head->len = data_len;
}
+ head->len = sizeof(proto_head_t) + sizeof(mul_head_t) + m_head->len;
- _csg_transmit(cmd, len);
-}
-
-static void _csg_data_reply_id_updata(void)
-{
- uint8_t i = 0;
-
- for(i = 0; i < CSG_PKT_DATA_SUM; i++)
+ if (m_head->len > 0)
{
- if (0 == csg_data_idx[i])
+ addr = dau_ctrl.addr_fault + m_head->index * DEBUG_DATA_SIZE;
+ if (spi_flash_read(addr, (uint8_t*)data, DEBUG_DATA_SIZE) != HAL_OK)
{
- break;
+ return;
}
-
- fd_read(csg_data_idx[i], &csg_adc_data);
- csg_adc_data.is_not_updata = FALSE;
- fd_modify(csg_data_idx[i], &csg_adc_data);
}
-}
-/* 数据回复处理. */
-static void _csg_data_reply(uint8_t *cmd, uint32_t len)
-{
- csg_head_t *head = (csg_head_t*)cmd;
-
- if (PP_HTONS(head->len) == 0)
+ /* 计算校验和. */
+ crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
+ *crc = crc32(wl_ctrl.dma_tx_buf, head->len);
+
+ /* 发送报文 */
+ if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, head->len + 4))
{
- _csg_transmit(cmd, len);
+ /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
+ wl_ctrl.time_send = HAL_GetTick() + 5500;
}
else
{
- wl_ctrl.state = CSG_STATE_IDLE;
- wl_ctrl.send_cnt = 0;
- wl_ctrl.time_send = 0;
-
- _csg_data_reply_id_updata();
- }
-}
-
-/* 有线数据处理. */
-static void _csgp_pkt_process(uint8_t *cmd, uint32_t len)
-{
- csg_head_t *head = (csg_head_t*)cmd;
-
- /* 报文头和 CRC 校验. */
- if (_csg_pkt_check(cmd, len) != HAL_OK)
- {
- return;
- }
-
- /* 共有命令处理. */
- switch (head->cmd)
- {
- case CSG_CONNECT:
- _csg_connect_reply(cmd, len);
- break;
- case CSG_TIMING:
- _csg_time_reply(cmd, len);
- break;
- case CSG_PASSWD_SET:
- _csg_passwd_set_reply(cmd, len);
- break;
- case CSG_CONFIG_SET:
- _csg_config_set_reply(cmd, len);
- break;
- case CSG_BEAT:
- _csg_beat_reply(cmd, len);
- break;
- case CSG_SERVER_SET:
- _csg_server_set_reply(cmd, len);
- break;
- case CSG_SERVER_GET:
- _csg_server_get_reply(cmd, len);
- break;
- case CSG_RESET:
- _csg_reset_reply(cmd, len);
- break;
- case CSG_CONFIG_GET:
- _csg_config_get_reply(cmd, len);
- break;
- case CSG_TIME_GET:
- _csg_time_get_reply(cmd, len);
- break;
- case CSG_DATA_GET:
- _csg_data_get_reply(cmd, len);
- break;
- case CSG_DATA:
- _csg_data_reply(cmd, len);
- break;
- default:
- break;
+ /* 发送失败, 等待 1s 重发. */
+ wl_ctrl.time_send = HAL_GetTick() + 1100;
}
}
-static void _csg_pkt_recv(void)
+/* 数据发送 */
+void _wl_4G_send(void)
{
- static uint8_t state = 0;
- static uint32_t time = 0;
- wl_buf_list_t *buf_l = &wl_buf_list_rx;
- csg_head_t *head = (csg_head_t*)wl_ctrl.cmd_buf;
- uint8_t *buf = NULL;
- uint16_t len = 0;
- int16_t i = 0;
-
- /* 超过 3s 没有收包说明收包超时, 重新开始收包. */
- if (HAL_GetTick() - time > 3000)
- {
- state = 0;
- wl_ctrl.cmd_buf_index = 0;
- }
- time = HAL_GetTick();
+ uint8_t is_timeout = wl_ctrl.time_send < HAL_GetTick();
- /* 遍历所有有效的 buf. */
- while(buf_l->current != buf_l->valid)
+ /* 循环内只发送一次报文, 没有报文发送的情况下要跳出循环. */
+ while(is_timeout)
{
- buf = buf_l->buf[buf_l->current];
- len = buf_l->buf_cnt[buf_l->current];
-
- /* 更新 buf index. */
- buf_l->current++;
- if (WL_BUF_LIST_LEN == buf_l->current)
+ if (WL_STATE_CONTACT == wl_ctrl.state)
{
- buf_l->current = 0;
+ _wl_4G_send_contact();
+ wl_ctrl.send_cnt++;
+ break;
}
-
- /* 如果收包大于 buf 长度, 认为报文错误. */
- if (wl_ctrl.cmd_buf_index + len >= WL_DMA_RX_BUF_LEN)
+ else if (WL_STATE_REALDATA == wl_ctrl.state)
{
- wl_ctrl.cmd_buf_index = 0;
- state = FALSE;
- continue;
+ _wl_4G_send_realdata();
+ wl_ctrl.send_cnt++;
+ break;
}
-
- /* 将 buf 中的数据解析成命令. */
- memcpy(&wl_ctrl.cmd_buf[wl_ctrl.cmd_buf_index], buf, len);
- wl_ctrl.cmd_buf_index += len;
-
- /* 不够报文头长度的报文暂时不处理. */
- if (wl_ctrl.cmd_buf_index < CSG_HEAD_LEN)
+ else if (WL_STATE_POWER == wl_ctrl.state)
{
- state = FALSE;
- continue;
+ _wl_4G_send_power();
+ wl_ctrl.send_cnt++;
+ break;
}
-
- if (!state)
+ else if (WL_STATE_DEFECT == wl_ctrl.state)
{
- /* 报文长度不对或者起始位不对, 重新收包. */
- if (PP_HTONS(head->len) + CSG_OTHER_LEN > WL_DMA_RX_BUF_LEN
- || head->flag != CSG_START_FLAG)
- {
- wl_ctrl.cmd_buf_index = 0;
- continue;
- }
-
- /* 报文长度与收包长度不对称, 等待后续报文. */
- if (wl_ctrl.cmd_buf_index < PP_HTONS(head->len) + CSG_OTHER_LEN)
- {
- state = TRUE;
- continue;
- }
+ _wl_4G_send_defect();
+ wl_ctrl.send_cnt++;
+ break;
}
- else
+ else if (WL_STATE_REALDATA_FAULT== wl_ctrl.state)
{
- /* 报文长度与收包长度不对称, 等待后续报文. */
- if (wl_ctrl.cmd_buf_index < PP_HTONS(head->len) + CSG_OTHER_LEN)
- {
- continue;
- }
-
- state = FALSE;
+ _wl_4G_send_realdata_fault();
+ wl_ctrl.send_cnt++;
+ break;
}
-
- len = PP_HTONS(head->len) + CSG_OTHER_LEN;
- wl_ctrl.cmd_buf_index -= len;
- buf = wl_ctrl.cmd_buf + len;
- memcpy(wl_ctrl.csg_buf, wl_ctrl.cmd_buf, len);
- for(i = 0; i < wl_ctrl.cmd_buf_index; i++)
+ else if (WL_STATE_POWER_FAULT == wl_ctrl.state)
{
- wl_ctrl.cmd_buf[i] = buf[i];
+ _wl_4G_send_power_fault();
+ wl_ctrl.send_cnt++;
+ break;
}
-
- DBG(DBG_M_4G, "Recv(%d:%d): 0x%x\r\n", len, wl_ctrl.cmd_buf_index, wl_ctrl.csg_buf[7]);
- if (dbg_stat_get(DBG_M_4G))
+ else if (WL_STATE_FAULT == wl_ctrl.state)
{
- buf_print(wl_ctrl.csg_buf, len > 32 ? 32 : len);
- vty_print("\r\n");
+ _wl_4G_send_fault();
+ wl_ctrl.send_cnt++;
+ break;
+ }
+ else if (WL_STATE_KEEPALIVE == wl_ctrl.state)
+ {
+ /* 设备保活报文发送. */
+ _wl_4G_send_keepalive();
+ wl_ctrl.send_cnt++;
+ break;
+ }
+ else
+ {
+ break;
}
+ }
+}
+
+/* 发送数据状态机改变 */
+void _wl_4G_state_chg(void)
+{
+ if (!IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP))
+ {
+ wl_ctrl.state = WL_STATE_REALDATA_FAULT;
+ }
+ else if(!IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP))
+ {
+ wl_ctrl.state = WL_STATE_REALDATA;
+ }
+ else if(wl_ctrl.keepalive < HAL_GetTick())
+ {
+ wl_ctrl.state = WL_STATE_KEEPALIVE;
+ wl_ctrl.keepalive += dev_config.keepalive;
+ }
+}
+
+/* 初始化 4G 模块软件 */
+static void _wl_4G_init_cmd_send(uint8_t *cmd, uint32_t timeout)
+{
+ uint8_t len = strlen((char*)cmd);
- _csgp_pkt_process(wl_ctrl.csg_buf, len);
+ /* 复制并发送 AT 命令. */
+ snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "%s", cmd);
+ if (HAL_OK == _wl_4G_transmit(wl_ctrl.dma_tx_buf, len))
+ {
+ /* 发送成功, 如果指定时间内没有收到回复, 则根据 timeout 时间重发. */
+ wl_ctrl.time_send = HAL_GetTick() + timeout;
+ }
+ else
+ {
+ /* 发送失败, 等待 1s 重发. */
+ wl_ctrl.time_send = HAL_GetTick() + WL_USART_ERR_TIMEOUT;
}
}
/* 通过 AT 命令进行模块初始化. */
-void _csg_init_soft(void)
+void _wl_4G_init_soft(void)
{
uint8_t is_timeout = wl_ctrl.time_send < HAL_GetTick();
@@ -2731,6 +1548,12 @@ void _csg_init_soft(void)
_wl_4G_init_cmd_send("AT+CSQ\r\n", 1100);
wl_ctrl.send_cnt++;
}
+ else if ((WL_STATE_AT_QCCID == wl_ctrl.state) && is_timeout)
+ {
+ /* Query ICCID of the SIM card */
+ _wl_4G_init_cmd_send("AT+QCCID\r\n", 1100);
+ wl_ctrl.send_cnt++;
+ }
else if ((WL_STATE_AT_QICFGTS == wl_ctrl.state) && is_timeout)
{
/* 连接远程服务器. */
@@ -2748,31 +1571,82 @@ void _csg_init_soft(void)
else if ((WL_STATE_AT_QIOPEN == wl_ctrl.state) && is_timeout)
{
/* 连接远程服务器. */
- snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QIOPEN=1,0,\"UDP\",\"%d.%d.%d.%d\",%d,19421,2\r\n",
- dev_info.wireless_server_ip[0], dev_info.wireless_server_ip[1], dev_info.wireless_server_ip[2],
- dev_info.wireless_server_ip[3], dev_info.wireless_server_port);
- //_wl_4G_init_cmd_send("AT+QIOPEN=1,0,\"TCP\",\"111.47.21.142\",9467,19421,2\r\n", 10000);
- _wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 11000);
+ //snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QIOPEN=1,0,\"TCP\",\"%d.%d.%d.%d\",%d,19421,2\r\n",
+ // dev_info.wireless_server_ip[0], dev_info.wireless_server_ip[1], dev_info.wireless_server_ip[2],
+ // dev_info.wireless_server_ip[3], dev_info.wireless_server_port);
+ _wl_4G_init_cmd_send("AT+QIOPEN=1,0,\"TCP\",\"111.47.21.142\",8809,19421,2\r\n", 10000);
+ //_wl_4G_init_cmd_send(wl_ctrl.dma_tx_buf, 11000);
wl_ctrl.send_cnt++;
}
- else if (WL_STATE_ADC_WAIT == wl_ctrl.state)
+ else if (WL_STATE_AT_COMP == wl_ctrl.state)
{
- if (IS_MONITOR_BIT_SET(system_init_flag, SYS_INIT_ADC))
+ /* 软件初始化完成. */
+ wl_ctrl.state = WL_STATE_CONTACT;
+ wl_ctrl.time_send = 0;
+ wl_ctrl.send_cnt = 0;
+ }
+}
+
+/* 初始化 4G 模块硬件 */
+static void _wl_4G_hw_init(void)
+{
+ /* 4G 模块供电打开.*/
+ osDelay(1000);
+ HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_SET);
+ /* 4G 模块复位. */
+ osDelay(500);
+ HAL_GPIO_WritePin(G4G_RST_GPIO_Port, G4G_RST_Pin, GPIO_PIN_SET);
+ osDelay(100);
+ HAL_GPIO_WritePin(G4G_RST_GPIO_Port, G4G_RST_Pin, GPIO_PIN_RESET);
+}
+
+/* 重启 4G 模块硬件. */
+static void _wl_4G_hw_restart(void)
+{
+ DBG(DBG_M_4G, "4G restart(%d)\r\n", wl_ctrl.err_cnt);
+
+ /* 初始化 4G 模块硬件. */
+ HAL_UART_Abort(wl_ctrl.uart);
+ memset(&wl_buf_list_rx, 0, sizeof(wl_buf_list_t));
+ HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_RESET);
+ _wl_4G_hw_init();
+ HAL_UARTEx_ReceiveToIdle_DMA(wl_ctrl.uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
+
+ /* 20s 内要收到 4G 模块发出的 RDY. */
+ wl_ctrl.state = 0;
+ wl_ctrl.send_cnt = 0;
+ wl_ctrl.mul_idx = 0;
+ wl_ctrl.cmd_buf_index = 0;
+ wl_ctrl.time_send = HAL_GetTick() + 20000;
+ wl_ctrl.err_cnt++;
+
+ /* 4G 掉线后不能阻止波形采集, 掉线后默认上传完成 */
+ if (!MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP))
+ {
+ /* 更新 flash 地址 */
+ dau_ctrl.addr_reg += 0x20000;
+ if (WARE_REG_ADDRESS_END == dau_ctrl.addr_reg)
{
- /* 软件初始化完成. */
- wl_ctrl.state = CSG_STATE_CONNECT;
- wl_ctrl.time_send = 0;
- wl_ctrl.send_cnt = 0;
+ dau_ctrl.addr_reg = WARE_REG_ADDRESS;
}
- else if (is_timeout)
+ st_data.addr_reg = dau_ctrl.addr_reg;
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
+ }
+ if (!MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP))
+ {
+ /* 更新 flash 地址 */
+ dau_ctrl.addr_fault += 0x20000;
+ if (WARE_FAULT_ADDRESS_END == dau_ctrl.addr_fault)
{
- wl_ctrl.time_send = HAL_GetTick() + 10000;
- wl_ctrl.send_cnt++;
+ dau_ctrl.addr_fault = WARE_FAULT_ADDRESS;
}
+ st_data.addr_fault = dau_ctrl.addr_fault;
+ MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP);
}
}
-static void _csg_start(void *argument)
+/* 无线模块主任务循环. */
+static void _wl_4G_start(void *argument)
{
uint32_t notify_value = 0;
@@ -2783,38 +1657,42 @@ static void _csg_start(void *argument)
{
break;
}
-
osDelay(1000);
}
- /* 开启串口空闲中断收包. */
- HAL_UARTEx_ReceiveToIdle_DMA(wl_uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
-
/* 初始化 4G 模块硬件. */
_wl_4G_hw_init();
+ /* 开启串口空闲中断收包. */
+ HAL_UARTEx_ReceiveToIdle_DMA(wl_ctrl.uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
+
/* 20s 内要收到 4G 模块发出的 RDY. */
wl_ctrl.time_send = HAL_GetTick() + 20000;
- wl_ctrl.wave_index = st_data.wave_index;
for (;;)
{
- /* AT 指令发送失败, 直接退出. */
- if (wl_ctrl.send_cnt > WL_SOFT_INIT_ERR)
+ /* 数据发送失败, 重启 4G 模块 */
+ if ((wl_ctrl.send_cnt > WL_SOFT_INIT_ERR && wl_ctrl.state < WL_STATE_CONTACT)
+ || (wl_ctrl.send_cnt > WL_DATA_ERR && wl_ctrl.state >= WL_STATE_CONTACT))
{
- wl_ctrl.err_cnt = 0;
_wl_4G_hw_restart();
}
- if (wl_ctrl.state < WL_STATE_WAKEUP)
+ if (wl_ctrl.state < WL_STATE_CONTACT)
{
/* 进入软件初始化. */
- _csg_init_soft();
+ _wl_4G_init_soft();
}
- else
+ else
{
- /* 发送数据给 */
- _csg_pkt_send();
+ if (WL_STATE_END == wl_ctrl.state)
+ {
+ /* 计算状态机 */
+ _wl_4G_state_chg();
+ }
+
+ /* 进入数据交互模式. */
+ _wl_4G_send();
}
/* 喂狗. */
@@ -2833,23 +1711,13 @@ static void _csg_start(void *argument)
}
}
-
/* Interface functions -------------------------------------------------------*/
/* 无线通讯任务初始化. */
void wl_init(void)
{
- if (DEV_TYPE_CSG == dev_info.type_s)
- {
- WLHandle = osThreadNew(_csg_start, NULL, &WL_attributes);
- }
- else if (DEV_TYPE_ACDC == dev_info.type_s)
- {
- WLHandle = osThreadNew(_wir_start, NULL, &WL_attributes);
- }
- else
- {
- WLHandle = osThreadNew(_wl_4G_start, NULL, &WL_attributes);
- }
+ wl_ctrl.uart = &huart3;
+ wl_ctrl.keepalive += dev_config.keepalive;
+ wl_ctrl.handle = osThreadNew(_wl_4G_start, NULL, &WL_attributes);
}
void wl_show(void)
diff --git a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.dep b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.dep
index ebfe720..6b40625 100644
--- a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.dep
+++ b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.dep
@@ -1,1510 +1,1470 @@
4
- 1150405754
+ 1858430297
CableMonitor_APP_V3.2
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc_ex.c
+ $PROJ_DIR$\..\Core\Src\stm32l4xx_hal_msp.c
$PROJ_DIR$\..\Core\Src\spi.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+ $PROJ_DIR$\..\Core\Src\system_stm32l4xx.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ $PROJ_DIR$\..\Core\Src\wireless.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ $PROJ_DIR$\..\Core\Src\tim.c
$PROJ_DIR$\..\Core\Src\usart.c
- $PROJ_DIR$\..\Core\Src\dev_config.c
$PROJ_DIR$\..\Core\Src\stm32l4xx_it.c
- $PROJ_DIR$\..\Core\Src\wireless.c
- $PROJ_DIR$\..\Core\Src\stm32l4xx_hal_msp.c
- $PROJ_DIR$\..\Core\Src\freertos.c
- $PROJ_DIR$\..\Core\Src\cli.c
- $PROJ_DIR$\..\Core\Src\adc.c
- $PROJ_DIR$\..\Core\Src\ADC_collect.c
- $PROJ_DIR$\..\Core\Src\flash_log.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc.c
$PROJ_DIR$\..\Core\Src\dma.c
- $PROJ_DIR$\..\Core\Src\FreeRTOS_CLI.c
+ $PROJ_DIR$\..\Core\Src\flash_log.c
$PROJ_DIR$\..\Core\Src\gpio.c
- $PROJ_DIR$\..\Core\Src\main.c
+ $PROJ_DIR$\..\Core\Src\adc.c
$PROJ_DIR$\startup_stm32l496xx.s
- $PROJ_DIR$\..\Core\Src\common.c
- $PROJ_DIR$\..\Core\Src\flash_if.c
+ $PROJ_DIR$\..\Core\Src\cli.c
+ $PROJ_DIR$\..\Core\Src\FreeRTOS_CLI.c
+ $PROJ_DIR$\..\Core\Src\ADC_collect.c
+ $PROJ_DIR$\..\Core\Src\main.c
$PROJ_DIR$\..\Core\Src\RS485_debug.c
$PROJ_DIR$\..\Core\Src\rtc.c
- $PROJ_DIR$\..\Core\Src\tim.c
- $TOOLKIT_DIR$\inc\c\time.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h
- $PROJ_DIR$\..\Core\Inc\position.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\croutine.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.pbi
- $PROJ_DIR$\stm32l496xx_flash.icf
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.o
- $TOOLKIT_DIR$\inc\c\stdint.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.o
- $TOOLKIT_DIR$\lib\shb_l.a
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.o
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_tim.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi_ex.h
- $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_cortex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\freertos_mpool.h
+ $PROJ_DIR$\..\Core\Src\dau.c
+ $PROJ_DIR$\..\Core\Src\flash_if.c
+ $PROJ_DIR$\..\Core\Src\dev_config.c
+ $PROJ_DIR$\..\Core\Src\freertos.c
+ $PROJ_DIR$\..\Core\Src\common.c
+ $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash.h
+ $TOOLKIT_DIR$\lib\m7M_tls.a
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.pbi
+ $PROJ_DIR$\..\Core\Inc\flash_if.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_i2c_ex.h
+ $TOOLKIT_DIR$\inc\c\stddef.h
+ $PROJ_DIR$\..\Core\Inc\recording_wave.h
+ $PROJ_DIR$\..\Core\Inc\dev_config.h
+ $PROJ_DIR$\..\Core\Inc\wireless.h
+ $TOOLKIT_DIR$\lib\dl7M_tlf.a
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_i2c.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\queue.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.o
+ $PROJ_DIR$\..\Core\Inc\gpio.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_log.__cstat.et
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart_ex.__cstat.et
+ $TOOLKIT_DIR$\inc\c\time32.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.out
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_log.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_tim_ex.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.o
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\position.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.o
+ $PROJ_DIR$\..\Core\Inc\tim.h
+ $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\system_stm32l4xx.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.pbi
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\stack_macros.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_msp.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c_ex.__cstat.et
+ $PROJ_DIR$\..\Core\Src\RS485_sensor.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\system_stm32l4xx.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\wireless.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_cortex.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc_ex.h
$PROJ_DIR$\..\Core\Inc\ADC_collect.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.__cstat.et
- $PROJ_DIR$\..\Core\Src\position.c
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\queue.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.pbi
- $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l496xx.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.o
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\stream_buffer.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\port.__cstat.et
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.__cstat.et
- $PROJ_DIR$\..\Core\Inc\stm32l4xx_it.h
- $PROJ_DIR$\..\Core\Inc\flash_log.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.__cstat.et
- $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\event_groups.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.o
- $PROJ_DIR$\..\Core\Inc\rtc.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart_ex.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.__cstat.et
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr_ex.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\port.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.o
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\semphr.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\queue.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.o
- $PROJ_DIR$\..\Core\Inc\common.h
- $PROJ_DIR$\..\Core\Inc\main.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\queue.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\system_stm32l4xx.pbi
- $PROJ_DIR$\..\Core\Src\recording_wave.c
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.__cstat.et
- $PROJ_DIR$\..\Core\Inc\RS485_sensor.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.o
- $TOOLKIT_DIR$\inc\c\string.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.__cstat.et
- $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rtc.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stream_buffer.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.pbi
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\wireless.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c_ex.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_dma.h
- $PROJ_DIR$\..\Core\Inc\stm32l4xx_hal_conf.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.__cstat.et
- $TOOLKIT_DIR$\inc\c\DLib_Product_string.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\wireless.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\List\CableMonitor_APP_V3.2.map
- $PROJ_DIR$\..\Core\Inc\FreeRTOS_CLI.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_exti.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.pbi
+ $TOOLKIT_DIR$\inc\c\iccarm_builtin.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.__cstat.et
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_msp.o
- $PROJ_DIR$\..\Core\Inc\tim.h
- $PROJ_DIR$\..\Core\Inc\usart.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rtc_ex.h
- $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h
- $TOOLKIT_DIR$\inc\c\yvals.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.o
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\semphr.h
$TOOLKIT_DIR$\inc\c\ysizet.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.__cstat.et
- $PROJ_DIR$\..\Core\Inc\wireless.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.o
- $PROJ_DIR$\..\Core\Inc\cli.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rtc.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\system_stm32l4xx.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.pbi
+ $TOOLKIT_DIR$\inc\c\yvals.h
+ $TOOLKIT_DIR$\inc\c\stdlib.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portmacro.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_exti.h
+ $TOOLKIT_DIR$\inc\c\string.h
+ $PROJ_DIR$\..\Core\Inc\main.h
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_adc.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.pbi
- $PROJ_DIR$\..\Core\Inc\dev_config.h
- $TOOLKIT_DIR$\inc\c\iccarm_builtin.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\stream_buffer.h
- $TOOLKIT_DIR$\inc\c\time32.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_i2c_ex.h
- $TOOLKIT_DIR$\inc\c\stddef.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_dma.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_sensor.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\timers.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.out
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tasks.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ramfunc.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.pbi
+ $PROJ_DIR$\..\Core\Src\recording_wave.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.o
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_log.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.__cstat.et
+ $PROJ_DIR$\..\Core\Inc\FreeRTOS_CLI.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stream_buffer.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\timers.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.pbi
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\freertos_os2.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\queue.pbi
+ $PROJ_DIR$\..\Core\Inc\RS485_debug.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\port.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.pbi
- $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\system_stm32l4xx.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_tim_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_msp.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.__cstat.et
- $TOOLKIT_DIR$\inc\c\stdio.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\croutine.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.__cstat.et
+ $PROJ_DIR$\..\Core\Inc\FreeRTOSConfig.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart_ex.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.__cstat.et
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\list.c
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\port.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc.c
- $PROJ_DIR$\..\Core\Src\system_stm32l4xx.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.__cstat.et
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\event_groups.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.__cstat.et
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\port.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.pbi
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.bin
- $PROJ_DIR$\..\Core\Src\RS485_sensor.c
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stream_buffer.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\timers.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_def.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\timers.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.o
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\croutine.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.__cstat.et
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\tasks.c
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.pbi
- $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.__cstat.et
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h
+ $PROJ_DIR$\..\Core\Inc\flash_log.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\timers.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\list.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_sensor.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.pbi
+ $PROJ_DIR$\..\Core\Inc\RS485_sensor.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.__cstat.et
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portasm.s
$PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\queue.c
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi.o
+ $PROJ_DIR$\..\Core\Inc\rtc.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_tim.h
+ $PROJ_DIR$\..\Core\Inc\common.h
+ $TOOLKIT_DIR$\inc\c\stdio.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\timers.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\List\CableMonitor_APP_V3.2.map
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stream_buffer.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_ll_adc.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.__cstat.et
+ $TOOLKIT_DIR$\inc\c\ycheck.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr_ex.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\usart.__cstat.et
+ $TOOLKIT_DIR$\inc\c\stdint.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.__cstat.et
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\timers.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim.__cstat.et
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\freertos_mpool.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.__cstat.et
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_msp.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart_ex.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\event_groups.h
+ $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.pbi
+ $PROJ_DIR$\..\Core\Inc\usart.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.__cstat.et
+ $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l496xx.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.pbi
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\startup_stm32l496xx.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.pbi
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\timers.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\port.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_log.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.__cstat.et
+ $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_adc_ex.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.o
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.pbi
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\queue.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portasm.s
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\portasm.o
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma.pbi
+ $TOOLKIT_DIR$\inc\c\DLib_Product_string.h
+ $TOOLKIT_DIR$\inc\c\time.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.__cstat.et
+ $PROJ_DIR$\..\Core\Inc\stm32l4xx_hal_conf.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.bin
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio_ex.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rtc_ex.h
+ $PROJ_DIR$\stm32l496xx_flash.icf
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.o
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\tim.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_exti.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\system_stm32l4xx.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_def.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.pbi
$PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma.pbi
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal.h
- $TOOLKIT_DIR$\lib\m7M_tls.a
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_adc_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\CableMonitor_APP_V3.2.pbd
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_msp.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr.pbi
$PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_version.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.o
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.o
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_ll_adc.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\freertos.o
- $PROJ_DIR$\..\Core\Inc\flash_if.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.o
- $TOOLKIT_DIR$\lib\rt7M_tl.a
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cmsis_os2.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\CableMonitor_APP_V3.2.pbd
+ $TOOLKIT_DIR$\inc\c\DLib_float_setup.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi_ex.h
+ $TOOLKIT_DIR$\inc\c\math.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_gpio.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.__cstat.et
+ $TOOLKIT_DIR$\inc\c\DLib_Product.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.pbi
+ $PROJ_DIR$\..\Core\Src\position.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_dma_ex.o
+ $PROJ_DIR$\..\Core\Inc\stm32l4xx_it.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\ADC_collect.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\event_groups.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\system_stm32l4xx.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.o
$PROJ_DIR$\..\Core\Inc\spi.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.__cstat.et
- $TOOLKIT_DIR$\inc\c\ycheck.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\portasm.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc_ex.pbi
- $TOOLKIT_DIR$\lib\dl7M_tlf.a
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\croutine.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_it.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_spi_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\wireless.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\stack_macros.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\timers.__cstat.et
+ $PROJ_DIR$\..\Core\Inc\cli.h
$PROJ_DIR$\..\Core\Inc\dma.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_pwr_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\wireless.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dau.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\port.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dau.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rtc.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_i2c.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.o
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\include\croutine.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dau.o
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h
+ $TOOLKIT_DIR$\lib\shb_l.a
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.pbi
$TOOLKIT_DIR$\inc\c\intrinsics.h
- $PROJ_DIR$\..\Core\Inc\recording_wave.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\common.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.o
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr.h
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portmacro.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_log.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\spi.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.__cstat.et
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\freertos_os2.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_sensor.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\gpio.__cstat.et
- $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\RS485_debug.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\rtc.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc.o
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc_ex.h
- $PROJ_DIR$\..\Core\Inc\RS485_debug.h
- $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.__cstat.et
- $TOOLKIT_DIR$\inc\c\stdlib.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_i2c.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_uart.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dma.pbi
- $PROJ_DIR$\..\Core\Inc\FreeRTOSConfig.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\startup_stm32l496xx.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_rcc_ex.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\dev_config.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stream_buffer.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\position.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_tim_ex.pbi
- $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\FreeRTOS_CLI.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\cli.__cstat.et
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\position.o
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_cortex.pbi
$PROJ_DIR$\..\Core\Inc\adc.h
- $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ramfunc.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_adc.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\recording_wave.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.pbi
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\position.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ex.h
+ $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h
+ $PROJ_DIR$\..\Core\Inc\dau.h
+ $PROJ_DIR$\..\Core\Inc\position.h
$TOOLKIT_DIR$\inc\c\stdarg.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio_ex.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_adc_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\stm32l4xx_hal_flash.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\position.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\list.o
- $TOOLKIT_DIR$\inc\c\DLib_Product.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\main.__cstat.et
- $PROJ_DIR$\..\Core\Inc\gpio.h
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\heap_4.pbi
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\adc.o
- $PROJ_DIR$\CableMonitor_APP_V3.2\Obj\flash_if.__cstat.et
[ROOT_NODE]
ILINK
- 157 119
+ 81 218
- $PROJ_DIR$\..\Core\Src\spi.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc_ex.c
ICCARM
- 37
+ 316
__cstat
- 296
+ 227
BICOMP
- 25
+ 254
ICCARM
- 271 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 154 218 129 250 307 32 226 145 274 328 80 128 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 271 43
+ 50 142 334 292 146 210 310 261 347 239 144 134 251 225 136 284 222 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\usart.c
+ $PROJ_DIR$\..\Core\Src\stm32l4xx_hal_msp.c
ICCARM
- 76
+ 94
__cstat
- 163
+ 295
BICOMP
- 143
+ 241
ICCARM
- 126 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 94 116 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 134 308 137 53
+ 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 128 101 250 32 129 245 96 80 134 327 79 137 307 154 226 145 274 262 94 144 308 53 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 331 127 172 107 315 146 288 23 65 126 328 43 116 239 138 249 51 294 260 333
+ 136 58 292 173 110 233 73 125 225 148 260 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 141 303
- $PROJ_DIR$\..\Core\Src\dev_config.c
+ $PROJ_DIR$\..\Core\Src\spi.c
ICCARM
- 136
+ 330
__cstat
- 320
+ 55
BICOMP
- 142
+ 318
ICCARM
- 94 274 129 309 325 339 132 116 176 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 239 138 315 51 245 146 294 288 96 260 101 23 249 79 144 65 266
-
-
- BICOMP
- 239 114 38 132 113 44 218 316 302 79 250 210 329 100 59 129 43 80 266 274 116 321 45 121 293 241 152 221 170 258 32 328 65 176 144 309 325 339 307 128 154 327 226 145 138 249 51 294 260 94 334 264 252 262 331 127 172 107 101 315 245 146 288 96 23
+ 321 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 349
- $PROJ_DIR$\..\Core\Src\stm32l4xx_it.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
ICCARM
- 135
+ 307
__cstat
- 66
+ 108
BICOMP
- 280
+ 306
ICCARM
- 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 64 138 315 51 245 146 294 288 96 260 101 23
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 51 274 250 307 32 226 145 218 154 129 43 138 128 327 328 64 101 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 146 288 80 262 331 127 172 107 315 245 294 260 96 23
+ 225 292 110 233 73 125 148 58 136 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\wireless.c
+ $PROJ_DIR$\..\Core\Src\system_stm32l4xx.c
ICCARM
- 117
+ 135
__cstat
- 282
+ 319
BICOMP
- 106
+ 99
ICCARM
- 176 274 129 309 325 339 132 94 116 21 150 126 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 326 125 70 79 239 138 315 51 245 146 294 288 96 260 101 23 249 134 144 65 53 266 308
+ 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 173 277 239 292 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 154 101 218 80 134 132 326 308 274 129 307 32 128 288 23 79 21 70 53 116 250 327 226 145 315 146 138 94 126 125 144 266 65 309 325 339 150 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 328 43 245 96 239 176 258 302 44 334 264 252 262 331 127 172 107 249 51 294 260
+ 284 152 173 233 290 136 292 139 167 225 222 286 277 109 242 82 261 231 73 125 239 146 144 50 134 210 132 347 251 89 298 142 244 270 310 334 110 260 58 148 287 84 118 303
- $PROJ_DIR$\..\Core\Src\stm32l4xx_hal_msp.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
ICCARM
- 124
+ 145
__cstat
- 174
+ 95
BICOMP
- 229
+ 80
ICCARM
- 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 129 154 218 250 307 32 226 145 274 328 128 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 80 43
+ 58 292 136 110 233 73 125 225 148 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\freertos.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
ICCARM
- 265
+ 56
__cstat
- 46
+ 191
BICOMP
- 148
+ 64
ICCARM
- 138 154 274 129 309 325 339 132 32 315 51 245 146 294 288 145 96 260 101 23 80 250 114 210 218 128 59 327 258 302 44 226 170 221 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 239 249
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 329 218 250 274 129 96 210 100 59 262 32 51 309 325 114 113 316 38 302 80 132 339 146 288 23 321 45 121 293 241 152 221 170 258 128 101 239 154 315 245 294 260 145 307 327 226 44 334 264 252 331 127 172 107 138 328 43 249
+ 292 173 233 136 260 286 110 58 73 125 225 148 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\cli.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
ICCARM
- 118
+ 156
__cstat
- 276
+ 103
BICOMP
- 29
+ 184
ICCARM
- 176 274 129 309 325 339 132 94 116 21 150 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 138 315 51 245 146 294 288 96 260 101 23 239 249 126 125 70 79 144 65 120 137 266 134 53 308
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 150 241 134 132 321 258 32 80 126 129 121 221 274 218 239 101 144 339 45 293 152 170 333 70 137 308 309 325 250 114 210 113 329 316 100 38 59 302 44 262 21 65 94 138 125 79 120 266 53 116 307 128 154 327 226 145 334 264 252 331 127 172 107 51 294 260 176 328 43 315 245 146 288 96 23 249
+ 284 144 136 292 239 134 251 225 222 347 146 50 210 142 310 334 261 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\adc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
ICCARM
- 343
+ 205
__cstat
- 39
+ 178
BICOMP
- 332
+ 149
ICCARM
- 326 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 239 138 315 51 245 146 294 288 96 260 101 23 249 53
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 327 128 218 245 96 32 101 80 250 129 53 307 154 226 145 274 79 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 328 43 315 146 288 23 326 262 331 127 172 107 239 138 249 51 294 260
+ 210 277 261 146 310 50 142 334 239 144 134 251 225 136 284 222 287 84 152 109 139 242 290 82 167 89 298 244 270 233 132 292 231 118 110 260 58 173 286 73 125 347 148 303
- $PROJ_DIR$\..\Core\Src\ADC_collect.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
ICCARM
- 69
+ 296
__cstat
- 263
+ 170
BICOMP
- 91
+ 301
ICCARM
- 176 274 129 309 325 339 132 311 67 94 116 326 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 53
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 132 154 129 218 245 96 80 128 101 250 79 274 307 32 226 145 94 53 327 311 326 144 309 325 339 67 116 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 44 328 43 315 146 288 23 65 176 334 264 252 262 331 127 172 107 239 138 249 51 294 260
+ 261 210 231 146 310 292 50 142 334 239 144 134 251 225 136 284 222 277 152 109 139 242 290 82 167 89 298 244 270 233 132 347 110 260 58 173 286 73 125 148 287 84 118 303
- $PROJ_DIR$\..\Core\Src\flash_log.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
ICCARM
- 234
+ 305
__cstat
- 295
+ 237
BICOMP
- 164
+ 90
ICCARM
- 176 274 129 309 325 339 132 94 116 239 138 154 32 315 51 245 146 294 288 145 96 260 101 23 249 70 80 250 114 210 218 128 59 327 258 302 44 226 170 221 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 21 150 79 144 65 266
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 239 339 59 218 274 210 100 262 65 250 329 70 132 129 315 32 80 114 113 316 38 302 333 144 309 325 101 154 245 294 260 145 321 45 121 293 241 152 221 170 258 94 79 266 116 138 249 51 146 288 96 23 21 307 128 327 334 264 252 331 127 172 107 176 226 44 328 43 150
+ 292 286 260 173 233 136 287 84 110 58 73 125 225 231 118 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 148 303
- $PROJ_DIR$\..\Core\Src\dma.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
ICCARM
- 110
+ 337
__cstat
- 236
+ 224
BICOMP
- 314
+ 281
ICCARM
- 285 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 128 250 32 129 80 327 307 154 226 145 274 328 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 285 43
+ 290 132 152 298 270 292 139 167 225 244 233 347 277 109 242 82 89 136 239 146 144 50 134 210 251 142 310 334 284 222 261 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\FreeRTOS_CLI.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
ICCARM
- 130
+ 291
__cstat
- 297
+ 216
BICOMP
- 49
+ 151
ICCARM
- 94 274 129 309 325 339 132 116 32 138 154 315 51 245 146 294 288 145 96 260 101 23 120 79 239 249
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 245 288 120 132 154 129 146 23 101 138 274 116 315 96 239 32 79 309 325 339 51 294 260 145 94 249
+ 136 58 292 110 233 73 125 225 148 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\gpio.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
ICCARM
- 93
+ 336
__cstat
- 301
+ 161
BICOMP
- 168
+ 280
ICCARM
- 341 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 80 327 128 262 250 32 129 307 154 226 145 274 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 331 127 172 107 341 328 43
+ 239 251 222 134 225 292 144 136 284 347 146 50 210 142 310 334 261 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\main.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
ICCARM
- 292
+ 105
__cstat
- 340
+ 250
BICOMP
- 122
+ 246
ICCARM
- 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 239 138 315 51 245 146 294 288 96 260 101 23 249 326 285 70 21 150 271 125 126 341
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 128 331 107 341 250 32 129 150 70 327 260 21 326 125 307 154 226 145 274 127 172 51 294 132 239 285 271 126 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 334 264 252 262 101 80 328 43 138 249 315 245 146 288 96 23
+ 225 292 110 233 73 125 347 58 136 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 231 287 84 118 148 303
- $PROJ_DIR$\startup_stm32l496xx.s
-
-
- AARM
- 317
-
-
-
-
- $PROJ_DIR$\..\Core\Src\common.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
ICCARM
- 213
+ 265
__cstat
- 115
+ 74
BICOMP
- 291
+ 172
ICCARM
- 176 274 129 309 325 339 132 94 116 126 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 138 315 51 245 146 294 288 96 260 101 23 239 249 70 21 150 79 144 65 137
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 32 79 116 154 129 245 96 250 138 274 307 226 145 128 333 239 137 132 327 249 94 126 101 70 144 65 309 325 339 80 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 44 328 43 315 146 288 23 21 176 334 264 252 262 331 127 172 107 51 294 260 150
+ 134 225 239 251 222 292 144 136 284 146 50 210 142 310 334 261 277 152 109 139 242 290 82 167 89 298 244 270 233 132 347 110 260 58 173 286 73 125 148 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\flash_if.c
+ $PROJ_DIR$\..\Core\Src\wireless.c
ICCARM
- 60
+ 104
__cstat
- 344
+ 324
BICOMP
- 232
+ 124
ICCARM
- 239 138 154 274 129 309 325 339 132 32 315 51 245 146 294 288 145 96 260 101 23 249 271 80 250 114 210 218 128 59 327 258 302 44 226 170 221 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 266
+ 212 225 136 244 270 310 132 140 272 273 75 248 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 345 88 206 211 253 119 171 278 192 235 138 340 48 207 274 285 331 61 60 193 111 53 163 349
BICOMP
- 315 293 170 260 154 45 152 218 274 294 145 321 121 241 221 258 239 79 101 245 129 32 80 250 114 210 113 329 316 100 38 59 302 262 271 266 138 249 51 132 309 325 339 146 288 96 23 307 128 327 226 44 334 264 252 331 127 172 107 328 43
+ 136 292 61 225 58 345 163 272 110 233 303 141 171 235 193 274 273 206 111 349 132 260 173 286 148 340 285 119 140 248 88 211 60 53 244 270 310 75 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 73 125 192 48 253 212 334 284 222 261 347 231 287 84 118 331 278 138 207
- $PROJ_DIR$\..\Core\Src\RS485_debug.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
ICCARM
- 304
+ 264
__cstat
- 290
+ 257
BICOMP
- 227
+ 249
ICCARM
- 176 274 129 309 325 339 132 94 116 126 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 308 53 134 266
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 129 65 293 170 218 328 266 132 45 152 144 339 80 321 121 241 221 258 288 23 239 126 53 274 309 325 250 114 210 113 329 316 100 38 59 302 43 101 315 146 154 138 94 79 308 134 116 307 128 327 32 226 145 245 96 176 44 334 264 252 262 331 127 172 107 249 51 294 260
+ 125 292 110 233 73 148 225 58 136 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Core\Src\rtc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
ICCARM
- 167
+ 223
__cstat
- 305
+ 201
BICOMP
- 160
+ 215
ICCARM
- 70 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 21 150
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 114 293 170 218 262 45 152 129 321 121 241 221 258 274 309 325 32 132 150 80 210 113 329 316 100 38 59 302 339 44 334 264 252 21 250 307 128 154 327 226 145 328 43 70 331 127 172 107
+ 136 144 284 292 239 134 251 225 222 347 146 50 210 142 310 334 261 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\tim.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
ICCARM
- 242
+ 102
__cstat
- 82
+ 120
BICOMP
- 212
+ 344
ICCARM
- 125 80 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 53
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 145 307 32 226 245 96 274 101 250 80 154 129 144 128 327 79 53 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 328 43 315 146 288 23 65 125 262 331 127 172 107 239 138 249 51 294 260
+ 261 210 231 146 310 292 50 142 334 239 144 134 251 225 136 284 222 277 152 109 139 242 290 82 167 89 298 244 270 233 132 347 110 260 58 173 286 73 125 148 287 84 118 303
- $PROJ_DIR$\..\Core\Src\position.c
+ $PROJ_DIR$\..\Core\Src\tim.c
ICCARM
- 337
+ 220
__cstat
- 323
+ 197
BICOMP
- 48
+ 91
ICCARM
- 176 274 129 309 325 339 132 94 116 126 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 312 153 293 331 100 127 241 43 38 172 152 107 144 79 239 138 315 51 245 146 294 288 96 260 101 23 249 65 53 24 266
+ 88 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 111
BICOMP
- 32 226 307 80 218 339 145 154 53 132 129 250 79 126 266 274 309 325 114 128 327 328 127 101 245 96 239 94 144 24 116 210 321 113 45 329 121 316 312 293 100 241 38 152 221 59 170 258 302 44 153 43 172 107 315 146 288 23 138 176 334 264 252 262 331 65 249 51 294 260
+ 142 334 50 277 146 210 310 261 292 253 207 239 144 134 251 225 136 284 222 60 173 152 109 139 242 290 82 167 89 298 244 270 233 132 347 119 331 278 138 125 141 211 111 110 260 58 286 73 231 287 84 118 88 148 303 274 171 192 235 340 48 285 193
- $PROJ_DIR$\..\Core\Src\recording_wave.c
+ $PROJ_DIR$\..\Core\Src\usart.c
ICCARM
- 272
+ 209
__cstat
- 330
+ 232
BICOMP
- 99
+ 198
ICCARM
- 176 274 129 309 325 339 132 94 116 271 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 312 153 293 331 100 127 241 43 38 172 152 107 125 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 266 53 289
-
-
- BICOMP
- 132 218 239 289 327 32 250 79 274 114 128 129 138 80 271 266 116 307 154 226 145 328 127 94 125 144 53 309 325 339 210 321 113 45 329 121 316 312 293 100 241 38 152 221 59 170 258 302 44 153 43 172 107 249 51 294 260 101 176 334 264 252 262 331 315 245 146 288 96 23 65
-
-
-
-
- $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.out
-
-
- ILINK
- 119
-
-
- OBJCOPY
- 214
-
-
-
-
- ILINK
- 30 343 69 118 173 213 279 136 110 105 60 234 265 130 93 303 338 292 166 275 85 304 167 37 317 235 259 261 268 77 131 243 336 81 27 31 86 141 124 78 246 306 318 255 54 98 281 286 34 73 237 135 322 139 162 242 222 76 117 35 269 251 278
+ 248 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 140 272 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 61 163 322 111 349
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\croutine.c
+ $PROJ_DIR$\..\Core\Src\stm32l4xx_it.c
ICCARM
- 279
+ 185
__cstat
- 161
+ 302
BICOMP
- 171
+ 98
ICCARM
- 138 154 274 129 309 325 339 132 32 315 51 245 146 294 288 145 96 260 101 23 26
+ 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 314 119 171 278 192 235 138 340 48 207 274 285
BICOMP
- 146 274 32 339 145 51 132 288 101 154 315 245 129 325 138 26 309 294 260 96 23
+ 278 225 173 110 233 73 125 292 58 136 303 119 260 286 148 314 274 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 235 340 141 347 231 287 84 118 171 192 138 207 48 285
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
ICCARM
- 303
+ 66
__cstat
- 310
+ 78
BICOMP
- 342
+ 293
ICCARM
- 311 274 129 309 325 339 132 67 138 154 32 315 51 245 146 294 288 145 96 260 101 23
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 274 146 129 315 145 138 67 325 288 101 132 339 154 245 32 311 309 51 294 260 96 23
+ 167 139 225 244 233 292 152 290 298 270 132 347 277 109 242 82 89 136 239 146 144 50 134 210 251 142 310 334 284 222 261 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
ICCARM
- 259
+ 214
__cstat
- 89
+ 130
BICOMP
- 169
+ 271
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 241 132 321 258 325 218 121 221 274 309 32 262 114 45 293 152 170 129 210 113 329 316 100 38 59 302 339 44 334 264 252 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 277 242 89 292 347 109 82 136 152 139 290 167 298 225 244 270 233 132 239 146 144 50 134 210 251 142 310 334 284 222 261 110 260 58 173 286 73 125 148 231 287 84 118 303
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\list.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
ICCARM
- 338
+ 200
__cstat
- 108
+ 76
BICOMP
- 319
+ 329
ICCARM
- 311 274 129 309 325 339 132 67 138 154 32 315 51 245 146 294 288 145 96 260 23
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 274 245 23 132 309 339 154 32 138 129 67 325 315 146 288 145 311 51 294 260 96
+ 58 292 136 110 233 73 125 225 148 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\port.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
ICCARM
- 166
+ 313
__cstat
- 72
+ 234
BICOMP
- 233
+ 123
ICCARM
- 288 145 129 309 325 339 96 138 154 274 132 32 315 51 245 146 294 260 101 23
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 96 274 129 101 339 32 138 145 309 325 51 132 146 288 154 315 245 294 260 23
+ 58 292 136 110 233 73 125 225 148 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
ICCARM
- 318
+ 226
__cstat
- 273
+ 169
BICOMP
- 225
+ 297
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 334 329 129 218 210 100 59 274 264 262 113 316 38 302 339 44 252 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 292 125 110 233 73 148 225 58 136 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
ICCARM
- 78
+ 308
__cstat
- 256
+ 180
BICOMP
- 104
+ 116
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 145 307 32 226 328 274 154 129 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 82 136 109 292 277 242 89 347 152 139 290 167 298 225 244 270 233 132 239 146 144 50 134 210 251 142 310 334 284 222 261 231 110 260 58 173 286 73 125 148 287 84 118 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
ICCARM
- 255
+ 294
__cstat
- 63
+ 279
BICOMP
- 33
+ 121
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 316 302 44 218 113 38 339 252 262 210 329 100 59 274 129 334 264 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 292 58 136 347 110 233 73 125 225 260 173 286 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 231 287 84 118 148 303
- $PROJ_DIR$\..\Core\Src\system_stm32l4xx.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
ICCARM
- 139
+ 228
__cstat
- 244
+ 266
BICOMP
- 87
+ 311
ICCARM
- 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 250 114 210 218 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 334 321 250 32 241 129 218 121 221 274 264 327 114 45 293 152 252 331 226 145 210 113 329 316 100 38 132 262 59 170 258 302 309 325 339 44 307 128 154 328 127 172 107 43
+ 310 146 210 261 292 50 142 334 347 239 144 134 251 225 136 284 222 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc.c
ICCARM
- 281
+ 187
__cstat
- 97
+ 276
BICOMP
- 61
+ 328
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 252 38 331 113 339 218 316 302 44 210 329 100 59 274 129 334 264 114 321 45 121 293 241 152 221 170 258 309 325 32 132 262 307 128 154 250 327 226 145 328 127 172 107 43
+ 50 142 334 292 146 210 310 261 347 239 144 134 251 225 136 284 222 277 152 109 139 242 290 82 167 89 298 244 270 233 132 110 260 58 173 286 73 125 231 287 84 118 148 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ $PROJ_DIR$\..\Core\Src\dma.c
ICCARM
- 246
+ 97
__cstat
- 287
+ 309
BICOMP
- 71
+ 182
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 323 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 218 154 129 262 307 32 226 145 274 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 331 127 172 107 328 43
+ 292 260 173 233 136 141 286 110 58 73 125 225 148 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 347 231 287 84 118 323 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+ $PROJ_DIR$\..\Core\Src\flash_log.c
ICCARM
- 261
+ 83
__cstat
- 335
+ 72
BICOMP
- 177
+ 154
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 221 121 274 309 32 218 321 241 258 325 132 262 114 45 293 152 170 129 210 113 329 316 100 38 59 302 339 44 334 264 252 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 212 225 136 244 270 310 132 140 272 253 119 58 233 171 278 192 235 138 340 125 48 207 274 285 331 206 141 173 277 239 292 260 251 286 298 142 334 73 89 167 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 273 75 211 60 193 53
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ $PROJ_DIR$\..\Core\Src\gpio.c
ICCARM
- 131
+ 49
__cstat
- 175
+ 188
BICOMP
- 151
+ 258
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 69 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 154 218 129 307 32 226 145 274 328 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 292 141 286 260 347 173 233 136 110 58 73 125 225 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 132 284 222 261 231 287 84 118 69 148 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+ $PROJ_DIR$\..\Core\Src\adc.c
ICCARM
- 27
+ 117
__cstat
- 300
+ 176
BICOMP
- 62
+ 247
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 345 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 111
+
+
+
+ $PROJ_DIR$\startup_stm32l496xx.s
+
- BICOMP
- 152 129 45 218 114 293 170 262 321 121 241 221 258 274 309 325 32 132 210 113 329 316 100 38 59 302 339 44 334 264 252 331 307 128 154 250 327 226 145 328 127 172 107 43
+ AARM
+ 256
-
+
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ $PROJ_DIR$\..\Core\Src\cli.c
ICCARM
- 141
+ 113
__cstat
- 83
+ 342
BICOMP
- 109
+ 339
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 212 225 136 244 270 310 132 140 272 273 75 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 119 171 278 192 235 138 340 48 207 274 285 253 331 248 88 206 211 60 193 155 322 53 61 111 163 349
BICOMP
- 154 218 129 307 32 226 145 274 328 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 134 141 61 132 239 251 248 310 144 222 207 119 60 349 136 75 277 146 50 210 142 334 284 287 84 58 193 351 274 206 322 163 225 244 270 173 152 109 139 242 290 82 167 89 298 233 261 292 231 118 278 138 125 140 273 253 88 211 155 53 111 272 110 260 286 73 347 212 148 303 171 192 235 340 48 285 331
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ $PROJ_DIR$\..\Core\Src\FreeRTOS_CLI.c
ICCARM
- 286
+ 79
__cstat
- 84
+ 255
BICOMP
- 50
+ 341
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 218 327 128 250 32 129 127 172 307 154 226 145 274 331 107 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 328 43
+ 140 225 136 244 270 310 132 272 233 119 58 171 278 192 235 138 340 125 48 207 274 285 155 211 253 331
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ $PROJ_DIR$\..\Core\Src\ADC_collect.c
ICCARM
- 268
+ 68
__cstat
- 158
+ 315
BICOMP
- 36
+ 267
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 252 38 331 113 339 218 316 302 44 210 329 100 59 274 129 334 264 114 321 45 121 293 241 152 221 170 258 309 325 32 132 262 307 128 154 250 327 226 145 328 127 172 107 43
+ 212 225 136 244 270 310 132 137 348 140 272 345 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 111
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ $PROJ_DIR$\..\Core\Src\main.c
ICCARM
- 306
+ 289
__cstat
- 211
+ 70
BICOMP
- 58
+ 263
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 253 119 171 278 192 235 138 340 48 207 274 285 331 345 323 206 273 75 321 88 248 69
BICOMP
- 339 113 38 252 218 316 302 44 262 210 329 100 59 274 129 334 264 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 231 292 118 69 58 136 75 206 110 233 73 125 225 207 273 345 88 260 173 286 287 84 278 138 132 253 323 321 248 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 244 270 310 334 284 222 261 347 274 141 148 303 119 331 171 192 235 340 48 285
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ $PROJ_DIR$\..\Core\Src\RS485_debug.c
ICCARM
- 34
+ 87
__cstat
- 254
+ 230
BICOMP
- 324
+ 217
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 210 59 264 100 274 218 329 129 334 262 113 316 38 302 339 44 252 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 212 225 136 244 270 310 132 140 272 248 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 163 111 61 53
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ $PROJ_DIR$\..\Core\Src\rtc.c
ICCARM
- 73
+ 208
__cstat
- 313
+ 166
BICOMP
@@ -1514,425 +1474,432 @@
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 206 141 173 277 239 292 260 251 286 233 225 136 244 270 310 298 142 334 125 73 89 167 58 132 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 273 75
BICOMP
- 274 218 307 32 226 145 262 154 129 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 331 127 172 107 328 43
+ 144 136 284 239 134 251 225 222 292 146 50 210 142 310 334 261 231 75 141 277 152 109 139 242 290 82 167 89 298 244 270 233 132 347 273 173 110 260 58 286 73 125 148 303 206 287 84 118
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\event_groups.c
+ $PROJ_DIR$\..\Core\Src\dau.c
ICCARM
- 105
+ 333
__cstat
- 55
+ 325
BICOMP
- 28
+ 327
ICCARM
- 311 274 129 309 325 339 132 67 138 154 32 315 51 245 146 294 288 145 96 260 101 23 156 68
+ 212 225 136 244 270 310 132 137 348 140 272 273 75 304 300 321 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 248 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 53 111 349
BICOMP
- 260 274 132 156 51 129 294 96 23 138 309 32 101 68 67 325 339 154 315 245 146 288 145 311
+ 292 270 136 347 60 244 348 110 233 225 132 304 349 58 298 211 140 248 193 310 272 300 260 173 286 141 119 137 273 321 53 111 75 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 142 334 284 222 261 231 287 84 118 253 331 278 138 207 125 274 212 73 148 303 171 192 235 340 48 285
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ $PROJ_DIR$\..\Core\Src\flash_if.c
ICCARM
- 81
+ 320
__cstat
- 219
+ 129
BICOMP
- 147
+ 106
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 129 329 334 218 210 100 59 274 264 262 113 316 38 302 339 44 252 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 253 119 58 225 136 244 270 310 132 233 171 278 192 235 138 340 125 48 207 274 285 331 321 141 173 277 239 292 260 251 286 298 142 334 73 89 167 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 53
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.c
+ $PROJ_DIR$\..\Core\Src\dev_config.c
ICCARM
- 173
+ 338
__cstat
- 270
+ 165
BICOMP
- 103
+ 77
ICCARM
- 94 274 129 309 325 339 132 116 249 32 154 302 44 145 138 315 51 245 146 294 288 96 260 101 23 68 156 74 57 47 298 128 59 327 258 226 170 250 114 210 218 221 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 274 32 339 101 218 298 57 327 128 262 51 96 250 302 74 129 309 325 132 146 288 23 226 307 154 249 138 68 47 116 44 145 315 245 294 260 156 94 59 170 258 114 210 321 113 45 329 121 316 293 100 241 38 152 221 334 264 252 331 127 172 107 328 43
+ 140 225 136 244 270 310 132 272 212 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 253 119 171 278 192 235 138 340 48 207 274 285 331 211 60 193 53
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
+ $PROJ_DIR$\..\Core\Src\freertos.c
ICCARM
- 243
+ 229
__cstat
- 95
+ 101
BICOMP
- 220
+ 54
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 119 58 225 136 244 270 310 132 233 171 278 192 235 138 340 125 48 207 274 285 141 173 277 239 292 260 251 286 298 142 334 73 89 167 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 253 331
BICOMP
- 218 250 32 129 128 327 307 154 226 145 274 328 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 144 292 173 225 136 48 239 134 251 347 233 278 244 270 277 146 50 210 142 141 132 310 235 340 285 152 109 139 242 290 82 167 89 298 260 274 253 58 171 192 138 207 125 110 286 73 334 284 222 261 231 287 84 118 119 148 303 331
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+ $PROJ_DIR$\..\Core\Src\common.c
ICCARM
- 31
+ 153
__cstat
- 112
+ 71
BICOMP
- 22
+ 175
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
-
-
- BICOMP
- 274 218 307 32 226 145 328 154 129 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 212 225 136 244 270 310 132 140 272 248 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 119 171 278 192 235 138 340 48 207 274 285 253 331 206 273 75 211 60 193 322
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ $PROJ_DIR$\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.out
- ICCARM
- 98
+ ILINK
+ 218
+
+
+ OBJCOPY
+ 283
+
+
+
+
+ ILINK
+ 288 117 68 113 67 153 100 333 338 97 262 320 83 229 79 49 85 164 289 168 269 65 87 208 330 256 291 337 66 102 214 313 56 264 223 308 307 200 145 94 226 294 228 156 187 316 205 296 305 336 105 265 185 157 135 143 220 158 209 104 335 204 51 62
+
+
+
+ $PROJ_DIR$\..\Core\Src\RS485_sensor.c
+
__cstat
- 92
+ 147
BICOMP
- 40
+ 196
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 212 225 136 244 270 310 132 140 272 248 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 199
BICOMP
- 38 114 252 113 339 316 302 44 210 329 100 59 274 129 334 264 127 172 321 45 121 293 241 152 221 170 258 309 325 32 132 218 331 107 307 128 154 250 327 226 145 262 328 43
+ 272 173 233 292 260 136 253 60 225 286 141 248 132 110 58 73 125 347 211 119 140 199 244 270 310 277 239 152 146 109 144 139 50 242 134 290 210 82 167 251 89 298 142 334 284 222 261 231 287 84 118 331 278 138 207 212 148 303 274 171 192 235 340 48 285 193
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ $PROJ_DIR$\..\Core\Src\recording_wave.c
ICCARM
- 336
+ 275
__cstat
- 257
+ 174
BICOMP
- 247
+ 107
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 212 225 136 244 270 310 132 140 272 321 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 63 57 242 231 134 287 290 303 210 84 82 118 88 211 253 119 171 278 192 235 138 340 48 207 274 285 331 60 193 53 111 59
BICOMP
- 145 218 307 32 226 328 274 154 129 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 132 292 253 59 286 233 173 211 225 277 260 136 119 141 321 53 272 110 58 73 125 148 287 140 88 60 111 244 270 310 239 152 146 109 144 139 50 63 242 134 290 210 82 167 251 89 298 142 334 57 303 84 118 331 278 138 207 274 212 284 222 261 347 231 171 192 235 340 48 285 193
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c
ICCARM
- 77
+ 85
__cstat
- 123
+ 128
BICOMP
- 248
+ 282
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 137 225 136 244 270 310 132 348 119 58 233 171 278 192 235 138 340 125 48 207 274 285
BICOMP
- 114 293 170 218 262 45 152 129 321 121 241 221 258 274 309 325 32 132 210 113 329 316 100 38 59 302 339 44 334 264 252 307 128 154 250 327 226 145 328 331 127 172 107 43
+ 225 235 136 171 125 119 348 270 340 274 132 310 58 192 233 137 244 278 138 207 48 285
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\event_groups.c
ICCARM
- 86
+ 262
__cstat
- 165
+ 221
BICOMP
- 267
+ 317
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 137 225 136 244 270 310 132 348 119 58 233 171 278 192 235 138 340 125 48 207 274 285 236 243
BICOMP
- 154 218 129 307 32 226 145 274 328 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 207 225 132 236 278 136 138 48 285 119 244 233 274 243 348 270 310 58 171 192 235 340 125 137
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\port.c
ICCARM
- 235
+ 168
__cstat
- 41
+ 115
BICOMP
- 140
+ 326
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 340 125 136 244 270 310 48 119 58 225 132 233 171 278 192 235 138 207 274 285
BICOMP
- 129 154 218 307 32 226 145 274 328 128 250 327 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 309 325 339 44 132 334 264 252 262 331 127 172 107 43
+ 48 225 136 274 310 233 119 125 244 270 278 132 235 340 58 171 192 138 207 285
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rtc_ex.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.c
ICCARM
- 54
+ 67
__cstat
- 42
+ 93
BICOMP
- 277
+ 245
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 140 225 136 244 270 310 132 272 331 233 58 142 334 125 119 171 278 192 235 138 340 48 207 274 285 243 236 131 112 238 160 260 251 286 298 73 89 173 277 239 292 167 110 152 284 146 109 144 222 261 139 50 347 148 242 231 134 287 290 303 210 84 82 118
BICOMP
- 316 302 44 218 113 38 339 252 262 210 329 100 59 274 129 334 264 114 321 45 121 293 241 152 221 170 258 309 325 32 132 307 128 154 250 327 226 145 331 127 172 107 328 43
+ 225 233 310 274 292 160 112 286 260 347 278 48 173 142 131 136 244 270 132 235 340 285 73 110 58 331 119 243 238 272 334 125 171 192 138 207 236 140 251 89 298 277 239 152 146 109 144 139 50 242 134 290 210 82 167 284 222 261 231 287 84 118 148 303
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\croutine.c
ICCARM
- 237
+ 100
__cstat
- 111
+ 127
BICOMP
- 230
+ 252
ICCARM
- 250 114 210 218 128 59 327 32 274 129 309 325 339 258 302 44 145 226 170 221 154 132 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107
+ 119 58 225 136 244 270 310 132 233 171 278 192 235 138 340 125 48 207 274 285 332
BICOMP
- 100 274 210 59 264 218 329 129 334 113 316 38 302 339 44 252 114 321 45 121 293 241 152 221 170 258 309 325 32 132 262 307 128 154 250 327 226 145 328 331 127 172 107 43
+ 235 225 233 310 125 278 132 340 274 58 171 192 136 270 119 332 244 138 207 48 285
- $PROJ_DIR$\..\Core\Src\RS485_sensor.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c
+
+ ICCARM
+ 157
+
__cstat
- 155
+ 122
BICOMP
- 299
+ 219
ICCARM
- 176 274 129 309 325 339 132 94 116 126 80 250 114 210 218 128 59 327 32 258 302 44 145 226 170 221 154 307 321 334 113 45 329 264 252 121 316 262 328 293 331 100 127 241 43 38 172 152 107 79 239 138 315 51 245 146 294 288 96 260 101 23 249 144 65 90
+ 233 225 136 244 270 310 140 132 272 119 58 171 278 192 235 138 340 125 48 207 274 285 114
BICOMP
- 116 250 32 218 128 129 239 144 274 327 80 126 132 307 154 226 145 262 79 138 94 90 309 325 339 114 210 321 113 45 329 121 316 293 100 241 38 152 221 59 170 258 302 44 334 264 252 331 127 172 107 249 51 294 260 176 328 43 101 315 245 146 288 96 23 65
+ 192 136 274 225 132 58 244 272 171 138 207 48 285 140 119 114 270 310 233 278 235 340 125
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\timers.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\tasks.c
ICCARM
- 222
+ 143
__cstat
- 284
+ 126
BICOMP
- 231
+ 133
ICCARM
- 311 274 129 309 325 339 132 67 138 154 32 315 51 245 146 294 288 145 96 260 101 23 57 156
+ 137 225 136 244 270 310 132 348 140 272 119 58 233 171 278 192 235 138 340 125 48 207 274 285 236 92 212
BICOMP
- 294 129 51 96 57 274 132 260 138 309 32 101 156 67 325 339 154 315 245 146 288 145 311 23
+ 225 233 212 58 274 92 132 244 192 140 119 236 136 348 270 310 171 235 340 125 137 272 278 138 207 48 285
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\timers.c
ICCARM
- 322
+ 158
__cstat
- 102
+ 213
BICOMP
- 216
+ 259
ICCARM
- 32 274 129 309 325 339 94 132 116 138 154 315 51 245 146 294 288 145 96 260 101 23 149
+ 137 225 136 244 270 310 132 348 119 58 233 171 278 192 235 138 340 125 48 207 274 285 112 236
BICOMP
- 245 129 101 274 132 154 309 116 315 294 260 96 23 94 138 149 325 339 32 51 146 288 145
+ 138 136 278 48 112 225 132 207 119 244 233 274 236 348 270 310 58 171 192 235 340 125 137 285
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\tasks.c
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\list.c
ICCARM
- 162
+ 164
__cstat
- 133
+ 240
BICOMP
@@ -1942,11 +1909,26 @@
ICCARM
- 311 274 129 309 325 339 132 67 94 116 138 154 32 315 51 245 146 294 288 145 96 260 101 23 156 283 176
+ 137 225 136 244 270 310 132 348 119 58 233 171 278 192 235 138 340 125 48 207 285
BICOMP
- 274 32 176 154 101 283 132 309 245 94 138 156 129 67 325 339 315 146 288 145 311 116 51 294 260 96 23
+ 225 192 285 132 244 310 58 233 119 136 348 270 171 235 340 125 137 278 138 207 48
+
+
+
+
+ $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portasm.s
+
+
+ AARM
+ 269
+
+
+
+
+ AARM
+ 171
@@ -1955,40 +1937,52 @@
ICCARM
- 85
+ 65
__cstat
- 238
+ 268
BICOMP
- 75
+ 162
ICCARM
- 311 274 129 309 325 339 132 67 94 116 138 154 32 315 51 245 146 294 288 145 96 260 101 23 57
+ 137 225 136 244 270 310 132 348 140 272 119 58 233 171 278 192 235 138 340 125 48 207 274 285 112
BICOMP
- 260 129 132 101 67 325 51 294 96 339 274 116 32 94 138 57 309 154 315 245 146 288 145 23 311
+ 207 136 132 274 348 270 278 138 48 310 225 272 233 140 119 112 244 58 171 192 235 340 125 285 137
- $PROJ_DIR$\..\Middlewares\Third_Party\FreeRTOS\Source\portable\IAR\ARM_CM4F\portasm.s
+ $PROJ_DIR$\..\Core\Src\position.c
- AARM
- 275
+ ICCARM
+ 343
+
+
+ __cstat
+ 346
+
+
+ BICOMP
+ 86
- AARM
- 315
+ ICCARM
+ 212 225 136 244 270 310 132 140 272 248 141 173 277 239 292 260 251 286 233 298 142 334 125 73 89 167 58 110 152 284 146 109 144 222 261 139 50 347 148 63 57 242 231 134 287 290 303 210 84 82 118 60 211 253 119 171 278 192 235 138 340 48 207 274 285 331 193 111 350 53
+
+
+ BICOMP
+ 233 73 110 141 292 310 125 58 111 132 136 173 211 248 53 225 244 270 277 260 286 148 287 274 192 48 253 140 60 350 272 239 152 146 109 144 139 50 63 242 134 290 210 82 167 251 89 298 142 334 57 303 84 118 171 235 340 285 119 212 284 222 261 347 231 193 331 278 138 207
diff --git a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewp b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewp
index bc59965..e4c14f3 100644
--- a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewp
+++ b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewp
@@ -1074,6 +1074,9 @@
$PROJ_DIR$\..\Core\Src\common.c
+
+ $PROJ_DIR$\..\Core\Src\dau.c
+
$PROJ_DIR$\..\Core\Src\dev_config.c
diff --git a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewt b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewt
index 6e0b00f..d2198de 100644
--- a/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewt
+++ b/CablePositioning_APP_V1.0/EWARM/CableMonitor_APP_V3.2.ewt
@@ -1209,6 +1209,9 @@
$PROJ_DIR$\..\Core\Src\common.c
+
+ $PROJ_DIR$\..\Core\Src\dau.c
+
$PROJ_DIR$\..\Core\Src\dev_config.c
diff --git a/CablePositioning_APP_V1.0/EWARM/settings/Project.wsdt b/CablePositioning_APP_V1.0/EWARM/settings/Project.wsdt
index b265f56..9b139c7 100644
--- a/CablePositioning_APP_V1.0/EWARM/settings/Project.wsdt
+++ b/CablePositioning_APP_V1.0/EWARM/settings/Project.wsdt
@@ -50,7 +50,7 @@
- 33054
- 0
- 33035
- - 33036
+ - 33037
- 34399
- 0
- 33038
@@ -60,7 +60,7 @@
- 258
+ 241
30
30
30
@@ -86,7 +86,7 @@
1
1
1
- DE0700000E00598400000200000040E1000002000000108600001000000056840000020000005F860000030000000F810000010000000C810000B107000055840000020000000E810000060000000B8100000C00000005840000030000004681000001000000108400000A0000000D81000005000000
+ A80800000E0040E10000020000005984000002000000568400000200000010860000100000000F810000010000005F860000030000000C8100007108000055840000020000000E810000060000000B8100000E0000000584000003000000108400001100000046810000010000000D81000006000000
36000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400007784000007840000808C000044D50000538400000088000001880000028800000388000004880000058800001C8F00001D8F00001F8F0000208F0000218F00002AE10000118F000055840000568400005984000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B000002481000040E100000C840000338400007884000011840000008200001C8200000182000067860000
@@ -381,7 +381,7 @@
Main
- 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000000038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000000041000000FFFEFF000000000000000000000000000100000001000000018002810000000000001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000000030000000FFFEFF000000000000000000000000000100000001000000018027810000000000002E000000FFFEFF000000000000000000000000000100000001000000018028810000000000002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000
+ 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000000038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000000041000000FFFEFF000000000000000000000000000100000001000000018002810000000000001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000000030000000FFFEFF000000000000000000000000000100000001000000018027810000000000002E000000FFFEFF000000000000000000000000000100000001000000018028810000000000002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800D8100000000020021000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000
34050
@@ -419,7 +419,7 @@
- 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000030000000200000001000000FFFEFF1A2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C0063006C0069002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF22013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600310035003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0563006C0069002E00630000000000FFFFFFFFFFFFFFFFFFFEFF3D2400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D0061007000010000000180FFFEFF00FFFEFFFF22013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003700380031003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF194300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C006D00610069006E002E006300010000000180FFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00380038003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000001000000020000004E0100004900000080070000CC020000
+ 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000010000000000000001000000FFFEFF3D2400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF23013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0031003500300036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF194300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000001000000020000004E0100004900000080070000CC020000
diff --git a/CablePositioning_IAP_V1.0/EWARM/CableMonitor_V3.2.dep b/CablePositioning_IAP_V1.0/EWARM/CableMonitor_V3.2.dep
index 10d2355..6323fa1 100644
--- a/CablePositioning_IAP_V1.0/EWARM/CableMonitor_V3.2.dep
+++ b/CablePositioning_IAP_V1.0/EWARM/CableMonitor_V3.2.dep
@@ -5,470 +5,470 @@
CableMonitor_V3.2
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
- $PROJ_DIR$\..\Inc\stm32l4xx_it.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr_ex.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
- $PROJ_DIR$\..\Inc\stm32l4xx_hal_conf.h
- $TOOLKIT_DIR$\lib\rt7M_tl.a
- $PROJ_DIR$\..\Src\stm32l4xx_it.c
- $PROJ_DIR$\..\Src\ymodem.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.o
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
- $PROJ_DIR$\..\Src\main.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
- $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.o
+ $PROJ_DIR$\CableMonitor_V3.2\List\CableMonitor_V3.2.map
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_msp.pbi
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc_ex.o
+ $TOOLKIT_DIR$\inc\c\stdint.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\common.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\CableMonitor_V3.2.pbd
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_gpio.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ex.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\main.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_dma.h
+ $TOOLKIT_DIR$\inc\c\iccarm_builtin.h
+ $TOOLKIT_DIR$\inc\c\stdarg.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.o
$PROJ_DIR$\..\Src\system_stm32l4xx.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
- $PROJ_DIR$\..\Src\stm32l4xx_hal_msp.c
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ $PROJ_DIR$\..\Src\menu.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
$PROJ_DIR$\..\Src\common.c
- $PROJ_DIR$\..\Src\menu.c
- $PROJ_DIR$\startup_stm32l496xx.s
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ $PROJ_DIR$\..\Src\stm32l4xx_hal_msp.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
$PROJ_DIR$\..\Src\flash_if.c
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.__cstat.et
+ $PROJ_DIR$\..\Src\main.c
+ $PROJ_DIR$\..\Src\ymodem.c
+ $PROJ_DIR$\startup_stm32l496xx.s
+ $PROJ_DIR$\..\Src\stm32l4xx_it.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\main.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\system_stm32l4xx.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\system_stm32l4xx.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_msp.o
+ $PROJ_DIR$\..\Inc\menu.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\main.__cstat.et
+ $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr_ex.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_it.__cstat.et
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc_ex.__cstat.et
- $TOOLKIT_DIR$\inc\c\ycheck.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart_ex.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\common.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_msp.o
- $TOOLKIT_DIR$\inc\c\DLib_Product_string.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\system_stm32l4xx.__cstat.et
- $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi.__cstat.et
+ $PROJ_DIR$\..\Inc\stm32l4xx_it.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.__cstat.et
+ $TOOLKIT_DIR$\inc\c\ysizet.h
+ $TOOLKIT_DIR$\inc\c\ycheck.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash.__cstat.et
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_def.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.pbi
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_msp.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.__cstat.et
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\main.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_gpio.__cstat.et
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ramfunc.h
- $TOOLKIT_DIR$\lib\shb_l.a
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.o
- $PROJ_DIR$\CableMonitor_V3.2\List\CableMonitor_V3.2.map
+ $PROJ_DIR$\..\Inc\stm32l4xx_hal_conf.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.pbi
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\common.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_dma.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\system_stm32l4xx.o
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_gpio.o
- $TOOLKIT_DIR$\inc\c\iccarm_builtin.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\CableMonitor_V3.2.pbd
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_msp.pbi
- $TOOLKIT_DIR$\inc\c\stdint.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\main.o
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_gpio_ex.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_gpio.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_gpio.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc_ex.__cstat.et
+ $TOOLKIT_DIR$\inc\c\DLib_Product_string.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.o
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.__cstat.et
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ex.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.o
- $TOOLKIT_DIR$\inc\c\stdarg.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.pbi
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.pbi
- $PROJ_DIR$\..\Inc\flash_if.h
- $TOOLKIT_DIR$\lib\dl7M_tlf.a
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash_ramfunc.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_uart_ex.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\common.__cstat.et
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr.__cstat.et
+ $TOOLKIT_DIR$\lib\shb_l.a
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.__cstat.et
+ $TOOLKIT_DIR$\inc\c\stddef.h
$PROJ_DIR$\..\Inc\main.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.pbi
$PROJ_DIR$\stm32l496xx_flash.icf
- $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\system_stm32l4xx.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_it.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart_ex.pbi
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi_ex.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\common.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_it.pbi
+ $TOOLKIT_DIR$\lib\dl7M_tlf.a
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.__cstat.et
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc_ex.h
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_flash.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.o
+ $PROJ_DIR$\CableMonitor_V3.2\Exe\CableMonitor_V3.2.bin
+ $PROJ_DIR$\..\Inc\ymodem.h
$PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_version.h
- $TOOLKIT_DIR$\inc\c\stdio.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal.h
+ $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l496xx.h
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_cortex.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\startup_stm32l496xx.o
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_pwr.h
+ $TOOLKIT_DIR$\inc\c\stdio.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart_ex.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.__cstat.et
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_it.o
$PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.o
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_exti.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma_ex.pbi
- $TOOLKIT_DIR$\inc\c\string.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_uart_ex.pbi
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.pbi
- $TOOLKIT_DIR$\inc\c\stddef.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc_ex.h
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr_ex.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\flash_if.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi_ex.__cstat.et
- $TOOLKIT_DIR$\inc\c\ysizet.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.pbi
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
+ $PROJ_DIR$\CableMonitor_V3.2\Exe\CableMonitor_V3.2.out
+ $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\system_stm32l4xx.h
+ $TOOLKIT_DIR$\inc\c\string.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.o
$TOOLKIT_DIR$\inc\c\yvals.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_spi.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\ymodem.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.__cstat.et
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\system_stm32l4xx.pbi
- $PROJ_DIR$\..\Inc\menu.h
- $PROJ_DIR$\..\Inc\common.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.o
+ $TOOLKIT_DIR$\lib\m7M_tls.a
$TOOLKIT_DIR$\inc\c\DLib_Product.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_def.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.pbi
- $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\main.pbi
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_rcc_ex.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.__cstat.et
$PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash.pbi
- $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h
- $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
- $PROJ_DIR$\CableMonitor_V3.2\Exe\CableMonitor_V3.2.out
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_tim_ex.o
$PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h
- $TOOLKIT_DIR$\lib\m7M_tls.a
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_i2c_ex.pbi
+ $PROJ_DIR$\..\Inc\common.h
+ $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal.h
+ $PROJ_DIR$\..\Inc\flash_if.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\menu.__cstat.et
$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_rcc.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_pwr.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\common.o
- $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l496xx.h
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Inc\stm32l4xx_hal_spi_ex.h
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.o
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal.o
- $PROJ_DIR$\CableMonitor_V3.2\Exe\CableMonitor_V3.2.bin
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_it.pbi
- $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_cortex.pbi
- $PROJ_DIR$\..\Inc\ymodem.h
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_exti.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_dma.pbi
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\startup_stm32l496xx.o
+ $PROJ_DIR$\CableMonitor_V3.2\Obj\stm32l4xx_hal_flash_ramfunc.o
[ROOT_NODE]
ILINK
- 159 72
+ 151 11
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
ICCARM
- 108
+ 10
__cstat
- 51
+ 78
BICOMP
- 172
+ 133
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 57 149 157 3 119 115 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 27 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
ICCARM
- 102
+ 148
__cstat
- 38
+ 58
BICOMP
- 125
+ 18
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 149 119 81 115 157 3 57 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 27 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
ICCARM
- 82
+ 160
__cstat
- 43
+ 112
BICOMP
- 100
+ 71
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 57 81 149 157 3 119 115 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 89 25 79 131 139 165 66 140 27 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Src\stm32l4xx_it.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
ICCARM
- 111
+ 161
__cstat
- 37
+ 87
BICOMP
- 171
+ 80
ICCARM
- 107 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 1
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 119 149 115 41 57 138 89 5 129 128 86 161 148 151 1 163 73 75 116 121 112 118 101 78 97 166 110 113 15 158 136 68 167 107 157 81 96 3 42
+ 25 27 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Src\ymodem.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
ICCARM
- 98
+ 142
__cstat
- 140
+ 68
BICOMP
- 59
+ 120
ICCARM
- 104 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 146 173 123 48 107 145
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 5 57 138 104 107 149 119 115 48 173 129 128 86 157 81 41 3 146 123 145 163 73 75 116 121 112 118 101 78 97 166 110 96 42 136 113 161 15 158 148 151 89 68 167
+ 79 146 25 166 165 66 111 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
ICCARM
- 168
+ 6
__cstat
- 49
+ 100
BICOMP
- 137
+ 108
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 5 81 149 129 86 157 3 128 41 119 115 57 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 139 25 131 79 89 165 66 140 27 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
ICCARM
- 50
+ 154
__cstat
- 155
+ 93
BICOMP
- 133
+ 128
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 101 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 111 79 165 66 146 166 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
ICCARM
- 147
+ 57
__cstat
- 54
+ 72
BICOMP
- 150
+ 170
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 101 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 24 25 9 79 121 165 66 169 147 98 152 74 89 140 131 27 139 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
ICCARM
- 76
+ 143
__cstat
- 64
+ 129
BICOMP
- 83
+ 20
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 166 81 112 149 73 157 3 116 101 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 140 25 79 27 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Src\main.c
+ $PROJ_DIR$\..\Src\system_stm32l4xx.c
ICCARM
- 88
+ 90
__cstat
- 66
+ 55
BICOMP
- 153
+ 56
ICCARM
- 107 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 146 104
+ 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 166 84 169 79 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 149 115 119 41 5 57 138 89 104 129 128 86 161 148 151 146 163 73 75 116 121 112 118 101 78 97 166 110 113 15 158 136 68 167 107 157 81 96 3 42
+ 166 165 79 25 146 66 111 74 16 155 139 152 84 130 116 22 105 138 162 64 150 157 81 169 89 24 140 147 131 121 27 98 9 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
ICCARM
- 120
+ 149
__cstat
- 62
+ 69
BICOMP
@@ -478,506 +478,506 @@
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 129 86 149 5 157 3 128 41 119 115 57 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 116 79 130 16 84 146 166 111 155 22 105 169 89 24 140 147 131 121 27 98 9 139 152 165 25 74 66 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
ICCARM
- 53
+ 31
__cstat
- 61
+ 114
BICOMP
- 156
+ 0
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 73 81 149 112 166 157 3 116 101 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 111 25 79 165 66 146 166 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
ICCARM
- 152
+ 15
__cstat
- 142
+ 95
BICOMP
- 160
+ 158
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 75 81 97 149 118 157 3 163 121 78 110 41 73 116 112 101 166 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 166 25 79 146 165 66 111 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
ICCARM
- 126
+ 99
__cstat
- 134
+ 101
BICOMP
- 87
+ 88
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 101 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 166 79 146 165 66 111 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Src\system_stm32l4xx.c
+ $PROJ_DIR$\..\Src\menu.c
ICCARM
- 79
+ 29
__cstat
- 56
+ 168
BICOMP
- 144
+ 132
ICCARM
- 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 115 5 163 149 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 117 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 164 167 61 137
BICOMP
- 115 157 149 81 119 3 57 41 86 138 166 110 5 129 128 96 42 113 161 15 158 148 151 163 73 75 116 121 112 118 101 78 97 136 89 68 167
+ 79 131 137 139 89 74 140 27 155 92 167 169 24 147 121 98 9 152 162 157 81 164 61 166 84 130 146 116 111 16 138 64 150 73 104 122 117 165 25 22 66 105
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
ICCARM
- 91
+ 173
__cstat
- 135
+ 75
BICOMP
- 55
+ 118
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 57 149 157 3 119 115 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 130 16 79 84 165 66 116 74 146 166 111 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
ICCARM
- 169
+ 91
__cstat
- 65
+ 94
BICOMP
- 95
+ 21
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 101 81 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 139 25 131 79 89 165 66 140 27 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Src\stm32l4xx_hal_msp.c
+ $PROJ_DIR$\..\Src\common.c
ICCARM
- 47
+ 123
__cstat
- 63
+ 110
BICOMP
- 85
+ 17
ICCARM
- 107 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 141 74 155 64 150 157 73 153 96 117 166 84 169 79 146 139 111 16 138 162 81 25 165 152 9 116 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 61 167 137 164
BICOMP
- 78 81 163 149 121 110 157 3 75 118 97 41 115 73 116 112 101 166 138 5 129 119 128 57 86 96 42 107 113 161 15 158 148 151 136 89 68 167
+ 79 155 152 96 61 74 92 26 167 73 166 84 9 138 16 153 117 164 64 150 157 169 89 24 140 147 131 121 27 98 139 162 81 104 122 141 130 146 116 111 165 25 22 66 105 137
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
ICCARM
- 90
+ 109
__cstat
- 40
+ 144
BICOMP
- 154
+ 86
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 115 81 149 119 157 3 57 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 111 79 165 66 146 166 74 84 130 116 16 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
ICCARM
- 130
+ 59
__cstat
- 139
+ 107
BICOMP
- 106
+ 65
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 128 149 129 86 5 119 115 57 138 96 42 163 73 75 116 121 112 118 101 78 97 166 110 157 81 41 3 113 161 15 158 148 151 136 89 68 167
+ 25 27 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ $PROJ_DIR$\..\Src\stm32l4xx_hal_msp.c
ICCARM
- 58
+ 60
__cstat
- 44
+ 82
BICOMP
- 94
+ 13
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 117 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 115 149 119 157 3 57 41 5 129 128 86 138 163 73 75 116 121 112 118 101 78 97 166 110 96 42 113 161 15 158 148 151 136 89 68 167
+ 98 25 169 79 147 152 165 66 24 121 9 74 166 89 140 131 27 139 155 84 130 146 116 111 16 22 105 117 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
ICCARM
- 143
+ 97
__cstat
- 39
+ 62
BICOMP
- 23
+ 163
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 81 101 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 25 27 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
ICCARM
- 164
+ 135
__cstat
- 52
+ 115
BICOMP
- 60
+ 171
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 73 81 149 112 166 157 3 116 101 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 84 25 79 130 16 165 66 116 74 146 166 111 155 169 89 24 140 147 131 121 27 98 9 139 152 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
ICCARM
- 80
+ 106
__cstat
- 67
+ 76
BICOMP
- 93
+ 159
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 166 81 112 149 73 157 3 116 101 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 89 25 79 131 139 165 66 140 27 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ $PROJ_DIR$\..\Src\flash_if.c
ICCARM
- 124
+ 30
__cstat
- 131
+ 102
BICOMP
- 77
+ 134
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 117 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 164 167
BICOMP
- 116 81 149 101 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 79 130 16 74 116 155 92 167 166 84 146 111 162 157 81 164 169 89 24 140 147 131 121 27 98 9 139 152 138 64 150 73 104 122 117 165 25 22 66 105
- $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ $PROJ_DIR$\..\Src\main.c
ICCARM
- 70
+ 23
__cstat
- 36
+ 63
BICOMP
- 122
+ 54
ICCARM
- 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42
+ 117 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 164 167
BICOMP
- 81 101 149 116 157 3 73 112 166 41 163 75 121 118 78 97 110 138 5 129 119 128 115 57 86 96 42 113 161 15 158 148 151 136 89 68 167
+ 79 166 146 74 84 111 155 92 167 130 116 16 162 157 81 164 169 89 24 140 147 131 121 27 98 9 139 152 138 64 150 73 104 122 117 165 25 22 66 105
- $PROJ_DIR$\..\Src\common.c
+ $PROJ_DIR$\..\Src\ymodem.c
ICCARM
- 165
+ 12
__cstat
- 46
+ 53
BICOMP
- 74
+ 85
ICCARM
- 114 41 138 15 158 148 136 123 48 107 115 5 163 149 119 166 57 86 113 161 151 81 157 110 97 128 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 145 104 173 146
+ 167 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 164 137 153 96 117 61
BICOMP
- 149 138 110 48 145 41 89 99 104 136 115 5 97 113 86 123 107 146 15 158 148 163 73 75 116 121 112 118 101 78 166 161 151 68 167 114 129 119 128 57 157 81 96 3 42 173
+ 84 111 155 167 117 79 146 166 96 137 130 116 16 165 25 74 66 164 153 61 169 89 24 140 147 131 121 27 98 9 139 152 22 105 73 138 162 64 150 157 81 92 104 122
- $PROJ_DIR$\..\Src\menu.c
+ $PROJ_DIR$\startup_stm32l496xx.s
+
+
+ AARM
+ 172
+
+
+
+
+ $PROJ_DIR$\..\Src\stm32l4xx_it.c
ICCARM
- 92
+ 145
__cstat
- 141
+ 67
BICOMP
- 103
+ 125
ICCARM
- 107 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 146 104 145 173
+ 117 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105 70
BICOMP
- 149 112 173 166 73 41 116 101 138 89 104 163 75 121 118 78 97 110 161 148 151 146 145 115 5 129 119 128 57 86 113 15 158 136 68 167 107 157 81 96 3 42
+ 146 79 166 74 111 155 92 84 130 116 16 162 157 81 70 169 89 24 140 147 131 121 27 98 9 139 152 138 64 150 73 104 122 117 165 25 22 66 105
- $PROJ_DIR$\startup_stm32l496xx.s
-
-
- AARM
- 117
-
-
-
-
- $PROJ_DIR$\..\Src\flash_if.c
+ $PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
ICCARM
- 71
+ 124
__cstat
- 45
+ 83
BICOMP
- 132
+ 103
ICCARM
- 107 115 5 163 149 119 166 57 86 41 138 15 158 148 113 161 151 81 157 110 97 128 136 129 73 89 75 116 121 112 96 68 118 3 101 167 78 42 146 104
+ 166 84 169 79 146 139 111 16 74 155 64 150 157 138 162 81 25 165 152 9 116 73 130 89 92 24 140 147 131 22 104 121 66 27 122 98 105
BICOMP
- 149 129 86 41 128 138 89 104 115 5 119 57 161 148 151 146 163 73 75 116 121 112 118 101 78 97 166 110 113 15 158 136 68 167 107 157 81 96 3 42
+ 27 25 79 140 165 66 89 131 139 74 169 24 147 121 98 9 152 155 84 130 146 116 166 111 16 22 105 138 162 64 150 157 81 73 92 104 122
@@ -986,17 +986,17 @@
ILINK
- 72
+ 11
OBJCOPY
- 170
+ 136
ILINK
- 109 165 71 88 92 117 169 108 168 70 152 53 58 120 80 143 50 47 164 124 82 90 130 91 126 147 76 102 111 79 98 69 6 162 105
+ 119 123 30 23 29 172 124 154 135 10 57 106 99 173 91 59 97 60 160 143 31 15 149 109 148 161 6 142 145 90 12 113 77 156 126
diff --git a/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dbgdt b/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dbgdt
index 9443675..a7c5d2b 100644
--- a/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dbgdt
+++ b/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dbgdt
@@ -149,7 +149,7 @@
14
- 24
+ 38
1
@@ -159,16 +159,16 @@
1
1
1
- 670000001300598400000100000010860000260000005684000001000000488100000200000020810000070000000F8100000100000026DE0000010000000C8100000C00000055840000030000000E8400000600000028DE0000020000000E8100000D0000001F810000030000000B81000001000000D18400000200000005840000010000001186000004000000468100000E0000001084000002000000
+ 68000000130059840000010000004881000002000000568400000100000010860000260000000F8100000100000020810000070000000C8100000C00000026DE00000100000055840000030000000E840000060000001F810000030000000E8100000D00000028DE0000020000000B810000010000000584000001000000D18400000200000011860000040000001084000002000000468100000F000000
0F007784000007840000FFFFFFFF808C000044D500005584000056840000598400000D8400000F8400000884000054840000328100001C81000009840000
- 1300048400007E00000031840000850000000F81000055000000208100005D0000000C810000520000000684000080000000038400007D00000030840000830000000E840000810000000E810000540000001F8100005C0000000B81000050000000058400007F000000D18400001F000000028400007C000000328400008600000010840000830000000D810000520000000A84000081000000
+ 1300048400007E0000003184000085000000208100005D0000000F810000550000000C810000520000000684000080000000038400007D0000000E8400008100000030840000830000001F8100005C0000000E810000540000000B81000050000000D18400001F000000058400007F000000028400007C000000108400008300000032840000860000000A840000810000000D81000052000000
0
0A0000000A0000006E0000006E000000
- 00000000E603000080070000F9030000
+ 00000000DE03000080070000F1030000
4096
0
0
@@ -207,8 +207,8 @@
4294967295
- 020100002302000090050000D4020000
- 020100003503000080070000E6030000
+ 020100004C03000080070000FD030000
+ 020100002D03000080070000DE030000
4096
0
0
@@ -221,7 +221,7 @@
34054
000000001700000022010000C8000000
- 060100004D0300007C070000CC030000
+ 06010000450300007C070000C4030000
32768
0
0
@@ -247,7 +247,7 @@
34065
000000001700000022010000C8000000
- 060100004D0300007C070000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -260,7 +260,7 @@
34071
000000001700000022010000C8000000
- 060100004D0300007C070000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -273,7 +273,7 @@
34072
000000001700000022010000C8000000
- 060100004D0300008C050000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -286,7 +286,7 @@
34073
000000001700000022010000C8000000
- 060100004D0300008C050000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -299,7 +299,7 @@
34093
000000001700000022010000C8000000
- 060100004D0300008C050000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -312,7 +312,7 @@
34104
000000001700000022010000C8000000
- 060100004D0300008C050000CC030000
+ 06010000450300007C070000C4030000
4096
0
0
@@ -338,7 +338,7 @@
34056
DEFFFFFFFC010000E40000005D030000
- 0000000032000000FE00000012020000
+ 0000000032000000FE0000000E020000
4096
0
0
@@ -512,7 +512,7 @@
34069
D4FFFFFF28020000DA00000089030000
- 0000000016020000FE000000E6030000
+ 0000000012020000FE000000DE030000
16384
0
0
@@ -993,7 +993,7 @@
34109
00000000170000000601000078010000
- 02010000320000000802000031030000
+ 02010000320000000802000029030000
4096
0
0
@@ -1004,7 +1004,7 @@
1
- 000000001D000000000000000010000001000000FFFFFFFFFFFFFFFF08020000320000000C020000310300000100000002000010040000000100000000000000000000003D85000000000000000000000000000000000000010000003D850000010000003D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002F85000000000000000000000000000000000000010000002F850000010000002F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002E85000000000000000000000000000000000000010000002E850000010000002E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000001000000FFFFFFFFFFFFFFFF02010000310300008007000035030000010000000100001004000000010000000000000000000000FFFFFFFF0700000006850000118500001785000018850000198500002D85000038850000FFFF02000B004354616262656450616E650080000001000000020100002302000090050000D4020000020100003503000080070000E6030000000000004080005607000000FFFEFF054200750069006C006400010000000685000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000001185000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300010000001785000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000001885000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000001985000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000002D85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000003885000001000000FFFFFFFFFFFFFFFF02000000000000000000000000000000000000000000000001000000FFFFFFFF0685000001000000FFFFFFFF06850000000000000080000000000000FFFFFFFFFFFFFFFF00000000210300008007000025030000000000000100000004000000010000000000000000000000FFFFFFFF040000002185000022850000238500002485000001800080000000000000000000003C03000080070000FD030000000000002503000080070000E6030000000000004080004604000000FFFEFF084D0065006D006F007200790020003100000000002185000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003200000000002285000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003300000000002385000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003400000000002485000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF2185000001000000FFFFFFFF21850000000000000080000000000000FFFFFFFFFFFFFFFF00000000510300008007000055030000000000000100000004000000010000000000000000000000FFFFFFFF020000000A8500002685000001800080000000000000000000006C03000080070000FD030000000000005503000080070000E6030000000000004080004602000000FFFEFF0F43006F0064006500200043006F0076006500720061006700650020002A00000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF11460075006E006300740069006F006E002000500072006F00660069006C0065007200000000002685000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF0A85000001000000FFFFFFFF0A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000418500000000000000000000000000000000000001000000418500000100000041850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000408500000000000000000000000000000000000001000000408500000100000040850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000003F85000000000000000000000000000000000000010000003F850000010000003F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000003E85000000000000000000000000000000000000010000003E850000010000003E850000000000000080000000000000FFFFFFFFFFFFFFFF000000009C02000080070000A0020000000000000100000004000000010000000000000000000000FFFFFFFF01000000428500000180008000000000000000000000B7020000800700004803000000000000A00200008007000031030000000000004080004601000000FFFEFF09450054004D00200054007200610063006500000000004285000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF4285000001000000FFFFFFFF42850000000000000010000001000000FFFFFFFFFFFFFFFFFE0000003200000002010000E60300000100000002000010040000000100000000000000000000000000000000000000000000000100000000000000000000000000000001000000088500001585000001000000000000000100000001000000FFFFFFFF0000000012020000FE0000001602000001000000010000100400000000000000C3FEFFFF8F010000000000000000000000000000000000000200000008850000158500000100000015850000010000000885000025000000FFFF02001200434D756C746950616E654672616D65576E6400010084000000001700000006010000780100000000000000000000020000000000000004850000000000000000000000000000000000000100000004850000068000010084000000001700000022010000C80000000000000000000000020000000000000005850000000000000000000000000000000000000100000005850000068000010084000000001700000022010000C8000000000000000000000002000000000000000B85000000000000000000000000000000000000010000000B850000068000010084000000001700000022010000C8000000000000000000000002000000000000000C85000000000000000000000000000000000000010000000C850000068000010084000000001700000022010000C8000000000000000000000002000000000000000E85000000000000000000000000000000000000010000000E850000068000010084000000001700000022010000C8000000000000000000000002000000000000000F85000000000000000000000000000000000000010000000F850000068000010084000000001700000006010000780100000000000000000000020000000000000010850000000000000000000000000000000000000100000010850000068000010084000000001700000006010000780100000000000000000000020000000000000012850000000000000000000000000000000000000100000012850000068000010084000000001700000022010000C80000000000000000000000020000000000000013850000000000000000000000000000000000000100000013850000068000010084000000001700000022010000C80000000000000000000000020000000000000014850000000000000000000000000000000000000100000014850000068000010084000000001700000022010000C80000000000000000000000020000000000000016850000000000000000000000000000000000000100000016850000068000010084000000001700000022010000C8000000000000000000000002000000000000001A85000000000000000000000000000000000000010000001A850000068000010084000000001700000022010000C8000000000000000000000002000000000000001B85000000000000000000000000000000000000010000001B850000068000010084000000001700000022010000C8000000000000000000000002000000000000001C85000000000000000000000000000000000000010000001C850000068000010084000000001700000022010000C8000000000000000000000002000000000000001D85000000000000000000000000000000000000010000001D85000006800001008400000000170000000601000078010000000000000000000002000000000000001E85000000000000000000000000000000000000010000001E85000006800001008400000000170000000601000078010000000000000000000002000000000000001F85000000000000000000000000000000000000010000001F850000068000010084000000001700000006010000780100000000000000000000020000000000000020850000000000000000000000000000000000000100000020850000068000010084000000001700000022010000C8000000000000000000000002000000000000002585000000000000000000000000000000000000010000002585000006800001008400000000170000000601000078010000000000000000000002000000000000002785000000000000000000000000000000000000010000002785000006800001008400000000170000000601000078010000000000000000000002000000000000002885000000000000000000000000000000000000010000002885000006800001008400000000170000000601000078010000000000000000000002000000000000002985000000000000000000000000000000000000010000002985000006800001008400000000170000000601000078010000000000000000000002000000000000002A85000000000000000000000000000000000000010000002A85000006800001008400000000170000000601000078010000000000000000000002000000000000002B85000000000000000000000000000000000000010000002B85000006800001008400000000170000000601000078010000000000000000000002000000000000002C85000000000000000000000000000000000000010000002C850000068000010084000000001700000006010000780100000000000000000000020000000000000030850000000000000000000000000000000000000100000030850000068000010084000000001700000006010000780100000000000000000000020000000000000031850000000000000000000000000000000000000100000031850000068000010084000000001700000006010000780100000000000000000000020000000000000032850000000000000000000000000000000000000100000032850000068000010084000000001700000006010000780100000000000000000000020000000000000033850000000000000000000000000000000000000100000033850000068000010084000000001700000022010000C800000000000000000000000200000000000000348500000000000000000000000000000000000001000000348500000680000100840000000017000000060100007801000000000000000000000200000000000000358500000000000000000000000000000000000001000000358500000680000100840000000017000000AE010000D800000000000000000000000200000000000000368500000000000000000000000000000000000001000000368500000680000100840000000017000000AE010000D8000000000000000000000002000000000000003785000000000000000000000000000000000000010000003785000006800001008400000000170000000601000078010000000000000000000002000000000000003985000000000000000000000000000000000000010000003985000006800001008400000000170000000601000078010000000000000000000002000000000000003A85000000000000000000000000000000000000010000003A85000006800001008400000000170000000601000078010000000000000000000002000000000000003B85000000000000000000000000000000000000010000003B85000006800001008400000000170000000601000078010000000000000000000002000000000000003C85000000000000000000000000000000000000010000003C8500000000000000000000
+ 000000001D000000000000000010000001000000FFFFFFFFFFFFFFFF08020000320000000C020000290300000100000002000010040000000100000000000000000000003D85000000000000000000000000000000000000010000003D850000010000003D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002F85000000000000000000000000000000000000010000002F850000010000002F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002E85000000000000000000000000000000000000010000002E850000010000002E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000001000000FFFFFFFFFFFFFFFF0201000029030000800700002D030000010000000100001004000000010000000000000000000000FFFFFFFF0700000006850000118500001785000018850000198500002D85000038850000FFFF02000B004354616262656450616E650080000001000000020100004C03000080070000FD030000020100002D03000080070000DE030000000000004080005607000000FFFEFF054200750069006C006400010000000685000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000001185000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300010000001785000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000001885000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000001985000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000002D85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000003885000001000000FFFFFFFFFFFFFFFF02000000000000000000000000000000000000000000000001000000FFFFFFFF0685000001000000FFFFFFFF06850000000000000080000000000000FFFFFFFFFFFFFFFF00000000210300008007000025030000000000000100000004000000010000000000000000000000FFFFFFFF040000002185000022850000238500002485000001800080000000000000000000003C03000080070000FD030000000000002503000080070000E6030000000000004080004604000000FFFEFF084D0065006D006F007200790020003100000000002185000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003200000000002285000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003300000000002385000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003400000000002485000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF2185000001000000FFFFFFFF21850000000000000080000000000000FFFFFFFFFFFFFFFF00000000510300008007000055030000000000000100000004000000010000000000000000000000FFFFFFFF020000000A8500002685000001800080000000000000000000006C03000080070000FD030000000000005503000080070000E6030000000000004080004602000000FFFEFF0F43006F0064006500200043006F0076006500720061006700650020002A00000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF11460075006E006300740069006F006E002000500072006F00660069006C0065007200000000002685000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF0A85000001000000FFFFFFFF0A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000418500000000000000000000000000000000000001000000418500000100000041850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000408500000000000000000000000000000000000001000000408500000100000040850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000003F85000000000000000000000000000000000000010000003F850000010000003F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000003E85000000000000000000000000000000000000010000003E850000010000003E850000000000000080000000000000FFFFFFFFFFFFFFFF000000009C02000080070000A0020000000000000100000004000000010000000000000000000000FFFFFFFF01000000428500000180008000000000000000000000B7020000800700004803000000000000A00200008007000031030000000000004080004601000000FFFEFF09450054004D00200054007200610063006500000000004285000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF4285000001000000FFFFFFFF42850000000000000010000001000000FFFFFFFFFFFFFFFFFE0000003200000002010000DE0300000100000002000010040000000100000000000000000000000000000000000000000000000100000000000000000000000000000001000000088500001585000001000000000000000100000001000000FFFFFFFF000000000E020000FE0000001202000001000000010000100400000000000000C3FEFFFF8F010000000000000000000000000000000000000200000008850000158500000100000015850000010000000885000025000000FFFF02001200434D756C746950616E654672616D65576E6400010084000000001700000006010000780100000000000000000000020000000000000004850000000000000000000000000000000000000100000004850000068000010084000000001700000022010000C80000000000000000000000020000000000000005850000000000000000000000000000000000000100000005850000068000010084000000001700000022010000C8000000000000000000000002000000000000000B85000000000000000000000000000000000000010000000B850000068000010084000000001700000022010000C8000000000000000000000002000000000000000C85000000000000000000000000000000000000010000000C850000068000010084000000001700000022010000C8000000000000000000000002000000000000000E85000000000000000000000000000000000000010000000E850000068000010084000000001700000022010000C8000000000000000000000002000000000000000F85000000000000000000000000000000000000010000000F850000068000010084000000001700000006010000780100000000000000000000020000000000000010850000000000000000000000000000000000000100000010850000068000010084000000001700000006010000780100000000000000000000020000000000000012850000000000000000000000000000000000000100000012850000068000010084000000001700000022010000C80000000000000000000000020000000000000013850000000000000000000000000000000000000100000013850000068000010084000000001700000022010000C80000000000000000000000020000000000000014850000000000000000000000000000000000000100000014850000068000010084000000001700000022010000C80000000000000000000000020000000000000016850000000000000000000000000000000000000100000016850000068000010084000000001700000022010000C8000000000000000000000002000000000000001A85000000000000000000000000000000000000010000001A850000068000010084000000001700000022010000C8000000000000000000000002000000000000001B85000000000000000000000000000000000000010000001B850000068000010084000000001700000022010000C8000000000000000000000002000000000000001C85000000000000000000000000000000000000010000001C850000068000010084000000001700000022010000C8000000000000000000000002000000000000001D85000000000000000000000000000000000000010000001D85000006800001008400000000170000000601000078010000000000000000000002000000000000001E85000000000000000000000000000000000000010000001E85000006800001008400000000170000000601000078010000000000000000000002000000000000001F85000000000000000000000000000000000000010000001F850000068000010084000000001700000006010000780100000000000000000000020000000000000020850000000000000000000000000000000000000100000020850000068000010084000000001700000022010000C8000000000000000000000002000000000000002585000000000000000000000000000000000000010000002585000006800001008400000000170000000601000078010000000000000000000002000000000000002785000000000000000000000000000000000000010000002785000006800001008400000000170000000601000078010000000000000000000002000000000000002885000000000000000000000000000000000000010000002885000006800001008400000000170000000601000078010000000000000000000002000000000000002985000000000000000000000000000000000000010000002985000006800001008400000000170000000601000078010000000000000000000002000000000000002A85000000000000000000000000000000000000010000002A85000006800001008400000000170000000601000078010000000000000000000002000000000000002B85000000000000000000000000000000000000010000002B85000006800001008400000000170000000601000078010000000000000000000002000000000000002C85000000000000000000000000000000000000010000002C850000068000010084000000001700000006010000780100000000000000000000020000000000000030850000000000000000000000000000000000000100000030850000068000010084000000001700000006010000780100000000000000000000020000000000000031850000000000000000000000000000000000000100000031850000068000010084000000001700000006010000780100000000000000000000020000000000000032850000000000000000000000000000000000000100000032850000068000010084000000001700000006010000780100000000000000000000020000000000000033850000000000000000000000000000000000000100000033850000068000010084000000001700000022010000C800000000000000000000000200000000000000348500000000000000000000000000000000000001000000348500000680000100840000000017000000060100007801000000000000000000000200000000000000358500000000000000000000000000000000000001000000358500000680000100840000000017000000AE010000D800000000000000000000000200000000000000368500000000000000000000000000000000000001000000368500000680000100840000000017000000AE010000D8000000000000000000000002000000000000003785000000000000000000000000000000000000010000003785000006800001008400000000170000000601000078010000000000000000000002000000000000003985000000000000000000000000000000000000010000003985000006800001008400000000170000000601000078010000000000000000000002000000000000003A85000000000000000000000000000000000000010000003A85000006800001008400000000170000000601000078010000000000000000000002000000000000003B85000000000000000000000000000000000000010000003B85000006800001008400000000170000000601000078010000000000000000000002000000000000003C85000000000000000000000000000000000000010000003C8500000000000000000000
CMSIS-Pack
@@ -1025,7 +1025,7 @@
Debug
- 00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000040035000000FFFEFF0000000000000000000000000001000000010000000180138600000000040031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000040037000000FFFEFF0000000000000000000000000001000000010000000180608600000000040039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000040036000000FFFEFF000000000000000000000000000100000001000000018010860000000004002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000000030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000040032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000020009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000
+ 00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000000035000000FFFEFF0000000000000000000000000001000000010000000180138600000000000031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000000037000000FFFEFF0000000000000000000000000001000000010000000180608600000000000039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000000036000000FFFEFF000000000000000000000000000100000001000000018010860000000000002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000040030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000000032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000020009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000
34049
@@ -1059,7 +1059,7 @@
Main
- 00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000066000000FFFEFF000000000000000000000000000100000001000000018001E100000000000067000000FFFEFF000000000000000000000000000100000001000000018003E100000000000069000000FFFEFF000000000000000000000000000100000001000000018000810000000000004A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006C000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006D000000FFFEFF000000000000000000000000000100000001000000018025E100000000000070000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040073000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040074000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005D000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006F000000FFFEFF000000000000000000000000000100000001000000018028E100000000040071000000FFFEFF000000000000000000000000000100000001000000018029E100000000000072000000FFFEFF000000000000000000000000000100000001000000018002810000000000004C000000FFFEFF0000000000000000000000000001000000010000000180298100000000000061000000FFFEFF000000000000000000000000000100000001000000018027810000000000005F000000FFFEFF0000000000000000000000000001000000010000000180288100000000000060000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040059000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000050000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000051000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000065000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005B000000FFFEFF000000000000000000000000000100000001000000018020810000000000005C000000FFFEFF0000000000000000000000000001000000010000000180468100000000000063000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000
+ 00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000066000000FFFEFF000000000000000000000000000100000001000000018001E100000000000067000000FFFEFF000000000000000000000000000100000001000000018003E100000000000069000000FFFEFF000000000000000000000000000100000001000000018000810000000000004A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006C000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006D000000FFFEFF000000000000000000000000000100000001000000018025E100000000040070000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040073000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040074000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005D000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006F000000FFFEFF000000000000000000000000000100000001000000018028E100000000040071000000FFFEFF000000000000000000000000000100000001000000018029E100000000000072000000FFFEFF000000000000000000000000000100000001000000018002810000000000004C000000FFFEFF0000000000000000000000000001000000010000000180298100000000000061000000FFFEFF000000000000000000000000000100000001000000018027810000000000005F000000FFFEFF0000000000000000000000000001000000010000000180288100000000000060000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040059000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000050000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000051000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000065000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005B000000FFFEFF000000000000000000000000000100000001000000018020810000000000005C000000FFFEFF0000000000000000000000000001000000010000000180468100000000020063000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000
34051
diff --git a/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dnx b/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dnx
index 93fd3d4..bbbe377 100644
--- a/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dnx
+++ b/CablePositioning_IAP_V1.0/EWARM/settings/CableMonitor_V3.2.dnx
@@ -24,7 +24,7 @@
_ 0
- 1720255418
+ 2205211107
D:\Work\CablePositioning\Code\CablePositioningV1.0\CablePositioning_APP_V1.0\EWARM\CableMonitor_APP_V3.2\Exe\CableMonitor_APP_V3.2.out
diff --git a/CablePositioning_IAP_V1.0/EWARM/settings/Project.wsdt b/CablePositioning_IAP_V1.0/EWARM/settings/Project.wsdt
index 6ab9c7f..166f33f 100644
--- a/CablePositioning_IAP_V1.0/EWARM/settings/Project.wsdt
+++ b/CablePositioning_IAP_V1.0/EWARM/settings/Project.wsdt
@@ -62,7 +62,7 @@
- 437
+ 278
30
30
30
@@ -90,11 +90,11 @@
1
1
1
- 6B010000130059840000010000004881000005000000568400000300000010860000010000000F8100000400000020810000010000000C8100009200000026DE000001000000558400008E0000000E840000060000001F810000010000000E8100002B00000028DE0000020000000B810000020000000584000003000000D1840000020000001186000001000000108400000A0000004681000001000000
+ 72010000130059840000010000004881000005000000568400000300000010860000010000000F8100000400000020810000010000000C8100009300000026DE00000100000055840000910000000E840000060000001F810000010000000E8100002E00000028DE0000020000000B810000020000000584000003000000D1840000020000001186000001000000108400000A0000004681000001000000
30007784000007840000FFFFFFFF808C000044D500000D8400000F8400000884000054840000328100001C810000098400001C8F00001D8F00001F8F0000208F0000218F00002AE10000118F000055840000568400005984000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E9200001D9200000C840000338400007884000011840000488100000100000053840000
- 1C00048400004C0000000481000018000000239200000000000031840000530000000F81000023000000208100002B0000000C81000020000000068400004E000000038400004B000000008400000B000000449200001000000030840000520000000E840000500000001F9200000D0000000E810000220000001F8100002A0000002D9200000F0000000B8100001F00000022E1000038000000D18400000C000000058400004D0000000581000019000000028400004A000000328400005400000010840000510000000D810000210000000A8400004F0000002C9200000E000000
+ 1C00048400004C000000048100001800000031840000530000002392000000000000208100002B0000000F810000230000000C81000020000000068400004E000000038400004B000000008400000B0000000E84000050000000308400005200000044920000100000001F8100002A0000000E810000220000001F9200000D00000022E10000380000000B8100001F0000002D9200000F000000058400004D000000D18400000C000000028400004A0000000581000019000000108400005100000032840000540000000A8400004F0000000D810000210000002C9200000E000000
0
@@ -190,7 +190,7 @@
82
987
2
-
+
0
-1
@@ -323,7 +323,7 @@
34063
00000000170000000601000078010000
- 00000000320000000E020000D4020000
+ 00000000320000006F010000D4020000
4096
0
0
@@ -334,7 +334,7 @@
1
- 0000000010000000000000000010000001000000FFFFFFFFFFFFFFFF0E0200003200000012020000D40200000100000002000010040000000100000095FFFFFF750600000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000D402000080070000D80200000100000001000010040000000100000096FCFFFFFFFFFFFFFFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E65008000000100000000000000EF02000080070000F503000000000000D802000080070000DE030000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000
+ 0000000010000000000000000010000001000000FFFFFFFFFFFFFFFF6F0100003200000073010000D402000001000000020000100400000001000000F7FEFFFFD70500000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000D402000080070000D80200000100000001000010040000000100000096FCFFFFFFFFFFFFFFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E65008000000100000000000000EF02000080070000F503000000000000D802000080070000DE030000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000
CMSIS-Pack
@@ -355,7 +355,7 @@
Main
- 00200000010000002200FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000031000000FFFEFF000000000000000000000000000100000001000000018001E100000000000032000000FFFEFF000000000000000000000000000100000001000000018003E100000000000034000000FFFEFF0000000000000000000000000001000000010000000180008100000000000015000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E100000000000037000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E100000000040039000000FFFEFF000000000000000000000000000100000001000000018022E100000000040038000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE10000000004003E000000FFFEFF00000000000000000000000000010000000100000001802CE10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF00960000000000000000000180218100000000040028000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003A000000FFFEFF000000000000000000000000000100000001000000018028E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018029E10000000000003D000000FFFEFF0000000000000000000000000001000000010000000180028100000000000017000000FFFEFF000000000000000000000000000100000001000000018029810000000000002C000000FFFEFF000000000000000000000000000100000001000000018027810000000000002A000000FFFEFF000000000000000000000000000100000001000000018028810000000000002B000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040024000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040025000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF0000000000000000000000000001000000010000000180108400000000000051000000FFFEFF0B520065006200750069006C006400200041006C006C00000000000000000000000000010000000100000001800B810000000004001B000000FFFEFF00000000000000000000000000010000000100000001800C810000000000001C000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000030000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E810000000000001E000000FFFEFF00000000000000000000000000010000000100000001800F810000000000001F000000FFFEFF00000000000000000000000000010000000100000001805584000000000000FFFFFFFFFFFEFF1B44006F0077006E006C006F0061006400200061006300740069007600650020006100700070006C00690063006100740069006F006E00000000000000000001000000000000000100000000000000FFFEFF044D00610069006E004E010000
+ 00200000010000002200FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000031000000FFFEFF000000000000000000000000000100000001000000018001E100000000000032000000FFFEFF000000000000000000000000000100000001000000018003E100000000000034000000FFFEFF0000000000000000000000000001000000010000000180008100000000000015000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E100000000000037000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E100000000040039000000FFFEFF000000000000000000000000000100000001000000018022E100000000040038000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE10000000004003E000000FFFEFF00000000000000000000000000010000000100000001802CE10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF00960000000000000000000180218100000000040028000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003A000000FFFEFF000000000000000000000000000100000001000000018028E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018029E10000000000003D000000FFFEFF0000000000000000000000000001000000010000000180028100000000000017000000FFFEFF000000000000000000000000000100000001000000018029810000000000002C000000FFFEFF000000000000000000000000000100000001000000018027810000000000002A000000FFFEFF000000000000000000000000000100000001000000018028810000000000002B000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040024000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040025000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF0000000000000000000000000001000000010000000180108400000000000051000000FFFEFF0B520065006200750069006C006400200041006C006C00000000000000000000000000010000000100000001800B810000000004001B000000FFFEFF00000000000000000000000000010000000100000001800C810000000000001C000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000030000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E810000000000001E000000FFFEFF00000000000000000000000000010000000100000001800F810000000000001F000000FFFEFF00000000000000000000000000010000000100000001805584000000000000FFFFFFFFFFFEFF1B44006F0077006E006C006F0061006400200061006300740069007600650020006100700070006C00690063006100740069006F006E00010000000000000001000000000000000100000000000000FFFEFF044D00610069006E004E010000
34050
@@ -413,7 +413,7 @@
- 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000040000000300000001000000FFFEFF182400570053005F0044004900520024005C002E002E005C005300720063005C0063006F006D006D006F006E002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600340039003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310039003600300036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310039003600300036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0863006F006D006D006F006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF162400570053005F0044004900520024005C002E002E005C005300720063005C006D00610069006E002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00340035003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0032003200330036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0032003200330036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF222400570053005F0044004900520024005C002E002E005C005300720063005C00730079007300740065006D005F00730074006D00330032006C003400780078002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00390030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0035003400350038003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0035003400350038003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF12730079007300740065006D005F00730074006D00330032006C003400780078002E00630000000000FFFFFFFFFFFFFFFFFFFEFF352400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F00560033002E0032002E006D0061007000010000000180FFFEFF00FFFEFFFF22013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600310030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF154300610062006C0065004D006F006E00690074006F0072005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000120200004900000080070000EB020000
+ 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000040000000100000001000000FFFEFF182400570053005F0044004900520024005C002E002E005C005300720063005C0063006F006D006D006F006E002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600340039003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310039003600300036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310039003600300036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0863006F006D006D006F006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF162400570053005F0044004900520024005C002E002E005C005300720063005C006D00610069006E002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00340035003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0032003100340035003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0032003100340035003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF222400570053005F0044004900520024005C002E002E005C005300720063005C00730079007300740065006D005F00730074006D00330032006C003400780078002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00390030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0035003400350038003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0035003400350038003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF12730079007300740065006D005F00730074006D00330032006C003400780078002E00630000000000FFFFFFFFFFFFFFFFFFFEFF352400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F00560033002E0032002E006D0061007000010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600310030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00340030003900360036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00340030003900360036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF154300610062006C0065004D006F006E00690074006F0072005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000730100004900000080070000EB020000