#ifndef __LORA_3029_H #define __LORA_3029_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_DIO IO_PIN_8 //#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 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 //±¨Î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 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 //±¨Î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¸ö×Ö½Ú 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