| | |
| | | #ifndef __LORA_3029_H |
| | | #define __LORA_3029_H |
| | | #include "mk_io.h" |
| | | //#ifndef __LORA_3029_H |
| | | //#define __LORA_3029_H |
| | | //#include "mk_io.h" |
| | | |
| | | //BT板子更改了片选角 |
| | | ////BT板子更改了片选角 |
| | | |
| | | //#define LORA_CS IO_PIN_14 |
| | | #define LORA_CS IO_PIN_8 |
| | | #define LORA_MOSI IO_PIN_11 |
| | | #define LORA_MISO IO_PIN_12 |
| | | #define LORA_CLK IO_PIN_13 |
| | | #define LORA_DIO IO_PIN_7 |
| | | //#define LORA_DIO IO_PIN_4 |
| | | #define ANC_MAX_NUM 50 |
| | | #define LORA_REPORT_MAXANC_NUM 10 |
| | | //#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 LORA_CS IO_PIN_14 |
| | | //#define LORA_CS IO_PIN_8 |
| | | //#define LORA_MOSI IO_PIN_11 |
| | | //#define LORA_MISO IO_PIN_12 |
| | | //#define LORA_CLK IO_PIN_13 |
| | | //#define LORA_DIO IO_PIN_7 |
| | | ////#define LORA_DIO IO_PIN_4 |
| | | //#define ANC_MAX_NUM 50 |
| | | //#define LORA_REPORT_MAXANC_NUM 10 |
| | | ////#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 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 8 |
| | | |
| | | #define UWB_CHANNEL_FRQ 470 |
| | | #define UWB_CHANNEL_SF 5 |
| | | //#define REPORT_MANGE_CHANNEL_FRQ 458 +TEST_FREQ_OFFSET |
| | | //#define REPORT_CHANNEL_SF 7 |
| | | //#else |
| | | //#define LORA_UPCHANNEL_FRQ 476 |
| | | //#define LORA_UPCHANNEL_SF 8 |
| | | // |
| | | //#define UWB_CHANNEL_FRQ 470 |
| | | //#define UWB_CHANNEL_SF 5 |
| | | |
| | | #define REPORT_MANGE_CHANNEL_FRQ 478 |
| | | #define REPORT_CHANNEL_SF 7 |
| | | //#define REPORT_MANGE_CHANNEL_FRQ 478 |
| | | //#define REPORT_CHANNEL_SF 7 |
| | | |
| | | #define LR_DATA_CHANNEL_FRQ 475 |
| | | #define LR_DATA_CHANNEL_SF 9 |
| | | //#define LR_DATA_CHANNEL_FRQ 475 |
| | | //#define LR_DATA_CHANNEL_SF 9 |
| | | |
| | | //#define TEST_MANAGE_CHANNEL_FRQ 457 |
| | | //#define TEST_MANAGE_CHANNEL_SF 5 |
| | | ////#define TEST_MANAGE_CHANNEL_FRQ 457 |
| | | ////#define TEST_MANAGE_CHANNEL_SF 5 |
| | | |
| | | #endif |
| | | //#endif |
| | | |
| | | //LORA 数据格式 |
| | | ////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//标签距离信息发给网关 |
| | | ////免布线系统中 所有的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_TAGMSGTOWG_BT 0x26//标签距离信息蓝牙距离信息,信号强度,发给网关 |
| | | //#define LORA_MSGTYPE_TAGMSGTOWG_BT 0x26//标签距离信息蓝牙距离信息,信号强度,发给网关 |
| | | |
| | | #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 GATEWAY_CHANL 9 |
| | | #define CHANL_NUM 10 |
| | | #define ANCNUM_IDX 11 |
| | | #define ANCID_IDX 12 //校验在4*ancnum+ANCID_IDX 位置 |
| | | // #define LORA_RETRANSNUSSION_BT 13 //LORA转发蓝牙协议标识符 |
| | | |
| | | |
| | | #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_WGRESPTAG 8//网关回复标签测距定位报文 |
| | | //#define LORA_MSGTYPE_TAGHEARTBEAT 0x33//标签心跳包上传 |
| | | //#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个字节 |
| | | ////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 标签上报网关定位报文信息格式 |
| | | |
| | | //#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 LoraHeartBeartPoll(void); |
| | | void Lora_Tx_Poll(); |
| | | void OnMaster(); |
| | | int LORA_3029_SINGLE_SEND(uint8_t *buffer, uint8_t size,uint8_t time); |
| | | int LORA_3029_CONTINOUS_SEND(uint8_t *buffer, uint8_t size); |
| | | //#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 GATEWAY_CHANL 9 |
| | | // #define CHANL_NUM 10 |
| | | // #define ANCNUM_IDX 11 |
| | | // #define ANCID_IDX 12 //校验在4*ancnum+ANCID_IDX 位置 |
| | | //// #define LORA_RETRANSNUSSION_BT 13 //LORA转发蓝牙协议标识符 |
| | | |
| | | |
| | | #endif |
| | | //#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 LoraHeartBeartPoll(void); |
| | | //void Lora_Tx_Poll(); |
| | | //void OnMaster(); |
| | | //int LORA_3029_SINGLE_SEND(uint8_t *buffer, uint8_t size,uint8_t time); |
| | | //int LORA_3029_CONTINOUS_SEND(uint8_t *buffer, uint8_t size); |
| | | |
| | | |
| | | //#endif |