feat: 完成上位机控制逻辑修改

仅在业务阶段传输上位机数据, 上位机下发数据入队, 待发送时隙进行发送, 收到数据自动上传
This commit is contained in:
2025-06-13 17:22:11 +08:00
parent 711e006b91
commit c468bd9ca1
14 changed files with 946 additions and 697 deletions
+2 -3
View File
@@ -22,7 +22,6 @@
#include "link_layer.h"
#include "link_layer_types.h"
#include "node_list.h"
#include "msg_def.h"
#include "error.h"
#include "common.h"
#include "util.h"
@@ -890,8 +889,8 @@ int32_t Linklayer_EventHandler(L2_INST *instPtr, const L2_EVENT *l2Event)
else if (instPtr->nextState == L2_NORMAL_STATE)
{
UpdateMainSate(instPtr, L2_NORMAL_STATE);
instPtr->rtneConfig.rtneTable = normalTable[L2_DEFAULT_NORMAL_TABLE];
instPtr->rtneConfig.rtnePrd = ARRAY_SIZE(normalTable[L2_DEFAULT_NORMAL_TABLE]);
instPtr->rtneConfig.rtneTable = normalTable0;
instPtr->rtneConfig.rtnePrd = ARRAY_SIZE(normalTable0);
}
else
{
+6 -3
View File
@@ -24,6 +24,7 @@
#include "link_layer_types.h"
#include "schdevent.h"
#include "node_list.h"
#include "msg_def.h"
#include "circ_queue.h"
#include "../phy_layer/phy_layer.h"
#include "../../system_monitor.h"
@@ -92,8 +93,8 @@ typedef struct
int64_t timeDev; ///< last time deviation estimation result
uint32_t reconnectCnt; ///< reconnect trial count
PAYLOAD rxLog;
PAYLOAD txLog;
L2_MSG_RECORD rxLog;
L2_MSG_RECORD txLog;
} L2_LOG;
/**
@@ -129,7 +130,9 @@ typedef struct
/************************** Variable Definitions *****************************/
extern L2_RTNE_TABLE_ENTRY *initTable[L2_INIT_RTNE_PERIOD];
extern L2_RTNE_TABLE_ENTRY *normalTable[L2_NORMAL_RTNE_PERIOD][L2_NORMAL_RTNE_NUM];
extern L2_RTNE_TABLE_ENTRY *normalTable0[L2_INIT_RTNE_PERIOD];
extern L2_RTNE_TABLE_ENTRY *normalTable1[L2_INIT_RTNE_PERIOD];
extern L2_RTNE_TABLE_ENTRY *normalTable2[L2_INIT_RTNE_PERIOD];
/************************** Function Prototypes ******************************/
/**
* @defgroup LinkLayer_Main
+2 -3
View File
@@ -36,13 +36,13 @@
#define L2_BROADCAST_ID1 0xF1 // broadcast
#define L2_BROADCAST_ID2 0xF2
#define L2_BROADCAST_ID3 0xF4
#define L2_UNICAST_ID 0xF0
#define L2_NONE_ID 0
#define L2_HEAD_ID 0x01
// Routine configure
#define L2_INIT_RTNE_PERIOD 1
#define L2_NORMAL_RTNE_PERIOD 1
#define L2_NORMAL_RTNE_NUM 3
#define L2_DEFAULT_NORMAL_TABLE 0
// Common slot number definition
#define L2_SLOTNO_NONE 0
@@ -208,7 +208,6 @@ typedef struct
uint8_t dst; ///< destination node ID
} L2_RTNE_TABLE_ENTRY;
/**
* @struct L2_SCAN_FSM
* @brief Linklayer scan process FSM instance
+30 -15
View File
@@ -25,11 +25,11 @@
#define L2_PACK_LEN_MAX 2048 // bytes
#define L2_PAYLOAD_LEN_ADV 17
#define L2_PAYLOAD_LEN_ACK 9
#define L2_PAYLOAD_LEN_SVC_128K 42
#define L2_PAYLOAD_LEN_SVC_512K 267
#define L2_PAYLOAD_LEN_SVC_2M 1222
#define L2_PAYLOAD_LEN_ADV 15
#define L2_PAYLOAD_LEN_ACK 7
#define L2_PAYLOAD_LEN_SVC_128K 40
#define L2_PAYLOAD_LEN_SVC_512K 265
#define L2_PAYLOAD_LEN_SVC_2M 1220
#define L2_MSG_CRC_LEN 1
@@ -93,8 +93,9 @@ typedef struct
float srcPosY; ///< position y
float srcPosZ; ///< position z
uint32_t srcNetStatTime;///< net start time
uint32_t advDataId; ///< advertise payload id
uint8_t advData[L2_PAYLOAD_LEN_ADV]; ///< advertise payload data
uint32_t dataId; ///< advertise payload id
uint16_t dataLen; ///< advertise payload length
uint8_t data[L2_PAYLOAD_LEN_ADV]; ///< advertise payload data
uint8_t crc; ///< crc
} L2_MSG_ADV;
@@ -111,8 +112,9 @@ typedef struct
float srcSpeedX; ///< speed x
float srcSpeedY; ///< speed y
float srcSpeedZ; ///< speed z
uint32_t ackDataId; ///< acknowledge payload id
uint8_t ackData[L2_PAYLOAD_LEN_ACK]; ///< acknowledge payload data
uint32_t dataId; ///< acknowledge payload id
uint16_t dataLen; ///< acknowledge payload length
uint8_t data[L2_PAYLOAD_LEN_ACK]; ///< acknowledge payload data
uint8_t crc; ///< crc
} L2_MSG_ACK;
@@ -129,8 +131,9 @@ typedef struct
float srcSpeedX; ///< speed x
float srcSpeedY; ///< speed y
float srcSpeedZ; ///< speed z
uint32_t svcDataId; ///< service payload id
uint8_t svcData[L2_PAYLOAD_LEN_SVC_128K]; ///< service payload data
uint32_t dataId; ///< service payload id
uint16_t dataLen; ///< service payload length
uint8_t data[L2_PAYLOAD_LEN_SVC_128K]; ///< service payload data
uint8_t crc; ///< crc
} L2_MSG_SVC_128K;
@@ -147,8 +150,9 @@ typedef struct
float srcSpeedX; ///< speed x
float srcSpeedY; ///< speed y
float srcSpeedZ; ///< speed z
uint32_t svcDataId; ///< service payload id
uint8_t svcData[L2_PAYLOAD_LEN_SVC_512K]; ///< service payload data
uint32_t dataId; ///< service payload id
uint16_t dataLen; ///< service payload length
uint8_t data[L2_PAYLOAD_LEN_SVC_512K]; ///< service payload data
uint8_t crc; ///< crc
} L2_MSG_SVC_512K;
@@ -165,13 +169,24 @@ typedef struct
float srcSpeedX; ///< speed x
float srcSpeedY; ///< speed y
float srcSpeedZ; ///< speed z
uint32_t svcDataId; ///< service payload id
uint8_t svcData[L2_PAYLOAD_LEN_SVC_2M]; ///< service payload data
uint32_t dataId; ///< service payload id
uint16_t dataLen; ///< service payload length
uint8_t data[L2_PAYLOAD_LEN_SVC_2M]; ///< service payload data
uint8_t crc; ///< crc
} L2_MSG_SVC_2M;
#pragma pack(pop) // Restore original packing
/**
* @struct SYSMON_SVC_PAYLOAD
* @brief Payload struct that holds the entire data packet
*/
typedef struct
{
uint32_t dataId; ///< data identifier
uint8_t data[L2_PACK_LEN_MAX];
} L2_MSG_RECORD;
#endif //__L2_MSG_DEF_H_
/** @} LinkLayer_MSG_Constants*/
+326 -41
View File
@@ -25,7 +25,7 @@
#include "link_layer.h"
#include "link_layer_types.h"
L2_RTNE_TABLE_ENTRY innerScanSubT[L2_SLOTS_PER_FRAME] =
L2_RTNE_TABLE_ENTRY tableFor10Node[L2_SLOTS_PER_FRAME] =
{
// 36 slots: advertise of antenna-1 ~ antenna-3
// 12 slots: idle for no antenna-4
@@ -119,20 +119,20 @@ L2_RTNE_TABLE_ENTRY innerScanSubT[L2_SLOTS_PER_FRAME] =
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x04},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x04},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x05},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x05},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x06},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x06},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x07},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x07},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x08},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x08},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
@@ -180,14 +180,14 @@ L2_RTNE_TABLE_ENTRY innerScanSubT[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x03, 0x01},
{L2_SLOT_RTT, 0x00, 0x04, 0x01},
{L2_SLOT_RTT, 0x01, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x09},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x09},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x0A},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x0A},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x0B},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x0B},
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
@@ -235,14 +235,14 @@ L2_RTNE_TABLE_ENTRY innerScanSubT[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x06, 0x01},
{L2_SLOT_RTT, 0x00, 0x07, 0x01},
{L2_SLOT_RTT, 0x01, 0x07, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x05, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x05, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x06, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x06, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x04, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x04, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x05, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x05, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x06, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x06, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
@@ -290,24 +290,309 @@ L2_RTNE_TABLE_ENTRY innerScanSubT[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x09, 0x01},
{L2_SLOT_RTT, 0x00, 0x0A, 0x01},
{L2_SLOT_RTT, 0x01, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x08, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x08, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x09, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x09, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x08, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x08, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x09, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x09, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x0A, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x0A, L2_UNICAST_ID},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00}
};
L2_RTNE_TABLE_ENTRY *initTable[L2_INIT_RTNE_PERIOD] =
L2_RTNE_TABLE_ENTRY tableFor3Node[L2_SLOTS_PER_FRAME] =
{
innerScanSubT
// 36 slots: advertise of antenna-1 ~ antenna-3
// 12 slots: idle for no antenna-4
// 2 slots: service slot, set to idle
{L2_SLOT_ADVERTISE, 0x00, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x01, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x02, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x03, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x04, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x05, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x06, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x07, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x08, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x09, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x0A, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x0B, 0x01, L2_BROADCAST_ID1},
{L2_SLOT_ADVERTISE, 0x00, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x01, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x02, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x03, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x04, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x05, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x06, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x07, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x08, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x09, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x0A, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x0B, 0x01, L2_BROADCAST_ID2},
{L2_SLOT_ADVERTISE, 0x00, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x01, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x02, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x03, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x04, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x05, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x06, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x07, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x08, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x09, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x0A, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_ADVERTISE, 0x0B, 0x01, L2_BROADCAST_ID3},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
// 36 slots: acknowledge of member nodes
// 14 slots: service
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x02, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x02, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x02, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x02, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x03, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x03, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x03, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x03, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x04, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x04, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x04, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x04, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x05, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x05, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x05, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x05, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x06, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x06, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x06, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x06, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x07, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x07, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x07, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x07, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x08, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x08, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x08, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x08, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x09, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x09, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x09, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x09, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x00, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x0A, 0x01},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
// 12 slots: rtt, head <--> node
// 8 slots: service
{L2_SLOT_MANAGE, 0x00, 0x01, 0x02},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x02},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x03},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x03},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x04},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x04},
{L2_SLOT_MANAGE, 0x00, 0x02, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x02, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x03, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x03, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x04, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x04, 0x01},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x0A},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x0A},
{L2_SLOT_RTT, 0x00, 0x01, 0x02},
{L2_SLOT_RTT, 0x01, 0x01, 0x02},
{L2_SLOT_RTT, 0x00, 0x01, 0x03},
{L2_SLOT_RTT, 0x01, 0x01, 0x03},
{L2_SLOT_RTT, 0x00, 0x01, 0x04},
{L2_SLOT_RTT, 0x01, 0x01, 0x04},
{L2_SLOT_RTT, 0x00, 0x02, 0x01},
{L2_SLOT_RTT, 0x01, 0x02, 0x01},
{L2_SLOT_RTT, 0x00, 0x03, 0x01},
{L2_SLOT_RTT, 0x01, 0x03, 0x01},
{L2_SLOT_RTT, 0x00, 0x04, 0x01},
{L2_SLOT_RTT, 0x01, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
// 12 slots: rtt, head <--> node
// 8 slots: service
{L2_SLOT_MANAGE, 0x00, 0x01, 0x05},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x05},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x06},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x06},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x07},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x07},
{L2_SLOT_MANAGE, 0x00, 0x05, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x05, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x06, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x06, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x07, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x07, 0x01},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x0A},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x0A},
{L2_SLOT_RTT, 0x00, 0x01, 0x05},
{L2_SLOT_RTT, 0x01, 0x01, 0x05},
{L2_SLOT_RTT, 0x00, 0x01, 0x06},
{L2_SLOT_RTT, 0x01, 0x01, 0x06},
{L2_SLOT_RTT, 0x00, 0x01, 0x07},
{L2_SLOT_RTT, 0x01, 0x01, 0x07},
{L2_SLOT_RTT, 0x00, 0x05, 0x01},
{L2_SLOT_RTT, 0x01, 0x05, 0x01},
{L2_SLOT_RTT, 0x00, 0x06, 0x01},
{L2_SLOT_RTT, 0x01, 0x06, 0x01},
{L2_SLOT_RTT, 0x00, 0x07, 0x01},
{L2_SLOT_RTT, 0x01, 0x07, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
// 12 slots: rtt, head <--> node
// 8 slots: service, with one slot idle
{L2_SLOT_MANAGE, 0x00, 0x01, 0x08},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x08},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x09},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x09},
{L2_SLOT_MANAGE, 0x00, 0x01, 0x0A},
{L2_SLOT_MANAGE, 0x01, 0x01, 0x0A},
{L2_SLOT_MANAGE, 0x00, 0x08, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x08, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x09, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x09, 0x01},
{L2_SLOT_MANAGE, 0x00, 0x0A, 0x01},
{L2_SLOT_MANAGE, 0x01, 0x0A, 0x01},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x02},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x03},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x04},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x05},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x06},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x07},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x08},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x09},
{L2_SLOT_DISTRIBUTE, 0x00, 0x01, 0x0A},
{L2_SLOT_DISTRIBUTE, 0x01, 0x01, 0x0A},
{L2_SLOT_RTT, 0x00, 0x01, 0x08},
{L2_SLOT_RTT, 0x01, 0x01, 0x08},
{L2_SLOT_RTT, 0x00, 0x01, 0x09},
{L2_SLOT_RTT, 0x01, 0x01, 0x09},
{L2_SLOT_RTT, 0x00, 0x01, 0x0A},
{L2_SLOT_RTT, 0x01, 0x01, 0x0A},
{L2_SLOT_RTT, 0x00, 0x08, 0x01},
{L2_SLOT_RTT, 0x01, 0x08, 0x01},
{L2_SLOT_RTT, 0x00, 0x09, 0x01},
{L2_SLOT_RTT, 0x01, 0x09, 0x01},
{L2_SLOT_RTT, 0x00, 0x0A, 0x01},
{L2_SLOT_RTT, 0x01, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
};
L2_RTNE_TABLE_ENTRY *normalTable[L2_NORMAL_RTNE_NUM][L2_NORMAL_RTNE_PERIOD] =
L2_RTNE_TABLE_ENTRY *initTable[L2_INIT_RTNE_PERIOD] =
{
innerScanSubT, innerScanSubT, innerScanSubT
tableFor10Node
};
L2_RTNE_TABLE_ENTRY *normalTable0[L2_INIT_RTNE_PERIOD] =
{
tableFor10Node
};
L2_RTNE_TABLE_ENTRY *normalTable1[L2_INIT_RTNE_PERIOD] =
{
tableFor3Node
};
L2_RTNE_TABLE_ENTRY *normalTable2[L2_INIT_RTNE_PERIOD] =
{
tableFor10Node
};
/** @} RoutineTable*/
+43 -32
View File
@@ -63,13 +63,15 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
case L2_FRAME_ADV:
{
L2_MSG_ADV *message = (L2_MSG_ADV *)(instPtr->sendPktData);
size_t msgLen = sizeof(L2_MSG_ADV);
size_t maxDataLen = L2_PAYLOAD_LEN_ADV;
// Common section of link layer package
message->common.frameNum = L2_GetNextFrameNum(instPtr);
message->common.slotNum = L2_GetNextSlotNum(instPtr);
message->common.src = L2_GetNodeId(instPtr);
message->common.dst = dstId;
message->common.msgType = L2_FRAME_ADV;
message->common.msgType = type;
// insert position and speed info
SysMonitor_GetSysinfo(&(instPtr->sysInfo));
@@ -80,16 +82,14 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
// Insert net start time
message->srcNetStatTime = instPtr->netStartTime;
// Packing extra payload
SysMonitor_GetSendPayload(message->advData, &(message->advDataId), L2_PAYLOAD_LEN_ADV);
if (message->advDataId == DATA_ID_NONE)
{
memset(message->advData, 0xAA, L2_PAYLOAD_LEN_ADV);
}
// TODO: Packing extra payload
message->dataId = DATA_ID_NONE;
message->dataLen = 0;
memset(message->data, 0xAA, maxDataLen);
// Append CRC
uint32_t crcVal;
Status = L2_CrcGen((uint8_t *)message, sizeof(L2_MSG_ADV) - L2_MSG_CRC_LEN, L2_CRC8_31, &crcVal);
Status = L2_CrcGen((uint8_t *)message, msgLen - L2_MSG_CRC_LEN, L2_CRC8_31, &crcVal);
if (Status != SUCCESS)
{
DBG_ERROR("Fail to generate CRC, error code: %" PRId32 ".\n", Status);
@@ -98,14 +98,16 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
message->crc = (uint8_t)crcVal;
// Logging...
memcpy(instPtr->log.txLog.data, message, sizeof(L2_MSG_ADV));
instPtr->log.txLog.dataId = message->advDataId;
instPtr->log.txLog.dataId = message->dataId;
memcpy(instPtr->log.txLog.data, message, msgLen);
break;
}
case L2_FRAME_ACK:
{
L2_MSG_ACK *message = (L2_MSG_ACK *)(instPtr->sendPktData);
size_t msgLen = sizeof(L2_MSG_ACK);
size_t maxDataLen = L2_PAYLOAD_LEN_ACK;
// Common section of link layer package
message->common.frameNum = L2_GetNextFrameNum(instPtr);
@@ -123,16 +125,14 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
message->srcSpeedY = instPtr->sysInfo.vY;
message->srcSpeedZ = instPtr->sysInfo.vZ;
// Packing extra payload
SysMonitor_GetSendPayload(message->ackData, &(message->ackDataId), L2_PAYLOAD_LEN_ACK);
if (message->ackDataId == DATA_ID_NONE)
{
memset(message->ackData, 0xAA, L2_PAYLOAD_LEN_ACK);
}
// TODO: Packing extra payload
message->dataId = DATA_ID_NONE;
message->dataLen = 0;
memset(message->data, 0xAA, maxDataLen);
// Append CRC
uint32_t crcVal;
Status = L2_CrcGen((uint8_t *)message, sizeof(L2_MSG_ACK) - L2_MSG_CRC_LEN, L2_CRC8_31, &crcVal);
Status = L2_CrcGen((uint8_t *)message, msgLen - L2_MSG_CRC_LEN, L2_CRC8_31, &crcVal);
if (Status != SUCCESS)
{
DBG_ERROR("Fail to generate CRC, error code: %" PRId32 ".\n", Status);
@@ -141,8 +141,8 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
message->crc = crcVal;
// Logging...
memcpy(instPtr->log.txLog.data, message, sizeof(L2_MSG_ACK));
instPtr->log.txLog.dataId = message->ackDataId;
instPtr->log.txLog.dataId = message->dataId;
memcpy(instPtr->log.txLog.data, message, msgLen);
break;
}
@@ -168,7 +168,6 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg)
ASSERT(instPtr != NULL);
ASSERT(msg != NULL);
int32_t Status;
L2_SCAN_FSM *scanFsmPtr = instPtr->scanFSM;
L2_FRAME_TYPE frameType = L2_FRAME_NONE;
L2_FrameGetChunk(msg, L2_MSG_TYPE, L2_MSG_TYPE_LEN, &frameType);
@@ -184,6 +183,8 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg)
}
L2_MSG_ADV *message = (L2_MSG_ADV *)msg;
size_t msgLen = sizeof(L2_MSG_ADV);
size_t maxDataLen = L2_PAYLOAD_LEN_ADV;
// Update node status.
uint8_t nodeId = message->common.src;
@@ -241,13 +242,17 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg)
// Time sync.
L2_TimeAdjust(instPtr, &(instPtr->log.timeDev));
// Get data payload
uint32_t dataId = message->advDataId;
SysMonitor_UpdateRecvPayload(message->advData, dataId, L2_PAYLOAD_LEN_ADV);
// Get data payload & upload
SYSMON_SVC_PAYLOAD recvPayload;
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, maxDataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
memcpy(instPtr->log.rxLog.data, msg, sizeof(L2_MSG_ADV));
instPtr->log.rxLog.dataId = dataId;
instPtr->log.rxLog.dataId = message->dataId;
memcpy(instPtr->log.rxLog.data, message, msgLen);
Status = SUCCESS;
break;
@@ -262,6 +267,8 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg)
}
L2_MSG_ACK *message = (L2_MSG_ACK *)msg;
size_t msgLen = sizeof(L2_MSG_ACK);
size_t dataLen = L2_PAYLOAD_LEN_ACK;
// Update node status.
uint8_t nodeId = message->common.src;
@@ -310,13 +317,17 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg)
(void)AssertL2Event(instPtr, &l2Event);
}
// Get data payload
uint32_t dataId = message->ackDataId;
SysMonitor_UpdateRecvPayload(message->ackData, dataId, L2_PAYLOAD_LEN_ACK);
// Get data payload & upload
SYSMON_SVC_PAYLOAD recvPayload;
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, dataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
memcpy(instPtr->log.rxLog.data, msg, sizeof(L2_MSG_ACK));
instPtr->log.rxLog.dataId = dataId;
instPtr->log.rxLog.dataId = message->dataId;
memcpy(instPtr->log.rxLog.data, message, msgLen);
Status = SUCCESS;
break;
@@ -490,7 +501,7 @@ int32_t L2_Scan_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntry)
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_ADV);
break;
case L2_SLOT_ACKNOWLEDGE:
@@ -523,7 +534,7 @@ int32_t L2_Scan_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntry)
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_ACK);
break;
default:
+72 -48
View File
@@ -185,7 +185,7 @@ static int32_t Service_Packing128K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
L2_MSG_SVC_128K *message = (L2_MSG_SVC_128K *)(instPtr->sendPktData);
size_t msgLen = sizeof(L2_MSG_SVC_128K);
size_t dataLen = L2_PAYLOAD_LEN_SVC_128K;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_128K;
// insert position and speed info
SysMonitor_GetSysinfo(&(instPtr->sysInfo));
@@ -196,11 +196,23 @@ static int32_t Service_Packing128K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
message->srcSpeedY = instPtr->sysInfo.vY;
message->srcSpeedZ = instPtr->sysInfo.vZ;
// Packing extra payload
SysMonitor_GetSendPayload(message->svcData, &(message->svcDataId), dataLen);
if (message->svcDataId == DATA_ID_NONE)
// TODO: Packing extra payload
if (type == L2_FRAME_SVC)
{
memset(message->svcData, 0xAA, dataLen);
SYSMON_SVC_PAYLOAD sendPayload;
SysMonitor_GetSendPayload(&sendPayload);
message->common.dst = sendPayload.nodeId;
message->dataId = sendPayload.dataId;
message->dataLen = sendPayload.dataLen;;
memset(message->data, 0xAA, maxDataLen);
memcpy(message->data, sendPayload.data, sendPayload.dataLen);
}
else
{
message->common.dst = L2_NONE_ID;
message->dataId = DATA_ID_NONE;
message->dataLen = 0;
memset(message->data, 0xAA, maxDataLen);
}
// Append CRC
@@ -214,8 +226,8 @@ static int32_t Service_Packing128K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
message->crc = crcVal;
// Logging...
instPtr->log.txLog.dataId = message->dataId;
memcpy(instPtr->log.txLog.data, message, msgLen);
instPtr->log.txLog.dataId = message->svcDataId;
return SUCCESS;
}
@@ -241,7 +253,7 @@ static int32_t Service_Packing512K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
L2_MSG_SVC_512K *message = (L2_MSG_SVC_512K *)(instPtr->sendPktData);
size_t msgLen = sizeof(L2_MSG_SVC_512K);
size_t dataLen = L2_PAYLOAD_LEN_SVC_512K;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_512K;
// insert position and speed info
SysMonitor_GetSysinfo(&(instPtr->sysInfo));
@@ -252,12 +264,14 @@ static int32_t Service_Packing512K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
message->srcSpeedY = instPtr->sysInfo.vY;
message->srcSpeedZ = instPtr->sysInfo.vZ;
// Packing extra payload
SysMonitor_GetSendPayload(message->svcData, &(message->svcDataId), dataLen);
if (message->svcDataId == DATA_ID_NONE)
{
memset(message->svcData, 0xAA, dataLen);
}
// TODO: Packing extra payload
SYSMON_SVC_PAYLOAD sendPayload;
SysMonitor_GetSendPayload(&sendPayload);
message->common.dst = sendPayload.nodeId;
message->dataId = sendPayload.dataId;
message->dataLen = sendPayload.dataLen;
memset(message->data, 0xAA, maxDataLen);
memcpy(message->data, sendPayload.data, sendPayload.dataLen);
// Append CRC
uint32_t crcVal;
@@ -270,9 +284,8 @@ static int32_t Service_Packing512K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
message->crc = crcVal;
// Logging...
instPtr->log.txLog.dataId = message->dataId;
memcpy(instPtr->log.txLog.data, message, msgLen);
instPtr->log.txLog.dataId = message->svcDataId;
return SUCCESS;
}
@@ -298,7 +311,7 @@ static int32_t Service_Packing2M(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t d
L2_MSG_SVC_2M *message = (L2_MSG_SVC_2M *)(instPtr->sendPktData);
size_t msgLen = sizeof(L2_MSG_SVC_2M);
size_t dataLen = L2_PAYLOAD_LEN_SVC_2M;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_2M;
// insert position and speed info
SysMonitor_GetSysinfo(&(instPtr->sysInfo));
@@ -309,12 +322,14 @@ static int32_t Service_Packing2M(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t d
message->srcSpeedY = instPtr->sysInfo.vY;
message->srcSpeedZ = instPtr->sysInfo.vZ;
// Packing extra payload
SysMonitor_GetSendPayload(message->svcData, &(message->svcDataId), dataLen);
if (message->svcDataId == DATA_ID_NONE)
{
memset(message->svcData, 0xAA, dataLen);
}
// TODO: Packing extra payload
SYSMON_SVC_PAYLOAD sendPayload;
SysMonitor_GetSendPayload(&sendPayload);
message->common.dst = sendPayload.nodeId;
message->dataId = sendPayload.dataId;
message->dataLen = sendPayload.dataLen;;
memset(message->data, 0xAA, maxDataLen);
memcpy(message->data, sendPayload.data, sendPayload.dataLen);
// Append CRC
uint32_t crcVal;
@@ -327,9 +342,8 @@ static int32_t Service_Packing2M(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t d
message->crc = crcVal;
// Logging...
instPtr->log.txLog.dataId = message->dataId;
memcpy(instPtr->log.txLog.data, message, msgLen);
instPtr->log.txLog.dataId = message->svcDataId;
return SUCCESS;
}
@@ -438,7 +452,7 @@ static int32_t Service_PktHandler128K(L2_INST *instPtr, uint8_t *msg)
L2_MSG_SVC_128K *message = (L2_MSG_SVC_128K *)msg;
size_t msgLen = sizeof(L2_MSG_SVC_128K);
size_t dataLen = L2_PAYLOAD_LEN_SVC_128K;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_128K;
// Update node status.
uint8_t nodeId = message->common.src;
@@ -477,11 +491,16 @@ static int32_t Service_PktHandler128K(L2_INST *instPtr, uint8_t *msg)
}
// Get data payload
SysMonitor_UpdateRecvPayload(message->svcData, message->svcDataId, dataLen);
SYSMON_SVC_PAYLOAD recvPayload;
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, maxDataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
memcpy(instPtr->log.rxLog.data, msg, msgLen);
instPtr->log.rxLog.dataId = message->svcDataId;
instPtr->log.rxLog.dataId = message->dataId;
memcpy(instPtr->log.rxLog.data, message, msgLen);
#ifdef DATALINK_ENABLE_AUTOTIMESYNC
// Implement a auto time sync.
@@ -513,7 +532,7 @@ static int32_t Service_PktHandler512K(L2_INST *instPtr, uint8_t *msg)
L2_MSG_SVC_512K *message = (L2_MSG_SVC_512K *)msg;
size_t msgLen = sizeof(L2_MSG_SVC_512K);
size_t dataLen = L2_PAYLOAD_LEN_SVC_512K;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_512K;
// Update node status.
uint8_t nodeId = message->common.src;
@@ -552,11 +571,16 @@ static int32_t Service_PktHandler512K(L2_INST *instPtr, uint8_t *msg)
}
// Get data payload
SysMonitor_UpdateRecvPayload(message->svcData, message->svcDataId, dataLen);
SYSMON_SVC_PAYLOAD recvPayload;
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, maxDataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
memcpy(instPtr->log.rxLog.data, msg, msgLen);
instPtr->log.rxLog.dataId = message->svcDataId;
instPtr->log.rxLog.dataId = message->dataId;
memcpy(instPtr->log.rxLog.data, message, msgLen);
#ifdef DATALINK_ENABLE_AUTOTIMESYNC
// Implement a auto time sync.
@@ -588,7 +612,7 @@ static int32_t Service_PktHandler2M(L2_INST *instPtr, uint8_t *msg)
L2_MSG_SVC_2M *message = (L2_MSG_SVC_2M *)msg;
size_t msgLen = sizeof(L2_MSG_SVC_2M);
size_t dataLen = L2_PAYLOAD_LEN_SVC_2M;
size_t maxDataLen = L2_PAYLOAD_LEN_SVC_2M;
// Update node status.
uint8_t nodeId = message->common.src;
@@ -627,11 +651,16 @@ static int32_t Service_PktHandler2M(L2_INST *instPtr, uint8_t *msg)
}
// Get data payload
SysMonitor_UpdateRecvPayload(message->svcData, message->svcDataId, dataLen);
SYSMON_SVC_PAYLOAD recvPayload;
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, message->dataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
memcpy(instPtr->log.rxLog.data, msg, msgLen);
instPtr->log.rxLog.dataId = message->svcDataId;
instPtr->log.rxLog.dataId = message->dataId;
memcpy(instPtr->log.rxLog.data, message, msgLen);
#ifdef DATALINK_ENABLE_AUTOTIMESYNC
// Implement a auto time sync.
@@ -763,7 +792,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_DIS);
break;
case L2_SLOT_MANAGE:
@@ -797,7 +826,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_MNG);
break;
case L2_SLOT_RTT:
@@ -831,7 +860,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_RTT);
break;
case L2_SLOT_SERVICE:
@@ -858,9 +887,10 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
memcpy(instPtr->sendPktData, testData, msgLen);
#endif
}
else if (rtneEntry->dst == L2_GetNodeId(instPtr))
else
{
commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->src);
// In services slots, rx mode is always enabled when other nodes are transmitting
commNode = L2_GetNodeById(instPtr->nodeList, L2_HEAD_ID);
// antenna selection based on node list
antIndex = commNode->nodeInfo.antIndex;
// member node receives message in advertise slot
@@ -868,13 +898,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
svcFSMPtr->rxCnt++;
}
else
{
// otherwise suspend
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)Phy_SetAntIndex(phyRef, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_SVC);
break;
default:
+136 -136
View File
@@ -63,142 +63,142 @@ const uint16_t freqTable[L1_FRAME_MAX_HOPS] =
};
const uint8_t antCalTable[L1_ANT_NUM][L1_FRAME_MAX_HOPS][L1_ANT_CH_NUM] =
//Antenna-JG01
{
// Antenna-1
{
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
{ 0, 1767, -7775, -8328},
},
// Antenna-2
{
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
{ 0, 1767, -7775, -8328},
},
// Antenna-3
{
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
{ 0, 1767, -7775, -8328},
},
};
//const uint8_t antCalTable[L1_ANT_NUM][L1_FRAME_MAX_HOPS][L1_ANT_CH_NUM] =
////Antenna-JG01
//{
// // Antenna-1
// {
// { 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
// { 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
// { 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
// { 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
// { 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
// { 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
// { 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
// { 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
// { 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
// { 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
// { 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
// { 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
// { 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
// { 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
// { 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
// { 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
// { 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
// { 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
// { 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
// { 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
// { 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
// { 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
// { 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
// { 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
// { 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
// { 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
// { 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
// { 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
// { 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
// { 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
// { 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
// { 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
// { 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
// { 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
// { 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
// { 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
// { 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
// { 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
// { 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
// { 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
// { 0, 1767, -7775, -8328},
// },
// // Antenna-2
// {
// { 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
// { 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
// { 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
// { 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
// { 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
// { 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
// { 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
// { 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
// { 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
// { 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
// { 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
// { 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
// { 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
// { 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
// { 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
// { 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
// { 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
// { 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
// { 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
// { 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
// { 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
// { 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
// { 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
// { 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
// { 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
// { 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
// { 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
// { 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
// { 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
// { 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
// { 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
// { 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
// { 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
// { 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
// { 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
// { 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
// { 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
// { 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
// { 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
// { 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
// { 0, 1767, -7775, -8328},
// },
// // Antenna-3
// {
// { 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
// { 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
// { 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
// { 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
// { 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
// { 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
// { 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
// { 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
// { 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
// { 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
// { 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
// { 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
// { 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
// { 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
// { 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
// { 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
// { 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
// { 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
// { 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
// { 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
// { 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
// { 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
// { 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
// { 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
// { 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
// { 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
// { 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
// { 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
// { 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
// { 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
// { 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
// { 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
// { 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
// { 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
// { 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
// { 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
// { 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
// { 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
// { 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
// { 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
// { 0, 1767, -7775, -8328},
// },
//};
const uint8_t hopPattern_ADV_24MS[L1_FRAME_ADV_24MS_HOPS] =
{
+1 -1
View File
@@ -64,7 +64,7 @@
/************************** Variable Definitions *****************************/
extern const uint16_t freqTable[L1_FRAME_MAX_HOPS];
extern const int16_t antCalTable[L1_ANT_NUM][L1_FRAME_MAX_HOPS][L1_ANT_CH_NUM];
//extern const int16_t antCalTable[L1_ANT_NUM][L1_FRAME_MAX_HOPS][L1_ANT_CH_NUM];
extern const uint8_t hopPattern_ADV_24MS[L1_FRAME_ADV_24MS_HOPS];
extern const uint8_t hopPattern_ACK_8MS[L1_FRAME_ACK_8MS_HOPS];
extern const uint8_t hopPattern_128KBPS_4MS[L1_FRAME_128KBPS_4MS_HOPS];