From 6d08f540240e0baad08328f06c66d8e2fb1f336f Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期三, 04 十二月 2024 09:16:16 +0800 Subject: [PATCH] 实现,1对1通信,超时时间2ms --- keil/lora_3029.h | 135 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 135 insertions(+), 0 deletions(-) diff --git a/keil/lora_3029.h b/keil/lora_3029.h index 0c1de4d..a4a81d9 100644 --- a/keil/lora_3029.h +++ b/keil/lora_3029.h @@ -7,5 +7,140 @@ #define LORA_MISO IO_PIN_12 #define LORA_CLK IO_PIN_13 #define LORA_DIO IO_PIN_4 +#define ANC_MAX_NUM 50 +#define LORA_REPORT_MAXANC_NUM 7 +//#define TEST_FREQ +#ifdef TEST_FREQ +#define LORA_UPCHANNEL_FRQ 456 +#define LORA_UPCHANNEL_SF 9 + +#define TEST_FREQ_OFFSET 1 +#define UWB_CHANNEL_FRQ 450+TEST_FREQ_OFFSET +#define UWB_CHANNEL_SF 5 +#define LR_DATA_CHANNEL_FRQ 457 +#define LR_DATA_CHANNEL_SF 9 + +#define REPORT_MANGE_CHANNEL_FRQ 458 +TEST_FREQ_OFFSET +#define REPORT_CHANNEL_SF 7 +#else +#define LORA_UPCHANNEL_FRQ 476 +#define LORA_UPCHANNEL_SF 7 + +#define UWB_CHANNEL_FRQ 470 +#define UWB_CHANNEL_SF 5 + +#define REPORT_MANGE_CHANNEL_FRQ 478 +#define REPORT_CHANNEL_SF 7 + +#define LR_DATA_CHANNEL_FRQ 475 +#define LR_DATA_CHANNEL_SF 9 +#endif + +//LORA 数据格式 + +//免布线系统中 所有的LORA传输信息都包含在下面的MSG TYPE(消息类型)格式中,不同的消息类型,会对应不同的所有格式 +//LORA MSG TYPE的几种类型 +#define LORA_MSGTYPE_SYNC 1//网关下发给基站的同步信息 +#define LORA_MSGTYPE_CFGRSP 2//基站回复给网关配置读取信息 +#define LORA_MSGTYPE_UPDATE_CONFIRM 3//基站回复给网关升级确认信息 +#define LORA_MSGTYPE_RANGEPOLL 4//基站发起测距同步信号 +#define LORA_MSGTYPE_UPDATEFILE_REQUEST 5//基站发送给网关升级文件请求 +#define LORA_MSGTYPE_UPDATEFILE_RESP 6//网关回复基站升级文件内容 +#define LORA_MSGTYPE_ANCHEARTBEAT_POLL 7//网关回复基站升级文件内容 +#define LORA_MSGTYPE_TAGMSGTOWG 0x22//标签距离信息发给网关 +#define LORA_MSGTYPE_TAGMSGTOWG_GPS 0x23//标签距离信息发给网关 +#define LORA_MSGTYPE_WGRESPTAG 8//网关回复标签测距定位报文 +#define LORA_MSGTYPE_TAGHEARTBEAT 0x33//标签心跳包上传 +#define LORA_MSGTYPE_READPARARESP 0x39 //标签基站回复网关读取配置指令 +//SYNC消息下 子消息类型定义 +#define SUBMSG_NONE 0//无其他消息 只是同步信号 +#define SUBMSG_READ_ANCPARA 0x11//子消息类型:读取基站配置 +#define SUBMSG_WRITE_ANCPARA 0x12//子消息类型:写基站配置 +#define SUBMSG_UPDATE_TAG 5//子消息类型:升级标签 +#define SUBMSG_UPDATE_ANC 6//子消息类型:升级基站 +//SYNC消息类型格式 +#define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 +#define MSG_LENGTH 1 //报文长度 +#define SOURCE_ID_IDX 2 //网关ID 占用2个字节 +#define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 +#define SYSTIME_IDX 6 //系统时间 +#define RANGE_STATE_IDX 7 //该网关范围是否测距标志位,为1则区域内基站测距,如果是0则区域内基站不测距 +#define SUBMSGTYPE_IDX 9 //子消息类型IDX +#define WRITEPARA_INDEX_IDX 10 //写入参数的地址IDX +#define WRITEPARA_VALUE_IDX 11 //写入参数的值,2个字节 /*在发送升级基站请求时,被替换为要发送的升级文件的大小 +#define WG_SYNC_RESERVE_IDX 13 //保留 4个字节 +//LORA_MSGTYPE_TAGMSGTOWG 标签上报网关定位报文信息格式 + +#ifdef USE_GPS + #define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 + #define MSG_LENGTH 1 //报文长度 + #define SOURCE_ID_IDX 2 //网关ID 占用2个字节 + #define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 + #define SEQNUM_IDX 6 //标签报文序号 + #define BAT_IDX 7 //标签电量 + #define STATE_IDX 8 + #define GPS_JINGDU_IDX 9 + #define GPS_WEIDU_IDX 17 + #define GPS_HEIGHT_IDX 25 + #define GPS_STATE_IDX 29 + #define GPS_SATEL_NUM_IDX 30 + #define GPS_SPOWER_IDX 31 //信号强度 + #define GPS_CHAFENLINGQI 32 //差分龄期 + #define BAR_HEIGHT_IDX 33 //气压高度 + #define ANCNUM_IDX 35 + #define ANCID_IDX 36 //校验在4*ancnum+ANCID_IDX 位置 +#else + #define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 + #define MSG_LENGTH 1 //报文长度 + #define SOURCE_ID_IDX 2 //网关ID 占用2个字节 + #define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 + #define SEQNUM_IDX 6 //标签报文序号 + #define BAT_IDX 7 //标签电量 + #define STATE_IDX 8 + #define BAR_HEIGHT_IDX 9 //气压高度 + #define ANCNUM_IDX 11 + #define ANCID_IDX 12 //校验在4*ancnum+ANCID_IDX 位置 + +#endif +//#define LORA_MSGTYPE_WGRESPTAG 8//网关回复标签测距定位报文 格式 +#define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 +#define MSG_LENGTH 1 //报文长度 +#define SOURCE_ID_IDX 2 //网关ID 占用2个字节 +#define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 +#define NEXTPOLL_TIME_IDX 6 // +#define POLL_FREQ_IDX 8 //分配的发送频率,需要+400的偏移量。 +#define PWTAG_RW_FLAG_IDX 9 //读写标志 0无读写 1写入 2读取 +#define PWTAG_WRITE_IDX_IDX 10 //写入地址 +#define PWTAG_SECDELAY_IDX 10 //写入标签秒延迟 与读写地址共用一个位置,当有读写地址时,就没有这个参数。 +#define PWTAG_WRITE_VALUE_IDX 11 //写入值 + +#define WGRSP_RWTAG_NONE 0//网关回复标签,无读写 +#define WGRSP_RWTAG_READ 2//网关回复标签,无读写 +#define WGRSP_RWTAG_WRITE 1//网关回复标签,无读写 +#define WGRSP_RWTAG_UPDATE 0x06//网关回复标签,无读写 +//#define LORA_MSGTYPE_READPARARESP 0x39 //标签基站回复网关读取配置指令 +#define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 +#define MSG_LENGTH 1 //报文长度 +#define SOURCE_ID_IDX 2 //网关ID 占用2个字节 +#define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 +#define RP_CMD_IDX 6 //标签或者基站的设备ID 2个字节 +#define RP_INDEX_IDX 7 //标签或者基站的设备ID 2个字节 +#define RP_LEN_IDX 8 //标签或者基站的设备ID 2个字节 + +//#define LORA_MSGTYPE_TAGHEARTBEAT 0x33//标签心跳包上传 格式 +#define MSG_TYPE_IDX 0 //LORA MSG TYPE 定义 +#define MSG_LENGTH 1 //报文长度 +#define SOURCE_ID_IDX 2 //网关ID 占用2个字节 +#define DEST_ID_IDX 4 //标签或者基站的设备ID 2个字节 +#define HB_VERSION_IDX 6 //标签或者基站的设备ID 2个字节 +#define HB_UWBPOWER_IDX 8 //标签或者基站的设备ID 2个字节 +#define HB_LORAPOWER_IDX 9 //标签或者基站的设备ID 2个字节 +#define HB_RESERVE_IDX 10//标签或者基站的设备ID 2个字节 + +typedef enum{ WG_Lost, //上报丢失 失去和网关通讯 + WG_Connected,// 上报中 和网关通讯正常 +}wg_state_enum; + +void Lora_UploadHeartBeartPoll(void); #endif \ No newline at end of file -- Gitblit v1.9.3