.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/beep_logic_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/dw_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/global_param.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/global_param.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/serial_at_cmd_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/main.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -13,3 +13,4 @@ *.htm *.lnp *.sct *.hex Ô´Âë/ºËÐİå/Src/application/beep_logic_app.c
@@ -4,11 +4,21 @@ #include "global_param.h" #include "dw_app.h" #define ONTIME1 1 // 100ms #define OFFTIME1 0 // 100ms #define ONTIME2 1 // 100ms #define OFFTIME2 1 // 100ms #define ONTIME3 1 // 500ms #define OFFTIME3 5 // 500ms void main_logic(void) //主é»è¾å¨è¿éæ§è¡ {uint16_t i, min_dist; { static uint8_t beep_state,timer_state,beep_timer,beep_ontime,beep_offtime; uint16_t i, min_dist; //é¤UWBä¹å¤çå ¶ä»ä»£ç ... static uint16_t beep_judge_cnt = 0; if(beep_judge_cnt++ >= 200) if(beep_judge_cnt++ >= 100) { beep_judge_cnt = 0; min_dist=0xffff; @@ -20,7 +30,31 @@ } } if(min_dist <= g_com_map[ALARM_DISTANCE]) if(min_dist <= g_com_map[ALARM_DISTANCE1]) { beep_ontime = ONTIME1; beep_offtime = OFFTIME1; beep_state=1; }else if (min_dist <= g_com_map[ALARM_DISTANCE2]) { beep_ontime = ONTIME2; beep_offtime = OFFTIME2; beep_state=1; }else if (min_dist <= g_com_map[ALARM_DISTANCE3]) { beep_ontime = ONTIME3; beep_offtime = OFFTIME3; beep_state=1; }else{ beep_state=0; } if(beep_state==1) { if(timer_state==1) { if(beep_timer++ < beep_ontime) { switch(g_com_map[ALARM_DEV]) { @@ -45,8 +79,12 @@ OUT2_ON; break; } }else{ timer_state=0; beep_timer=0; } else }else{ if(beep_timer++ < beep_offtime) { switch(g_com_map[ALARM_DEV]) { @@ -65,6 +103,31 @@ OUT2_OFF; break; } }else{ timer_state=1; beep_timer=0; } } } else { switch(g_com_map[ALARM_DEV]) { case 0: BEEP2_OFF; break; case 1: BEEP_OFF; break; case 2: OUT2_OFF; break; default: BEEP2_OFF; BEEP_OFF; OUT2_OFF; break; } } } } Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -264,7 +264,7 @@ } void Dw1000_App_Init(void) { g_com_map[DEV_ID] = 0x04; // g_com_map[DEV_ID] = 0x02; tx_poll_msg[MESSAGE_TYPE_IDX]=POLL; tx_resp_msg[MESSAGE_TYPE_IDX]=RESPONSE; tx_final_msg[MESSAGE_TYPE_IDX]=FINAL; @@ -413,7 +413,7 @@ tx_resp_msg[TAG_ID_IDX] = tag_id_recv; if (rx_buffer[MESSAGE_TYPE_IDX] == POLL) //夿æ¯å¦æ¯pollå æ°æ® if (rx_buffer[MESSAGE_TYPE_IDX] == POLL&&tag_id_recv!= g_com_map[DEV_ID]) //夿æ¯å¦æ¯pollå æ°æ® { /* Retrieve poll reception timestamp. */ poll_rx_ts = get_rx_timestamp_u64();//è·å¾Pollå æ¥æ¶æ¶é´T2 Ô´Âë/ºËÐİå/Src/application/global_param.c
@@ -25,9 +25,11 @@ if(g_com_map[0] != 0x55AA) { g_com_map[0] = 0x55AA; g_com_map[ALARM_DISTANCE] = 50; //é»è®¤æ¥è¦è·ç¦»200cm g_com_map[ALARM_DEV] = 0; g_com_map[DEV_ID] = DEFAULT_DEV_ID; //é»è®¤è®¾å¤ID g_com_map[ALARM_DISTANCE1] = 500; //é»è®¤æ¥è¦è·ç¦»50cm g_com_map[ALARM_DISTANCE2] = 1000; //é»è®¤æ¥è¦è·ç¦»50cm g_com_map[ALARM_DISTANCE3] = 1500; //é»è®¤æ¥è¦è·ç¦»50cm g_com_map[ALARM_DEV] = 1; g_com_map[DEV_ID] = 1;//DEFAULT_DEV_ID; //é»è®¤è®¾å¤ID save_com_map_to_flash(); } Ô´Âë/ºËÐİå/Src/application/global_param.h
@@ -14,8 +14,9 @@ #define DEV_GROUP_ID 0x13 //é讯ç»ID #define ALARM_DEV 0x20 //æ¯åªä¸ªè®¾å¤æ¥è¦ #define ALARM_DISTANCE 0x21 //å°äºå¤å°è·ç¦»æ¥è¦ #define ALARM_DISTANCE1 0x21 //å°äºå¤å°è·ç¦»æ¥è¦ #define ALARM_DISTANCE2 0x22 //å°äºå¤å°è·ç¦»æ¥è¦ #define ALARM_DISTANCE3 0x23 //å°äºå¤å°è·ç¦»æ¥è¦ /*------------END Map Definition-------------------*/ Ô´Âë/ºËÐİå/Src/application/serial_at_cmd_app.c
@@ -2,20 +2,21 @@ #include "global_param.h" #include <string.h> #include <stdio.h> #include "dw_app.h" uint8_t m_frame_data[MAX_FRAME_LEN] = {0}; uint8_t m_frame_data_len = 0; void ParseFrame(void) { if(!memcmp(m_frame_data, "DIS", 3)) if(!memcmp(m_frame_data, "DIS1", 4)) { g_com_map[ALARM_DISTANCE] =0; for(uint8_t i=3; i < m_frame_data_len; i++) g_com_map[ALARM_DISTANCE1] =0; for(uint8_t i=5; i < m_frame_data_len; i++) { if(m_frame_data[i]<58 && m_frame_data[i]>47) { g_com_map[ALARM_DISTANCE] = g_com_map[ALARM_DISTANCE]*10 + m_frame_data[i]- '0'; g_com_map[ALARM_DISTANCE1] = g_com_map[ALARM_DISTANCE1]*10 + m_frame_data[i]- '0'; } else { @@ -23,19 +24,55 @@ break; } } printf("When distance < %d cm, alarm is on.\n", g_com_map[ALARM_DISTANCE]); printf("When distance1 < %d cm, alarm1 is on.\n", g_com_map[ALARM_DISTANCE1]); save_com_map_to_flash(); } else if(!memcmp(m_frame_data, "DIS2", 4)) { g_com_map[ALARM_DISTANCE2] =0; for(uint8_t i=5; i < m_frame_data_len; i++) { if(m_frame_data[i]<58 && m_frame_data[i]>47) { g_com_map[ALARM_DISTANCE2] = g_com_map[ALARM_DISTANCE2]*10 + m_frame_data[i]- '0'; } else { printf("Error: Wrong DISTANCE.\r\n"); break; } } printf("When distance2 < %d cm, alarm2 is on.\n", g_com_map[ALARM_DISTANCE2]); save_com_map_to_flash(); } else if(!memcmp(m_frame_data, "DIS3", 4)) { g_com_map[ALARM_DISTANCE3] =0; for(uint8_t i=5; i < m_frame_data_len; i++) { if(m_frame_data[i]<58 && m_frame_data[i]>47) { g_com_map[ALARM_DISTANCE3] = g_com_map[ALARM_DISTANCE3]*10 + m_frame_data[i]- '0'; } else { printf("Error: Wrong DISTANCE.\r\n"); break; } } printf("When distance3 < %d cm, alarm3 is on.\n", g_com_map[ALARM_DISTANCE3]); save_com_map_to_flash(); } else if(!memcmp(m_frame_data, "DEV", 3)) { g_com_map[ALARM_DEV] = m_frame_data[3]-'0'; g_com_map[ALARM_DEV] = m_frame_data[4]-'0'; printf("Alarm device is %d. \n", g_com_map[ALARM_DEV]); save_com_map_to_flash(); } else if(!memcmp(m_frame_data, "ID", 2)) { g_com_map[DEV_ID] = 0; for(uint8_t i=2; i < m_frame_data_len; i++) for(uint8_t i=3; i < m_frame_data_len; i++) { if(m_frame_data[i]<58 && m_frame_data[i]>47) { @@ -47,6 +84,7 @@ break; } } Dw1000_App_Init(); printf("set dev id = %d. \r\n", g_com_map[DEV_ID]); save_com_map_to_flash(); } Ô´Âë/ºËÐİå/Src/main.c
@@ -54,11 +54,11 @@ int main(void) { delay_ms(1000); Device_Init(); Program_Init(); Dw1000_Init(); delay_ms(1000); #ifdef WORK_MODE_TAG tag_sleep_configuraion(); #endif