#ifndef __LORA_1268_H
|
#define __LORA_1268_H
|
#include "mk_io.h"
|
|
//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_BUSY IO_PIN_2
|
//#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 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_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 //±¨Îij¤¶È
|
#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 //±¨Îij¤¶È
|
#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 //±¨Îij¤¶È
|
#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 //±¨Îij¤¶È
|
#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 //±¨Îij¤¶È
|
#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 //±¨Îij¤¶È
|
#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¸ö×Ö½Ú
|
|
|
//#define LORA_MSGTYPE_TAGBTMSGTOWG
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#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 GETWG_CHANL 11 //Íø¹ØÍ¨µÀ
|
// #define GETCHANL_NUM 12 //ͨµÀÐòºÅ
|
// #define SIGNAL_STRENGTH 13 //ÐźÅÇ¿¶È
|
// #define ERROR_TIME 14 //Îó²îʱ¼ä
|
#define STATION_NUM_UWB 16 //»ùÕ¾ÊýÁ¿-À¶ÑÀ
|
|
// #define STATION_NUM_UWB
|
#define BT_ANCID_IDX 15 //УÑéÔÚ4*ancnum+ANCID_IDX λÖÃ
|
typedef enum{ WG_Lost, //Éϱ¨¶ªÊ§ ʧȥºÍÍø¹ØÍ¨Ñ¶
|
WG_Connected,// Éϱ¨ÖÐ ºÍÍø¹ØÍ¨Ñ¶Õý³£
|
}wg_state_enum;
|
|
|
|
|
|
|
|
|
void Lora_1268_Init(void);
|
void OnTxDone( void );
|
void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
|
void OnTxTimeout( void );
|
void OnRxTimeout( void );
|
void OnRxError( void );
|
void SwitchLoraSettings(uint32_t freq,uint8_t sf,uint8_t power);
|
#endif
|