#ifndef HEADFILE_DW_MBX_ANC
|
#define HEADFILE_DW_MBX_ANC
|
//Ãâ²¼Ïß»ùÕ¾¶Ë´úÂë
|
#include "dw_app.h"
|
#include "deca_device_api.h"
|
#include "deca_regs.h"
|
#include "dw_driver.h"
|
#include "Spi.h"
|
#include "global_param.h"
|
#include "lora.h"
|
#include "radio.h"
|
#include "led.h"
|
//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_WGRESPTAG 8//Íø¹Ø»Ø¸´±êÇ©²â¾à¶¨Î»±¨ÎÄ
|
#define LORA_MSGTYPE_TAG_HEARTBEAT 0x33//±êÇ©ÐÄÌø°üÉÏ´«
|
#define LORA_MSGTYPE_ANC_HEARTBEAT 0x32//»ùÕ¾ÐÄÌø°üÉÏ´«
|
#define LORA_MSGTYPE_WG_RESPONSE_TAG 11//Íø¹Ø»Ø¸´±êÇ©²â¾à±¨ÎÄ
|
|
#define LORA_MSGTYPE_TAGMSGTOWG 0x22//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø
|
#define LORA_MSGTYPE_TAGMSGTOWG_GPS 0x23//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø´øGPS
|
#define LORA_MSGTYPE_READPARARESP 0x39 //±êÇ©»ùÕ¾»Ø¸´Íø¹Ø¶ÁÈ¡ÅäÖÃÖ¸Áî
|
//SYNCÏûϢϠ×ÓÏûÏ¢ÀàÐͶ¨Òå
|
#define SUBMSG_NONE 0//ÎÞÆäËûÏûÏ¢ Ö»ÊÇͬ²½ÐźÅ
|
#define SUBMSG_READ_ANCPARA 0x12//×ÓÏûÏ¢ÀàÐÍ£º¶ÁÈ¡»ùÕ¾ÅäÖÃ
|
#define SUBMSG_WRITE_ANCPARA 0x11//×ÓÏûÏ¢ÀàÐÍ£ºÐ´»ùÕ¾ÅäÖÃ
|
#define SUBMSG_UPDATE_TAG 5//×ÓÏûÏ¢ÀàÐÍ£ºÉý¼¶±êÇ©
|
#define SUBMSG_UPDATE_ANC 0x16//×ÓÏûÏ¢ÀàÐÍ£ºÉý¼¶»ùÕ¾
|
//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 8 //¸ÃÍø¹Ø·¶Î§ÊÇ·ñ²â¾à±ê־λ£¬Îª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_RANGEPOLL ÏûÏ¢ÀàÐ͸ñʽ
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define ANC_ID_IDX 1 //»ùÕ¾ID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define ANC_VERSION_IDX 3
|
#define ANC_GROUPID_IDX 4
|
#define ANC_UWBPOWER_IDX 5
|
#define ANC_LORAPOWER_IDX 6
|
#define ANC_UWBPOLLTIME_IDX 7
|
#define ANC_RESERVE_IDX 8 //±£Áô5¸ö×Ö½Ú
|
//»ùÕ¾ÐÄÌø°üÏûÏ¢ÀàÐ͸ñʽ£¨»ùÕ¾->Íø¹Ø£©
|
#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 ANC_HB_VERSION_IDX 6 //°æ±¾ºÅ
|
#define ANC_HB_UWBPOLLTIME_IDX 8 //UWB·¢ËÍʱ¼ä
|
#define ANC_HB_UWBPOWER_IDX 10 //UWB¹¦ÂÊ
|
#define ANC_HB_LORAPOWER_IDX 11 //lora¹¦ÂÊ
|
#define ANC_HB_BATTARY_IDX 12 //µçÁ¿
|
#define ANC_HB_RESERVE 13 //±£Áô 4¸ö×Ö½Ú
|
|
#define WGRSP_RWTAG_NONE 0//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
#define WGRSP_RWTAG_READ 2//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
#define WGRSP_RWTAG_WRITE 1//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
|
//#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 WANGGUAN_ID 1
|
//#define JIZHAN_ID 3
|
#define MUQIAN_BAG 6
|
#define DATA_IDX 7
|
#define ONE_BAG_DAXIAO 220
|
|
#define RX_BEFORE_SYNCTIME_US 12000
|
typedef enum{ Sync_Lost, //ͬ²½¶ªÊ§ ͬ²½Ê±¼ä 100Ãëͬ²½Ò»´Î£¬Ã¿´Îͬ²½¿ªÆô2Ã룬·¢Æð²â¾àÇëÇó
|
Sync_Range,//ͬ²½×´Ì¬ ²â¾à ͬ²½Ê±¼ä 10Ãëͬ²½Ò»´Î£¬¿ªÆô10ms£¬·¢Æð²â¾àÇëÇó
|
// Sync_Config,//ͬ²½×´Ì¬ ÅäÖà ͬ²½Ê±¼ä 1Ãëͬ²½Ò»´Î£¬²»·¢Æð²â¾àÇëÇó
|
Sync_Sleep, //ͬ²½×´Ì¬ ÐÝÃß Í¬²½Ê±¼ä 100Ãëͬ²½Ò»´Î£¬²»·¢Æð²â¾àÇëÇó
|
}sync_state_enum;
|
extern sync_state_enum sync_state;
|
void SwitchLoraSettings(uint32_t freq,uint8_t sf,uint8_t power);
|
void MBXANCPoll(void);
|
void SetFlagSyncSuccess(uint8_t value);
|
uint8_t GetRangeState(void);
|
uint16_t GetUwbPollCount(void);
|
uint16_t GetWGRecSyncCount(void);
|
void LoraSyncRecPoll(void);
|
void SyncStateSwitch(void);
|
void MbxInit(void);
|
#endif
|