// set local device name
uint8_t local_name[13] = {0};
- snprintf(local_name,sizeof(local_name),"ZH_%s",sys_config.IMEI+6);
+ snprintf((char *)local_name,sizeof(local_name),"ZH_%s",sys_config.IMEI+6);
memcpy(scan_rsp_data+2,local_name,13);
gap_set_dev_name(local_name, sizeof(local_name));
os_timer_init( &update_param_timer,param_timer_func,NULL);
{
co_printf("link:%d rssi:%d\r\n", conidx, rssi);
}
+void initial_static_memory(uint8_t act_num,
+ uint8_t adv_act_num,
+ uint8_t con_num,
+ uint8_t rx_buf_num,
+ uint16_t rx_buf_size,
+ uint8_t tx_buf_num,
+ uint16_t tx_buf_size,
+ uint16_t max_adv_size,
+ uint16_t stack_size);
+/*********************************************************************
+ * @fn user_init_static_memory
+ *
+ * @brief set memory.
+ *
+ * @param None.
+ *
+ *
+ * @return None.
+ */
+void user_init_static_memory(void)
+{
+ /*
+ * activity: init, adv+con, scan, pb-adv, pb-gatt (adv + con)
+ * adv: adv * 2 * 2, pb-adv + 1, pb-gatt *2 * 2
+ * con: init, pb-gatt*2
+ */
+ initial_static_memory(9, 5, 3, 8, 251, 8, 251, 37, 0x1000);
+ //initial_static_memory(9, 5, 3, 8, 40, 8, 27, 37, 0x1000);
+}
/*********************************************************************
* @fn user_custom_parameters
*
system_set_port_pull(GPIO_PA2, true);
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_2, PORTA2_FUNC_UART1_RXD);
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_3, PORTA3_FUNC_UART1_TXD);
- uart_init(UART1, BAUD_RATE_115200);
+ uart_init(UART1, BAUD_RATE_921600);
NVIC_EnableIRQ(UART1_IRQn);
NVIC_EnableIRQ(PMU_IRQn);
*/
void user_entry_before_ble_init(void)
{
- rtc_init(); //心率需要
+ //rtc_init(); //心率需要
// rtc_alarm(RTC_A,10); //RTC_A, 10MS
// rtc_alarm(RTC_B,1000);
/* set system power supply in BUCK mode */
system_set_port_pull(GPIO_PA2, true);
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_2, PORTA2_FUNC_UART1_RXD);
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_3, PORTA3_FUNC_UART1_TXD);
- uart_init(UART1, BAUD_RATE_115200);
+ uart_init(UART1, BAUD_RATE_921600);
// NVIC_EnableIRQ(UART1_IRQn);
system_set_port_pull(GPIO_PC6, true);
memset(sys_config.IMEI,0,sizeof(sys_config.IMEI));
save_sys_config();
}
-
-
-
}
void save_sys_config(void)
{
void user_entry_after_ble_init(void)
{
- co_printf("\r\n\r\n--------33333333333init_sys_config--------\r\n\r\n");
+ co_printf("\r\n\r\n--------333333333init_sys_config--------\r\n\r\n");
//system_set_tx_power(RF_TX_POWER_POS_10dBm); //设置发射功率为10DB
system_sleep_disable(); //关睡眠
simple_peripheral_init();//蓝牙初始化
sensor_init();
os_user_loop_event_set(sensor_while);
-
+ // while(1)
+ // {
+ // sensor_INT();
+ // }
// while(1)
// {
// //co_printf("main:end\n");
// }
}
-
-
-
\ No newline at end of file
#include "sensor_drive.h"
#include "algo.h"
#include "yyl_pfev01.h"
-
+#include "os_mem.h"
InitParamTypeDef pInit_Param={0};
char is_HA_activate = 0;
-#define HA_BUF_LEN 10*1024
-unsigned char HA_BUF[HA_BUF_LEN];//恒爱算法库和中医算法库缓冲区
+#define HA_BUF_LEN 6*1024
+unsigned char *HA_BUF = NULL;//恒爱算法库和中医算法库缓冲区
int yyl_in_data_len = 0;
-extern char send_bp_data_flag;//发送血压数据标致位
-extern char send_hrs_data_flag;//发送心率数据标标致位
-extern char send_hrv_data_flag;//发送心率变异性标致位
-extern char send_spo2_data_flag;//发送血氧数值标致位
-extern char send_temp_data_flag;//发送温度标致位
-extern char send_gs_data_flag;//发送gsensor数据标致位
-extern char send_sleep_data_flag;//发送sleep数据标致位
-extern char send_step_data_flag;//发送step数据标致位
-extern char send_wear_data_flag;//发送wear数据标致位
-extern char send_yyl_data_flag;//中医标致位
+extern char send_bp_data_flag;//发送血压数据标致位
+extern char send_hrs_data_flag;//发送心率数据标标致位
+extern char send_hrv_data_flag;//发送心率变异性标致位
+extern char send_spo2_data_flag;//发送血氧数值标致位
+extern char send_factory_data_flag;//工厂模式标致位
+extern char send_temp_data_flag;//发送温度标致位
+extern char send_gs_data_flag;//发送gsensor数据标致位
+extern char send_sleep_data_flag;//发送sleep数据标致位
+extern char send_step_data_flag;//发送step数据标致位
+extern char send_wear_data_flag;//发送wear数据标致位
+extern char send_yyl_data_flag;//中医标致位
extern char send_emo_data_flag;//情绪标致位
extern uint8_t bp_data[49];
int os_msg_post_count = 0;
unsigned char HR_IRQ_FLAG = 0;
unsigned char BP_IRQ_FLAG = 0;
+
void pmu_gpio_isr_ram(void) //中断处理
{
uint32_t pmu_int_pin_setting = ool_read32(PMU_REG_PORTA_TRIG_MASK);
unsigned char SL_SC7A20_I2c_Spi_Write(bool sl_spi_iic,unsigned char reg, unsigned char dat)
{
sl_spi_iic=0;//IIC模式
+ if(sl_spi_iic)
+ __nop();
IIC0_Start_I2c(); //开始IIC
IIC0_Write_One_Byte(SL_SC7A20_IIC_8BITS_WRITE_ADDR);//写器件地址
if(!IIC0_Read_Ack()) //等待应答
unsigned char SL_SC7A20_I2c_Spi_Read(bool sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf)
{
sl_spi_iic=0;//IIC模式
+ if(sl_spi_iic)
+ __nop();
IIC0_Start_I2c();//开始IIC
IIC0_Write_One_Byte(SL_SC7A20_IIC_8BITS_WRITE_ADDR);//写器件地址
if(!IIC0_Read_Ack()) //等待应答
}
/////////////////////////////////////数据转换//////////////////////////////////
//////////////////////////////////////十六进制转字符串ASCII码///////////////////////////////////////////////////////////////////////
-char str_high,str_low;//uint8转字符高位和低位
+char str_high=0,str_low=0;//uint8转字符高位和低位
void uintTOstr(uint8_t hex_data)//十六进制转字符串ASCII码
{
str_high =(hex_data&0xF0)>>4;//取高位的4位
}
-
+int read_BP_data_len = 0;
char BP_test(void)
{
// if(send_bp_data_flag)//血压
while((gpio_get_pin_value(GPIO_PORT_D, GPIO_BIT_5)==0)&&send_bp_data_flag)//等待BP_INT变高
{
uart0_receive();//串口0接收数据处理
- co_delay_100us(100);//不加延时串口获取数据异常
+ //co_delay_100us(10);//不加延时串口获取数据异常
irq_flag=1;
//co_printf("BP_test:irq_flag\n");
}
{
read_BP_data();//读血压数据
- //输出血压数据到串口0
- uart0_write_for_hci("{\"cmd\":\"2\",\"bp_data\":\"",strlen("{\"cmd\":\"2\",\"bp_data\":\""),NULL, NULL);
- for(uint8_t i=0;i<48;i++)//转码
- {
- uintTOstr(bp_data[i]);
- uart_putc_noint(UART0,str_high);
- uart_putc_noint(UART0,str_low);
- }
- uart0_write_for_hci(uart0_residue_data, 3, NULL, NULL);
+ read_BP_data_len += 16;
+ co_printf("read_BP_data_len :%d\n",read_BP_data_len);
uart0_receive();//串口0接收数据处理
irq_flag=0;
}
co_printf(" EMO_test:status:%d emo_out_Fm_len:%d\n",status,emo_out_Fm_len);
if(emo_out_Fm_len != 0)
{
+ //sensor_INT();//唤醒上位机
UART_send_buf_len += snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"emo_data\":[");
//co_printf(" EMO_test:1:%d \n",UART_send_buf_len);
for(int j=0;j<emo_out_Fm_len;j++)
UART_send_buf_len-=1;//减去最后的逗号
UART_send_buf_len += snprintf((char *)&UART_send_buf[UART_send_buf_len],UART_SEND_MAX-UART_send_buf_len,
"],");
+
}
//co_printf(" EMO_test:3:%d \n",UART_send_buf_len);
UART_send_buf_len-=1;//减去最后的逗号
{
//co_printf(" get_HR_waite \n");
//vcHr02IRQHandler();
+ co_delay_100us(10);
irq_flag=1;
uart0_receive();//串口0接收数据处理
}
//co_printf("HRS_test1!!!!!!!!\n");
vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
//co_printf("HRS_test2!!!!!!!!\n");
- if(vc9202_alg_results.hr_rate >0)
- {
- //co_printf("HRS_test3!!!!!!!!\n");
- //co_printf("hr_rate0:%d UART_send_buf:0x%x\n",vc9202_alg_results.hr_rate,UART_send_buf);
- memset(UART_send_buf,0,UART_SEND_MAX);
- co_printf("hr_rate:%d \n",vc9202_alg_results.hr_rate);
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"hrs_data\":\"%d\"}\n",vc9202_alg_results.hr_rate);
- uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- vc9202_alg_results.hr_rate = 0;
- //co_printf("hr_rate2:%d \n",vc9202_alg_results.hr_rate);
- }
+ uart0_receive();//串口0接收数据处理
}
}
return send_hrs_data_flag;
{
//co_printf(" get_SPO2_waite \n");
//vcHr02IRQHandler();
+ co_delay_100us(10);
irq_flag=1;
uart0_receive();//串口0接收数据处理
}
uart0_receive();//串口0接收数据处理
vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
- if(vc9202_alg_results.spo2_val >0)
- {
- co_printf("spo2_val:%d \n",vc9202_alg_results.spo2_val);
- memset(UART_send_buf,0,UART_SEND_MAX);
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"spo2_data\":\"%d\"}\n",vc9202_alg_results.spo2_val);
- uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- vc9202_alg_results.spo2_val = 0;
- }
+
}
}
return send_spo2_data_flag;
}
+//工厂模式
+char factory_test(void)
+{
+ char irq_flag;
+ while(send_factory_data_flag)//放入定时测量的值,如果1分钟内没检测到值就退出
+ {
+ while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_factory_data_flag)//等待HR_INT变低
+ {
+ //co_printf(" get_factory_waite \n");
+ //vcHr02IRQHandler();
+ irq_flag=1;
+ uart0_receive();//串口0接收数据处理
+ }
+ while((gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==0)&&irq_flag&&send_factory_data_flag)//等待HR_INT变高
+ {
+ irq_flag=0;
+ uart0_receive();//串口0接收数据处理
+
+ vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//在中断处理函数返回协议数据
+ }
+ }
+
+ return send_factory_data_flag;
+}
////////////////////////////////////云医链中医测试////////////////////////////////////////////////
unsigned int yyl_timer=0;
void YYL_test_timer(void)
}
}
int YYL_test_count = 0;
-
-char YYL_test(void)
+void YYL_out_data(void)
{
- char irq_flag;
yylPFE_OutputData *pOutputData;
yylPFE_OutputData *pOutputData_tmp;
int pOutputData_len ;
int printf_len = 0;
+ co_printf("YYL_Output_PFE!!\n");
+ if(yyl_in_data_len>= 3000-1)
+ {
+ co_printf("WORK_MODE_HRV hr:%d \nPPG:",vc9202_alg_results.hr_rate);
+ pOutputData = YYL_Output_PFE(&pOutputData_len);
+ co_printf("YYL_test:pOutputData_len:%d\n",pOutputData_len);
+ memset(UART_send_buf,0,UART_SEND_MAX);
+ //co_printf("YYL_test:");
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,
+ "{\"cmd\":\"2\",\"yyl_data\":\"");
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ printf_len+=UART_send_buf_len;
+ co_printf("%s",UART_send_buf);
+ //pOutputData_len = 10;
+ if(pOutputData_len > 50)
+ pOutputData_len = 50;
+ for(int count=0; count<pOutputData_len; count++)
+ {
+ pOutputData_tmp = pOutputData+count;
+ // if(pOutputData_tmp->timestamp==0&&pOutputData_tmp->areaUP==0&&pOutputData_tmp->areaUPBase==0&&pOutputData_tmp->areaUPHeight==0)
+ // break;
+ //co_printf("pOutputData_tmp:%x\n",pOutputData_tmp);
+ unsigned int time_tmp = get_timestamp();
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,
+ "%u,%d,%d,%d,%d,%d,%d,%d,%d,%d,",
+ time_tmp,pOutputData_tmp->timestamp,pOutputData_tmp->areaUP,pOutputData_tmp->areaUPBase,pOutputData_tmp->areaUPHeight,
+ pOutputData_tmp->areaDOWN,pOutputData_tmp->areaDOWNBase,pOutputData_tmp->areaDOWNHeight,pOutputData_tmp->RRI,pOutputData_tmp->motion);
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ UART_send_buf[UART_send_buf_len] = 0;
+ co_printf("%s",UART_send_buf);
+ printf_len+=UART_send_buf_len;
+ UART_send_buf_len = 0;
+
+ if(count>=255)
+ break;
+ }
+
+ uart0_write_for_hci("\"}\n",sizeof("\"}\n"),NULL, NULL);
+ printf_len+=3;
+ co_printf("%s","\"}\n");
+ co_printf("YYL_test:printf_len:%d\n",printf_len);
+ if(HA_BUF != NULL)
+ YYL_Init_PFE( HA_BUF, HA_BUF_LEN);//中医初始化
+ yyl_in_data_len =0;
+ // ///////关闭//////////
+ // pInit_Param.work_mode = WORK_MODE_NONE;
+ // vc9202_usr_init(&pInit_Param);
+ // send_yyl_data_flag=2;
+ // yyl_timer=0;
+ //co_printf(" colse\n");
+ }
+}
+char YYL_test(void)
+{
+ char irq_flag;
+
while(send_yyl_data_flag==1)//中医
{
while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_yyl_data_flag)//等待HR_INT变低
//co_printf("YYL_test1!!\n");
vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//里面获取ppg数据
- //co_printf("YYL_test2!!\n");
-
- if(yyl_in_data_len>= 3000-1)
+ uart0_receive();//串口0接收数据处理
+ if(yyl_in_data_len< 3000-1)
{
- co_printf("YYL_Output_PFE!!\n");
- pOutputData = YYL_Output_PFE(&pOutputData_len);
- co_printf("YYL_test:pOutputData_len:%d\n",pOutputData_len);
- memset(UART_send_buf,0,UART_SEND_MAX);
- co_printf("YYL_test:");
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,
- "{\"cmd\":\"2\",\"yyl_data\":\"");
- uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- co_printf("%s",UART_send_buf);
- //pOutputData_len = 10;
- if(pOutputData_len > 50)
- pOutputData_len = 50;
- for(int count=0; count<pOutputData_len; count++)
- {
- pOutputData_tmp = pOutputData+count;
- // if(pOutputData_tmp->timestamp==0&&pOutputData_tmp->areaUP==0&&pOutputData_tmp->areaUPBase==0&&pOutputData_tmp->areaUPHeight==0)
- // break;
- //co_printf("pOutputData_tmp:%x\n",pOutputData_tmp);
- unsigned int time_tmp = get_timestamp();
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,
- "%u,%d,%d,%d,%d,%d,%d,%d,%d,%d,",
- time_tmp,pOutputData_tmp->timestamp,pOutputData_tmp->areaUP,pOutputData_tmp->areaUPBase,pOutputData_tmp->areaUPHeight,
- pOutputData_tmp->areaDOWN,pOutputData_tmp->areaDOWNBase,pOutputData_tmp->areaDOWNHeight,pOutputData_tmp->RRI,pOutputData_tmp->motion);
- uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- UART_send_buf[UART_send_buf_len] = 0;
- co_printf("%s",UART_send_buf);
- printf_len+=UART_send_buf_len;
- UART_send_buf_len = 0;
-
- if(count>=255)
- break;
- }
- uart0_write_for_hci("\"}\n",sizeof("\"}\n"),NULL, NULL);
- printf_len+=3;
- co_printf("%s","\"}\n");
- co_printf("YYL_test:printf_len:%d\n",printf_len);
- yyl_in_data_len =0;
- // ///////关闭//////////
- // pInit_Param.work_mode = WORK_MODE_NONE;
- // vc9202_usr_init(&pInit_Param);
- // send_yyl_data_flag=2;
- // yyl_timer=0;
- co_printf(" colse\n");
+
+ }else
+ {
+ // sensor_INT();//唤醒上位机
+ // co_delay_10us(100*1000);
}
+ //co_printf("YYL_test2!!\n");
}
}
IIC1_Read_Ack();
IIC1_Stop_I2c( );
send_bp_data_flag = 1;
+ read_BP_data_len =0;
co_printf(" BP_open \n");
-
-
}
void EMO_open(void)//情绪
{
IIC1_Read_Ack();
IIC1_Stop_I2c();
send_emo_data_flag = 1;
-
+ if(HA_BUF != NULL)
+ {
+ os_free(HA_BUF);
+ HA_BUF = NULL;
+ }
+ HA_BUF = os_malloc(HA_BUF_LEN);
+ if(HA_BUF == NULL)
+ {
+ while(1)
+ {
+ co_printf(" EMO_open malloc error!!!!!\n");
+ co_delay_10us(100*1000);
+ }
+ }
+ init_algorithm(HA_BUF, HA_BUF_LEN);
co_printf(" EMO_open \n");
}
//pmu_port_wakeup_func_set(GPIO_PC7);//使能心率中断
pInit_Param.work_mode = WORK_MODE_HRV;
vc9202_usr_init(&pInit_Param);
+ if(HA_BUF != NULL)
+ {
+ os_free(HA_BUF);
+ HA_BUF = NULL;
+ }
+ HA_BUF = os_malloc(HA_BUF_LEN);
+ if(HA_BUF == NULL)
+ {
+ while(1)
+ {
+ co_printf(" YYL_open malloc error!!!!!\n");
+ co_delay_10us(100*1000);
+ }
+ }
YYL_Init_PFE( HA_BUF, HA_BUF_LEN);//中医初始化
send_yyl_data_flag = 1;
co_printf(" YYL_open \n");
- init_algorithm(HA_BUF, sizeof(HA_BUF));
+ //init_algorithm(HA_BUF, sizeof(HA_BUF));
}
//vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
}
+void factory_open(void)//工厂模式
+{
+ gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //心率使能
+ gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //血压使能
+ //pmu_port_wakeup_func_set(GPIO_PC7);//使能心率中断
+ pInit_Param.work_mode = WORK_MODE_FACTORY;
+ vc9202_usr_init(&pInit_Param);
+ send_factory_data_flag = 1;
+ co_printf(" factory_open \n");
+
+ //vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
+}
void sensor_close(void)
{
pInit_Param.work_mode = WORK_MODE_NONE;
send_hrs_data_flag=0;//发送心率数据标标致位
send_hrv_data_flag=0;//发送心率变异性标致位
send_spo2_data_flag=0;//发送血氧数值标致位
+ send_factory_data_flag=0;//工厂模式数值标致位
send_temp_data_flag=0;//发送温度标致位
send_gs_data_flag=0;//发送gsensor数据标致位
send_sleep_data_flag=0;//发送sleep数据标致位
gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //血压使能
pmu_port_wakeup_func_clear(GPIO_PC7);//失能中断GPIO中断
+ if(HA_BUF != NULL)
+ {
+ os_free(HA_BUF);
+ HA_BUF = NULL;
+ }
co_printf(" sensor_close \n");
}
void sensor_while(void)
{
uart0_receive();
-
+ //factory_open();
//if(HR_IRQ_FLAG == 1)
{
//co_printf("sensor_while:HR_IRQ_FLAG:%d BP_IRQ_FLAG:%d\n",HR_IRQ_FLAG,BP_IRQ_FLAG);
SPO2_test();
// /////////////////////中医测量/////////////////////////////
YYL_test();
-
+ // /////////////////////工厂模式/////////////////////////////
+ factory_test();
}
//if(BP_IRQ_FLAG == 1)
{
// pmu_port_wakeup_func_set(GPIO_PC7|GPIO_PD4|GPIO_PD5|GPIO_PD6|GPIO_PD7);//GPIO中断
// NVIC_EnableIRQ(PMU_IRQn);
}
+//产生中断,告诉上位机有数据
+void sensor_INT(void)
+{
+ gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 1);
+ co_delay_100us(2);
+ gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //中断信号使能 低电平
+ co_delay_100us(2);
+}
void sensor_init(void)
{
//4G_INT1 = PD7 //4G中断1
pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_3_3); //设置内部LDO输出电压
+ system_set_port_mux(GPIO_PORT_D, GPIO_BIT_6, PORTD0_FUNC_D0);
+ gpio_set_dir(GPIO_PORT_D, GPIO_BIT_6, GPIO_DIR_OUT);
+ gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //中断信号使能 低电平
+
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PORTA0_FUNC_A0);
gpio_set_dir(GPIO_PORT_A, GPIO_BIT_0, GPIO_DIR_OUT);
gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 0); //心率使能 低电平
void HA_lib_init(void);
void sensor_init(void);
void sensor_while(void);
+void sensor_INT(void);
+void YYL_out_data(void);
+void factory_open(void);
#endif //_SENSOR_H
*
* @return None.
*/
-void mesh_init(mesh_composition_cfg_t cfg, struct bd_addr_ *addr, uint32_t store_addr);
+//void mesh_init(mesh_composition_cfg_t cfg, struct bd_addr_ *addr, uint32_t store_addr);
/*********************************************************************
* @fn mesh_set_runtime
*
version https://git-lfs.github.com/spec/v1
-oid sha256:6f8f3c89d498c5f280eb41c8379141f9f2b930c77ffce608ac9c4631570ede70
-size 1454240
+oid sha256:02d3eb1abc05019448469a796b86c12362f35924b4b9b41b9185cd49ef933582
+size 1446208
#include "flash_usage_config.h"
#ifdef OTA_CRC_CHECK
#include "os_timer.h"
-
+#include "os_task.h"
uint32_t Crc32CalByByte(int crc,uint8_t* ptr, int len);
uint8_t app_otas_crc_cal(uint32_t firmware_length,uint32_t new_bin_addr,uint32_t crc_data_t);
void enable_cache(uint8_t invalid_ram);
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
; *
; *****************************************************************************/
+Heap_Size EQU 0x00000050
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
EXPORT ssp_isr_ram [WEAK]
EXPORT pdm_isr_ram [WEAK]
EXPORT uart0_isr_ram [WEAK]
- EXPORT uart1_isr_ram [WEAK]
+ EXPORT uart1_isr_ram [WEAK]
+ IF :DEF:__MICROLIB
+ EXPORT __heap_base
+ EXPORT __heap_limit
+ ENDIF
adc_isr
ssp_isr_ram
pdm_isr_ram
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectGui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_gui.xsd">
- <SchemaVersion>-5.1</SchemaVersion>
+ <SchemaVersion>-6.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
+ <PrjGuiSettings>
+ <LastAddFilePath></LastAddFilePath>
+ </PrjGuiSettings>
+
<ViewPool/>
<SECTreeCtrl>
<View>
<WinId>38003</WinId>
<ViewName>Registers</ViewName>
- <TableColWidths>115 275</TableColWidths>
+ <TableColWidths>140 90</TableColWidths>
</View>
<View>
<WinId>346</WinId>
<ViewName>Code Coverage</ViewName>
- <TableColWidths>850 160</TableColWidths>
+ <TableColWidths>1010 160</TableColWidths>
</View>
<View>
<WinId>204</WinId>
<ViewName>Performance Analyzer</ViewName>
- <TableColWidths>1010</TableColWidths>
+ <TableColWidths>1170</TableColWidths>
</View>
</SECTreeCtrl>
<TreeListPane>
+ <View>
+ <WinId>35141</WinId>
+ <ViewName>Event Statistics</ViewName>
+ <UserString></UserString>
+ <TableColWidths>200 50 700</TableColWidths>
+ </View>
<View>
<WinId>1506</WinId>
<ViewName>Symbols</ViewName>
<UserString></UserString>
- <TableColWidths>133 133 133</TableColWidths>
+ <TableColWidths>80 80 80</TableColWidths>
</View>
<View>
<WinId>1936</WinId>
<ViewName>Watch 1</ViewName>
<UserString></UserString>
- <TableColWidths>133 133 133</TableColWidths>
+ <TableColWidths>200 133 133</TableColWidths>
</View>
<View>
<WinId>1937</WinId>
<ViewName>Watch 2</ViewName>
<UserString></UserString>
- <TableColWidths>133 133 133</TableColWidths>
+ <TableColWidths>200 133 133</TableColWidths>
</View>
<View>
<WinId>1935</WinId>
<ViewName>Call Stack + Locals</ViewName>
<UserString></UserString>
- <TableColWidths>133 133 133</TableColWidths>
+ <TableColWidths>200 133 133</TableColWidths>
</View>
<View>
<WinId>2506</WinId>
<UserString></UserString>
<TableColWidths>75 135 130 95 70 230 200 150</TableColWidths>
</View>
+ <View>
+ <WinId>466</WinId>
+ <ViewName>Source Browser</ViewName>
+ <UserString>500</UserString>
+ <TableColWidths>300</TableColWidths>
+ </View>
</TreeListPane>
+ <CompViewPool/>
+
<WindowSettings>
<LogicAnalizer>
<ShowLACursor>1</ShowLACursor>
<yPos>-1</yPos>
</MaxPosition>
<NormalPosition>
- <Top>184</Top>
- <Left>-117</Left>
- <Right>1382</Right>
- <Bottom>1098</Bottom>
+ <Top>138</Top>
+ <Left>757</Left>
+ <Right>2256</Right>
+ <Bottom>1067</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
- <Len>348</Len>
- <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000000000000100000039473A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F64655C70726F6A5F6D61696E2E63000000000B70726F6A5F6D61696E2E6300000000F6FA7D00FFFFFFFF3B473A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C496D69746174655F4949432E63000000000D496D69746174655F4949432E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000027010000260100005E05000028030000</Data>
+ <Len>1026</Len>
+ <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000003000000010000004D483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C5643393230325C7663393230325F6472697665725F746573746D6F64652E6300000000187663393230325F6472697665725F746573746D6F64652E6300000000C5D4F200FFFFFFFF61483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C534C5F57617463685F5065646F5F4B63616C5F57726973745F536C6565705F537761795F4C5F4170706C69636174696F6E2E630000000033534C5F57617463685F5065646F5F4B63616C5F57726973745F536C6565705F537761795F4C5F4170706C69636174696F6E2E6300000000FFDC7800FFFFFFFF4F483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F6D706F6E656E74735C626C655C696E636C7564655C6D6573685C6D6573685F6170692E68000000000A6D6573685F6170692E6800000000BECEA100FFFFFFFF42483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C5643393230325C7663393230325F757365722E63000000000D7663393230325F757365722E6300000000F0A0A100FFFFFFFF3C483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F64655C73656E736F725F64726976652E63000000000E73656E736F725F64726976652E6300000000BCA8E100FFFFFFFF4E483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F6D706F6E656E74735C626C655C70726F66696C65735C626C655F6F74615C6F74612E6300000000056F74612E63000000009CC1B600FFFFFFFF39483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F64655C70726F6A5F6D61696E2E63000000000B70726F6A5F6D61696E2E6300000000F7B88600FFFFFFFF39483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C626C655F355F302E736374000000000B626C655F355F302E73637400000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F1030000F8000000C80800004E030000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>940100004F00000090050000DD000000</Data>
+ <Data>F40000004F00000090050000DD000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>FE010000F5000000FA05000083010000</Data>
+ <Data>1901000030010000B5050000BE010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>00000000630000009001000051020000</Data>
+ <Data>0300000066000000ED0000008C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>109</RegID>
<PaneID>109</PaneID>
- <IsVisible>0</IsVisible>
+ <IsVisible>1</IsVisible>
<IsFloating>0</IsFloating>
<IsTabbed>0</IsTabbed>
<IsActivated>0</IsActivated>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000008D01000038020000</Data>
+ <Data>0300000066000000ED0000008C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000A6010000DD020000</Data>
+ <Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>195</RegID>
<PaneID>195</PaneID>
- <IsVisible>0</IsVisible>
+ <IsVisible>1</IsVisible>
<IsFloating>0</IsFloating>
<IsTabbed>0</IsTabbed>
<IsActivated>0</IsActivated>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000008D01000038020000</Data>
+ <Data>0300000066000000ED0000008C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000A6010000DD020000</Data>
+ <Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>196</RegID>
<PaneID>196</PaneID>
- <IsVisible>0</IsVisible>
+ <IsVisible>1</IsVisible>
<IsFloating>0</IsFloating>
<IsTabbed>0</IsTabbed>
<IsActivated>0</IsActivated>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000008D01000038020000</Data>
+ <Data>0300000066000000ED0000008C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000A6010000DD020000</Data>
+ <Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>030000006C020000C80500003F030000</Data>
+ <Data>03000000C0020000C80500004E030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
- <RecentFrameAlignment>32768</RecentFrameAlignment>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>030000006C020000C80500003F030000</Data>
+ <Data>03000000C0020000C80500004E030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>35141</RegID>
+ <PaneID>35141</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>F7000000660000008D050000C4000000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>97010000660000008D050000C4000000</Data>
+ <Data>F7000000660000008D050000C4000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03040000660000008D0500000C020000</Data>
+ <Data>A3040000660000008D0500000C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000008D01000038020000</Data>
+ <Data>0300000066000000ED0000008C020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000A6010000DD020000</Data>
+ <Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
- <RecentFrameAlignment>32768</RecentFrameAlignment>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>030000006C020000C80500003F030000</Data>
+ <Data>03000000C0020000C80500004E030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000520300002F010000</Data>
+ <Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
- <RecentFrameAlignment>32768</RecentFrameAlignment>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>030000006C020000C80500003F030000</Data>
+ <Data>03000000C0020000C80500004E030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A1000000A6010000DD020000</Data>
+ <Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>8A000000A10000001A02000031020000</Data>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>463</RegID>
+ <PaneID>463</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>03000000C0020000C80500004E030000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000DA01000011030000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>466</RegID>
+ <PaneID>466</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>03000000C0020000C80500004E030000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000DA01000011030000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>470</RegID>
+ <PaneID>470</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>F7000000660000008D050000C4000000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D50000008603000063010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50000</RegID>
+ <PaneID>50000</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50001</RegID>
+ <PaneID>50001</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50002</RegID>
+ <PaneID>50002</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50003</RegID>
+ <PaneID>50003</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50004</RegID>
+ <PaneID>50004</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50005</RegID>
+ <PaneID>50005</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50006</RegID>
+ <PaneID>50006</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50007</RegID>
+ <PaneID>50007</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50008</RegID>
+ <PaneID>50008</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50009</RegID>
+ <PaneID>50009</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50010</RegID>
+ <PaneID>50010</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50011</RegID>
+ <PaneID>50011</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50012</RegID>
+ <PaneID>50012</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50013</RegID>
+ <PaneID>50013</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50014</RegID>
+ <PaneID>50014</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50015</RegID>
+ <PaneID>50015</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50016</RegID>
+ <PaneID>50016</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50017</RegID>
+ <PaneID>50017</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50018</RegID>
+ <PaneID>50018</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
+ <Window>
+ <RegID>50019</RegID>
+ <PaneID>50019</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>A3040000660000008D0500000C020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
<IsFloating>0</IsFloating>
<IsTabbed>0</IsTabbed>
<IsActivated>0</IsActivated>
- <MRUWidth>940</MRUWidth>
+ <MRUWidth>966</MRUWidth>
<PinState>0</PinState>
<RecentFrameAlignment>8192</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>0000000000000000B70300001C000000</Data>
+ <Data>0000000000000000D10300001C000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>0000000058030000CB0500006B030000</Data>
+ <Data>0000000067030000CB0500007A030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<IsFloating>0</IsFloating>
<IsTabbed>0</IsTabbed>
<IsActivated>0</IsActivated>
- <MRUWidth>463</MRUWidth>
+ <MRUWidth>476</MRUWidth>
<PinState>0</PinState>
<RecentFrameAlignment>8192</RecentFrameAlignment>
<RecentRowIndex>1</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>000000001C000000DA01000038000000</Data>
+ <Data>000000001C000000E701000038000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>0A0000000A0000006E0000006E000000</Data>
</RectRecentFloat>
</Window>
+ <Window>
+ <RegID>824</RegID>
+ <PaneID>824</PaneID>
+ <IsVisible>0</IsVisible>
+ <IsFloating>0</IsFloating>
+ <IsTabbed>0</IsTabbed>
+ <IsActivated>0</IsActivated>
+ <MRUWidth>32767</MRUWidth>
+ <PinState>0</PinState>
+ <RecentFrameAlignment>4096</RecentFrameAlignment>
+ <RecentRowIndex>0</RecentRowIndex>
+ <RectRecentDocked>
+ <Len>16</Len>
+ <Data>030000002C0200008D0500009E020000</Data>
+ </RectRecentDocked>
+ <RectRecentFloat>
+ <Len>16</Len>
+ <Data>BE000000D5000000AE0100009E010000</Data>
+ </RectRecentFloat>
+ </Window>
<DockMan>
- <Len>2619</Len>
- <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000FE010000F5000000FA05000083010000940100004F00000090050000DD0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFFC0300004F0000000004000025020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000006A040000F5000000FA050000CB020000000400004F00000090050000250200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000051020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000006A000000F5000000FA010000F7020000000000004F00000090010000510200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000000000006A000000BB020000FA0500005D030000000000001502000090050000B702000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000051020000CB050000550200000100000001000010040000000100000061FEFFFF25010000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000006A000000FB02000035060000FE0300000000000055020000CB050000580300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
+ <Len>3312</Len>
+ <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000001901000030010000B5050000BE010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C504000030010000B505000006030000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000A50200000100000002000010040000000100000082FEFFFF42040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000025000000300100001501000086030000000000004F000000F0000000A50200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000025000000F6020000B505000098030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000A5020000CB050000A9020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000250000008A030000F00500004804000000000000A9020000CB050000670300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
</DockMan>
<ToolBar>
<RegID>59392</RegID>
<Name>File</Name>
<Buttons>
- <Len>2432</Len>
- <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000018737065616B65725F676174745F6164645F736572766963659600000000000000140018737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D0D75617274315F6973725F72616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670D554152545F73656E645F62756616766353706F72744D6F74696F6E43616C63756C61746509636F5F7072696E74660D7274635F6765745F76616C7565087265616C5F73706F1964656275675F73656E645F74696D65725F63616C6C6261636B0D7663393230325F636F6D6D6F6E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
+ <Len>2946</Len>
+ <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E534C5F535741595F535441545553960000000000000014000E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
</Buttons>
<OriginalItems>
<Len>1423</Len>
<RegID>59399</RegID>
<Name>Build</Name>
<Buttons>
- <Len>678</Len>
- <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000</Data>
+ <Len>976</Len>
+ <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
</Buttons>
<OriginalItems>
<Len>583</Len>
<RegID>59400</RegID>
<Name>Debug</Name>
<Buttons>
- <Len>2220</Len>
- <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
+ <Len>2373</Len>
+ <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
</Buttons>
<OriginalItems>
<Len>898</Len>
<ActiveMDIGroup>0</ActiveMDIGroup>
<MDIGroup>
<Size>100</Size>
- <ActiveTab>0</ActiveTab>
+ <ActiveTab>3</ActiveTab>
+ <Doc>
+ <Name>.\VC9202\vc9202_driver_testmode.c</Name>
+ <ColumnNumber>16</ColumnNumber>
+ <TopLine>8</TopLine>
+ <CurrentLine>18</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
+ <Doc>
+ <Name>.\SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application.c</Name>
+ <ColumnNumber>0</ColumnNumber>
+ <TopLine>213</TopLine>
+ <CurrentLine>244</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
+ <Doc>
+ <Name>..\components\ble\include\mesh\mesh_api.h</Name>
+ <ColumnNumber>14</ColumnNumber>
+ <TopLine>350</TopLine>
+ <CurrentLine>389</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
+ <Doc>
+ <Name>.\VC9202\vc9202_user.c</Name>
+ <ColumnNumber>4</ColumnNumber>
+ <TopLine>347</TopLine>
+ <CurrentLine>357</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
+ <Doc>
+ <Name>..\code\sensor_drive.c</Name>
+ <ColumnNumber>33</ColumnNumber>
+ <TopLine>218</TopLine>
+ <CurrentLine>243</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
+ <Doc>
+ <Name>..\components\ble\profiles\ble_ota\ota.c</Name>
+ <ColumnNumber>20</ColumnNumber>
+ <TopLine>1</TopLine>
+ <CurrentLine>27</CurrentLine>
+ <Folding>1</Folding>
+ <ContractedFolders></ContractedFolders>
+ <PaneID>0</PaneID>
+ </Doc>
<Doc>
<Name>..\code\proj_main.c</Name>
- <ColumnNumber>36</ColumnNumber>
- <TopLine>216</TopLine>
- <CurrentLine>237</CurrentLine>
+ <ColumnNumber>0</ColumnNumber>
+ <TopLine>317</TopLine>
+ <CurrentLine>358</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
- <Name>.\Imitate_IIC.c</Name>
- <ColumnNumber>32</ColumnNumber>
- <TopLine>569</TopLine>
- <CurrentLine>583</CurrentLine>
+ <Name>H:\1.work\3.ASR\3.Z5\1.doc\K18\BLE_Watch\keil\ble_5_0.sct</Name>
+ <ColumnNumber>5</ColumnNumber>
+ <TopLine>8</TopLine>
+ <CurrentLine>35</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</MDIGroup>
</MDIGroups>
- <Bookmarks>
- <ListItem>..\components\driver\driver_pmu.c 997</ListItem>
- <ListItem>..\components\driver\driver_pmu.c 1003</ListItem>
- <ListItem>..\components\driver\driver_pmu.c 1004</ListItem>
- <ListItem>..\components\driver\driver_pmu.c 871</ListItem>
- <ListItem>..\components\driver\driver_pmu.c 998</ListItem>
- </Bookmarks>
-
</ProjectGui>
<aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj; *.o</oExt>
<lExt>*.lib</lExt>
- <tExt>*.txt; *.h; *.inc</tExt>
+ <tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<nMigrate>0</nMigrate>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
+ <bEvRecOn>1</bEvRecOn>
+ <bSchkAxf>0</bSchkAxf>
+ <bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <bAutoGenD>0</bAutoGenD>
+ <LntExFlags>0</LntExFlags>
+ <pMisraName></pMisraName>
+ <pszMrule></pszMrule>
+ <pSingCmds></pSingCmds>
+ <pMultCmds></pMultCmds>
+ <pMisraNamep></pMisraNamep>
+ <pszMrulep></pszMrulep>
+ <pSingCmdsp></pSingCmdsp>
+ <pMultCmdsp></pMultCmdsp>
</TargetOption>
</Target>
<FileNumber>1</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\code\proj_main.c</PathWithFileName>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Imitate_IIC.c</PathWithFileName>
<FileNumber>3</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Imitate_IIC.h</PathWithFileName>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application.c</PathWithFileName>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\uart.c</PathWithFileName>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\code\ble_simple_central.c</PathWithFileName>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\code\sensor_drive.c</PathWithFileName>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\ble\profiles\ble_ota\ota_service.c</PathWithFileName>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\ble\profiles\ble_ota\ota.c</PathWithFileName>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\modules\platform\source\core_cm3_isr.c</PathWithFileName>
<FileNumber>11</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\modules\platform\source\app_boot_vectors.s</PathWithFileName>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\modules\patch\patch.c</PathWithFileName>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\modules\sha256\sha256.c</PathWithFileName>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\modules\aes_cbc\aes_cbc.c</PathWithFileName>
<FileNumber>15</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.lib</PathWithFileName>
<FileNumber>16</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\ble\library\fr8010h_stack.lib</PathWithFileName>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_efuse.c</PathWithFileName>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_exti.c</PathWithFileName>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_i2s.c</PathWithFileName>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_iic.c</PathWithFileName>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_keyscan.c</PathWithFileName>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_pmu.c</PathWithFileName>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_pmu_qdec.c</PathWithFileName>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_rtc.c</PathWithFileName>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_timer.c</PathWithFileName>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_uart.c</PathWithFileName>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_wdt.c</PathWithFileName>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_system.c</PathWithFileName>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\ble\profiles\ble_simple_profile\simple_gatt_service.c</PathWithFileName>
<FileNumber>30</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
- <Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\components\ble\profiles\ble_simple_profile\simple_gatt_service.h</PathWithFileName>
<FileNumber>31</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\lib_BIO_V141_8763ECM3_NA_01.lib</PathWithFileName>
<FileNumber>32</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\lib_hr_v630_8763ECM3_NA_01.lib</PathWithFileName>
<FileNumber>33</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\lib_SP_int_8763ECM3_NA_01.lib</PathWithFileName>
<FileNumber>34</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\lib_spo2_vp60a2_int_8763ECM3_NA_01.lib</PathWithFileName>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\vc9202_driver.c</PathWithFileName>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\vc9202_driver_testmode.c</PathWithFileName>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\vc9202_user.c</PathWithFileName>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\vc9202_user_debug.c</PathWithFileName>
<FileNumber>39</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\VC9202\lib_hr_yll_v0.5.3.012424.lib</PathWithFileName>
<TargetName>ble_mesh</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
+ <pCCUsed>5060960::V5.06 update 7 (build 960)::ARMCC</pCCUsed>
+ <uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>Cortex-M3</Device>
<UserProg2Name>fromelf.exe --bin -o Output/BLE_Watch.bin Objects/BLE_Watch.axf</UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
+ <RvdsMve>0</RvdsMve>
+ <RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>0</StupSel>
- <useUlib>0</useUlib>
+ <useUlib>1</useUlib>
<EndSel>1</EndSel>
<uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
<RoSelD>0</RoSelD>
<RwSelD>0</RwSelD>
<CodeSel>0</CodeSel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>1</uC99>
+ <uGnu>0</uGnu>
<useXO>0</useXO>
+ <v6Lang>1</v6Lang>
+ <v6LangP>1</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
+ <ClangAsOpt>1</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
#include "co_printf.h"
#include "sys_utils.h"
#include "imitate_iic.h"
+#include "string.h"
#define IO_I2C_TEST
uint8_t IIC0_Write_handle(uint8_t iic_addr,uint8_t write_reg,uint8_t * buff,uint8_t len)
{
uint8_t i = 0;
- uint8_t write_addr = 0,read_addr = 0;
+ uint8_t write_addr = 0;
write_addr = (iic_addr<<1);
- read_addr = (iic_addr<<1)|0x01;
IIC0_Start_I2c();
IIC0_Write_One_Byte(write_addr);
if(!IIC0_Read_Ack())
//IIC0_Write_handle(0x42,0x01,write_data,2);
}
-uint8_t bp_data[49];
+uint8_t bp_data[250];
+uint16_t bp_data_len = 0;
uint8_t bp_data_reuse_count = 0;
//返回1为正常数据,返回0为重复数据,需丢弃
uint8_t read_BP_data(void)
// return 0;
// }else
// {
- memcpy(bp_data,bp_data_tmp,sizeof(bp_data));
- #if 1
+ if(bp_data_len+48 < sizeof(bp_data))
+ {
+ memcpy(bp_data+bp_data_len,bp_data_tmp,48);
+ bp_data_len += 48;
+ }else
+ {
+ bp_data_len = 0;
+ memcpy(bp_data+bp_data_len,bp_data_tmp,48);
+ bp_data_len += 48;
+ }
+
+ #if 0
co_printf("BP_DATA : ");
for(uint8_t i=0;i<48;i++)
{
co_printf("%02X ",bp_data[i]);
}
co_printf("\n");
+
#endif
return 1;
//}
#define SL_SC7A20_VERSION_VALUE (unsigned char)0x11
#define SL_SC7A20E_VERSION_VALUE (unsigned char)0x26
-typedef enum {FALSE = 0,TRUE = !FALSE} BOOL;
+typedef enum {FALSE = 0,TRUE = 1} BOOL;
/********客户需要进行的IIC接口封包函数****************/
//extern unsigned char SL_SC7A20_I2c_Spi_Write(BOOL sl_spi_iic,unsigned char reg, unsigned char dat);
#if SL_Sensor_Algo_Release_Enable==0x00
unsigned char sl_version_value=0x00;
#endif
- bool sl_cal_xy_flag=0;
- unsigned char sl_cal_fifo=0;
- signed char sl_cal_value_xy[2]={0,0};
+ //bool sl_cal_xy_flag=0;
+ //unsigned char sl_cal_fifo=0;
+ //signed char sl_cal_value_xy[2]={0,0};
// bool fifo_status =0;
unsigned char sl_person_para[4] ={178,60,26,1};
/*****if use spi mode please config first******/
#if SL_SC7A20_SPI_IIC_MODE == 0//spi
//init sensor
- sl_init_status=SL_SC7A20_Driver_Init(0,0x04,1);//spi or iic select
+ sl_init_status=SL_SC7A20_Driver_Init(FALSE,0x04,TRUE);//spi or iic select
//0x04-->close i2c pull up resister (must)
#else//i2c
//init sensor
- sl_init_status=SL_SC7A20_Driver_Init(1,0x08,1);//spi or iic select
+ sl_init_status=SL_SC7A20_Driver_Init(TRUE,0x08,TRUE);//spi or iic select
//0x08-->close sdo pull up resister
#endif
/**********sc7a20 fifo test***************/
/*which axis used to pedo depend on algo**/
SL_PEDO_SET_AXIS(3);
/**********set int para*******************/
- SL_PEDO_INT_SET(2,1,1);//0 or 1 sleep is different
+ SL_PEDO_INT_SET(2,1,TRUE);//0 or 1 sleep is different
/**********set motion para****************/
SL_Pedo_Person_Inf_Init(&sl_person_para[0]);//personal para init
/**********set turn wrist para************/
static unsigned int SL_STEP = 0;
static unsigned int SL_STEP_TEMP = 0;
-static unsigned char SL_STEP_MOTION = 0;
-static unsigned int SL_DISTANCE = 0;
-static unsigned int SL_KCAL = 0;
-static unsigned char SL_CADENCE_STEP = 0;//step per minutes
-static unsigned short SL_CADENCE_AMP = 0;//Equal scale scaling
-static unsigned char SL_CADENCE_DEGREE = 0;//degree
-static signed char SL_WRIST = 0;
+//static unsigned char SL_STEP_MOTION = 0;
+//static unsigned int SL_DISTANCE = 0;
+//static unsigned int SL_KCAL = 0;
+//static unsigned char SL_CADENCE_STEP = 0;//step per minutes
+//static unsigned short SL_CADENCE_AMP = 0;//Equal scale scaling
+//static unsigned char SL_CADENCE_DEGREE = 0;//degree
+//static signed char SL_WRIST = 0;
static unsigned char SL_SLEEP_ACTIVE = 0;
static unsigned char SL_SLEEP_STATUS = 0;
SC7A20_INT_STATUS=SL_INT_STATUS_READ();
if((SC7A20_INT_STATUS==1)||(SL_STEP_TEMP!= SL_STEP))
{
- if(SL_INT_TIME_CNT>=SL_INT_TIME_TH) SC7A20_ODR_SET(1);
+ if(SL_INT_TIME_CNT>=SL_INT_TIME_TH) SC7A20_ODR_SET(TRUE);
SL_INT_TIME_CNT =0;
SL_STEP_TEMP =SL_STEP;
}
/*******get sc7a20 FIFO data******/
SC7A20_FIFO_NUM= SL_SC7A20_Read_FIFO();
/*******get pedo value************/
- SL_STEP= SL_Watch_Kcal_Pedo_Algo(0);//²»´ò¿ªÂí´ï»òÒôÀÖʱµ÷Óøú¯Êý
- //SL_STEP= SL_Watch_Kcal_Pedo_Algo(1);//´ò¿ªÂí´ï»òÒôÀÖʱµ÷Óøú¯Êý
+ SL_STEP= SL_Watch_Kcal_Pedo_Algo(FALSE);//²»´ò¿ªÂí´ï»òÒôÀÖʱµ÷Óøú¯Êý
+ //SL_STEP= SL_Watch_Kcal_Pedo_Algo(TRUE);//´ò¿ªÂí´ï»òÒôÀÖʱµ÷Óøú¯Êý
/*********get sleep active degree value*********/
- SL_SLEEP_ACTIVE = SL_Sleep_Active_Degree(0);
+ //SL_SLEEP_ACTIVE = SL_Sleep_Active_Degree(0);
/*******get accel orginal data and length*******/
- SC7A20_FIFO_NUM = SL_SC7A20_GET_FIFO_Buf(&SC7A20_XYZ_Buf[0][0],&SC7A20_XYZ_Buf[1][0],&SC7A20_XYZ_Buf[2][0],0);
+ SC7A20_FIFO_NUM = SL_SC7A20_GET_FIFO_Buf(&SC7A20_XYZ_Buf[0][0],&SC7A20_XYZ_Buf[1][0],&SC7A20_XYZ_Buf[2][0],FALSE);
#if SL_Sensor_Algo_Release_Enable==0x00
// for(sl_i=0;sl_i<SC7A20_FIFO_NUM;sl_i++)
// {
// USART_printf( USART1, "FIFO dat_x=%d dat_y=%d dat_z=%d!\r\n",SC7A20_XYZ_Buf[0][sl_i],SC7A20_XYZ_Buf[1][sl_i],SC7A20_XYZ_Buf[2][sl_i]);
// }
#endif
-
- SL_SC7A20_GET_DATA(&SC7A20_XYZ_Dat[0],&SC7A20_XYZ_Dat[1],&SC7A20_XYZ_Dat[2]);
+ if(SC7A20_FIFO_NUM>0)
+ SL_SC7A20_GET_DATA(&SC7A20_XYZ_Dat[0],&SC7A20_XYZ_Dat[1],&SC7A20_XYZ_Dat[2]);
/* SL_Pedo_GetMotion_Status */
- SL_STEP_MOTION = SL_Pedo_GetMotion_Status();
+ //SL_STEP_MOTION = SL_Pedo_GetMotion_Status();
/* SL_Pedo_Step_Get_Distance */
- SL_DISTANCE = SL_Pedo_Step_Get_Distance();
+ //SL_DISTANCE = SL_Pedo_Step_Get_Distance();
/* SL_Pedo_Step_Get_KCal */
- SL_KCAL = SL_Pedo_Step_Get_KCal();
+ //SL_KCAL = SL_Pedo_Step_Get_KCal();
/*****average step per minutes****/
- SL_CADENCE_STEP = SL_Pedo_Step_Get_Step_Per_Min();
+ //SL_CADENCE_STEP = SL_Pedo_Step_Get_Step_Per_Min();
/*****average amp per step****/
- SL_CADENCE_AMP = SL_Pedo_Step_Get_Avg_Amp();
+ //SL_CADENCE_AMP = SL_Pedo_Step_Get_Avg_Amp();
/*****motion degree****/
- SL_CADENCE_DEGREE = SL_Pedo_Step_Get_Motion_Degree();
+ //SL_CADENCE_DEGREE = SL_Pedo_Step_Get_Motion_Degree();
// if(SL_STEP>200)
// {
// }
/*******get wrist value******/
- SL_WRIST= SL_Watch_Wrist_Algo();
+ //SL_WRIST= SL_Watch_Wrist_Algo();
/*******get overturn value******/
- SL_CLOCK_STATUS=SL_Get_Clock_Status(1);//open overturn monitor
+ SL_CLOCK_STATUS=SL_Get_Clock_Status(TRUE);//open overturn monitor
if(SL_CLOCK_STATUS==1)//overturn success
{
- SL_Get_Clock_Status(0);//close overturn monitor
+ SL_Get_Clock_Status(FALSE);//close overturn monitor
}
/*******get sway value******/
{
/**this function will disable pedo function**/
SL_SWAY_STATUS=SL_Get_Phone_Answer_Status(3,4);//get sway value
-#if SL_Sensor_Algo_Release_Enable==0x00
+#if 1
if(SL_SWAY_STATUS==1)
{
// USART_printf( USART1, "############sway happen!!!!\r\n");
}
SL_DIRECTION_STATUS= SL_Get_Direction_Status();
+ if(SL_DIRECTION_STATUS)
+ co_printf("SL_DIRECTION_STATUS:%d\r\n",SL_DIRECTION_STATUS);
}
else
{
SL_Pedo_WorkMode_Reset();
//SL_Turn_Wrist_WorkMode_Reset();please not use this function
SC7A20_FIFO_NUM=0;
- SC7A20_ODR_SET(0);//data for 10Hz 0.5S=5'S data //for heart rate algo
- //SC7A20_ODR_SET(1);//data for 25Hz 0.5S=12-13'S data //for heart rate algo
+ SC7A20_ODR_SET(FALSE);//data for 10Hz 0.5S=5'S data //for heart rate algo
+ if(SC7A20_FIFO_NUM)
+ SC7A20_FIFO_NUM = 0;
+ //SC7A20_ODR_SET(TRUE);//data for 25Hz 0.5S=12-13'S data //for heart rate algo
}
/*******get sleep status value******/
/*******get sleep status value******/
SL_SLEEP_STATUS= SL_Sleep_GetStatus(sl_sleep_sys_hour);
SL_SLEEP_ACTIVE= SL_Sleep_Get_Active_Degree();
+ if(SL_SLEEP_ACTIVE == 0)
+ __nop();
SL_SLEEP_ADOM = SL_Adom_GetStatus();
-
+ if(SL_SLEEP_ADOM == 0)
+ __nop();
#if SL_Sensor_Algo_Release_Enable==0x00
sl_sleep_counter++;
// USART_printf( USART1, "step=%d! sys_time=%d!\r\n",SL_STEP,sl_sleep_sys_hour);
char* version_info_Bio(void);
-#endif /* BIODETECT */
\ No newline at end of file
+#endif /* BIODETECT */
/* 0:rising edge 1:descending edge */
#define VC9202_CFG_INTERRUPT_MODE (0)
-#define VC9202_CFG_CLK_CHECK_FREQUENCY (32000) //counter 32K
+#define VC9202_CFG_CLK_CHECK_FREQUENCY (1000) //counter 32K
#define VC9202_CFG_CLK_CHECK_MAX (0xFFFFFF) //24bits counter
#define VC9202_CFG_CLK_CHECK_GAPTIME (10) //seconds
#define VC9202_CFG_CLK_CHECK_DEVIATION (3)
*********************************************************************************************************/
#include "vc9202_common.h"
#include "vc9202_driver.h"
-//#include "f_BIODetect_V14_1.h"
+#include "BIODetect_V14_1.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
unsigned char event = 0;
unsigned char en_int = 0;
unsigned char env_value = 0, ps_value = 0;
- unsigned char bio_buffer[4] = {0};
+
unsigned short int bio_value = 0;
unsigned char wear_interrupt = 0;
unsigned char slot_index = 0;
{
/* 读取佩戴检测所需的数据 */
#if 0
+ unsigned char bio_buffer[4] = {0};
usr_iic_read_bytes(0x43, &env_value, 1);
usr_iic_read_bytes(0x46, &ps_value, 1);
usr_iic_read_bytes(0x4B, bio_buffer, 4);
//如果不需要,删除本文件和其他报错的地方即可
#include "vc9202_common.h"
#include "vc9202_driver.h"
-
+#include "stdio.h"
+#include <stdlib.h>
+#include <string.h>
VC9202TestInfoTypeDef vc9202_test_info = {0};
const static unsigned char disp_green[17] = {0xC5, 0x30, 0x8A, 0x40, 0x03, 0x1F, 0x00,
mcu_cnt[1] = 0;
chip_cnt[0] = 0;
chip_cnt[1] = 0;
- memset(ptest_info, 0, sizeof(VC9202TestInfoTypeDef));
+ memset((void *)ptest_info, 0, sizeof(VC9202TestInfoTypeDef));
}
static unsigned int vc9202_test_real_frequency(void)
chip_cnt[0] = (cnt_reg[0] << 8) + cnt_reg[1];
unsigned short cnt1 = (cnt_reg[0] << 8) + cnt_reg[1];
unsigned short cnt2 = (cnt_reg[2] << 8) + cnt_reg[3];
- if (abs(cnt1 - cnt2) >= 10)
+ if (abs((int)(cnt1 - cnt2)) >= 10)
{
return 0xffff;
}
#include "yyl_pfev01.h"
#include "driver_gpio.h"
#include "SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h"
+#include "uart.h"
static WorkModeTypeDef work_mode = WORK_MODE_NONE;
AlgoCalcResultsTypeDef vc9202_alg_results = {0};
-
+extern unsigned char *UART_send_buf;
+extern int UART_send_buf_len ;
/* 蓝牙发送原始数据接口 */
//extern void vc9202_debug_send_heart_rate_data( SamplingDataTypeDef* presult ,GsensorTypeDef* paxis, unsigned char heart_rate, unsigned char algo_mode, unsigned char ppgsize );
//extern void vc9202_debug_send_spo2_data( SamplingDataTypeDef* presult ,GsensorTypeDef* paxis, unsigned char spo2_val, unsigned char ppgsize );
*/
unsigned int usr_get_clock_ticks(void)
{
- return rtc_get_value();
+ return system_get_curr_time();//rtc_get_value();
}
/*********************************************************************************************************
int16_t AXIS_Y;
int16_t AXIS_Z;
} AxesRaw_t;
-static void gsensor_data_match(AxesRaw_t *org_data, GsensorTypeDef *pGsensorParam, unsigned char ppg_size)
+void gsensor_data_match(AxesRaw_t *org_data, GsensorTypeDef *pGsensorParam, unsigned char ppg_size)
{
const unsigned char arry10[] = {0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12};
const unsigned char arry20[] = {0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
//unsigned char SC7A20_FIFO_NUM = 0;
signed short SC7A20_XYZ_Buf[3][32];
gsensor_len= SL_SC7A20_Read_FIFO();
- gsensor_len= SL_SC7A20_GET_FIFO_Buf(&SC7A20_XYZ_Buf[0][0],&SC7A20_XYZ_Buf[1][0],&SC7A20_XYZ_Buf[2][0],0);
+ gsensor_len= SL_SC7A20_GET_FIFO_Buf(&SC7A20_XYZ_Buf[0][0],&SC7A20_XYZ_Buf[1][0],&SC7A20_XYZ_Buf[2][0],FALSE);
if(ppg_size>sizeof(gsensor_buff)/sizeof(AxesRaw_t))
{
ppg_size = sizeof(gsensor_buff)/sizeof(AxesRaw_t);
{
for(i=0;i<ppg_size;i++)
{
- gsensor_buff[i].AXIS_X= SC7A20_XYZ_Buf[0][i/(ppg_size/gsensor_len+1)];
- gsensor_buff[i].AXIS_Y = SC7A20_XYZ_Buf[1][i/(ppg_size/gsensor_len+1)];
- gsensor_buff[i].AXIS_Z = SC7A20_XYZ_Buf[2][i/(ppg_size/gsensor_len+1)];
+ gsensor_buff[i].AXIS_X= SC7A20_XYZ_Buf[0][i/(ppg_size/gsensor_len+1)]>>5;
+ gsensor_buff[i].AXIS_Y = SC7A20_XYZ_Buf[1][i/(ppg_size/gsensor_len+1)]>>5;
+ gsensor_buff[i].AXIS_Z = SC7A20_XYZ_Buf[2][i/(ppg_size/gsensor_len+1)]>>5;
}
}else
{
for(i=0;i<ppg_size;i++)
{
- gsensor_buff[i].AXIS_X= SC7A20_XYZ_Buf[0][i];
- gsensor_buff[i].AXIS_Y = SC7A20_XYZ_Buf[1][i];
- gsensor_buff[i].AXIS_Z = SC7A20_XYZ_Buf[2][i];
+ gsensor_buff[i].AXIS_X= SC7A20_XYZ_Buf[0][i]>>4;
+ gsensor_buff[i].AXIS_Y = SC7A20_XYZ_Buf[1][i]>>4;
+ gsensor_buff[i].AXIS_Z = SC7A20_XYZ_Buf[2][i]>>4;
}
}
pGsensorParam->gsensor_z_axis[i] = gsensor_buff[gsensor_len-1].AXIS_Z;
}
}
+#else
+ for (int i = 0; i < ppg_size; i++)
+ {
+ pGsensorParam->gsensor_x_axis[i] = 0;
+ pGsensorParam->gsensor_y_axis[i] = 0;
+ pGsensorParam->gsensor_z_axis[i] = 256;
+ }
+ *pgsensor_len = ppg_size;
#endif
}
ppg_size = sizeof(gsensor_data.gsensor_x_axis)/sizeof(int);
co_printf("ppg_size be adjusted to %d!! \n",ppg_size);
}
- if(ppg_size)
- co_printf(" interrupt ppg_size:%d!! \n",ppg_size);
+ // if(ppg_size)
+ // co_printf(" interrupt ppg_size:%d!! \n",ppg_size);
switch ( work_mode )
{
case WORK_MODE_HR:
yylPFE_InputData_t yyl_in_data = {0};
if(wear_status)
{
- //co_printf("WORK_MODE_HRV2\n");
- vc9202_alg_results.hr_rate = alg_calculate_hrv_handler( vc9202_alg_results.hr_rate, &data, ppg_size, &gsensor_data, hr_alg_mode );
- /* 校验+算法HRV */
- co_printf("WORK_MODE_HRV hr:%d \nPPG:",vc9202_alg_results.hr_rate);
- for(int i=0;i<ppg_size;i++)
+ if(yyl_in_data_len< 3000-1)
{
- //data.ppg_data[i] = 1008;
- //vc9202_alg_results.hr_rate = 91;
- memset(&yyl_in_data,0,sizeof(yyl_in_data)) ;
- co_printf("%d ",data.ppg_data[i]);
- yyl_in_data.axes.x = gsensor_data.gsensor_x_axis[i];
- yyl_in_data.axes.y = gsensor_data.gsensor_y_axis[i];
- yyl_in_data.axes.z = gsensor_data.gsensor_z_axis[i];
- yyl_in_data.ppgSample = data.ppg_data[i];
-
- if(data.ppg_data[i])
+ //co_printf("WORK_MODE_HRV2\n");
+ vc9202_alg_results.hr_rate = alg_calculate_hrv_handler( vc9202_alg_results.hr_rate, &data, ppg_size, &gsensor_data, hr_alg_mode );
+ /* 校验+算法HRV */
+ co_printf("WORK_MODE_HRV hr:%d ppg_size:%d \r\nPPG:",vc9202_alg_results.hr_rate,ppg_size);
+ for(int i=0;i<ppg_size;i++)
{
+ //data.ppg_data[i] = 1008;
+ //vc9202_alg_results.hr_rate = 91;
+ memset(&yyl_in_data,0,sizeof(yyl_in_data)) ;
+
+ yyl_in_data.axes.x = gsensor_data.gsensor_x_axis[i];
+ yyl_in_data.axes.y = gsensor_data.gsensor_y_axis[i];
+ yyl_in_data.axes.z = gsensor_data.gsensor_z_axis[i];
+ yyl_in_data.ppgSample = data.ppg_data[i];
+ co_printf("H:%d,P:%d,X:%d,Y:%d,Z:%d ||",vc9202_alg_results.hr_rate,data.ppg_data[i],yyl_in_data.axes.x,yyl_in_data.axes.y,yyl_in_data.axes.z);
+ //co_printf("%d ",data.ppg_data[i]);
+ //if(data.ppg_data[i])
YYL_Input_PFE(&yyl_in_data,vc9202_alg_results.hr_rate);
yyl_in_data_len++;
+
}
- }
- co_printf(" !\n");
- //co_printf("WORK_MODE_HRV4 yyl_in_data_len:%d\n",yyl_in_data_len);
+ co_printf(" \n");
+ //co_printf("WORK_MODE_HRV4 yyl_in_data_len:%d\n",yyl_in_data_len);
+ }
+
}
else
{
- co_printf("wear_status error!!!!\n");
+ //co_printf("wear_status error!!!!\n");
vc9202_alg_results.hr_rate = 0;
Algo_Init();
/* 清空数据+初始化算法 */
}
break;
case WORK_MODE_FACTORY:
- factory_test_function( &data );
+ sensor_INT();//唤醒上位机
+ factory_test_function(&data);
+ co_printf("WORK_MODE_FACTORY:apre_val[0]:%d,apre_val[1]:%d,aps_val:%d\n",data.apre_val[0],data.apre_val[1],data.aps_val);
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n",data.apre_val[0],data.apre_val[1],data.aps_val);
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
break;
case WORK_MODE_FPC_TEST:
fpc_test_function(&data);
*(ram_code)
}
- ER_STACK +0 ALIGN(4)
- {
- *(stack_space)
- }
-
ER_RW +0
{
*(+RW)
HEAP_KE +0
{
*(heap_ke)
- }
-
- HEAP_USER +0
- {
- *(heap_user)
}
}
-;#<FEEDBACK># ARM Linker, 5050106: Last Updated: Fri Feb 23 11:18:07 2024
+;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Sat Mar 16 10:02:04 2024
;VERSION 0.2
;FILE acpower_add_doublefre.o
acPower_add_doublefre_init <= USED 0
__asm___12_driver_rtc_c_rtc_init____RRX <= USED 0
rtc_alarm <= USED 0
rtc_disalarm <= USED 0
+rtc_init <= USED 0
;FILE driver_timer.o
__asm___14_driver_timer_c_89f15fa2____REV16 <= USED 0
__asm___14_driver_timer_c_89f15fa2____REVSH <= USED 0
__asm___7_patch_c_487891fc____REV16 <= USED 0
__asm___7_patch_c_487891fc____REVSH <= USED 0
__asm___7_patch_c_487891fc____RRX <= USED 0
-;FILE patch_lld_adv.o
-lld_adv_pkt_rx_patch <= USED 0
-rssi_threshold_set <= USED 0
;FILE patch_no_md_bit.o
dbg_log <= USED 0
gatt_get_tx_buf_nb <= USED 0
__asm___10_patch_rf_c_e73c1e89____RRX <= USED 0
lc_update_check <= USED 0
lld_con_tx_remove_duplicate <= USED 0
-patch_fast_scan_set <= USED 0
system_set_conn_sleep_max_during <= USED 0
-test_start <= USED 0
;FILE patch_rtos.o
__asm___12_patch_rtos_c_ea38be2b____REV16 <= USED 0
__asm___12_patch_rtos_c_ea38be2b____REVSH <= USED 0
retry_handshake <= USED 0
str_to_hex_arr <= USED 0
str_to_val <= USED 0
-system_get_curr_time <= USED 0
system_get_spare_exmem <= USED 0
system_optimize_power_consumption_set <= USED 0
system_power_off <= USED 0
__asm___13_vc9202_user_c_a664f2b1____REV16 <= USED 0
__asm___13_vc9202_user_c_a664f2b1____REVSH <= USED 0
__asm___13_vc9202_user_c_a664f2b1____RRX <= USED 0
+gsensor_data_match <= USED 0
vc9202_usr_channel_switch <= USED 0
vc9202_usr_get_int_reason <= USED 0
vc9202_usr_soft_reset <= USED 0
char send_hrs_data_flag= 0;//心率数据标标致位
char send_hrv_data_flag= 0;//心率变异性标致位
char send_spo2_data_flag= 0;//血氧数值标致位
+char send_factory_data_flag= 0;//工厂模式标致位
char send_yyl_data_flag= 0;//中医标致位
char send_emo_data_flag= 0;//情绪标致位
char send_temp_data_flag= 0;//温度标致位
if(count > 65532)
return 0;
}
+ return 0;
}
/***************************模块接收处理**********************************/
uart_reg_ram->u2.ier.erlsi = 0;
}
}
-
+#include "vc9202_user.h"
unsigned int uart0_timer = 0;
-
+extern uint8_t bp_data[100];
+extern uint16_t bp_data_len ;
+extern AlgoCalcResultsTypeDef vc9202_alg_results;
void uart0_receive(void)
{
if(uart0_data_len >0)
co_printf("uart_read:%s\n",uart0_rivce_data);
//co_printf("uart0_receive:%s\n",uart0_rivce_data);
- if(strstr(uart0_rivce_data,"\"cmd\":\"1\""))//{"cmd":"
+ if(strstr((char *)uart0_rivce_data,"\"cmd\":\"1\""))//{"cmd":"
{
//////////////////////////////执行工作模式///////////////////////////{"cmd":"1","work_mode":"hrs"}
send_bp_data_flag=0;//发送血压数据标致位
send_sleep_data_flag=0;//发送sleep数据标致位
send_step_data_flag=0;//发送step数据标致位
send_wear_data_flag=0;//发送wear数据标致位
- if(strstr(uart0_rivce_data,"\"bp\""))//bp:血压模式
+ sensor_INT();//唤醒上位机
+ if(strstr((char *)uart0_rivce_data,"\"bp\""))//bp:血压模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
BP_open();//血压
}
- else if(strstr(uart0_rivce_data,"\"hrs\""))//:"hrs"}//hrs:心率模式
+ else if(strstr((char *)uart0_rivce_data,"\"hrs\""))//:"hrs"}//hrs:心率模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
- HRS_open();//心率
+ HRS_open();//心率
}
- else if(strstr(uart0_rivce_data,"\"hrv\""))//:"hrv"}//hrv:HRV模式
+ else if(strstr((char *)uart0_rivce_data,"\"hrv\""))//:"hrv"}//hrv:HRV模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
send_hrv_data_flag=1;
}
- else if(strstr(uart0_rivce_data,"\"spo2\""))//:"spo2"}//spo2:血氧模式
+ else if(strstr((char *)uart0_rivce_data,"\"spo2\""))//:"spo2"}//spo2:血氧模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
SPO2_open();//血氧
- }else if(strstr(uart0_rivce_data,"\"yyl\""))//yyl:中医模式
+ }else if(strstr((char *)uart0_rivce_data,"\"yyl\""))//yyl:中医模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
YYL_open();//中医
- }else if(strstr(uart0_rivce_data,"\"emo\""))//emo:情绪模式
+ }else if(strstr((char *)uart0_rivce_data,"\"emo\""))//emo:情绪模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
EMO_open();//情绪
}
- else if(strstr(uart0_rivce_data,"\"wear\""))//:"wear"}//wear:佩戴模式
+ else if(strstr((char *)uart0_rivce_data,"\"wear\""))//:"wear"}//wear:佩戴模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
send_wear_data_flag=1;
}
- else if(strstr(uart0_rivce_data,"\"temp\""))//:"temp"}//temp:温度模式
+ else if(strstr((char *)uart0_rivce_data,"\"temp\""))//:"temp"}//temp:温度模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
send_temp_data_flag=1;
+ }else if(strstr((char *)uart0_rivce_data,"\"factory\""))//:"factory"}//factory:工厂模式
+ {
+ uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
+ factory_open();//工厂模式
}
- else if(strstr(uart0_rivce_data,"\"close\""))//:"close"}//close:关闭所有测试,进入低功耗待机模式
+ else if(strstr((char *)uart0_rivce_data,"\"close\""))//:"close"}//close:关闭所有测试,进入低功耗待机模式
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
///////////////////////////////// 关闭测量//////////////////////////////////////////////
}
}
//////////////////////////////获取测试数值///////////////////////////主控->血压模块{"cmd":"2","get_data":"bp"}
- if(strstr(uart0_rivce_data,"\"cmd\":\"2\""))//2"//2:获取测试数值
+ if(strstr((char *)uart0_rivce_data,"\"cmd\":\"2\""))//2"//2:获取测试数值
{
- if(strstr(uart0_rivce_data,"\"get_data\":\"bp\""))//:"bp"}//bp:获取血压数值
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"bp\""))//:"bp"}//bp:获取血压数值
{
- send_bp_data_flag=1;
+ send_bp_data_flag = 1;
+ if(bp_data_len != 0)
+ {
+ sensor_INT();//唤醒上位机
+ //输出血压数据到串口0
+ co_printf("bp_data_len:%d\n",bp_data_len);
+ uart0_write_for_hci("{\"cmd\":\"2\",\"bp_data\":\"",strlen("{\"cmd\":\"2\",\"bp_data\":\""),NULL, NULL);
+ UART_send_buf_len = 0;
+
+ for(uint8_t i=0;i<bp_data_len;i++)//转码
+ {
+ UART_send_buf_len += snprintf((char *)UART_send_buf+i*2,UART_SEND_MAX,"%02X",bp_data[i]);
+ // uintTOstr(bp_data[i]);
+ // uart_putc_noint(UART0,str_high);
+ // uart_putc_noint(UART0,str_low);
+ }
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ uart0_write_for_hci("\"}\n", 3, NULL, NULL);
+ memset(bp_data,0,sizeof(bp_data));
+ bp_data_len =0;
+ }
+
+
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"hrs\""))//:"hrs"}//hrs:获取心率数值
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"hrs\""))//:"hrs"}//hrs:获取心率数值
{
- send_hrs_data_flag=1;
+ send_hrs_data_flag = 1;
+ if(vc9202_alg_results.hr_rate >0)
+ {
+ //co_printf("HRS_test3!!!!!!!!\n");
+ //co_printf("hr_rate0:%d UART_send_buf:0x%x\n",vc9202_alg_results.hr_rate,UART_send_buf);
+ memset(UART_send_buf,0,UART_SEND_MAX);
+ sensor_INT();//唤醒上位机
+ co_printf("hr_rate:%d \n",vc9202_alg_results.hr_rate);
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"hrs_data\":\"%d\"}\n",vc9202_alg_results.hr_rate);
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ vc9202_alg_results.hr_rate = 0;
+ //co_printf("hr_rate2:%d \n",vc9202_alg_results.hr_rate);
+ }
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"hrv\""))//:"hrv"}//hrv:获取HRV数值(暂不做)
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"hrv\""))//:"hrv"}//hrv:获取HRV数值(暂不做)
{
send_hrv_data_flag=1;
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"spo2\""))//:"spo2"}//spo2:获取血氧模式
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"spo2\""))//:"spo2"}//spo2:获取血氧模式
{
- send_spo2_data_flag=1;
+ send_spo2_data_flag = 1;
+ if(vc9202_alg_results.spo2_val >0)
+ {
+ sensor_INT();//唤醒上位机
+ co_printf("spo2_val:%d \n",vc9202_alg_results.spo2_val);
+ memset(UART_send_buf,0,UART_SEND_MAX);
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"spo2_data\":\"%d\"}\n",vc9202_alg_results.spo2_val);
+ uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ vc9202_alg_results.spo2_val = 0;
+ }
+ }if(strstr((char *)uart0_rivce_data,"\"get_data\":\"yyl\""))//:"yyl"}//yyl:获取中医数据
+ {
+ send_yyl_data_flag=1;
+ YYL_out_data();//发送中医数据
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"wear\""))//:"wear"}//wear:获取佩戴模式
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"wear\""))//:"wear"}//wear:获取佩戴模式
{
- send_wear_data_flag=1;
+ // unsigned char wear = vc9202_usr_get_wear_status();//获取佩戴状态
+ // co_printf("wear_val:%d \n",wear);
+ // memset(UART_send_buf,0,UART_SEND_MAX);
+ // UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"wear_data\":\"%d\"}\n",wear);
+ // uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"step\""))//:"step"}//step:获取累计步数
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"step\""))//:"step"}//step:获取累计步数
{
send_step_data_flag=1;
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"sleep\""))//:"sleep"}//sleep:获取当前睡眠等级
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"sleep\""))//:"sleep"}//sleep:获取当前睡眠等级
{
send_sleep_data_flag=1;
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"gsensor\""))//:"gsensor"}//gsensor:获取当前重力传感器数值(每秒25个)
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"gsensor\""))//:"gsensor"}//gsensor:获取当前重力传感器数值(每秒25个)
{
gsensor_test();
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"temp\""))//:"temp"}//temp:获取当前温度数值
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"temp\""))//:"temp"}//temp:获取当前温度数值
{
temp_test();
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"is_HA_activate\""))//:获取恒爱库是否激活状态
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"is_HA_activate\""))//:获取恒爱库是否激活状态
{
- UART_send_buf_len = snprintf(UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"is_HA_activate\":\"%d\"}\n",is_HA_activate);
+ sensor_INT();//唤醒上位机
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"is_HA_activate\":\"%d\"}\n",is_HA_activate);
uart0_write_for_hci(UART_send_buf, UART_send_buf_len, NULL, NULL);
}
- if(strstr(uart0_rivce_data,"\"get_data\":\"HA_req_code\""))//:获取恒爱库请求码
+ if(strstr((char *)uart0_rivce_data,"\"get_data\":\"HA_req_code\""))//:获取恒爱库请求码
{
unsigned int req_len = 0;
- request_validation("ZHSX",4,sys_config.IMEI,strlen(sys_config.IMEI),sys_config.HA_req_code,&req_len);
+ sensor_INT();//唤醒上位机
+ request_validation((unsigned char *)"ZHSX",4,(unsigned char *)sys_config.IMEI,strlen(sys_config.IMEI),(unsigned char *)sys_config.HA_req_code,&req_len);
sys_config.HA_req_code[req_len] = 0;
- UART_send_buf_len = snprintf(UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"HA_req_code\":\"%s\"}\n",sys_config.HA_req_code);
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"HA_req_code\":\"%s\"}\n",sys_config.HA_req_code);
uart0_write_for_hci(UART_send_buf, UART_send_buf_len, NULL, NULL);
co_printf("HA_req_code:HA_req_code:%s \n",sys_config.HA_req_code);
save_sys_config();//保存配置
}
+
+ // memset(UART_send_buf,0,UART_SEND_MAX);
+ // UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"wear_data\":\"%d\"}\n",wear);
+ // uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
}
//////////////////////////////执行设置参数命令///////////////////////////
- if(strstr(uart0_rivce_data,"\"cmd\":\"3\""))//3"//3:执行设置参数命令
+ if(strstr((char *)uart0_rivce_data,"\"cmd\":\"3\""))//3"//3:执行设置参数命令
{
char *str_tmp = NULL;
int len_tmp = 0;
char data_tmp[30] = {0};
- str_tmp = strstr(uart0_rivce_data,"\"set_IMEI\":\"");//设置IMEI号
+ str_tmp = strstr((char *)uart0_rivce_data,"\"set_IMEI\":\"");//设置IMEI号
if(str_tmp)
{
+ sensor_INT();//唤醒上位机
str_tmp+=strlen("\"set_IMEI\":\"");
len_tmp = find_c(str_tmp,'\"');
if(len_tmp >= sizeof(sys_config.IMEI))
}
- UART_send_buf_len = snprintf(UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"set_config\":\"1\"}\n");
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"set_config\":\"1\"}\n");
uart0_write_for_hci(UART_send_buf, UART_send_buf_len, NULL, NULL);
}
- str_tmp = strstr(uart0_rivce_data,"\"set_time\":\"");//设置时间戳
+ str_tmp = strstr((char *)uart0_rivce_data,"\"set_time\":\"");//设置时间戳
if(str_tmp)
{
+ sensor_INT();//唤醒上位机
str_tmp+=strlen("\"set_time\":\"");
len_tmp = find_c(str_tmp,'\"');
timestamp_d = atoi(data_tmp);
co_printf("timestamp_d:%d\n",timestamp_d);
- UART_send_buf_len = snprintf(UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"set_config\":\"1\"}\n");
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"set_config\":\"1\"}\n");
uart0_write_for_hci(UART_send_buf, UART_send_buf_len, NULL, NULL);
}
- str_tmp = strstr(uart0_rivce_data,"\"set_HA_key_code\":\"");//设置恒爱算法库激活码
+ str_tmp = strstr((char *)uart0_rivce_data,"\"set_HA_key_code\":\"");//设置恒爱算法库激活码
if(str_tmp)
{
+ sensor_INT();//唤醒上位机
str_tmp+=strlen("\"set_HA_key_code\":\"");
len_tmp = find_c(str_tmp,'\"');
if(len_tmp < sizeof(sys_config.HA_key_code))
{
memcpy(sys_config.HA_key_code,str_tmp,len_tmp);
- is_HA_activate = activate_algorithm(sys_config.HA_req_code,strlen(sys_config.HA_req_code),sys_config.HA_key_code,strlen(sys_config.HA_key_code));
+ is_HA_activate = activate_algorithm((unsigned char *)sys_config.HA_req_code,strlen(sys_config.HA_req_code),(unsigned char *)sys_config.HA_key_code,strlen(sys_config.HA_key_code));
co_printf("set_HA_key_code:HA_key_code:%s is_HA_activate:%d\n",sys_config.HA_key_code,is_HA_activate);
save_sys_config();//保存配置
}
- UART_send_buf_len = snprintf(UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"HA_activate\":\"%d\"}\n",is_HA_activate);
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"HA_activate\":\"%d\"}\n",is_HA_activate);
uart0_write_for_hci(UART_send_buf, UART_send_buf_len, NULL, NULL);
}
}