“12.2:初步实现esp8266处理响应数据,暂不完善。”
This commit is contained in:
80
STM32/Gateway_Node/Application/NetFIFO/NetFIFO.c
Normal file
80
STM32/Gateway_Node/Application/NetFIFO/NetFIFO.c
Normal file
@@ -0,0 +1,80 @@
|
||||
#include "NetFIFO.h"
|
||||
|
||||
/**
|
||||
* @brief <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param pBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @retval None
|
||||
*/
|
||||
void vNetBufferInit(NetFifoBuffer_t *pxBuffer)
|
||||
{
|
||||
if (pxBuffer == NULL) return;
|
||||
memset(pxBuffer->cResponseBuffer, 0, sizeof(pxBuffer->cResponseBuffer));
|
||||
pxBuffer->ucBufferIndex = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><EFBFBD><F2BBBAB3><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param pxBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @param cData: Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @retval None
|
||||
*/
|
||||
void vNetBufferWrite(NetFifoBuffer_t *pxBuffer, char cData)
|
||||
{
|
||||
if (pxBuffer == NULL) return;
|
||||
if (pxBuffer->ucBufferIndex < sizeof(pxBuffer->cResponseBuffer) - 1)
|
||||
{
|
||||
pxBuffer->cResponseBuffer[pxBuffer->ucBufferIndex++] = cData;
|
||||
pxBuffer->cResponseBuffer[pxBuffer->ucBufferIndex] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ֹ
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||||
* @param pxBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @param index: Ҫ<><D2AA>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @retval <20><>ȡ<EFBFBD><C8A1><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чʱ<D0A7><CAB1><EFBFBD><EFBFBD>'\0'
|
||||
*/
|
||||
char cNetBufferReadByte(NetFifoBuffer_t *pxBuffer, int index)
|
||||
{
|
||||
if (pxBuffer == NULL) return '\0';
|
||||
if (index < 0 || index >= pxBuffer->ucBufferIndex)
|
||||
{
|
||||
return '\0'; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
||||
}
|
||||
return pxBuffer->cResponseBuffer[index];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20>Ƚϻ<C8BD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* @param pxBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @param pcStr: Ҫ<>Ƚϵ<C8BD><CFB5>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* @retval true: ƥ<><C6A5><EFBFBD>ɹ<EFBFBD>, false: ƥ<><C6A5>ʧ<EFBFBD><CAA7>
|
||||
*/
|
||||
bool bNetBufferCompareStr(NetFifoBuffer_t *pxBuffer, const char *pcStr)
|
||||
{
|
||||
if (pxBuffer == NULL || pcStr == NULL) return false;
|
||||
return (strstr(pxBuffer->cResponseBuffer, pcStr) != NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
||||
* @param pxBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @retval <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
int iNetBufferGetLength(NetFifoBuffer_t *pxBuffer)
|
||||
{
|
||||
if (pxBuffer == NULL) return 0;
|
||||
return pxBuffer->ucBufferIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param pxBuffer: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
|
||||
* @retval None
|
||||
*/
|
||||
void vNetBufferClear(NetFifoBuffer_t *pxBuffer)
|
||||
{
|
||||
if (pxBuffer == NULL) return;
|
||||
memset(pxBuffer->cResponseBuffer, 0, sizeof(pxBuffer->cResponseBuffer));
|
||||
pxBuffer->ucBufferIndex = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user