FIX | V1.7 更新

master
yuliang 1 month ago
parent 05cee4910b
commit 08c3141ce1

@ -218,13 +218,15 @@ typedef struct
uint8_t buf_dau_rx[DAU_BUF_LEN]; // DAU 收包缓存
uint32_t addr_fault; // DAU 故障触发录波 flash 地址
uint32_t addr_reg; // DAU 寄存器触发录波 flash 地址
uint32_t col_utc; // DAU 采集自然时间
uint32_t col_time; // DAU 采集时间
uint8_t col_flag; // DAU 采集标志位
uint8_t update_flag; // DAU 升级标志位
uint8_t update_rt; // DAU 升级结果, 0 - 无效, 1 - 成功, 2 - 失败
uint8_t update_rt_dbg; // DAU 升级结果- debug 工具使用, 0 - 无效, 1 - 成功, 2 - 失败
uint32_t update_len; // DAU 升级文件大小
uint8_t reserve[2];
uint8_t reserve[1];
uint8_t is_dau_fault; // DAU 启动不成功
uint8_t is_fault;
uint8_t fault_port; // 故障触发端口
uint32_t fault_utc; // 故障触发时间

@ -45,7 +45,7 @@
/* Define --------------------------------------------------------------------*/
/* 版本信息. */
#define VERSION_MAJOR 1
#define VERSION_MINOR 5
#define VERSION_MINOR 7
#define COMPILE_TIME (__DATE__" "__TIME__)
#define DEV_CAPABILITY_LEN 16
@ -202,10 +202,11 @@ typedef struct
uint16_t defect_threshold;
char APN[DEV_APN_LEN];
uint16_t fault_interval; // 单位: s
int16_t fault_time_adj; // 单位: 10ns
uint8_t reserve1[2];
int16_t fault_time_adj[DAU_PORT_FAULT_MAX]; // 单位: 10ns
/* 保证配置区 8K 的保留位. */
uint8_t reserve[660];
uint8_t reserve[652];
/* INIT_DONE_MAGIC. 4byte */
uint32_t magic_bak;
} dev_config_t;

@ -77,6 +77,7 @@ typedef struct
uint32_t mul_idx;
uint32_t time_update;
uint8_t state;
uint8_t state_QIACT;
uint8_t err_cnt;
uint8_t send_cnt;
uint16_t update_len;

@ -98,8 +98,9 @@ typedef struct
uint16_t fault_thr; // 故障阈值, 单位: A.
uint8_t APN[DEV_APN_LEN]; // APN 名字.
uint16_t fault_inr; // 故障间隔, 单位: s.
int16_t fault_time_adj; // 单位: 10ns
uint8_t reserve[16];
uint8_t reserve0[2];
int16_t fault_time_adj[DAU_PORT_FAULT_MAX]; // 单位: 10ns
uint8_t reserve1[8];
} debug_config_t;
/* Private macro -------------------------------------------------------------*/
@ -546,6 +547,7 @@ static void _debug_pkt_config_get(void)
proto_head_t *head = (proto_head_t*)debug_buf.buf;
debug_config_t *data = (debug_config_t*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
uint8_t i = 0;
/* 封装报文头. */
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(debug_config_t), DEBUG_CT_REPLY);
@ -580,7 +582,10 @@ static void _debug_pkt_config_get(void)
data->fault_thr = dev_config.fault_threshold;
memcpy(data->APN, dev_config.APN, DEV_APN_LEN);
data->fault_inr = dev_config.fault_interval;
data->fault_time_adj = dev_config.fault_time_adj;
for(i = 0; i < DAU_PORT_FAULT_MAX; i++)
{
data->fault_time_adj[i] = dev_config.fault_time_adj[i];
}
/* 计算校验和. */
crc = (uint32_t*)(debug_buf.buf + head->len);
@ -597,10 +602,11 @@ static void _debug_pkt_config_set(void)
{
proto_head_t *head = (proto_head_t*)debug_buf.buf;
debug_config_t *data = (debug_config_t*)(debug_buf.buf + sizeof(proto_head_t));
uint16_t flag = 0;
uint32_t *crc = NULL;
uint8_t is_reboot = FALSE;
uint8_t i = 0;
uint16_t flag = 0;
uint32_t reset_delay = 2;
uint32_t *crc = NULL;
/* 保存数据. */
if (0 == data->debug_mode)
@ -630,7 +636,10 @@ static void _debug_pkt_config_set(void)
dev_config.fault_threshold = data->fault_thr;
memcpy(dev_config.APN, data->APN, DEV_APN_LEN);
dev_config.fault_interval = data->fault_inr;
dev_config.fault_time_adj = data->fault_time_adj;
for(i = 0; i < DAU_PORT_FAULT_MAX; i++)
{
dev_config.fault_time_adj[i] = data->fault_time_adj[i];
}
/* 封装报文头. */
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_REPLY);

@ -511,7 +511,8 @@ static BaseType_t _cli_show(const char *string)
vty_print("Power threshold: %dA\r\n", dev_config.power_threshold);
vty_print("Defect threshold: %dmA\r\n", dev_config.defect_threshold);
vty_print("Fault threshold: %dA\r\n", dev_config.fault_threshold);
vty_print("Fault time adj: %dns\r\n", dev_config.fault_time_adj * 10);
vty_print("Fault time adj: %d %d %dns\r\n", dev_config.fault_time_adj[0] * 10,
dev_config.fault_time_adj[1] * 10, dev_config.fault_time_adj[2] * 10);
vty_print("Keepalive: %dmin\r\n\n", dev_config.keepalive);
}
else if(0 == strncmp(param, "state", param_len))

@ -143,7 +143,7 @@ static void _common_sys_handle(void)
/* 公共监控主任务循环. */
static void _common_sys_start(void *argument)
{
uint8_t count = 0;
uint32_t count = 0;
for (;;)
{
@ -160,6 +160,26 @@ static void _common_sys_start(void *argument)
common_watchdog_set(COM_WDG_COM);
}
/* 每 4096s 激活一次充电 */
if (0 == (count & 0x3FFF))
{
if (st_data.is_bat_charge)
{
/* 停止充电, 内部 ADC 采集后自动再开启充电. */
HAL_GPIO_WritePin(BAT_CHARGE_GPIO_Port, BAT_CHARGE_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(BAT_CLK_GPIO_Port, BAT_CLK_Pin, GPIO_PIN_SET);
osDelay(10);
HAL_GPIO_WritePin(BAT_CLK_GPIO_Port, BAT_CLK_Pin, GPIO_PIN_RESET);
osDelay(100);
/* 开始充电. */
HAL_GPIO_WritePin(BAT_CHARGE_GPIO_Port, BAT_CHARGE_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(BAT_CLK_GPIO_Port, BAT_CLK_Pin, GPIO_PIN_SET);
osDelay(10);
HAL_GPIO_WritePin(BAT_CLK_GPIO_Port, BAT_CLK_Pin, GPIO_PIN_RESET);
}
}
if (is_watchdog_hw_reset)
{
is_watchdog_hw_reset = FALSE;
@ -554,7 +574,7 @@ uint32_t abs_cal_u(uint32_t a, uint32_t b)
void rtc_time_set(uint32_t utc)
{
utc += 8 * 3600;
utc += 28800;
struct tm *day = NULL;
time_t temp = 0;

@ -42,6 +42,7 @@
#include "spi.h"
#include "usart.h"
#include "rtc.h"
#include "common.h"
#include "dev_config.h"
@ -93,11 +94,15 @@ const osThreadAttr_t dau_adj_attributes =
/* DAU 全局结构体 */
dau_ctrl_t dau_ctrl;
static struct tm _dau_tm;
static RTC_DateTypeDef _dau_col_date;
static RTC_TimeTypeDef _dau_col_time;
static struct tm _dau_col_tm;
int8_t _dau_spi_rw;
uint16_t _dau_spi_addr;
uint16_t _dau_spi_len;
uint8_t dau_adj_state = 0; // 1:采集 2:采集完成
uint8_t dau_adj_state = 0; // 1:采集 2:采集完成
extern dev_adj_fault_zero_t debug_adj_fault;
/* Private function prototypes -----------------------------------------------*/
@ -218,7 +223,6 @@ int32_t _dau_reg_read_global_state(void)
{
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));
@ -478,10 +482,10 @@ int32_t _dau_wave_col_fault(void)
dau_ctrl.fault_utc_max = dau_ctrl.reg_global.GFMUR;
dau_ctrl.fault_ns_max = dau_ctrl.reg_global.GFMNR;
dau_ctrl.PPS_cnt = dau_ctrl.reg_global.GGPCR;
vty_print("#D utc %d.%d %d %d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns, dau_ctrl.PPS_cnt, dev_config.fault_time_adj);
vty_print("#D utc %d.%d %d %d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns, dau_ctrl.PPS_cnt, dev_config.fault_time_adj[dau_ctrl.fault_port]);
dau_ctrl.fault_ns = (uint64_t)dau_ctrl.fault_ns * 100000000 / dau_ctrl.PPS_cnt;
vty_print(" #D %d ", dau_ctrl.fault_ns);
dau_ctrl.fault_ns += dev_config.fault_time_adj;
dau_ctrl.fault_ns += dev_config.fault_time_adj[dau_ctrl.fault_port];
vty_print("%d\r\n", dau_ctrl.fault_ns);
/* 擦除 flash */
@ -774,7 +778,7 @@ void _dau_power_calculate(DAU_SOURCE_E source)
for(ch = 0; ch < DAU_PORT_GROUND_CNT; ch++)
{
/* 判断工频录波上传阈值 */
if (abs_cal_u(power[ch], fd_data.elec[ch]) >= (uint32_t)dev_config.power_threshold * 10)
if (abs_cal_u(power[ch], fd_data.elec[ch]) >= (uint32_t)dev_config.power_threshold * 1000)
{
MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER);
break;
@ -943,6 +947,16 @@ int32_t _dau_wave_col_trigger_by_reg(void)
dau_ctrl.col_time = tick;
_dau_data_save();
HAL_RTC_GetTime(&hrtc, &_dau_col_time, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &_dau_col_date, RTC_FORMAT_BIN);
_dau_col_tm.tm_year = _dau_col_date.Year + 100;
_dau_col_tm.tm_mon = _dau_col_date.Month - 1;
_dau_col_tm.tm_mday = _dau_col_date.Date;
_dau_col_tm.tm_hour = _dau_col_time.Hours;
_dau_col_tm.tm_min = _dau_col_time.Minutes;
_dau_col_tm.tm_sec = _dau_col_time.Seconds;
dau_ctrl.col_utc = mktime(&_dau_col_tm);
#if 0
int16_t *buf = (int16_t*)(&dau_ctrl.buf_dau_rx[2]);
uint32_t addr = dau_ctrl.addr_reg;
@ -1095,6 +1109,7 @@ static void _dau_init(void)
static void _dau_start(void *argument)
{
uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
uint8_t err_cnt = 0;
int32_t rv = HAL_ERROR;
/* 等待完成首次 ADC 采样 */
@ -1106,7 +1121,6 @@ static void _dau_start(void *argument)
}
osDelay(200);
}
osDelay(2000);
/* 状态初始化 */
_dau_init();
@ -1121,8 +1135,20 @@ static void _dau_start(void *argument)
rv = _dau_reg_read_global_state();
if (rv != HAL_OK)
{
if (err_cnt < 255)
{
err_cnt++;
}
else
{
dau_ctrl.is_dau_fault = TRUE;
err_cnt++;
}
continue;
}
err_cnt = 0;
dau_ctrl.is_dau_fault = FALSE;
/* utc 对时处理 */
_dau_utc();
@ -1405,10 +1431,10 @@ int32_t _dau_continue_wave_col_fault(void)
dau_ctrl.fault_utc_max = dau_ctrl.reg_global.GFMUR;
dau_ctrl.fault_ns_max = dau_ctrl.reg_global.GFMNR;
dau_ctrl.PPS_cnt = dau_ctrl.reg_global.GGPCR;
vty_print("#D utc %d.%d %d %d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns, dau_ctrl.PPS_cnt, dev_config.fault_time_adj);
vty_print("#D utc %d.%d %d %d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns, dau_ctrl.PPS_cnt, dev_config.fault_time_adj[dau_ctrl.fault_port]);
dau_ctrl.fault_ns = (uint64_t)dau_ctrl.fault_ns * 100000000 / dau_ctrl.PPS_cnt;
vty_print(" #D %d ", dau_ctrl.fault_ns);
dau_ctrl.fault_ns += dev_config.fault_time_adj;
dau_ctrl.fault_ns += dev_config.fault_time_adj[dau_ctrl.fault_port];
vty_print("%d\r\n", dau_ctrl.fault_ns);
/* 读取触发电流值 */
@ -1560,14 +1586,14 @@ static int32_t _dau_gps_process(void)
}
/* 查找对时字符串 "$GNZDA" */
if (strncmp(&pkt[i], "$GNZDA", 6) != 0)
if (strncmp(&pkt[i], "$GBZDA", 6) != 0)
{
i++;
continue;
}
/* 查找时分秒日月年 */
n = sscanf(&pkt[i], "$GNZDA,%02d%02d%02d.%d,%02d,%02d,%04d", &hour, &min, &sec, &ms, &day, &mon, &year);
n = sscanf(&pkt[i], "$GBZDA,%02d%02d%02d.%d,%02d,%02d,%04d", &hour, &min, &sec, &ms, &day, &mon, &year);
if (n != 7)
{
return HAL_ERROR;
@ -1601,12 +1627,19 @@ static int32_t _dau_gps_process(void)
static void _dau_gps_init(void)
{
dau_ctrl.uart = &huart2;
char cmd[] = "$PAIR066,0,0,0,1,0,0*3B\r\n";
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);
osDelay(3000);
if (HAL_UART_Transmit(dau_ctrl.uart, (uint8_t*)cmd, strlen(cmd), 1000) != HAL_OK)
{
vty_print("GPS init ERROR\r\n");
}
osDelay(1000);
}
/* description: GPS 主任务循环

@ -162,6 +162,7 @@ static HAL_StatusTypeDef _dev_config_default_set(void)
{
dev_config.fault_base[i] = 29800;
dev_config.fault_adj[i] = 30000;
dev_config.fault_time_adj[i] = 0;
}
dev_config.vin_adj = DEV_VIN_ADJ_DEFAULT;
@ -174,7 +175,7 @@ static HAL_StatusTypeDef _dev_config_default_set(void)
dev_config.defect_threshold = 1000;
snprintf(dev_config.APN, DEV_APN_LEN, "CMIOT");
dev_config.fault_interval = 300;
dev_config.fault_time_adj = 0;
dev_config.magic_bak = INIT_DONE_MAGIC;

@ -58,6 +58,7 @@
#define WL_SOFT_INIT_ERR 5 // 软件初始化错误最大次数
#define WL_DATA_ERR 3 // 数据发送错误最大次数
#define WL_SLEEP_TIME 1800 // 休眠时间
#define WL_SLEEP_TIME_4G 21600 // 因为 4G 故障或者连接不上服务器, 直接休眠 6 小时, 这里为了保护 4G 模块不让 4G 模块频繁重启.
/* Private typedef -----------------------------------------------------------*/
/* 状态机状态. */
@ -68,6 +69,7 @@ typedef enum
WL_STATE_AT_IPR,
WL_STATE_AT_QICSGP,
WL_STATE_AT_QIACT,
WL_STATE_AT_QIACT_Q,
WL_STATE_AT_CSQ,
WL_STATE_AT_QCCID,
WL_STATE_AT_QICFGTS,
@ -89,6 +91,13 @@ typedef enum
WL_STATE_END = 255
} WL_STATE_E;
/* 状态机状态. */
typedef enum
{
WL_SLEEP_POWER = 0,
WL_SLEEP_DAU
} WL_SLEEP_E;
/* RS485调试通讯协议器件信息. */
typedef struct
{
@ -178,6 +187,13 @@ typedef struct
uint32_t utc; // gps 对时时间
} wl_proto_state_t;
typedef struct
{
uint8_t type; // 休眠原因
uint8_t reserve[3]; // 保留位
uint32_t data; // 休眠时间
} wl_proto_sleep_t;
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
const osThreadAttr_t WL_attributes =
@ -188,9 +204,6 @@ const osThreadAttr_t WL_attributes =
};
wl_buf_list_t wl_buf_list_rx;
wl_ctrl_t wl_ctrl;
static RTC_DateTypeDef wl_date;
static RTC_TimeTypeDef wl_time;
static struct tm wl_tm;
/* Private function prototypes -----------------------------------------------*/
static void _wl_4G_send_dev_set(void);
@ -280,6 +293,38 @@ static void _wl_4G_AT_QCCID_process(uint8_t *cmd)
wl_ctrl.QCCID[j] = 0;
}
/* AT 命令 QIACT 返回数据处理 "+QIACT: 1,1,1,"10.7.157.1" */
static int32_t _wl_4G_AT_QIACT_process(uint8_t *cmd)
{
uint8_t i = 0;
uint8_t idx = 0;
while(cmd[i] != ' ')
{
if (0 == cmd[i])
{
return FALSE;
}
i++;
}
i++;
while(cmd[i] != 0 && cmd[i] != '\r' && cmd[i] != '\n')
{
if (1 == idx)
{
return cmd[i] == '1' ? TRUE : FALSE;
}
if (',' == cmd[i])
{
idx++;
}
i++;
}
return FALSE;
}
/* AT 命令回复处理. */
static void _wl_4G_AT_process(uint8_t *cmd)
{
@ -302,7 +347,30 @@ static void _wl_4G_AT_process(uint8_t *cmd)
HAL_UARTEx_ReceiveToIdle_DMA(wl_ctrl.uart, wl_ctrl.dma_rx_buf, WL_DMA_RX_BUF_LEN);
osDelay(1000);
}
if (wl_ctrl.state < WL_STATE_AT_QIOPEN)
if (WL_STATE_AT_QIACT_Q == wl_ctrl.state)
{
if (wl_ctrl.state_QIACT)
{
wl_ctrl.state++;
wl_ctrl.send_cnt = 0;
}
else
{
wl_ctrl.state = WL_STATE_AT_QIACT;
}
wl_ctrl.time_send = 0;
}
else if (WL_STATE_AT_QIACT == wl_ctrl.state)
{
wl_ctrl.state++;
wl_ctrl.time_send = 0;
if (wl_ctrl.send_cnt)
{
wl_ctrl.send_cnt--;
}
}
else if (wl_ctrl.state < WL_STATE_AT_QIOPEN)
{
wl_ctrl.state++;
wl_ctrl.time_send = 0;
@ -323,14 +391,34 @@ static void _wl_4G_AT_process(uint8_t *cmd)
}
else if (0 == strncmp((char*)cmd, "+QCCID", 6))
{
/* 获取信号质量. */
/* 获卡信息. */
_wl_4G_AT_QCCID_process(cmd);
}
else if (0 == strncmp((char*)cmd, "+QIACT", 6))
{
/* 获取激活拨号信息. */
if (_wl_4G_AT_QIACT_process(cmd))
{
wl_ctrl.state_QIACT = TRUE;
}
}
else if (0 == strncmp((char*)cmd, "ERROR", 5))
{
/* 命令执行失败. */
if (WL_STATE_AT_QIACT == wl_ctrl.state)
{
wl_ctrl.state++;
wl_ctrl.time_send = 0;
if (wl_ctrl.send_cnt)
{
wl_ctrl.send_cnt--;
}
}
else
{
wl_ctrl.time_send = HAL_GetTick() + 1000;
}
}
}
/* 处理接收到的 AT 指令. */
@ -889,6 +977,12 @@ static void _wl_4G_recv_sleep(void)
{
uint32_t sleep_time = WL_SLEEP_TIME;
/* 复位标志位, 不然会一直发送 */
if (dau_ctrl.is_dau_fault)
{
dau_ctrl.is_dau_fault = FALSE;
}
wl_ctrl.state = WL_STATE_END;
wl_ctrl.time_send = 0;
wl_ctrl.send_cnt = 0;
@ -1303,7 +1397,7 @@ static void _wl_4G_send_keepalive(void)
_wl_4G_head_init(sizeof(proto_head_t) + sizeof(wl_proto_state_t), DEBUG_CT_REPLY, DEBUG_C_KEEPALIVE, wl_ctrl.pkt_id);
data->is_utc_valid = dau_ctrl.is_utc_ok;
data->utc = dau_ctrl.utc;
data->utc = dau_ctrl.utc + 28800;
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
@ -1326,13 +1420,21 @@ static void _wl_4G_send_keepalive(void)
static void _wl_4G_send_sleep(void)
{
proto_head_t *head = (proto_head_t*)wl_ctrl.dma_tx_buf;
uint32_t *data = (uint32_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
wl_proto_sleep_t *data = (wl_proto_sleep_t*)(wl_ctrl.dma_tx_buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
/* 封装报文头. */
_wl_4G_head_init(sizeof(proto_head_t) + sizeof(uint32_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_SLEEP, wl_ctrl.pkt_id);
_wl_4G_head_init(sizeof(proto_head_t) + sizeof(wl_proto_sleep_t), DEBUG_CT_PRV_REPLY, DEBUG_PRV_SLEEP, wl_ctrl.pkt_id);
*data = WL_SLEEP_TIME;
data->data = WL_SLEEP_TIME;
if (dau_ctrl.is_dau_fault)
{
data->type = WL_SLEEP_DAU;
}
else
{
data->type = WL_SLEEP_POWER;
}
/* 计算校验和. */
crc = (uint32_t*)(wl_ctrl.dma_tx_buf + head->len);
@ -1386,16 +1488,7 @@ static void _wl_4G_send_realdata(void)
data->energy_mode = ADC_ctrl.energy_mode;
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;
data->utc = mktime(&wl_tm);
data->utc = dau_ctrl.col_utc;
data->run_time = HAL_GetTick() / 1000;
for(i = 0; i < DAU_PORT_POWER_CNT; i++)
@ -1550,7 +1643,7 @@ static void _wl_4G_send_realdata_fault(void)
_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->utc = dau_ctrl.fault_utc + 28800;
data->ns = dau_ctrl.fault_ns;
for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
@ -1828,7 +1921,8 @@ void _wl_4G_send(void)
}
else if (WL_STATE_SLEEP == wl_ctrl.state)
{
if (ADC_ENERGY_SLEEP == ADC_ctrl.energy_mode)
if (ADC_ENERGY_SLEEP == ADC_ctrl.energy_mode
|| dau_ctrl.is_dau_fault)
{
_wl_4G_send_sleep();
wl_ctrl.send_cnt++;
@ -1872,6 +1966,11 @@ void _wl_4G_state_chg(void)
wl_ctrl.state = WL_STATE_KEEPALIVE;
wl_ctrl.keepalive = HAL_GetTick() + dev_config.keepalive * 60000;
}
else if(dau_ctrl.is_dau_fault)
{
/* DAU 启动失败, 设备休眠 */
wl_ctrl.state = WL_STATE_SLEEP;
}
}
/* 初始化 4G 模块软件 */
@ -1926,10 +2025,17 @@ void _wl_4G_init_soft(void)
}
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_QIACT_Q == wl_ctrl.state) && is_timeout)
{
/* 查询使能场景是否成功, +QIACT: 1,1,1,"10.7.157.1 */
osDelay(5000);
_wl_4G_init_cmd_send("AT+QIACT?\r\n", 1100);
wl_ctrl.send_cnt++;
}
else if ((WL_STATE_AT_CSQ == wl_ctrl.state) && is_timeout)
{
/* 读取网络信号质量. */
@ -1960,7 +2066,7 @@ void _wl_4G_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,\"TCP\",\"%d.%d.%d.%d\",%d,19421,2\r\n",
snprintf((char*)wl_ctrl.dma_tx_buf, WL_DMA_TX_BUF_LEN, "AT+QIOPEN=1,0,\"TCP\",\"%d.%d.%d.%d\",%d,0,2\r\n",
dev_info.server_ip[0], dev_info.server_ip[1], dev_info.server_ip[2],
dev_info.server_ip[3], dev_info.server_port);
//_wl_4G_init_cmd_send("AT+QIOPEN=1,0,\"TCP\",\"111.47.21.142\",8809,19421,2\r\n", 10000);
@ -2002,12 +2108,6 @@ static void _wl_4G_hw_close(uint32_t sleep_time)
{
HAL_GPIO_WritePin(POWER_4G_GPIO_Port, POWER_4G_Pin, GPIO_PIN_RESET);
if (ADC_ctrl.energy_mode != ADC_ENERGY_NORMAL
&& sleep_time < WL_SLEEP_TIME)
{
sleep_time = WL_SLEEP_TIME;
}
flash_log_write(FLASH_LOG_TYPE_WARNING, "Server is disconnect system sleep %ds!\r\n", sleep_time);
common_sys_set(COM_SYS_SHUTDOWN, (void*)&sleep_time);
@ -2027,14 +2127,16 @@ static void _wl_4G_hw_restart(void)
HAL_UART_Abort(wl_ctrl.uart);
HAL_UART_DeInit(wl_ctrl.uart);
if (wl_ctrl.err_cnt > 3)
if (wl_ctrl.err_cnt >= 1)
{
_wl_4G_hw_close(dev_config.collect_interval * 60);
/* 不建议频繁重启 4G 模块, 如果连接出现问题直接休眠 6 小时 */
_wl_4G_hw_close(WL_SLEEP_TIME_4G);
}
/* 初始化软硬件 */
osDelay(10000);
wl_ctrl.state = 0;
wl_ctrl.state_QIACT = 0;
wl_ctrl.send_cnt = 0;
wl_ctrl.mul_idx = 0;
wl_ctrl.cmd_buf_index = 0;
@ -2089,6 +2191,7 @@ static void _wl_4G_start(void *argument)
}
osDelay(200);
}
osDelay(3000);
/* 初始化 4G 模块硬件 */
MX_USART3_UART_Init();

File diff suppressed because it is too large Load Diff

@ -21,7 +21,7 @@
<Checksum>1051652893</Checksum>
</DebugChecksum>
<RecentFlashDownload>
<Path>D:\Work\CablePositioning\reless\V1.4\FP_IAP_V1.4.out</Path>
<Path>D:\Work\CablePositioning\reless\V1.5\IAP\FP_IAP_1.5.out</Path>
</RecentFlashDownload>
<JLinkDriver>
<CStepIntDis>_ 0</CStepIntDis>
@ -45,9 +45,9 @@
<OverrideDefaultClocks>0</OverrideDefaultClocks>
<CpuClock>80000000</CpuClock>
<ClockAutoDetect>1</ClockAutoDetect>
<ClockWanted>6000000</ClockWanted>
<JtagSpeed>6000000</JtagSpeed>
<Prescaler>13</Prescaler>
<ClockWanted>7500000</ClockWanted>
<JtagSpeed>6666666</JtagSpeed>
<Prescaler>12</Prescaler>
<TimeStampPrescIndex>0</TimeStampPrescIndex>
<TimeStampPrescData>0</TimeStampPrescData>
<PcSampCYCTAP>1</PcSampCYCTAP>

@ -15,6 +15,9 @@ OverrideMemMap = 0
AllowSimulation = 1
ScriptFile=""
[FLASH]
RMWThreshold = 0x400
Loaders=""
EraseType = 0x00
CacheExcludeSize = 0x00
CacheExcludeAddr = 0x00
MinNumBytesFlashDL = 0
@ -25,8 +28,8 @@ EnableFlashDL = 2
Override = 0
Device="ARM7"
[GENERAL]
WorkRAMSize = 0x00
WorkRAMAddr = 0x00
WorkRAMSize = 0x40000
WorkRAMAddr = 0x20000000
RAMUsageLimit = 0x00
[SWO]
SWOLogFile=""
@ -37,3 +40,5 @@ RdOverrideAddr = 0xFFFFFFFF
WrOverrideOrMask = 0x00
WrOverrideAndMask = 0xFFFFFFFF
WrOverrideAddr = 0xFFFFFFFF
[RAM]
VerifyDownload = 0x00

@ -60,16 +60,17 @@
</IarPane-34050>
<IarPane-34063>
<ColumnWidths>
<Column0>335</Column0>
<Column0>260</Column0>
<Column1>30</Column1>
<Column2>30</Column2>
<Column3>30</Column3>
</ColumnWidths>
<NodeDict>
<ExpandedNode>CableMonitor_APP_V3.2</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Middlewares</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Middlewares/FreeRTOS</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Middlewares/FreeRTOS/cmsis_os2.c</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Application</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Application/User</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Application/User/Core</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Application/User/Core/dev_config.c</ExpandedNode>
<ExpandedNode>CableMonitor_APP_V3.2/Output</ExpandedNode>
</NodeDict>
</IarPane-34063>
@ -85,7 +86,7 @@
<RecentlyUsedMenus>1</RecentlyUsedMenus>
<MenuShadows>1</MenuShadows>
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
<CommandsUsage>7D0C00000F0040E10000020000005984000002000000568400000300000010860000100000000F810000010000005F860000080000000C8100001D0C000055840000030000000E810000080000000B8100001500000005840000030000002781000001000000108400002700000046810000010000000D81000008000000</CommandsUsage>
<CommandsUsage>B40C00000F00598400000200000040E1000002000000108600001000000056840000030000005F860000080000000F810000010000000C810000510C000055840000030000000E810000080000000B81000015000000058400000300000027810000010000004681000001000000108400002A0000000D81000008000000</CommandsUsage>
</MFCToolBarParameters>
<CommandManager>
<CommandsWithoutImages>51000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400007784000007840000808C000044D50000538400000088000001880000028800000388000004880000058800001C8F00001D8F00001F8F0000208F0000218F00002AE10000118F000055840000568400005984000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B000002481000040E100000C840000338400007884000011840000008200001C820000018200006786000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E9200001D92000008800000098000000A8000000B8000000C800000158000000A81000001E80000</CommandsWithoutImages>
@ -348,7 +349,7 @@
<Pane-34063>
<ID>34063</ID>
<RectRecentFloat>00000000170000000601000078010000</RectRecentFloat>
<RectRecentDocked>0000000032000000A8010000B5020000</RectRecentDocked>
<RectRecentDocked>00000000320000005D010000B5020000</RectRecentDocked>
<RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<IsFloating>0</IsFloating>
@ -359,7 +360,7 @@
<IsVisible>1</IsVisible>
</BasePane-34063>
<DockingManager-256>
<DockingPaneAndPaneDividers>0000000010000000000000000010000001000000FFFFFFFFFFFFFFFFA801000032000000AC010000B5020000010000000200001004000000010000002CFFFFFF0C0600000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000B502000080070000B90200000100000001000010040000000100000009FEFFFF72010000FFFFFFFF0700000008850000098500000A8500000B8500000E8500000485000000850000FFFF02000B004354616262656450616E65008000000100000000000000D002000080070000F503000000000000B902000080070000DE030000000000004080005607000000FFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFFFFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFF05000000000000000000000000000000000000000000000001000000FFFFFFFF0885000001000000FFFFFFFF08850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
<DockingPaneAndPaneDividers>0000000010000000000000000010000001000000FFFFFFFFFFFFFFFF5D0100003200000061010000B50200000100000002000010040000000100000057FFFFFF370600000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000B502000080070000B90200000100000001000010040000000100000009FEFFFF72010000FFFFFFFF0700000008850000098500000A8500000B8500000E8500000485000000850000FFFF02000B004354616262656450616E65008000000100000000000000D002000080070000F503000000000000B902000080070000DE030000000000004080005607000000FFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFFFFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFF05000000000000000000000000000000000000000000000001000000FFFFFFFF0885000001000000FFFFFFFF08850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
</DockingManager-256>
<MFCToolBar-34049>
<Name>CMSIS-Pack</Name>
@ -380,7 +381,7 @@
</BasePane-34049>
<MFCToolBar-34050>
<Name>Main</Name>
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000000038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000000041000000FFFEFF000000000000000000000000000100000001000000018002810000000000001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000000030000000FFFEFF000000000000000000000000000100000001000000018027810000000000002E000000FFFEFF000000000000000000000000000100000001000000018028810000000000002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
</MFCToolBar-34050>
<Pane-34050>
<ID>34050</ID>
@ -418,7 +419,7 @@
</ChildIdMap>
<MDIWindows>
<MDIClientArea-0>
<MDITabsState>010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000010000000000000001000000FFFEFF3D2400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF23013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0031003600320031003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF194300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000AC0100004900000080070000CC020000</MDITabsState>
<MDITabsState>010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000020000000100000001000000FFFEFF3D2400570053005F0044004900520024005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032005C004C006900730074005C004300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00380037003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF194300610062006C0065004D006F006E00690074006F0072005F004100500050005F00560033002E0032002E006D006100700000000000FFFFFFFFFFFFFFFFFFFEFF212400570053005F0044004900520024005C002E002E005C0043006F00720065005C0049006E0063005C006400650076005F0063006F006E006600690067002E006800010000000180FFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00320031003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0C6400650076005F0063006F006E006600690067002E00680000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000610100004900000080070000CC020000</MDITabsState>
</MDIClientArea-0>
</MDIWindows>
</WindowStorage>

File diff suppressed because it is too large Load Diff

@ -27,7 +27,7 @@
<Checksum>3917700858</Checksum>
</DebugChecksum>
<RecentFlashDownload>
<Path>D:\Work\CablePositioning\reless\V1.4\FP_IAP_V1.4.out</Path>
<Path>D:\Work\CablePositioning\reless\V1.5\IAP\FP_IAP_1.5.out</Path>
</RecentFlashDownload>
<Exceptions>
<StopOnUncaught>_ 0</StopOnUncaught>
@ -37,9 +37,9 @@
<OverrideDefaultClocks>0</OverrideDefaultClocks>
<CpuClock>80000000</CpuClock>
<ClockAutoDetect>1</ClockAutoDetect>
<ClockWanted>6000000</ClockWanted>
<JtagSpeed>6000000</JtagSpeed>
<Prescaler>13</Prescaler>
<ClockWanted>7500000</ClockWanted>
<JtagSpeed>6666666</JtagSpeed>
<Prescaler>12</Prescaler>
<TimeStampPrescIndex>0</TimeStampPrescIndex>
<TimeStampPrescData>0</TimeStampPrescData>
<PcSampCYCTAP>1</PcSampCYCTAP>

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save