UDP数据处理函数:uint8_t UDP_DataProcess(uint8_t SampleNum ,uint32_t Procesflag)
该函数用于对UDP数据进行处理,根据传入的参数SampleNum和Procesflag来判断处理的方式。如果Procesflag的EEG_DATA_ACQ_EVT位被设置,表示AD数据采集中,需要对数据域进行封包。然后根据SampleNum来确定封包的位置,将ADS1299读取的量化值存入UDP_DTx_Buff数组中相应位置。同时,设置样本起始分隔符和样本序号,并将样本时间戳存入相应位置。最后返回UDP_DATA_CPL表示数据处理完成。
uint8_t UDP_DataProcess(uint8_t SampleNum ,uint32_t Procesflag)
{
/* AD数据采集中,对数据域进行封包 */
if( Procesflag & EEG_DATA_ACQ_EVT )
{
if(SampleNum!= 0xFF )
{
ADS1299_ReadResult(UDP_DTx_Buff+HEAD_SIZE+DATA_SIZE*SampleNum+7); //!< 样本每通道量化值 //!< 第1字节舍去 (被覆盖)
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum] = UDP_SAMPLE_FH; //!< 样本起始分隔符
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+1] = SampleNum; //!< 样本序号(低八位) - 显示从0开始的序数
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+2] = 0x00; //!< 样本序号(高八位)
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+3]=*((uint8_t *)(pCurTimeStamp+SampleNum)); //!< 样本时间戳 - 增量型(每样本相对开始采样时点的时间增量)精度10us,注意小端对齐
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+4]=*((uint8_t *)(pCurTimeStamp+SampleNum)+1);
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+5]=*((uint8_t *)(pCurTimeStamp+SampleNum)+2);
UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+6]=*((uint8_t *)(pCurTimeStamp+SampleNum)+3);
// UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+7]=0x00; //!< 默认无标签事件
// UDP_DTx_Buff[HEAD_SIZE+DATA_SIZE*SampleNum+8]=0x00;
return UDP_DATA_CPL;
}
else
return ERROR;
}
;
原文地址: https://www.cveoy.top/t/topic/p1I5 著作权归作者所有。请勿转载和采集!