“12.2:初步实现esp8266处理响应数据,暂不完善。”

This commit is contained in:
2025-12-02 20:19:38 +08:00
parent 948c1324e1
commit bd85b7395e
19 changed files with 811 additions and 580 deletions

View 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;
}

View File

@@ -0,0 +1,23 @@
#ifndef __NETFIFO_H__
#define __NETFIFO_H__ 1
#include "stm32f10x.h"
#include "stdio.h"
#include "string.h"
#include "stdbool.h"
#include "stdlib.h"
typedef struct
{
char cResponseBuffer[1024];
uint8_t ucBufferIndex;
}NetFifoBuffer_t;
void vNetBufferInit(NetFifoBuffer_t *pxBuffer);
void vNetBufferWrite(NetFifoBuffer_t *pxBuffer, char cData);
char cNetBufferReadByte(NetFifoBuffer_t *pxBuffer, int index);
bool bNetBufferCompareStr(NetFifoBuffer_t *pxBuffer, const char *pcStr);
int iNetBufferGetLength(NetFifoBuffer_t *pxBuffer);
void vNetBufferClear(NetFifoBuffer_t *pxBuffer);
#endif