FIX | 增加工厂模式

master
yuliang 4 months ago
parent 54303ca3c8
commit 3fcccb75cb

@ -253,7 +253,6 @@ extern uint8_t dau_adj_state;
/* Extern functions ----------------------------------------------------------*/ /* Extern functions ----------------------------------------------------------*/
extern void dau_init(void); extern void dau_init(void);
extern void dau_adj_init(void);
extern void dau_spi_rw(int8_t rw, uint16_t addr, uint16_t len); extern void dau_spi_rw(int8_t rw, uint16_t addr, uint16_t len);
extern void dau_show(void); extern void dau_show(void);

@ -866,8 +866,6 @@ void _cli_init(void)
/* 命令行线程开始函数. */ /* 命令行线程开始函数. */
void cli_start(void const * argument) void cli_start(void const * argument)
{ {
/******** START INIT ********/ /******** START INIT ********/
/* 以下代码是freeRTOS启动后第一个运行的任务,因为优先级最高,且最早创建.所以需要在freeRTOS启动后再初始化 /* 以下代码是freeRTOS启动后第一个运行的任务,因为优先级最高,且最早创建.所以需要在freeRTOS启动后再初始化
* . */ * . */
@ -898,15 +896,8 @@ void cli_start(void const * argument)
/* 初始化 ADC 采样任务. */ /* 初始化 ADC 采样任务. */
ADC_init(); ADC_init();
if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ)) /* 初始化 DAU 任务. */
{ dau_init();
dau_adj_init();
}
else
{
/* 初始化 DAU 任务. */
dau_init();
}
/* 初始化无线通讯任务. */ /* 初始化无线通讯任务. */
if (!IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ) if (!IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ)

@ -592,57 +592,6 @@ int32_t _dau_wave_col_defect(void)
vty_print("#D reg end addr %x\r\n", addr); vty_print("#D reg end addr %x\r\n", addr);
MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
return rv; return rv;
#if 0
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] = 100 +i;
if (dau_ctrl.reg_defect_max[i] > dev_config.wave_threshold)
{
is_exceed = TRUE;
}
}
/* 没有超过阈值并没有强制录波直接返回 */
if (!is_exceed && !IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_WAVE_FORCE))
{
MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
return HAL_OK;
}
/* 擦除 flash */
addr = dau_ctrl.addr_reg;
vty_print("#D3 %x\r\n", addr);
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++)
{
memset(&dau_ctrl.buf_dau_rx[2], i, DAU_PKT_FAULT_BYTE_CNT);
for(j = 0; j < DAU_PKT_DEFECT_CNT; j++)
{
E_RETURN(spi_flash_write(addr, &dau_ctrl.buf_dau_rx[2], DAU_PKT_DEFECT_BYTE_CNT));
addr += DAU_PKT_DEFECT_BYTE_CNT;
}
}
vty_print("#D4 %x\r\n", addr);
MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
return rv;
#endif
} }
/* description: 工频波形采集 /* description: 工频波形采集
@ -1063,10 +1012,6 @@ static void _dau_init(void)
HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET); 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); HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET);
osDelay(2000); osDelay(2000);
//common_watchdog_set(COM_WDG_DAU);
//osDelay(10000);
//common_watchdog_set(COM_WDG_DAU);
//osDelay(10000);
/* 读取 FPGA 版本信息 */ /* 读取 FPGA 版本信息 */
if (HAL_OK == _dau_reg_read_global_state()) if (HAL_OK == _dau_reg_read_global_state())
@ -1203,6 +1148,25 @@ int32_t _dau_adj_reg_write_port(uint32_t port)
return rv; return rv;
} }
/* description: 缺陷波形采集
param:
return: HAL_xxx */
int32_t _dau_adj_wave_col_defect(void)
{
uint8_t i = 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] = abs(dau_ctrl.reg_port_state.DMAX[i]);
}
/* 直接返回 */
MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
return HAL_OK;
}
/* description: 寄存器触发波形采集 /* description: 寄存器触发波形采集
param: param:
return: HAL_xxx */ return: HAL_xxx */
@ -1211,73 +1175,12 @@ int32_t _dau_adj_wave_col_trigger_by_reg(void)
int32_t rv = HAL_ERROR; int32_t rv = HAL_ERROR;
E_RETURN(_dau_wave_col_start()); E_RETURN(_dau_wave_col_start());
E_RETURN(_dau_adj_wave_col_defect());
E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG)); E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG));
#if 0
uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
uint32_t addr = dau_ctrl.addr_reg;
uint8_t i = 0;
uint8_t j = 0;
uint16_t k = 0;
//for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
for(i = 0; i < 1; i++)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("DEFECT %x %d\r\n", addr, i);
for(j = 0; j < DAU_PKT_DEFECT_CNT; j++)
{
spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024);
addr += DAU_PKT_DEFECT_BYTE_CNT;
for(k = 0; k < 512;)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("%04x ", buf[k++]);
if(0 == k % 32)
{
osDelay(100);
vty_print("\r\n");
}
}
if(k % 32 != 0)
{
osDelay(100);
vty_print("\r\n");
}
}
vty_print("\r\n");
}
#endif
#if 1
uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
uint8_t i = 0;
uint8_t j = 0;
uint16_t k = 0;
//for(i = 5; i < DAU_PORT_POWER_CNT; i++)
for(i = 5; i < 6; i++)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("POWER %d\r\n", i);
buf = (uint16_t*)dau_ctrl.reg_power[i];
for(j = 0; j < DAU_PKT_POWER_CNT; j++)
{
for(k = 0; k < 512;)
{
vty_print("%-04x ", buf[k++]);
if(0 == (j*512+k ) % 40)
{
osDelay(100);
vty_print("\r\n");
}
}
buf += 512;
}
vty_print("\r\n");
}
#endif
return rv; return rv;
} }
/* description: DAU 校准任务循环 /* description: DAU 校准任务循环
param: param:
return: */ return: */
@ -1335,6 +1238,7 @@ static void _dau_adj_start(void *argument)
_dau_reg_write_port(i); _dau_reg_write_port(i);
} }
/* 重启 FPGA 触发故障采集 */
HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_RESET);
osDelay(1000); osDelay(1000);
@ -1343,8 +1247,7 @@ static void _dau_adj_start(void *argument)
osDelay(2000); osDelay(2000);
/* 触发阈值 */ /* 触发阈值 */
//*temp = 0x2800; *temp = 0x2800;
*temp = 0x0;
_dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t));
/* 开启 */ /* 开启 */
osDelay(500); osDelay(500);
@ -1377,6 +1280,146 @@ static void _dau_adj_start(void *argument)
} }
} }
/* description: 故障触发波形采集
param:
return: HAL_xxx */
int32_t _dau_continue_wave_col_trigger_by_fault(void)
{
int32_t rv = HAL_ERROR;
/* 没有触发直接退出 */
if (!((dau_ctrl.reg_global.GFTR & DAU_GFTR_FAULT_Msk) >> DAU_GFTR_FAULT_Pos))
{
return HAL_OK;
}
/* 采集波形 */
E_RETURN(_dau_wave_col_fault());
E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT));
_dau_power_calculate(DAU_SOURCE_FAULT);
#if 0
uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
uint8_t i = 0;
uint8_t j = 0;
uint16_t k = 0;
uint32_t addr = dau_ctrl.addr_fault;
for(i = 0; i < 1; i++)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("FAULT %x %d\r\n", addr, i);
for(j = 0; j < DAU_PKT_FAULT_CNT; j++)
//for(j = 0; j < 1; j++)
{
spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024);
addr += DAU_PKT_FAULT_BYTE_CNT;
for(k = 0; k < 512;)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("%04x ", buf[k++]);
if(0 == k % 32)
{
osDelay(100);
vty_print("\r\n");
}
}
if(k % 32 != 0)
{
osDelay(100);
vty_print("\r\n");
}
}
vty_print("\r\n");
}
#endif
#if 0
uint16_t *buf = NULL;
uint8_t i = 0;
uint8_t j = 0;
uint16_t k = 0;
for(i = 0; i < DAU_PORT_POWER_CNT; i++)
{
common_watchdog_set(COM_WDG_DAU);
vty_print("POWER %d\r\n", i);
buf = (uint16_t*)dau_ctrl.fault_power[i];
for(j = 0; j < DAU_PKT_POWER_CNT; j++)
{
for(k = 0; k < 512;)
{
vty_print("%-04x ", buf[k++]);
if(0 == (j*512+k ) % 40)
{
osDelay(100);
vty_print("\r\n");
}
}
buf += 512;
}
vty_print("\r\n");
}
#endif
return HAL_OK;
}
/* description: DAU 主任务循环
param:
return: */
static void _dau_continue_start(void *argument)
{
int32_t rv = HAL_ERROR;
/* 状态初始化 */
_dau_init();
vty_print("DAU start...\r\n");
for (;;)
{
common_watchdog_set(COM_WDG_DAU);
osDelay(4250);
/* 读取全局状态寄存器 */
rv = _dau_reg_read_global_state();
if (rv != HAL_OK)
{
continue;
}
/* utc 对时处理 */
_dau_utc();
/* 故障电流采集 */
_dau_continue_wave_col_trigger_by_fault();
/* 循环工频缺陷电流采集 */
_dau_adj_wave_col_trigger_by_reg();
_dau_power_calculate(DAU_SOURCE_REG);
/* 处理升级 */
if (dau_ctrl.update_flag)
{
flash_log_write(FLASH_LOG_TYPE_NOTIFY, "FPGA update start!\r\n");
dau_ctrl.update_flag = FALSE;
if (HAL_OK == _dau_update())
{
dau_ctrl.update_rt = DAU_UPD_OK;
dau_ctrl.update_rt_dbg = DAU_UPD_OK;
}
else
{
dau_ctrl.update_rt = DAU_UPD_ERROR;
dau_ctrl.update_rt_dbg = DAU_UPD_ERROR;
}
flash_log_write(FLASH_LOG_TYPE_NOTIFY, "FPGA update %s!\r\n", dau_ctrl.update_rt == 1 ? "OK" : "ERROR");
}
if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE))
{
MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE);
_dau_reg_write_port(dau_ctrl.reg_data);
}
}
}
/* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F) /* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F)
param: param:
@ -1518,20 +1561,22 @@ static void _dau_gps_start(void *argument)
return: */ return: */
void dau_init(void) void dau_init(void)
{ {
dau_ctrl.dau_handle = osThreadNew(_dau_start, NULL, &dau_attributes); if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ))
dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes); {
} dau_ctrl.dau_handle = osThreadNew(_dau_adj_start, NULL, &dau_adj_attributes);
}
/* description: DAU 采集校准任务初始化 else if(IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_FACTORY))
param: {
return: */ dau_ctrl.dau_handle = osThreadNew(_dau_continue_start, NULL, &dau_adj_attributes);
void dau_adj_init(void) }
{ else
dau_ctrl.dau_handle = osThreadNew(_dau_adj_start, NULL, &dau_adj_attributes); {
/* 初始化 DAU 任务. */
dau_ctrl.dau_handle = osThreadNew(_dau_start, NULL, &dau_attributes);
}
dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes); dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes);
} }
/* description: spi 接口测试函数 /* description: spi 接口测试函数
param: param:
return: */ return: */

File diff suppressed because it is too large Load Diff

@ -86,11 +86,11 @@
<RecentlyUsedMenus>1</RecentlyUsedMenus> <RecentlyUsedMenus>1</RecentlyUsedMenus>
<MenuShadows>1</MenuShadows> <MenuShadows>1</MenuShadows>
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay> <ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
<CommandsUsage>690B00000E00598400000200000040E1000002000000108600001000000056840000020000005F860000070000000F810000010000000C810000180B000055840000030000000E810000080000000B810000110000000584000003000000468100000100000010840000200000000D81000007000000</CommandsUsage> <CommandsUsage>6F0B00000E0040E10000020000005984000002000000568400000200000010860000100000000F810000010000005F860000070000000C8100001E0B000055840000030000000E810000080000000B810000110000000584000003000000108400002000000046810000010000000D81000007000000</CommandsUsage>
</MFCToolBarParameters> </MFCToolBarParameters>
<CommandManager> <CommandManager>
<CommandsWithoutImages>49000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400007784000007840000808C000044D50000538400000088000001880000028800000388000004880000058800001C8F00001D8F00001F8F0000208F0000218F00002AE10000118F000055840000568400005984000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B000002481000040E100000C840000338400007884000011840000008200001C820000018200006786000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E9200001D920000</CommandsWithoutImages> <CommandsWithoutImages>49000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400007784000007840000808C000044D50000538400000088000001880000028800000388000004880000058800001C8F00001D8F00001F8F0000208F0000218F00002AE10000118F000055840000568400005984000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B000002481000040E100000C840000338400007884000011840000008200001C820000018200006786000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E9200001D920000</CommandsWithoutImages>
<MenuUserImages>3700048400004C000000268100002D000000048100001C0000002CE100004300000015810000250000003184000053000000239200000000000007E100003B0000000F81000023000000208100002B0000005F8600003400000004E10000390000000C8100002000000023E100003D0000000D8000001700000001E10000360000001982000015000000068400004E0000004A810000470000001682000013000000038400004B00000017810000270000002BE100004200000000840000480000001481000024000000449200001000000030840000520000000E8400005000000000810000190000000E810000220000001F8100002A00000025E100003F0000002F820000160000001F9200000D00000003E10000380000000B8100001F00000022E100003C0000002D9200000F00000000E1000035000000D18400000C0000001882000014000000058400004D00000041E1000045000000058100001D0000004981000046000000028400004A000000168100002600000032840000540000001084000051000000518400005600000005E100003A0000000D810000210000000A8400004F00000002E10000370000002C9200000E000000</MenuUserImages> <MenuUserImages>3700048400004C00000015810000250000002CE1000043000000048100001C000000268100002D00000007E100003B0000002392000000000000318400005300000004E10000390000005F86000034000000208100002B0000000F8100002300000001E10000360000000D8000001700000023E100003D0000000C81000020000000068400004E00000019820000150000001781000027000000038400004B00000016820000130000004A81000047000000148100002400000000840000480000002BE100004200000000810000190000000E840000500000003084000052000000449200001000000003E10000380000001F9200000D0000002F8200001600000025E100003F0000001F8100002A0000000E8100002200000000E10000350000002D9200000F00000022E100003C0000000B8100001F00000041E1000045000000058400004D0000001882000014000000D18400000C0000001681000026000000028400004A0000004981000046000000058100001D0000001084000051000000328400005400000005E100003A000000518400005600000002E10000370000000A8400004F0000000D810000210000002C9200000E000000</MenuUserImages>
</CommandManager> </CommandManager>
<Pane-59393> <Pane-59393>
<ID>0</ID> <ID>0</ID>
@ -121,7 +121,7 @@
<IarPane-34051 /> <IarPane-34051 />
<Pane--1> <Pane--1>
<ID>4294967295</ID> <ID>4294967295</ID>
<RectRecentFloat>0083FFFFB985FFFF808AFFFFDE86FFFF</RectRecentFloat> <RectRecentFloat>00000000D002000080070000F5030000</RectRecentFloat>
<RectRecentDocked>00000000B902000080070000DE030000</RectRecentDocked> <RectRecentDocked>00000000B902000080070000DE030000</RectRecentDocked>
<RecentFrameAlignment>4096</RecentFrameAlignment> <RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex> <RecentRowIndex>0</RecentRowIndex>
@ -360,7 +360,7 @@
<IsVisible>1</IsVisible> <IsVisible>1</IsVisible>
</BasePane-34063> </BasePane-34063>
<DockingManager-256> <DockingManager-256>
<DockingPaneAndPaneDividers>0000000010000000000000000010000001000000FFFFFFFFFFFFFFFFA801000032000000AC010000B5020000010000000200001004000000010000002CFFFFFF0C0600000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000B502000080070000B90200000100000001000010040000000100000009FEFFFF72010000FFFFFFFF0700000008850000098500000A8500000B8500000E8500000485000000850000FFFF02000B004354616262656450616E6500800000010000000083FFFFB985FFFF808AFFFFDE86FFFF00000000B902000080070000DE030000000000004080005607000000FFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFFFFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFF05000000000000000000000000000000000000000000000001000000FFFFFFFF0885000001000000FFFFFFFF08850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers> <DockingPaneAndPaneDividers>0000000010000000000000000010000001000000FFFFFFFFFFFFFFFFA801000032000000AC010000B5020000010000000200001004000000010000002CFFFFFF0C0600000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000B502000080070000B90200000100000001000010040000000100000009FEFFFF72010000FFFFFFFF0700000008850000098500000A8500000B8500000E8500000485000000850000FFFF02000B004354616262656450616E65008000000100000000000000D002000080070000F503000000000000B902000080070000DE030000000000004080005607000000FFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFFFFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFF05000000000000000000000000000000000000000000000001000000FFFFFFFF0885000001000000FFFFFFFF08850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
</DockingManager-256> </DockingManager-256>
<MFCToolBar-34049> <MFCToolBar-34049>
<Name>CMSIS-Pack</Name> <Name>CMSIS-Pack</Name>
@ -381,7 +381,7 @@
</BasePane-34049> </BasePane-34049>
<MFCToolBar-34050> <MFCToolBar-34050>
<Name>Main</Name> <Name>Main</Name>
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000000003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000400FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800D8100000000020021000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons> <Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800D8100000000020021000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
</MFCToolBar-34050> </MFCToolBar-34050>
<Pane-34050> <Pane-34050>
<ID>34050</ID> <ID>34050</ID>

Loading…
Cancel
Save