源码/核心板/MDK-ARM/1 | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/MDK-ARM/Project.uvguix.Administrator | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/MDK-ARM/Project.uvoptx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/dw_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/dw_app.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/global_param.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/main.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/stm32f10x_it.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Ô´Âë/ºËÐİå/MDK-ARM/1
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,905 @@ #include "dw_app.h" #include "ADC.h" enum enumtagstate { DISCPOLL, GETNEARMSG, NEARPOLL, }tag_state; static dwt_config_t config = { 2, /* Channel number. */ DWT_PRF_64M, /* Pulse repetition frequency. */ DWT_PLEN_128, /* Preamble length. */ DWT_PAC8, /* Preamble acquisition chunk size. Used in RX only. */ 9, /* TX preamble code. Used in TX only. */ 9, /* RX preamble code. Used in RX only. */ 0, /* Use non-standard SFD (Boolean) */ DWT_BR_6M8, /* Data rate. */ DWT_PHRMODE_STD, /* PHY header mode. */ (129 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */ }; static uint8_t tx_poll_msg[20] = {0}; static uint8_t tx_sync_msg[14] = {0}; static uint8_t tx_final_msg[60] = {0}; static uint8_t tx_resp_msg[22] = {0}; static uint8_t tx_nearpoll_msg[80] = {0}; static uint8_t tx_nearresp_msg[80] = {0}; static uint8_t tx_nearfinal_msg[80] = {0}; static uint32_t frame_seq_nb = 0; static uint32_t status_reg = 0; static uint8_t rx_buffer[100]; static uint64_t poll_tx_ts; static uint64_t resp_rx_ts; static uint64_t final_tx_ts; static uint64_t poll_rx_ts; static uint64_t resp_tx_ts; static uint64_t final_rx_ts; static double tof; int32_t anchor_dist_last_frm[TAG_NUM_IN_SYS],his_dist[TAG_NUM_IN_SYS]; ; uint32_t tag_id = 0; uint32_t tag_id_recv = 0; uint32_t anc_id_recv = 0; uint8_t random_delay_tim = 0; double distance, dist_no_bias, dist_cm; uint32_t g_UWB_com_interval = 0; float dis_after_filter; //å½åè·ç¦»å¼ LPFilter_Frac* p_Dis_Filter; //æµè·ç¨çä½éæ»¤æ³¢å¨ uint16_t g_Tagdist[TAG_NUM_IN_SYS]; uint8_t g_flag_Taggetdist[256]; static uint64_t get_tx_timestamp_u64(void) { uint8_t ts_tab[5]; uint64_t ts = 0; int i; dwt_readtxtimestamp(ts_tab); for (i = 4; i >= 0; i--) { ts <<= 8; ts |= ts_tab[i]; } return ts; } static uint64_t get_rx_timestamp_u64(void) { uint8_t ts_tab[5]; uint64_t ts = 0; int i; dwt_readrxtimestamp(ts_tab); for (i = 4; i >= 0; i--) { ts <<= 8; ts |= ts_tab[i]; } return ts; } static void final_msg_set_ts(uint8_t *ts_field, uint64_t ts) { int i; for (i = 0; i < FINAL_MSG_TS_LEN; i++) { ts_field[i] = (uint8_t) ts; ts >>= 8; } } static void final_msg_get_ts(const uint8_t *ts_field, uint32_t *ts) { int i; *ts = 0; for (i = 0; i < FINAL_MSG_TS_LEN; i++) { *ts += ts_field[i] << (i * 8); } } void TagDistClear(void) { static uint16_t clear_judge_cnt; uint16_t i; if(clear_judge_cnt++>1000) //设å®1Såé¢ï¼æ¯ç§è¿ä¸æ¬¡ã夿æ å¿ä½å¤§äºçäº2ï¼2s没æ¶å°æ°æ®å°±ææ°æ®åæ0xffffï¼ä¸è§¦åè¦æ¥ã { clear_judge_cnt=0; for(i=0;i<255;i++) { g_flag_Taggetdist[i]++; if(g_flag_Taggetdist[i]>=2) { g_Tagdist[i]=0xffff; } } } } void Dw1000_Init(void) { /* Reset and initialise DW1000. * For initialisation, DW1000 clocks must be temporarily set to crystal speed. After initialisation SPI rate can be increased for optimum * performance. */ Reset_DW1000();//éå¯DW1000 /* Target specific drive of RSTn line into DW1000 low for a period. */ dwt_initialise(DWT_LOADUCODE);//åå§åDW1000 Spi_ChangePrescaler(SPIx_PRESCALER_FAST); //è®¾ç½®ä¸ºå¿«éæ¨¡å¼ /* Configure DW1000. See NOTE 6 below. */ dwt_configure(&config);//é ç½®DW1000 /* Apply default antenna delay value. See NOTE 1 below. */ dwt_setrxantennadelay(RX_ANT_DLY); //è®¾ç½®æ¥æ¶å¤©çº¿å»¶è¿ dwt_settxantennadelay(TX_ANT_DLY); //设置åå°å¤©çº¿å»¶è¿ /* Set expected response's delay and timeout. See NOTE 4 and 5 below. * As this example only handles one incoming frame with always the same delay and timeout, those values can be set here once for all. */ //è®¾ç½®æ¥æ¶è¶ æ¶æ¶é´ } void Dw1000_App_Init(void) { //g_com_map[DEV_ID] = 0x0b; tx_poll_msg[MESSAGE_TYPE_IDX]=POLL; tx_resp_msg[MESSAGE_TYPE_IDX]=RESPONSE; tx_final_msg[MESSAGE_TYPE_IDX]=FINAL; tx_sync_msg[MESSAGE_TYPE_IDX]=SYNC; memcpy(&tx_poll_msg[TAG_ID_IDX], &dev_id, 2); memcpy(&tx_final_msg[TAG_ID_IDX], &dev_id, 2); memcpy(&tx_resp_msg[ANCHOR_ID_IDX], &dev_id, 2); memcpy(&tx_sync_msg[ANCHOR_ID_IDX], &dev_id, 2); memcpy(&tx_nearresp_msg[ANCHOR_ID_IDX], &dev_id, 2); memcpy(&tx_nearpoll_msg[TAG_ID_IDX], &dev_id, 2); memcpy(&tx_nearfinal_msg[TAG_ID_IDX], &dev_id, 2); } uint16_t Checksum_u16(uint8_t* pdata, uint32_t len) { uint16_t sum = 0; uint32_t i; for(i=0; i<len; i++) sum += pdata[i]; sum = ~sum; return sum; } u16 tag_time_recv[TAG_NUM_IN_SYS]; u8 usart_send[100],usart_send_anc[100]; u8 battary,button; extern uint8_t g_pairstart; void tag_sleep_configuraion(void) { dwt_configuresleep(0x940, 0x7); dwt_entersleep(); } extern uint8_t g_start_send_flag; u8 g_start_sync_flag; void SyncPoll(u8 sync_seq,uint32_t sync_baseid) {u8 result; g_start_sync_flag=1; //ä¸ææ¨¡å¼ï¼éåºç»ç«¯åï¼éè¦éæ°æ¥è¿ dwt_forcetrxoff(); //å ³éæ¥æ¶ï¼ä»¥é²å¨RX ON ç¶æ tx_sync_msg[SYNC_SEQ_IDX]=sync_seq; memcpy(&tx_sync_msg[ANCHOR_ID_IDX],&sync_baseid,4); dwt_writetxdata(sizeof(tx_sync_msg), tx_sync_msg, 0);//å°Pollå æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» dwt_writetxfctrl(sizeof(tx_sync_msg), 0);//è®¾ç½®è¶ å®½å¸¦åéæ°æ®é¿åº¦ dwt_starttx(DWT_START_TX_IMMEDIATE); if(result==0) { while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))//䏿æ¥è¯¢è¯çç¶æç´å°åé宿 { }; } dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_TXFRS);//æ¸ æ¥æ å¿ä½ } uint16_t g_Resttimer; uint8_t result; u8 tag_succ_times=0; int32_t hex_dist; u16 checksum; int8_t tag_delaytime; extern uint16_t sync_timer; u16 tmp_time; int32_t temp_dist; u16 tagslotpos; u16 anclist_num=0,anclist_pos; //list æ»æ°éåå½åä½ç½® u16 ancid_list[TAG_NUM_IN_SYS]; u8 nearbase_num=0; u16 nearbaseid_list[MAX_NEARBASE_NUM],mainbase_id,true_nearbase_idlist[MAX_NEARBASE_NUM]; int32_t mainbase_dist,nearbase_distlist[MAX_NEARBASE_NUM],true_nearbase_distlist[MAX_NEARBASE_NUM]; uint8_t trygetnearmsg_times; u8 FindNearBasePos(u16 baseid) { u8 i; for(i=0;i<=nearbase_num;i++) { if(baseid==nearbaseid_list[i]) return i; } return i+1; } u8 recbase_num=0; #define CHANGE_BASE_THRESHOLD 5 void NearAncSelect(void) {static u16 last_mainbase_id,change_base_count; int32_t nearbase_mindist=99999, nearbase_minpos; u8 i; for(i=0;i<recbase_num-1;i++) { if(nearbase_mindist>nearbase_distlist[i]) { nearbase_mindist=nearbase_distlist[i]; nearbase_minpos=i; } } if(nearbase_mindist<mainbase_dist-THRESHOLD_CHANGE_MAINBASE_DIST) { if(last_mainbase_id==nearbaseid_list[nearbase_minpos]) { change_base_count++; if(change_base_count>CHANGE_BASE_THRESHOLD) { mainbase_id=last_mainbase_id; tag_state=GETNEARMSG; } }else{ change_base_count=0; } last_mainbase_id=nearbaseid_list[nearbase_minpos]; }else{ change_base_count=0; } } u8 anclost_times=0; u8 exsistbase_list[MAX_NEARBASE_NUM],report_num; u16 temp_sync_timer1,temp_sync_timer2; void NearPoll(void) { static u8 mainbase_lost_count=0,flag_finalsend; uint32_t temp1,temp2,dw_systime; uint32_t frame_len; uint32_t final_tx_time; u32 start_poll; u8 i,j,getsync_flag=0,timeout; // printf("%d",sync_timer); dwt_forcetrxoff(); dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置åéåå¼å¯æ¥æ¶ï¼å¹¶è®¾å®å»¶è¿æ¶é´ dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); tag_succ_times = 0; if(nearbase_num>=MAX_NEARBASE_NUM) { nearbase_num = MAX_NEARBASE_NUM-1; } //nearbase_num=0; recbase_num=0; tx_nearpoll_msg[BATTARY_IDX] = Get_Battary(); tx_nearpoll_msg[BUTTON_IDX] = !READ_KEY0; tx_nearpoll_msg[SEQUENCE_IDX] = frame_seq_nb++; tx_nearpoll_msg[NEARBASENUM_INDEX] = nearbase_num; memcpy(&tx_nearpoll_msg[NEARBASEID_INDEX],&nearbaseid_list,nearbase_num*2); tx_nearpoll_msg[MESSAGE_TYPE_IDX] = NEAR_POLL; memcpy(&tx_nearpoll_msg[ANCHOR_ID_IDX],&mainbase_id,2); dwt_writetxdata(13+2*nearbase_num, tx_nearpoll_msg, 0);//å°Pollå æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» dwt_writetxfctrl(13+2*nearbase_num, 0);//è®¾ç½®è¶ å®½å¸¦åéæ°æ®é¿åº¦ dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//å¼å¯åéï¼åé宿åçå¾ ä¸æ®µæ¶é´å¼å¯æ¥æ¶ï¼çå¾ æ¶é´å¨dwt_setrxaftertxdelayä¸è®¾ç½® for(i=0;i<MAX_NEARBASE_NUM;i++) exsistbase_list[i]=0; flag_finalsend=0; neartimout_timer=0; timeout=nearbase_num/4+2; mainbase_dist=100000; mainbase_lost_count++; while(neartimout_timer<timeout) { while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//䏿æ¥è¯¢è¯çç¶æç´å°æåæ¥æ¶æè åçé误 { if(flag_finalsend) { dw_systime=dwt_readsystimestamphi32(); if(dw_systime>temp1&&dw_systime<temp2) { flag_finalsend=0; dwt_forcetrxoff(); dwt_setdelayedtrxtime(final_tx_time); result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé break; } } if(neartimout_timer>timeout) break; }; if(status_reg==0xffffffff) { NVIC_SystemReset(); } if (status_reg & SYS_STATUS_RXFCG)//妿æåæ¥æ¶ { dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//æ¸ æ¥å¯å卿 å¿ä½ frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK; //è·å¾æ¥æ¶å°çæ°æ®é¿åº¦ dwt_readrxdata(rx_buffer, frame_len, 0); //è¯»åæ¥æ¶æ°æ® dwt_setrxtimeout(0);//DELAY_BETWEEN_TWO_FRAME_UUS*(nearbase_num+1-recbase_num)+10);//è®¾å®æ¥æ¶è¶ æ¶æ¶é´ï¼0使²¡æè¶ æ¶æ¶é´ dwt_rxenable(0);//æå¼æ¥æ¶ if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_RESPONSE&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)) //å¤ææ¥æ¶å°çæ°æ®æ¯å¦æ¯responseæ°æ® { u16 rec_nearbaseid,rec_nearbasepos; int32_t temp_dist; poll_tx_ts = get_tx_timestamp_u64(); //è·å¾POLLåéæ¶é´T1 resp_rx_ts = get_rx_timestamp_u64(); //è·å¾RESPONSEæ¥æ¶æ¶é´T4 recbase_num++; memcpy(&rec_nearbaseid,&rx_buffer[ANCHOR_ID_IDX],2); if(nearbase_num==0) { nearbaseid_list[0]=rec_nearbaseid; nearbase_num=1; memcpy(&tx_nearfinal_msg[ANCHOR_ID_IDX],&rec_nearbaseid,2); } if(rec_nearbaseid==nearbaseid_list[0]) { //////////////////////////////////æ¶é´åæ¥ temp_sync_timer2=sync_timer; memcpy(&temp_sync_timer1,&rx_buffer[ANCTIMEMS],2); memcpy(&tmp_time,&rx_buffer[ANCTIMEUS],2); sync_timer=temp_sync_timer1; exsistbase_list[0]=1; //// memcpy(&tagslotpos,&rx_buffer[TAGSLOTPOS],2); // tmp_time=tmp_time+450; if(tmp_time>999) { tmp_time-=999; sync_timer++; if(sync_timer>=1010) {sync_timer=0;} } TIM3->CNT=tmp_time; // if(tagslotpos>max_slotpos) // tagslotpos=tagslotpos%(max_slotpos+1); // tyncpoll_time=(tagslotpos-1)*slottime; //////////////////////////// rec_nearbasepos=0; exsistbase_list[rec_nearbasepos]=1; memcpy(&temp_dist,&rx_buffer[DIST_IDX],4); nearbase_distlist[rec_nearbasepos]=temp_dist; mainbase_lost_count=0; flag_finalsend=1; final_tx_time = (resp_rx_ts + ((RESP_RX_TO_FINAL_TX_DLY_UUS+DELAY_BETWEEN_TWO_FRAME_UUS*nearbase_num+500) * UUS_TO_DWT_TIME)) >> 8; temp1=final_tx_time-((350*UUS_TO_DWT_TIME)>>8); temp2=final_tx_time+((100*UUS_TO_DWT_TIME)>>8); // dwt_setdelayedtrxtime(final_tx_time);//设置finalå åéæ¶é´T5 final_tx_ts = (((uint64_t)(final_tx_time & 0xFFFFFFFE)) << 8) + TX_ANT_DLY;//finalå å®é åéæ¶é´æ¯è®¡ç®æ¶é´å ä¸åé天线delay final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_POLL_TX_TS_IDX], poll_tx_ts);//å°T1ï¼T4ï¼T5åå ¥åéæ°æ® final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX], resp_rx_ts); final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_FINAL_TX_TS_IDX], final_tx_ts); tx_nearfinal_msg[MESSAGE_TYPE_IDX]=NEAR_FINAL; dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//å°åéæ°æ®åå ¥DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设å®åéæ°æ®é¿åº¦ if(temp_dist!=0x1ffff) { #ifndef USART_INTEGRATE_OUTPUT usart_send[2] = 1;//æ£å¸¸æ¨¡å¼ usart_send[3] = 17;//æ°æ®æ®µé¿åº¦ usart_send[4] = frame_seq_nb;//æ°æ®æ®µé¿åº¦ memcpy(&usart_send[5],&dev_id,2); memcpy(&usart_send[7],&rec_nearbaseid,2); memcpy(&usart_send[9],&rx_buffer[DIST_IDX],4); usart_send[13] = battary; usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); UART_PushFrame(usart_send,21); #endif } //result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé }else{ rec_nearbasepos=FindNearBasePos(rec_nearbaseid); if(rec_nearbasepos>nearbase_num) //åç°æ°çåºç« { nearbase_num++; nearbaseid_list[nearbase_num] = rec_nearbaseid; memcpy(&tx_nearfinal_msg[ANCHOR_ID_IDX],&rec_nearbaseid,2); } exsistbase_list[rec_nearbasepos]=1; memcpy(&temp_dist,&rx_buffer[DIST_IDX],4); nearbase_distlist[rec_nearbasepos]=temp_dist; final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos)*4], resp_rx_ts); dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//å°åéæ°æ®åå ¥DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设å®åéæ°æ®é¿åº¦ LED0_BLINK; if(temp_dist!=0x1ffff) { #ifndef USART_INTEGRATE_OUTPUT usart_send[2] = 1;//æ£å¸¸æ¨¡å¼ usart_send[3] = 17;//æ°æ®æ®µé¿åº¦ usart_send[4] = frame_seq_nb;//æ°æ®æ®µé¿åº¦ memcpy(&usart_send[5],&dev_id,2); memcpy(&usart_send[7],&rec_nearbaseid,2); memcpy(&usart_send[9],&rx_buffer[DIST_IDX],4); usart_send[13] = battary; usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); UART_PushFrame(usart_send,21); #endif //dwt_setdelayedtrxtime(final_tx_time);//设置finalå åéæ¶é´T5 // result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé //dwt_writetxdata(4,&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos+1)*4], FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos+1)*4);//å°åéæ°æ®åå ¥DW1000 } } } }else{ dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); dwt_rxenable(0); } } dwt_forcetrxoff(); dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); nearbase_num=recbase_num; j=0; if(exsistbase_list[0]==0) { u8 temp_adc,random_value; random_value=0; for(i=0;i<8;i++) { temp_adc=Get_ADC_Value(); random_value=random_value|((temp_adc&0x01)<<i); } tyncpoll_time=(random_value%max_slotpos)*slottime; } for(i=0;i<MAX_NEARBASE_NUM;i++) { if(exsistbase_list[i]==1) { true_nearbase_idlist[j]=nearbaseid_list[i]; true_nearbase_distlist[j++]=nearbase_distlist[i]; } } for(i=0;i<nearbase_num-1;i++) { for(j=0;j<nearbase_num-1;j++) { if(true_nearbase_distlist[j]>true_nearbase_distlist[j+1]) { u32 temp_dist,temp_id; temp_dist=true_nearbase_distlist[j]; temp_id = true_nearbase_idlist[j]; true_nearbase_distlist[j]=true_nearbase_distlist[j+1]; true_nearbase_idlist[j]=true_nearbase_idlist[j+1]; true_nearbase_distlist[j+1]=temp_dist; true_nearbase_idlist[j+1]=temp_id; } } } report_num=0; for (i=0;i<nearbase_num;i++) { nearbaseid_list[i]=true_nearbase_idlist[i]; nearbase_distlist[i]=true_nearbase_distlist[i]; if(nearbase_distlist[i]!=0x1ffff) { memcpy(&usart_send[4+6*report_num],&nearbaseid_list[i],2); memcpy(&usart_send[6+6*report_num],&nearbase_distlist[i],4); report_num++; } } // printf("%d,%d",temp_sync_timer2,temp_sync_timer1); #ifdef USART_INTEGRATE_OUTPUT usart_send[2] = 4;//æ£å¸¸æ¨¡å¼ usart_send[3] = report_num*6+2;//æ£å¸¸æ¨¡å¼ checksum = Checksum_u16(&usart_send[2],report_num*6+2); memcpy(&usart_send[4+report_num*6],&checksum,2); UART_PushFrame(usart_send,6+report_num*6); #endif // if(mainbase_lost_count>5) // { // //tag_state=DISCPOLL; // } // NearAncSelect(); // if(recbase_num<g_com_map[MIN_REPORT_ANC_NUM] ) // { // anclost_times++; // if(anclost_times>3) // { // tagslotpos=poll_tx_ts%(max_slotpos+1); // } // }else{ // anclost_times=0; // } dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); } //void GetNearMsg(void) //{ // u32 start_poll,frame_len; // memcpy(&tx_near_msg[ANCHOR_ID_IDX],&mainbase_id,2); // memcpy(&tx_near_msg[TAG_ID_IDX],&dev_id,2); // tx_near_msg[MESSAGE_TYPE_IDX] = NEAR_MSG; // // dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置åéåå¼å¯æ¥æ¶ï¼å¹¶è®¾å®å»¶è¿æ¶é´ // dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); // dwt_writetxdata(12, tx_near_msg, 0);//å°Pollå æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» // dwt_writetxfctrl(12, 0);//è®¾ç½®è¶ å®½å¸¦åéæ°æ®é¿åº¦ // dwt_starttx(DWT_START_TX_IMMEDIATE| DWT_RESPONSE_EXPECTED); // start_poll = time32_incr; // /* We assume that the transmission is achieved correctly, poll for reception of a frame or error/timeout. See NOTE 8 below. */ // while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//䏿æ¥è¯¢è¯çç¶æç´å°æåæ¥æ¶æè åçé误 // { if(time32_incr - start_poll>20) // NVIC_SystemReset(); // }; // if(status_reg==0xffffffff) // { // NVIC_SystemReset(); // } // if (status_reg & SYS_STATUS_RXFCG)//妿æåæ¥æ¶ // { // dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//æ¸ æ¥å¯å卿 å¿ä½ // frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK; //è·å¾æ¥æ¶å°çæ°æ®é¿åº¦ // dwt_readrxdata(rx_buffer, frame_len, 0); //è¯»åæ¥æ¶æ°æ® // if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_MSG&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)) //å¤ææ¥æ¶å°çæ°æ®æ¯å¦æ¯responseæ°æ® // { // nearbase_num=rx_buffer[NEARBASENUM_INDEX]; // tagslotpos=rx_buffer[TAGSLOTPOS]; // memcpy(nearbaseid_list,&rx_buffer[NEARBASEID_INDEX],nearbase_num*2); // slottime=ceil((nearbase_num+2)*0.3)+1; // tyncpoll_time=tagslotpos*slottime; // tag_state=NEARPOLL; // } // } //} void Tag_App(void)//å鿍¡å¼(TAGæ ç¾) { //LED0_ON; g_Resttimer=0; NearPoll(); } int8_t correction_time,new_tagid=0; extern uint8_t sync_seq; u16 taglist_num=0,taglist_pos; u16 tagid_list[TAG_NUM_IN_SYS]; u8 tagofflinetime[TAG_NUM_IN_SYS]; int32_t tagdist_list[TAG_NUM_IN_SYS]; void TagListUpdate(void) { u16 i,j=0,temp[TAG_NUM_IN_SYS]; for(i=0;i<taglist_num;i++) { if(tagofflinetime[i]++<QUIT_SLOT_TIME) { tagid_list[j]=tagid_list[i]; tagofflinetime[j++]=tagofflinetime[i]; } } taglist_num=j; } u16 CmpTagInList(u16 tagid) {u16 i; for(i=0;i<taglist_num;i++) { if(memcmp(&tagid,&tagid_list[i],2)==0) return i+1; } return 0; } uint32_t frame_len; uint32_t resp_tx_time; uint8_t rec_nearbase_num,anc_report_num; void Anchor_RecPoll(void) { tmp_time=TIM3->CNT; memcpy(&tx_resp_msg[ANCTIMEMS],&sync_timer,2); memcpy(&tx_resp_msg[ANCTIMEUS],&tmp_time,2); memcpy(&tx_resp_msg[TAGSLOTPOS],&taglist_pos,1); poll_rx_ts = get_rx_timestamp_u64();//è·å¾Pollå æ¥æ¶æ¶é´T2 resp_tx_time = (poll_rx_ts + (POLL_RX_TO_RESP_TX_DLY_UUS * UUS_TO_DWT_TIME)) >> 8;//计ç®Responseåéæ¶é´T3ã dwt_setdelayedtrxtime(resp_tx_time);//设置Responseåéæ¶é´T3 dwt_setrxaftertxdelay(RESP_TX_TO_FINAL_RX_DLY_UUS);//设置åé宿åå¼å¯æ¥æ¶å»¶è¿æ¶é´ dwt_setrxtimeout(FINAL_RX_TIMEOUT_UUS);//æ¥æ¶è¶ æ¶æ¶é´ memcpy(&tx_resp_msg[DIST_IDX], &tagdist_list[taglist_pos], 4); memcpy(&tx_resp_msg[TAG_ID_IDX],&tag_id_recv,2); dwt_writetxdata(sizeof(tx_resp_msg), tx_resp_msg, 0);//åå ¥åéæ°æ® dwt_writetxfctrl(sizeof(tx_resp_msg), 0);//设å®åéé¿åº¦ result = dwt_starttx(DWT_START_TX_DELAYED | DWT_RESPONSE_EXPECTED);//å»¶è¿åéï¼çå¾ æ¥æ¶ battary = rx_buffer[BATTARY_IDX]; button = rx_buffer[BUTTON_IDX]; frame_seq_nb = rx_buffer[SEQUENCE_IDX]; if(result==0) { while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))///䏿æ¥è¯¢è¯çç¶æç´å°æ¥æ¶æåæè åºç°é误 { }; } if (status_reg & SYS_STATUS_RXFCG)//æ¥æ¶æå { dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//æ¸ æ¥æ å¿ä½ frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;//æ°æ®é¿åº¦ dwt_readrxdata(rx_buffer, frame_len, 0);//è¯»åæ¥æ¶æ°æ® if (rx_buffer[MESSAGE_TYPE_IDX] == FINAL&&!memcmp(&rx_buffer[TAG_ID_IDX],&tag_id_recv,2)) //夿æ¯å¦ä¸ºFinalå { uint32_t poll_tx_ts, resp_rx_ts, final_tx_ts; uint32_t poll_rx_ts_32, resp_tx_ts_32, final_rx_ts_32; double Ra, Rb, Da, Db; int64_t tof_dtu; resp_tx_ts = get_tx_timestamp_u64();//è·å¾responseåéæ¶é´T3 final_rx_ts = get_rx_timestamp_u64();//è·å¾finalæ¥æ¶æ¶é´T6 final_msg_get_ts(&rx_buffer[FINAL_MSG_POLL_TX_TS_IDX], &poll_tx_ts);//仿¥æ¶æ°æ®ä¸è¯»åT1ï¼T4ï¼T5 final_msg_get_ts(&rx_buffer[FINAL_MSG_RESP_RX_TS_IDX], &resp_rx_ts); final_msg_get_ts(&rx_buffer[FINAL_MSG_FINAL_TX_TS_IDX], &final_tx_ts); poll_rx_ts_32 = (uint32_t)poll_rx_ts;//使ç¨32使°æ®è®¡ç® resp_tx_ts_32 = (uint32_t)resp_tx_ts; final_rx_ts_32 = (uint32_t)final_rx_ts; Ra = (double)(resp_rx_ts - poll_tx_ts);//Tround1 = T4 - T1 Rb = (double)(final_rx_ts_32 - resp_tx_ts_32);//Tround2 = T6 - T3 Da = (double)(final_tx_ts - resp_rx_ts);//Treply2 = T5 - T4 Db = (double)(resp_tx_ts_32 - poll_rx_ts_32);//Treply1 = T3 - T2 tof_dtu = (int64_t)((Ra * Rb - Da * Db) / (Ra + Rb + Da + Db));//计ç®å ¬å¼ tof = tof_dtu * DWT_TIME_UNITS; distance = tof * SPEED_OF_LIGHT;//è·ç¦»=å é*é£è¡æ¶é´ dist_no_bias = distance - dwt_getrangebias(config.chan, (float)distance, config.prf); //è·ç¦»åå»ç«æ£ç³»æ° dist_cm = dist_no_bias * 100; //dis 为åä½ä¸ºcmçè·ç¦» /*--------------------------以ä¸ä¸ºéæµè·é»è¾------------------------*/ //dist_cm=33000; LED0_BLINK; //æ¯æå䏿¬¡é讯åéªç䏿¬¡ dis_after_filter=dist_cm; hex_dist = dist_cm+(int16_t)g_com_map[DIST_OFFSET]; if(abs(hex_dist-his_dist[tag_id_recv-TAG_ID_START])<1000) { tagdist_list[taglist_pos] = hex_dist; } his_dist[taglist_pos]=hex_dist; } }else{ dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); } } u8 misdist_num,seize_anchor; u8 Anchor_RecNearPoll(u8 ancrec_nearbasepos) //0 mainbase 1 first near_base { tmp_time=TIM3->CNT; memcpy(&tx_nearresp_msg[ANCTIMEMS],&sync_timer,2); memcpy(&tx_nearresp_msg[ANCTIMEUS],&tmp_time,2); memcpy(&tx_nearresp_msg[TAGSLOTPOS],&taglist_pos,2); memcpy(&tx_nearresp_msg[TAG_ID_IDX],&tag_id_recv,2); poll_rx_ts = get_rx_timestamp_u64();//è·å¾Pollå æ¥æ¶æ¶é´T2 resp_tx_time = (poll_rx_ts + ((POLL_RX_TO_RESP_TX_DLY_UUS+ancrec_nearbasepos*DELAY_BETWEEN_TWO_FRAME_UUS) * UUS_TO_DWT_TIME)) >> 8;//计ç®Responseåéæ¶é´T3ã dwt_setdelayedtrxtime(resp_tx_time);//设置Responseåéæ¶é´T3 dwt_setrxaftertxdelay(RESP_TX_TO_FINAL_RX_DLY_UUS+(rec_nearbase_num+1-ancrec_nearbasepos)*DELAY_BETWEEN_TWO_FRAME_UUS);//设置åé宿åå¼å¯æ¥æ¶å»¶è¿æ¶é´ dwt_setrxtimeout(FINAL_RX_TIMEOUT_UUS);//æ¥æ¶è¶ æ¶æ¶é´ if(new_tagid) { tagdist_list[taglist_pos]=0x1ffff; memcpy(&tx_nearresp_msg[DIST_IDX], &tagdist_list[taglist_pos], 4); }else{ memcpy(&tx_nearresp_msg[DIST_IDX], &tagdist_list[taglist_pos], 4); } tx_nearresp_msg[MESSAGE_TYPE_IDX]=NEAR_RESPONSE; dwt_writetxdata(20, tx_nearresp_msg, 0);//åå ¥åéæ°æ® dwt_writetxfctrl(20, 0);//设å®åéé¿åº¦ result = dwt_starttx(DWT_START_TX_DELAYED | DWT_RESPONSE_EXPECTED);//å»¶è¿åéï¼çå¾ æ¥æ¶ battary = rx_buffer[BATTARY_IDX]; button = rx_buffer[BUTTON_IDX]; frame_seq_nb = rx_buffer[SEQUENCE_IDX]; if(result==0) { while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_sync_flag)///䏿æ¥è¯¢è¯çç¶æç´å°æ¥æ¶æåæè åºç°é误 { }; }else{ result++; } if (status_reg & SYS_STATUS_RXFCG)//æ¥æ¶æå { dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//æ¸ æ¥æ å¿ä½ frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;//æ°æ®é¿åº¦ dwt_readrxdata(rx_buffer, frame_len, 0);//è¯»åæ¥æ¶æ°æ® if(seize_anchor&&memcmp(&rx_buffer[ANCHOR_ID_IDX],&dev_id,2)) //æ¢å anchor 失败 { return 1; } if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_FINAL&&!memcmp(&rx_buffer[TAG_ID_IDX],&tag_id_recv,2)) //夿æ¯å¦ä¸ºFinalå { uint32_t poll_tx_ts, resp_rx_ts, final_tx_ts; uint32_t poll_rx_ts_32, resp_tx_ts_32, final_rx_ts_32; double Ra, Rb, Da, Db; int64_t tof_dtu; resp_tx_ts = get_tx_timestamp_u64();//è·å¾responseåéæ¶é´T3 final_rx_ts = get_rx_timestamp_u64();//è·å¾finalæ¥æ¶æ¶é´T6 final_msg_get_ts(&rx_buffer[FINAL_MSG_POLL_TX_TS_IDX], &poll_tx_ts);//仿¥æ¶æ°æ®ä¸è¯»åT1ï¼T4ï¼T5 final_msg_get_ts(&rx_buffer[FINAL_MSG_RESP_RX_NEARBASE_IDX+ancrec_nearbasepos*4], &resp_rx_ts); final_msg_get_ts(&rx_buffer[FINAL_MSG_FINAL_TX_TS_IDX], &final_tx_ts); poll_rx_ts_32 = (uint32_t)poll_rx_ts;//使ç¨32使°æ®è®¡ç® resp_tx_ts_32 = (uint32_t)resp_tx_ts; final_rx_ts_32 = (uint32_t)final_rx_ts; Ra = (double)(resp_rx_ts - poll_tx_ts);//Tround1 = T4 - T1 Rb = (double)(final_rx_ts_32 - resp_tx_ts_32);//Tround2 = T6 - T3 Da = (double)(final_tx_ts - resp_rx_ts);//Treply2 = T5 - T4 Db = (double)(resp_tx_ts_32 - poll_rx_ts_32);//Treply1 = T3 - T2 tof_dtu = (int64_t)((Ra * Rb - Da * Db) / (Ra + Rb + Da + Db));//计ç®å ¬å¼ tof = tof_dtu * DWT_TIME_UNITS; distance = tof * SPEED_OF_LIGHT;//è·ç¦»=å é*é£è¡æ¶é´ dist_no_bias = distance - dwt_getrangebias(config.chan, (float)distance, config.prf); //è·ç¦»åå»ç«æ£ç³»æ° dist_cm = dist_no_bias * 100; //dis 为åä½ä¸ºcmçè·ç¦» /*--------------------------以ä¸ä¸ºéæµè·é»è¾------------------------*/ //dist_cm=33000; LED0_BLINK; //æ¯æå䏿¬¡é讯åéªç䏿¬¡ dis_after_filter=dist_cm; hex_dist = dist_cm+(int16_t)g_com_map[DIST_OFFSET]; if(hex_dist>-1000&&hex_dist<100000) { if(abs(hex_dist-his_dist[taglist_pos])<1500||misdist_num>3) { misdist_num=0; tagdist_list[taglist_pos] = hex_dist; his_dist[taglist_pos]=hex_dist; #ifndef USART_INTEGRATE_OUTPUT usart_send[2] = 1;//æ£å¸¸æ¨¡å¼ usart_send[3] = 17;//æ°æ®æ®µé¿åº¦ usart_send[4] = frame_seq_nb;//æ°æ®æ®µé¿åº¦ memcpy(&usart_send[5],&tag_id_recv,2); memcpy(&usart_send[7],&dev_id,2); memcpy(&usart_send[9],&tagdist_list[taglist_pos],4); usart_send[13] = battary; usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); UART_PushFrame(usart_send,21); #else memcpy(&usart_send_anc[4+6*anc_report_num],&tag_id_recv,2); memcpy(&usart_send_anc[6+6*anc_report_num],&tagdist_list[taglist_pos],4); anc_report_num++; #endif }else{ printf("%d",hex_dist); misdist_num++; } } } }else{ // printf("%x/n",status_reg); dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); } } uint32_t current_syncid=0xffffffff,synclost_timer; extern u8 flag_syncbase; void Anchor_App(void) { u8 send_len,i; u16 tempid; uint32_t rec_syncid; g_start_sync_flag=0; dwt_setrxtimeout(0);//è®¾å®æ¥æ¶è¶ æ¶æ¶é´ï¼0使²¡æè¶ æ¶æ¶é´ dwt_rxenable(0);//æå¼æ¥æ¶ while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_send_flag&&!g_start_sync_flag)//䏿æ¥è¯¢è¯çç¶æç´å°æ¥æ¶æåæè åºç°é误 { IdleTask(); g_Resttimer=0; }; if (status_reg & SYS_STATUS_RXFCG)//æåæ¥æ¶ { u16 tag_recv_interval; dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG);//æ¸ é¤æ å¿ä½ frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;//è·å¾æ¥æ¶æ°æ®é¿åº¦ dwt_readrxdata(rx_buffer, frame_len, 0);//è¯»åæ¥æ¶æ°æ® //å°æ¶å°çtag_idåå«åå ¥åæ¬¡é讯çå ä¸ï¼ä¸ºå¤æ ç¾é讯æå¡ï¼é²æ¢ä¸æ¬¡éè®¯ä¸æ¥æ¶å°ä¸åIDæ ç¾çæ°æ® //tag_id_recv = rx_buffer[TAG_ID_IDX]; memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2); memcpy(&anc_id_recv,&rx_buffer[ANCHOR_ID_IDX],2); taglist_pos=CmpTagInList(tag_id_recv); if(taglist_pos==0) { synclost_timer=0; tagid_list[taglist_num++]=tag_id_recv; taglist_pos=taglist_num; new_tagid=1; }else{ new_tagid=0; } tagofflinetime[taglist_pos-1]=0; switch(rx_buffer[MESSAGE_TYPE_IDX]) { // case POLL: // if (anchor_type == rx_buffer[ANC_TYPE_IDX]) // Anchor_RecPoll(); // break; case SYNC: memcpy(&rec_syncid,&rx_buffer[ANCHOR_ID_IDX],4); if(rec_syncid<current_syncid) { current_syncid=rec_syncid; flag_syncbase=0; sync_seq=rx_buffer[SYNC_SEQ_IDX]+1; TIM3->CNT = sync_seq*325%1000+15; sync_timer = sync_seq*325/1000; synclost_timer=0; SyncPoll(sync_seq,rec_syncid); }else if(rec_syncid==current_syncid) { if(rx_buffer[SYNC_SEQ_IDX]<sync_seq) { flag_syncbase=0; sync_seq=rx_buffer[SYNC_SEQ_IDX]+1; TIM3->CNT = sync_seq*325%1000+15; sync_timer = sync_seq*325/1000; synclost_timer=0; SyncPoll(sync_seq,rec_syncid); } } break; // case NEAR_MSG: // if(anc_id_recv==dev_id) // { // rx_buffer[TAGSLOTPOS]=taglist_pos; // tx_near_msg[MESSAGE_TYPE_IDX] = NEAR_MSG; // memcpy(&tx_near_msg[TAG_ID_IDX],&tag_id_recv,2); // tx_near_msg[NEARBASENUM_INDEX]=g_com_map[NEARBASE_NUM]; // memcpy(&tx_near_msg[NEARBASEID_INDEX],&g_com_map[NEARBASE_ID1],g_com_map[NEARBASE_NUM]*2); // send_len=11+g_com_map[NEARBASE_NUM]*2+2; // dwt_writetxdata(send_len, tx_near_msg, 0);//å°Pollå æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» // dwt_writetxfctrl(send_len, 0);//è®¾ç½®è¶ å®½å¸¦åéæ°æ®é¿åº¦ // dwt_starttx(DWT_START_TX_IMMEDIATE); // } // break; // case NEAR_POLL: rec_nearbase_num=rx_buffer[NEARBASENUM_INDEX]; for(i=0;i<rec_nearbase_num;i++) { memcpy(&tempid,&rx_buffer[NEARBASEID_INDEX+i*2],2); if(tempid==dev_id) { seize_anchor=0; //鿢å ãå·²åå¨åè¡¨ä¸ Anchor_RecNearPoll(i); break; } } if(i==rec_nearbase_num) { seize_anchor=1; //æ¢å anchor Anchor_RecNearPoll(i); } break; } } else { dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); } } Ô´Âë/ºËÐİå/MDK-ARM/Project.uvguix.Administrator
@@ -15,17 +15,17 @@ <View> <WinId>38003</WinId> <ViewName>Registers</ViewName> <TableColWidths>183 101</TableColWidths> <TableColWidths>183 184</TableColWidths> </View> <View> <WinId>346</WinId> <ViewName>Code Coverage</ViewName> <TableColWidths>610 497</TableColWidths> <TableColWidths>610 160</TableColWidths> </View> <View> <WinId>204</WinId> <ViewName>Performance Analyzer</ViewName> <TableColWidths>777 115 115 100</TableColWidths> <TableColWidths>770</TableColWidths> </View> </SECTreeCtrl> @@ -90,28 +90,28 @@ <sActiveDebugView></sActiveDebugView> <WindowPosition> <length>44</length> <flags>2</flags> <showCmd>3</showCmd> <flags>0</flags> <showCmd>1</showCmd> <MinPosition> <xPos>-1</xPos> <yPos>-1</yPos> <xPos>-32000</xPos> <yPos>-32000</yPos> </MinPosition> <MaxPosition> <xPos>-1</xPos> <yPos>-1</yPos> </MaxPosition> <NormalPosition> <Top>-841</Top> <Left>1218</Left> <Right>2507</Right> <Bottom>-156</Bottom> <Top>0</Top> <Left>-5</Left> <Right>1284</Right> <Bottom>685</Bottom> </NormalPosition> </WindowPosition> <MDIClientArea> <RegID>0</RegID> <MDITabState> <Len>590</Len> <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000500000000000000010000003B453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C64775F6170702E63000000000864775F6170702E6300000000C5D4F200FFFFFFFF35453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C73746D3332663130785F69742E63000000000E73746D3332663130785F69742E6300000000FFDC7800FFFFFFFF2D453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF3F453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C646563616472697665725C646563615F6465766963652E63000000000D646563615F6465766963652E6300000000F0A0A100FFFFFFFF3B453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C64775F6170702E68000000000864775F6170702E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000FE0300002EFCFFFF010A000039FFFFFF</Data> <Len>1329</Len> <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000002000000010000003B453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C64775F6170702E63000000000864775F6170702E6300000000C5D4F200FFFFFFFF35453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C73746D3332663130785F69742E63000000000E73746D3332663130785F69742E6300000000FFDC7800FFFFFFFF2D453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF3F453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C646563616472697665725C646563615F6465766963652E63000000000D646563615F6465766963652E6300000000F0A0A100FFFFFFFF3B453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C64775F6170702E68000000000864775F6170702E6800000000BCA8E100FFFFFFFF41453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C676C6F62616C5F706172616D2E63000000000E676C6F62616C5F706172616D2E63000000009CC1B600FFFFFFFF41453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C676C6F62616C5F706172616D2E68000000000E676C6F62616C5F706172616D2E6800000000F7B88600FFFFFFFF43453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C6170706C69636174696F6E5C626565705F6C6F6769635F6170702E630000000010626565705F6C6F6769635F6170702E6300000000D9ADC200FFFFFFFF3A453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C4F6E43686970446576696365735C5370692E6300000000055370692E6300000000A5C2D700FFFFFFFF3C453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C4F6E43686970446576696365735C55736172742E63000000000755736172742E6300000000B3A6BE00FFFFFFFF2C453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C4D444B2D41524D5C3100000000013100000000EAD6A300FFFFFFFF3C453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C4F6E43686970446576696365735C55736172742E68000000000755736172742E6800000000F6FA7D00FFFFFFFF60453A5C4749545C5557425F536D616C6C4D6F64756C655CD4B4C2EB5CBACBD0C4B0E55C5372635C4C69627261726965735C53544D3332463130785F5374645065726970685F4472697665725C696E635C73746D3332663130785F6770696F2E68000000001073746D3332663130785F6770696F2E6800000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000800100006E000000FC040000DB010000</Data> </MDITabState> </MDIClientArea> <ViewEx> @@ -134,7 +134,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> <Data>250300002EFCFFFF3106000092FCFFFF</Data> <Data>A70000006E000000B3030000D2000000</Data> </RectRecentFloat> </Window> <Window> @@ -150,7 +150,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000660000007601000041030000</Data> <Data>030000006600000076010000A3010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -170,7 +170,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000660000007601000041030000</Data> <Data>030000006600000076010000A3010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -450,7 +450,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000660000007601000041030000</Data> <Data>030000006600000076010000A3010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -470,7 +470,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000660000007601000041030000</Data> <Data>030000006600000076010000A3010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -490,7 +490,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -530,7 +530,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1150,7 +1150,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000660000007601000041030000</Data> <Data>030000006600000076010000A3010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1170,7 +1170,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1190,7 +1190,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1250,7 +1250,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1270,7 +1270,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>03000000750300007D070000CD030000</Data> <Data>03000000D7010000F60400005A020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1730,7 +1730,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>00000000E603000080070000F9030000</Data> <Data>0000000073020000F904000086020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1799,14 +1799,14 @@ </Window> <DockMan> <Len>3312</Len> <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000B3000000B0030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000250300002EFCFFFF3106000092FCFFFFA40000004F000000B0030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F000000100300003F010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000910500002EFCFFFF310600001EFDFFFF100300004F000000B00300003F01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF790100004F0000007D0100005A03000001000000020000100400000001000000DAFEFFFF4F060000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000810200002EFCFFFFFA03000039FFFFFF000000004F000000790100005A0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000037010000B00300003B01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000810200001AFDFFFF3106000086FDFFFF000000003B010000B0030000A701000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFD80100003B010000DC010000A701000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000005A030000800700005E03000001000000010000100400000001000000BCFEFFFFE0000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000810200003DFFFFFF010A0000C5FFFFFF000000005E03000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000B3000000B0030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000A70000006E000000B3030000D2000000A40000004F000000B0030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F000000100300003F010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000130300006E000000B30300005E010000100300004F000000B00300003F01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF790100004F0000007D010000BC01000001000000020000100400000001000000DAFEFFFF4F060000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000030000006E0000007C010000DB010000000000004F00000079010000BC0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000037010000B00300003B01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000030000005A010000B3030000C6010000000000003B010000B0030000A701000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFD80100003B010000DC010000A701000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000BC010000F9040000C001000001000000010000100400000001000000D4FEFFFFED000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000003000000DF010000FC0400009202000000000000C0010000F9040000730200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> </DockMan> <ToolBar> <RegID>59392</RegID> <Name>File</Name> <Buttons> <Len>2898</Len> <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B74785F6E6561725F6D7367960000000000000014000B74785F6E6561725F6D73670C7365697A655F616E63686F72084E656172506F6C6C0B75736172745F74696D65720B675F5265737474696D65720D75736172745F73656E645B305D0A75736172745F73656E640E7461675F726563765F74696D65720F657873697374626173655F6C697374116E656172626173655F646973746C69737416747275655F6E656172626173655F646973746C6973740F6E6561726261736569645F6C6973740D5461674C6973745570646174650E7461676F66666C696E6574696D650A746167736C6F74706F730B7461676C6973745F706F730B726563626173655F6E756D0A55534152545F707574630C6E656172626173655F6E756D0A6D61696E5F6C6F6769630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> <Len>2894</Len> <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000067072696E746696000000000000001400067072696E74660D74796E63706F6C6C5F74696D6511675F73746172745F73796E635F666C61670873796E635F7365710D666C61675F73796E63626173650B675F5265737474696D65720853796E63506F6C6C0B74785F6E6561725F6D73670C7365697A655F616E63686F72084E656172506F6C6C0B75736172745F74696D65720D75736172745F73656E645B305D0A75736172745F73656E640E7461675F726563765F74696D65720F657873697374626173655F6C697374116E656172626173655F646973746C69737416747275655F6E656172626173655F646973746C6973740F6E6561726261736569645F6C6973740D5461674C6973745570646174650E7461676F66666C696E6574696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> </Buttons> <OriginalItems> <Len>1423</Len> @@ -1822,7 +1822,7 @@ <Name>Build</Name> <Buttons> <Len>970</Len> <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000553544D3332960000000000000001000553544D3332000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000553544D3332960000000000000001000553544D3332000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> </Buttons> <OriginalItems> <Len>583</Len> @@ -1838,7 +1838,7 @@ <Name>Debug</Name> <Buttons> <Len>2373</Len> <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> </Buttons> <OriginalItems> <Len>898</Len> @@ -1871,11 +1871,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2A0100004F00000087050000B4000000</Data> <Data>2D0100004F00000087050000B4000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> <Data>AB0300002EFCFFFF0808000093FCFFFF</Data> <Data>AE0300002EFCFFFF0808000093FCFFFF</Data> </RectRecentFloat> </Window> <Window> @@ -1891,7 +1891,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0300000066000000230100001C030000</Data> <Data>0300000066000000260100001C030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -1911,7 +1911,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0300000066000000230100001C030000</Data> <Data>0300000066000000260100001C030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2031,7 +2031,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2191,7 +2191,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0300000066000000230100001C030000</Data> <Data>0300000066000000260100001C030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2211,7 +2211,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0300000066000000230100001C030000</Data> <Data>0300000066000000260100001C030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2291,7 +2291,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2A0100006300000087050000B4000000</Data> <Data>2D0100006300000087050000B4000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2311,7 +2311,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2391,7 +2391,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2411,7 +2411,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2431,7 +2431,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2451,7 +2451,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -2891,7 +2891,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0300000066000000230100001C030000</Data> <Data>0300000066000000260100001C030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -3031,7 +3031,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>2D01000066000000840500009B000000</Data> <Data>3001000066000000840500009B000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -3451,7 +3451,7 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> <Data>0000000000000000D10300001C000000</Data> <Data>0100000000000000D20300001C000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> @@ -3540,14 +3540,14 @@ </Window> <DockMan> <Len>3418</Len> <Data>000000000C000000000000000020000001000000FFFFFFFFFFFFFFFF2A010000B400000087050000B8000000010000000100001004000000010000009EFFFFFF79020000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000AB0300002EFCFFFF0808000093FCFFFF2A0100004F00000087050000B40000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F000000100300003F010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000910500002EFCFFFF310600001EFDFFFF100300004F000000B00300003F01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF260100004F0000002A010000350300000100000002000010040000000100000062FFFFFF65030000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000810200002EFCFFFFA703000014FFFFFF000000004F00000026010000350300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000035030000870500003903000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFFC003000039030000C4030000D003000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000B001000000050000B4010000000000000100000004000000010000003EFEFFFF62000000FFFFFFFF05000000C5000000B4010000D2010000CF01000077940000018000800000000000008102000093FDFFFF810700005DFEFFFF00000000B4010000000500007E0200000000000040820046050000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000040000001000000FFFFFFFFFFFFFFFF870500004F0000008B050000D003000001000000020000100400000001000000A8FBFFFFF301000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000400000010000000C0800002EFCFFFF010A0000AFFFFFFF8B0500004F00000080070000D003000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F0700000000000001000000C7000000008000000100000081020000AFFFFFFF010A00006500000001000000010000000100000000000000</Data> <Data>000000000C000000000000000020000001000000FFFFFFFFFFFFFFFF2D010000B400000087050000B8000000010000000100001004000000010000009EFFFFFF79020000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000AE0300002EFCFFFF0808000093FCFFFF2D0100004F00000087050000B40000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F000000100300003F010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000910500002EFCFFFF310600001EFDFFFF100300004F000000B00300003F01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF290100004F0000002D0100003503000001000000020000100400000001000000DCFEFFFF58040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000810200002EFCFFFFAA03000014FFFFFF000000004F00000029010000350300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000035030000870500003903000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFFC003000039030000C4030000D003000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000B001000000050000B4010000000000000100000004000000010000003EFEFFFF62000000FFFFFFFF05000000C5000000B4010000D2010000CF01000077940000018000800000000000008102000093FDFFFF810700005DFEFFFF00000000B4010000000500007E0200000000000040820046050000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000040000001000000FFFFFFFFFFFFFFFF870500004F0000008B050000D003000001000000020000100400000001000000A8FBFFFFF301000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000400000010000000C0800002EFCFFFF010A0000AFFFFFFF8B0500004F00000080070000D003000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F0700000000000001000000C7000000008000000100000081020000AFFFFFFF010A00006500000001000000010000000100000000000000</Data> </DockMan> <ToolBar> <RegID>59392</RegID> <Name>File</Name> <Buttons> <Len>2898</Len> <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B74785F6E6561725F6D7367960000000000000014000B74785F6E6561725F6D73670C7365697A655F616E63686F72084E656172506F6C6C0B75736172745F74696D65720B675F5265737474696D65720D75736172745F73656E645B305D0A75736172745F73656E640E7461675F726563765F74696D65720F657873697374626173655F6C697374116E656172626173655F646973746C69737416747275655F6E656172626173655F646973746C6973740F6E6561726261736569645F6C6973740D5461674C6973745570646174650E7461676F66666C696E6574696D650A746167736C6F74706F730B7461676C6973745F706F730B726563626173655F6E756D0A55534152545F707574630C6E656172626173655F6E756D0A6D61696E5F6C6F6769630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> <Len>2894</Len> <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000067072696E746696000000000000001400067072696E74660D74796E63706F6C6C5F74696D6511675F73746172745F73796E635F666C61670873796E635F7365710D666C61675F73796E63626173650B675F5265737474696D65720853796E63506F6C6C0B74785F6E6561725F6D73670C7365697A655F616E63686F72084E656172506F6C6C0B75736172745F74696D65720D75736172745F73656E645B305D0A75736172745F73656E640E7461675F726563765F74696D65720F657873697374626173655F6C697374116E656172626173655F646973746C69737416747275655F6E656172626173655F646973746C6973740F6E6561726261736569645F6C6973740D5461674C6973745570646174650E7461676F66666C696E6574696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> </Buttons> <OriginalItems> <Len>1423</Len> @@ -3563,7 +3563,7 @@ <Name>Build</Name> <Buttons> <Len>970</Len> <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000553544D3332960000000000000001000553544D3332000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000553544D3332960000000000000001000553544D3332000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> </Buttons> <OriginalItems> <Len>583</Len> @@ -3579,7 +3579,7 @@ <Name>Debug</Name> <Buttons> <Len>2362</Len> <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> </Buttons> <OriginalItems> <Len>898</Len> @@ -3603,39 +3603,39 @@ <ActiveMDIGroup>0</ActiveMDIGroup> <MDIGroup> <Size>100</Size> <ActiveTab>0</ActiveTab> <ActiveTab>2</ActiveTab> <Doc> <Name>..\Src\application\dw_app.c</Name> <ColumnNumber>6</ColumnNumber> <TopLine>421</TopLine> <CurrentLine>438</CurrentLine> <TopLine>293</TopLine> <CurrentLine>294</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\stm32f10x_it.c</Name> <ColumnNumber>16</ColumnNumber> <TopLine>46</TopLine> <CurrentLine>71</CurrentLine> <ColumnNumber>4</ColumnNumber> <TopLine>94</TopLine> <CurrentLine>111</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\main.c</Name> <ColumnNumber>0</ColumnNumber> <TopLine>132</TopLine> <CurrentLine>157</CurrentLine> <ColumnNumber>30</ColumnNumber> <TopLine>82</TopLine> <CurrentLine>68</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\decadriver\deca_device.c</Name> <ColumnNumber>0</ColumnNumber> <ColumnNumber>35</ColumnNumber> <TopLine>2736</TopLine> <CurrentLine>2747</CurrentLine> <CurrentLine>2738</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> @@ -3643,8 +3643,80 @@ <Doc> <Name>..\Src\application\dw_app.h</Name> <ColumnNumber>0</ColumnNumber> <TopLine>70</TopLine> <CurrentLine>81</CurrentLine> <TopLine>41</TopLine> <CurrentLine>54</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\application\global_param.c</Name> <ColumnNumber>18</ColumnNumber> <TopLine>1</TopLine> <CurrentLine>1</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\application\global_param.h</Name> <ColumnNumber>0</ColumnNumber> <TopLine>1</TopLine> <CurrentLine>12</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\application\beep_logic_app.c</Name> <ColumnNumber>0</ColumnNumber> <TopLine>30</TopLine> <CurrentLine>44</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\OnChipDevices\Spi.c</Name> <ColumnNumber>0</ColumnNumber> <TopLine>154</TopLine> <CurrentLine>171</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\OnChipDevices\Usart.c</Name> <ColumnNumber>33</ColumnNumber> <TopLine>71</TopLine> <CurrentLine>85</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>E:\GIT\UWB_SmallModule\æºç \æ ¸å¿æ¿\MDK-ARM\1</Name> <ColumnNumber>0</ColumnNumber> <TopLine>888</TopLine> <CurrentLine>906</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\OnChipDevices\Usart.h</Name> <ColumnNumber>0</ColumnNumber> <TopLine>6</TopLine> <CurrentLine>23</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> <Name>..\Src\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h</Name> <ColumnNumber>0</ColumnNumber> <TopLine>117</TopLine> <CurrentLine>112</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> Ô´Âë/ºËÐİå/MDK-ARM/Project.uvoptx
@@ -120,7 +120,7 @@ <SetRegEntry> <Number>0</Number> <Key>DLGUARM</Key> <Name></Name> <Name>d</Name> </SetRegEntry> <SetRegEntry> <Number>0</Number> @@ -159,7 +159,7 @@ <Type>0</Type> <LineNumber>2747</LineNumber> <EnabledFlag>1</EnabledFlag> <Address>134256476</Address> <Address>134256892</Address> <ByteObject>0</ByteObject> <HtxType>0</HtxType> <ManyObjects>0</ManyObjects> @@ -173,7 +173,55 @@ <Bp> <Number>1</Number> <Type>0</Type> <LineNumber>709</LineNumber> <LineNumber>75</LineNumber> <EnabledFlag>1</EnabledFlag> <Address>134248176</Address> <ByteObject>0</ByteObject> <HtxType>0</HtxType> <ManyObjects>0</ManyObjects> <SizeOfObject>0</SizeOfObject> <BreakByAccess>0</BreakByAccess> <BreakIfRCount>1</BreakIfRCount> <Filename>E:\GIT\UWB_SmallModule\å©§æ®ç\Src\main.c</Filename> <ExecCommand></ExecCommand> <Expression>\\UWB_Projects\../Src/main.c\75</Expression> </Bp> <Bp> <Number>2</Number> <Type>0</Type> <LineNumber>296</LineNumber> <EnabledFlag>1</EnabledFlag> <Address>134246560</Address> <ByteObject>0</ByteObject> <HtxType>0</HtxType> <ManyObjects>0</ManyObjects> <SizeOfObject>0</SizeOfObject> <BreakByAccess>0</BreakByAccess> <BreakIfRCount>1</BreakIfRCount> <Filename>E:\GIT\UWB_SmallModule\å©§æ®ç\Src\application\dw_app.c</Filename> <ExecCommand></ExecCommand> <Expression>\\UWB_Projects\../Src/application/dw_app.c\296</Expression> </Bp> <Bp> <Number>3</Number> <Type>0</Type> <LineNumber>296</LineNumber> <EnabledFlag>1</EnabledFlag> <Address>134247298</Address> <ByteObject>0</ByteObject> <HtxType>0</HtxType> <ManyObjects>0</ManyObjects> <SizeOfObject>0</SizeOfObject> <BreakByAccess>0</BreakByAccess> <BreakIfRCount>1</BreakIfRCount> <Filename>E:\GIT\UWB_SmallModule\å©§æ®ç\Src\application\dw_app.c</Filename> <ExecCommand></ExecCommand> <Expression>\\UWB_Projects\../Src/application/dw_app.c\296</Expression> </Bp> <Bp> <Number>4</Number> <Type>0</Type> <LineNumber>297</LineNumber> <EnabledFlag>1</EnabledFlag> <Address>0</Address> <ByteObject>0</ByteObject> @@ -283,6 +331,36 @@ <WinNumber>1</WinNumber> <ItemText>sync_timer,0x0A</ItemText> </Ww> <Ww> <count>19</count> <WinNumber>1</WinNumber> <ItemText>tyncpoll_time</ItemText> </Ww> <Ww> <count>20</count> <WinNumber>1</WinNumber> <ItemText>synclost_timer,0x0A</ItemText> </Ww> <Ww> <count>21</count> <WinNumber>1</WinNumber> <ItemText>current_syncid,0x0A</ItemText> </Ww> <Ww> <count>22</count> <WinNumber>1</WinNumber> <ItemText>flag_syncbase</ItemText> </Ww> <Ww> <count>23</count> <WinNumber>1</WinNumber> <ItemText>status_reg</ItemText> </Ww> <Ww> <count>24</count> <WinNumber>1</WinNumber> <ItemText>g_com_map[DEV_ID]</ItemText> </Ww> </WatchWindow1> <MemoryWindow1> <Mm> Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -171,14 +171,23 @@ } extern uint8_t g_start_send_flag; u8 g_start_sync_flag; void SyncPoll(u8 sync_seq) { g_start_sync_flag=1; dwt_forcetrxoff(); void SyncPoll(u8 sync_seq,uint32_t sync_baseid) {u8 result; g_start_sync_flag=1; //ä¸ææ¨¡å¼ï¼éåºç»ç«¯åï¼éè¦éæ°æ¥è¿ dwt_forcetrxoff(); //å ³éæ¥æ¶ï¼ä»¥é²å¨RX ON ç¶æ tx_sync_msg[SYNC_SEQ_IDX]=sync_seq; memcpy(&tx_sync_msg[ANCHOR_ID_IDX],&sync_baseid,4); dwt_writetxdata(sizeof(tx_sync_msg), tx_sync_msg, 0);//å°Pollå æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» dwt_writetxfctrl(sizeof(tx_sync_msg), 0);//è®¾ç½®è¶ å®½å¸¦åéæ°æ®é¿åº¦ dwt_starttx(DWT_START_TX_IMMEDIATE); if(result==0) { while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))//䏿æ¥è¯¢è¯çç¶æç´å°åé宿 { }; } dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_TXFRS);//æ¸ æ¥æ å¿ä½ } uint16_t g_Resttimer; uint8_t result; @@ -194,8 +203,8 @@ u16 anclist_num=0,anclist_pos; //list æ»æ°éåå½åä½ç½® u16 ancid_list[TAG_NUM_IN_SYS]; u8 nearbase_num=0; u16 nearbaseid_list[10],mainbase_id,true_nearbase_idlist[MAX_NEARBASE_NUM]; int32_t mainbase_dist,nearbase_distlist[10],true_nearbase_distlist[MAX_NEARBASE_NUM]; u16 nearbaseid_list[MAX_NEARBASE_NUM],mainbase_id,true_nearbase_idlist[MAX_NEARBASE_NUM]; int32_t mainbase_dist,nearbase_distlist[MAX_NEARBASE_NUM],true_nearbase_distlist[MAX_NEARBASE_NUM]; uint8_t trygetnearmsg_times; u8 FindNearBasePos(u16 baseid) @@ -242,9 +251,10 @@ } u8 anclost_times=0; u8 exsistbase_list[MAX_NEARBASE_NUM],report_num; u16 temp_sync_timer1,temp_sync_timer2; void NearPoll(void) { static u8 mainbase_lost_count=0,flag_finalsend; static u8 mainbase_lost_count=0,flag_finalsend,flag_rxon; uint32_t temp1,temp2,dw_systime; uint32_t frame_len; uint32_t final_tx_time; @@ -255,13 +265,13 @@ dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置åéåå¼å¯æ¥æ¶ï¼å¹¶è®¾å®å»¶è¿æ¶é´ dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); tag_succ_times = 0; GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET); if(nearbase_num>=MAX_NEARBASE_NUM) { nearbase_num = MAX_NEARBASE_NUM-1; } //nearbase_num=0; recbase_num=0; tx_nearpoll_msg[BATTARY_IDX] = Get_Battary(); tx_nearpoll_msg[BUTTON_IDX] = !READ_KEY0; tx_nearpoll_msg[SEQUENCE_IDX] = frame_seq_nb++; @@ -277,9 +287,11 @@ exsistbase_list[i]=0; flag_finalsend=0; flag_rxon=1; neartimout_timer=0; timeout=nearbase_num/4+2; timeout=ceil((float)nearbase_num/4)+2; //timeout=5; mainbase_dist=100000; mainbase_lost_count++; while(neartimout_timer<timeout) @@ -292,6 +304,7 @@ if(dw_systime>temp1&&dw_systime<temp2) { flag_finalsend=0; flag_rxon=0; dwt_forcetrxoff(); dwt_setdelayedtrxtime(final_tx_time); result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé @@ -328,8 +341,10 @@ if(rec_nearbaseid==nearbaseid_list[0]) { //////////////////////////////////æ¶é´åæ¥ memcpy(&sync_timer,&rx_buffer[ANCTIMEMS],2); temp_sync_timer2=sync_timer; memcpy(&temp_sync_timer1,&rx_buffer[ANCTIMEMS],2); memcpy(&tmp_time,&rx_buffer[ANCTIMEUS],2); sync_timer=temp_sync_timer1; exsistbase_list[0]=1; //// memcpy(&tagslotpos,&rx_buffer[TAGSLOTPOS],2); // @@ -421,9 +436,22 @@ } } } } }else{ dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); if(flag_rxon) {dwt_rxenable(0); } } } GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_RESET); // if(result==0) // { // while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))//䏿æ¥è¯¢è¯çç¶æç´å°åé宿 // { }; // } // dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_TXFRS);//æ¸ æ¥æ å¿ä½ dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); nearbase_num=recbase_num; j=0; if(exsistbase_list[0]==0) @@ -475,6 +503,7 @@ report_num++; } } // printf("%d,%d",temp_sync_timer2,temp_sync_timer1); #ifdef USART_INTEGRATE_OUTPUT usart_send[2] = 4;//æ£å¸¸æ¨¡å¼ usart_send[3] = report_num*6+2;//æ£å¸¸æ¨¡å¼ @@ -757,21 +786,27 @@ anc_report_num++; #endif }else{ // printf("%d",hex_dist); misdist_num++; } } } }else{ //printf("%x/n",status_reg); dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); } } uint32_t current_syncid=0xffffffff,synclost_timer; extern u8 flag_syncbase; void Anchor_App(void) { u8 send_len,i; u16 tempid; uint32_t rec_syncid; g_start_sync_flag=0; dwt_setrxtimeout(0);//è®¾å®æ¥æ¶è¶ æ¶æ¶é´ï¼0使²¡æè¶ æ¶æ¶é´ dwt_rxenable(0);//æå¼æ¥æ¶ @@ -795,6 +830,7 @@ taglist_pos=CmpTagInList(tag_id_recv); if(taglist_pos==0) { synclost_timer=0; tagid_list[taglist_num++]=tag_id_recv; taglist_pos=taglist_num; new_tagid=1; @@ -809,13 +845,30 @@ // Anchor_RecPoll(); // break; case SYNC: if(rx_buffer[SYNC_SEQ_IDX]<sync_seq) { sync_seq=rx_buffer[SYNC_SEQ_IDX]+1; TIM3->CNT = sync_seq*325%1000+15; sync_timer = sync_seq*325/1000; SyncPoll(sync_seq); } memcpy(&rec_syncid,&rx_buffer[ANCHOR_ID_IDX],4); if(rec_syncid<current_syncid) { current_syncid=rec_syncid; flag_syncbase=0; sync_seq=rx_buffer[SYNC_SEQ_IDX]+1; TIM3->CNT = sync_seq*325%1000+15; sync_timer = sync_seq*325/1000; synclost_timer=0; SyncPoll(sync_seq,rec_syncid); }else if(rec_syncid==current_syncid) { if(rx_buffer[SYNC_SEQ_IDX]<sync_seq) { flag_syncbase=0; sync_seq=rx_buffer[SYNC_SEQ_IDX]+1; TIM3->CNT = sync_seq*325%1000+15; sync_timer = sync_seq*325/1000; synclost_timer=0; SyncPoll(sync_seq,rec_syncid); } } break; // case NEAR_MSG: // if(anc_id_recv==dev_id) Ô´Âë/ºËÐİå/Src/application/dw_app.h
@@ -26,7 +26,7 @@ //#define TAG_OUTPUT #define HEX_OUTPUT #define MAX_NEARBASE_NUM 10 #define MAX_NEARBASE_NUM 12 #define REPOET_ANC_NUM 1 #define REPOET_ANC_NUM_MIN 1 @@ -57,7 +57,7 @@ #define DELAY_BETWEEN_TWO_FRAME_UUS 240 #define POLL_RX_TO_RESP_TX_DLY_UUS 420 #define POLL_RX_TO_RESP_TX_DLY_UUS 470 /* This is the delay from the end of the frame transmission to the enable of the receiver, as programmed for the DW1000's wait for response feature. */ #define RESP_TX_TO_FINAL_RX_DLY_UUS 200 /* Receive final timeout. See NOTE 5 below. */ @@ -93,6 +93,7 @@ #define FINAL_MSG_RESP_RX_NEARBASE_IDX 22 #define FINAL_MSG_TS_LEN 4 //SYNC #define ANCHOR_ID_IDX 1 #define SYNC_SEQ_IDX 5 //NEAR MSG #define NEARBASENUM_INDEX 10 @@ -128,5 +129,5 @@ extern void TagDistClear(void); void Dw1000_App_Init(void); void TagListUpdate(void); void SyncPoll(u8 sync_seq); void SyncPoll(u8 sync_seq,uint32_t sync_baseid); #endif Ô´Âë/ºËÐİå/Src/application/global_param.h
@@ -6,7 +6,7 @@ #define COM_MAP_SIZE 512 //MAP表çæå¤§ç©ºé´ #define DEFAULT_DISTANCE 1000 //åå§æµè·è·ç¦»ä¸º10ç±³ #define DEFAULT_DEV_ID 5555 //é»è®¤è®¾å¤IDæ¯5555 #define SYNCLOST_TIME 10000 //å¤ä¹ æ¶ä¸å°ä¿¡å·åæåæ¥åºç« /*---------------Map Definition-------------------*/ #define VERSION 0x1 #define DEV_ID 0x2 //设å¤çId Ô´Âë/ºËÐİå/Src/main.c
@@ -65,9 +65,9 @@ save_com_map_to_flash(); #endif OUT485_ENABLE; g_com_map[VERSION] = 0x010c; g_com_map[VERSION] = 0x010e; dev_id = g_com_map[DEV_ID]; slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]/3)+1; slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]/4)+4; max_slotpos=g_com_map[COM_INTERVAL]/slottime; tyncpoll_time=(g_com_map[DEV_ID]%max_slotpos)*slottime; @@ -112,7 +112,7 @@ u16 heartbeat_timer,poll_timer,sync_timer; void IdleTask(void) { g_start_sync_flag=0; main_logic(); UART_CheckReceive(); UART_CheckSend(); if(heartbeat_timer>1000) @@ -168,7 +168,7 @@ while(1) { g_start_sync_flag=0; if(g_start_send_flag) { g_start_send_flag = 0; @@ -177,6 +177,7 @@ IdleTask(); if(g_com_map[DEV_ROLE]==0) Anchor_App(); } } Ô´Âë/ºËÐİå/Src/stm32f10x_it.c
@@ -35,12 +35,12 @@ uint8_t g_start_send_flag = 0,sync_seq=0,usart_send_flag; u16 usart_timer=0; uint16_t sysscal; u16 tag_recv_timer, tag_timer; u16 tag_recv_timer, tag_timer,last_polltime; extern uint16_t g_Resttimer,heartbeat_timer,sync_timer; extern uint8_t g_pairstart; u8 neartimout_timer=0; u8 neartimout_timer=0,flag_syncbase=0; extern u16 tyncpoll_time; extern uint32_t synclost_timer,current_syncid; void TIM3_IRQHandler(void) //TIM3?? { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //??TIM3???????? @@ -50,13 +50,17 @@ time32_incr++; heartbeat_timer++; sync_timer++; neartimout_timer++; if(sync_timer>=1010) {sync_timer=0;} neartimout_timer++; synclost_timer++; if(sync_timer>=1000) { sync_timer=0; TagListUpdate(); } if(g_Resttimer++>2000) { //NVIC_SystemReset(); NVIC_SystemReset(); } @@ -68,17 +72,16 @@ TagDistClear(); if(g_com_map[ANC_POLL]) { if((sync_timer-10)%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer>=10&&sync_timer!=1010) if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990&&sync_timer!=last_polltime) { g_start_send_flag=1; } } //if(g_com_map[ALARM_DEV]!=0) main_logic(); #ifdef USART_INTEGRATE_OUTPUT if(usart_timer++>=g_com_map[COM_INTERVAL]) if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990) { usart_timer=0; usart_send_flag=1; } #endif @@ -86,16 +89,24 @@ { sync_seq=0xff; } if(sync_timer==0) if(synclost_timer>SYNCLOST_TIME) { TagListUpdate(); if(dev_id==0) SyncPoll(0); flag_syncbase=1; } }else{ //æ ç¾åæ¥å¤ç if((sync_timer-10)%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer>=10&&sync_timer!=1010) if(flag_syncbase) //æ¬æ¨¡åæ¯åæ¥åºç« { if(sync_timer==995) { current_syncid = g_com_map[DEV_ID]; sync_seq=0; SyncPoll(sync_seq,current_syncid); } } }else{ //æ ç¾åæ¥å¤ç if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990&&sync_timer!=last_polltime) { last_polltime=sync_timer; // GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET); g_start_send_flag=1; }