From b32910bdb85c6e9d19abf97f1465c573a0bf9d38 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期四, 13 二月 2025 14:06:13 +0800
Subject: [PATCH] 测试版

---
 keil/lora_3029.h |  147 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 145 insertions(+), 2 deletions(-)

diff --git a/keil/lora_3029.h b/keil/lora_3029.h
index 0c1de4d..be9d457 100644
--- a/keil/lora_3029.h
+++ b/keil/lora_3029.h
@@ -2,10 +2,153 @@
 #define __LORA_3029_H
 #include "mk_io.h"
 
-#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_4
+#define LORA_DIO IO_PIN_7
+#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 8
+    
+#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
+
+//#define TEST_MANAGE_CHANNEL_FRQ 457
+//#define TEST_MANAGE_CHANNEL_SF 5
+
+#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 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
\ No newline at end of file

--
Gitblit v1.9.3