add method peek data.

This commit is contained in:
Gatsby Van
2023-12-24 13:07:30 +08:00
parent ab9ef5b06c
commit 54c20aa46e
2 changed files with 29 additions and 4 deletions
+28 -4
View File
@@ -786,17 +786,20 @@ void Phy_GetLastSlotStartTimeStamp(PHY_INST* instPtr, TIME_WORD* slotStart) {
/*****************************************************************************/ /*****************************************************************************/
/** /**
* @brief Get received data (base on PL Record), store it to data buffer. * @brief Copy ans store the received data, if received data valid.
* *
* @param instPtr a pointer to physical layer control instance. * @param instPtr a pointer to physical layer control instance.
* *
* @return SUCCESS * @return NONE
* FAILURE last frame type cannot be recognized.
* *
******************************************************************************/ ******************************************************************************/
void Phy_RetrieveRecvData(PHY_INST* instPtr, uint8_t* dataBuff) { void Phy_PeekRecvData(PHY_INST* instPtr, uint8_t* dataBuff) {
ASSERT(instPtr != NULL); ASSERT(instPtr != NULL);
ASSERT(dataBuff != NULL); ASSERT(dataBuff != NULL);
if (instPtr->isValid == false)
{
return;
}
uint32_t frameLen, offset; uint32_t frameLen, offset;
frameLen = (PhyRead(instPtr, RECVDATA_STATE) & RECVDATA_STATE_LEN_MASK) >> RECVDATA_STATE_LEN_SHIFT; frameLen = (PhyRead(instPtr, RECVDATA_STATE) & RECVDATA_STATE_LEN_MASK) >> RECVDATA_STATE_LEN_SHIFT;
@@ -804,3 +807,24 @@ void Phy_RetrieveRecvData(PHY_INST* instPtr, uint8_t* dataBuff) {
memcpy(dataBuff, (uint8_t*)(instPtr->recvDataAddr + offset), frameLen); memcpy(dataBuff, (uint8_t*)(instPtr->recvDataAddr + offset), frameLen);
} }
/*****************************************************************************/
/**
* @brief Get the received data (if valid), store it to data buffer.
* and clear data valid flag.
*
* @param instPtr a pointer to physical layer control instance.
*
* @return NONE
*
******************************************************************************/
void Phy_RetrieveRecvData(PHY_INST* instPtr, uint8_t* dataBuff) {
ASSERT(instPtr != NULL);
ASSERT(dataBuff != NULL);
if (instPtr->isValid == false)
{
return;
}
Phy_RetrievePeekData(instPtr, dataBuff);
instPtr->isValid = false;
}
+1
View File
@@ -242,6 +242,7 @@ void Phy_Halt(PHY_INST* instPtr);
int32_t Phy_SetMode(PHY_INST* instPtr, PHY_MODE modeCod); int32_t Phy_SetMode(PHY_INST* instPtr, PHY_MODE modeCod);
int32_t Phy_SetupNextSlot(PHY_INST* instPtr, PHY_TOR_TYPE txrxMode, L1_FRAME_TYPE frameType, uint8_t* dataBuff); int32_t Phy_SetupNextSlot(PHY_INST* instPtr, PHY_TOR_TYPE txrxMode, L1_FRAME_TYPE frameType, uint8_t* dataBuff);
void Phy_PeekRecvData(PHY_INST* instPtr, uint8_t* dataBuff);
void Phy_RetrieveRecvData(PHY_INST* instPtr, uint8_t* dataBuff); void Phy_RetrieveRecvData(PHY_INST* instPtr, uint8_t* dataBuff);
bool Phy_IsFrameDetected(PHY_INST* instPtr); bool Phy_IsFrameDetected(PHY_INST* instPtr);