首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

串口每200ms上传一次数据,数据量不大,怎么将数据存入buffer,达到一定数量后后点击save,一次性写入txt

2013-03-28 
串口每200ms上传一次数据,数据量不大,如何将数据存入buffer,达到一定数量后后点击save,一次性写入txt本帖

串口每200ms上传一次数据,数据量不大,如何将数据存入buffer,达到一定数量后后点击save,一次性写入txt
本帖最后由 wide_road 于 2013-03-17 18:01:22 编辑

void GPS::ThreadProc()
{
GPSData ^ GPSPtr = (GPSData ^)m_GPS;
float valueF;
while (GPSPtr->RunState)
{


if(GPSUpdate(GPSPtr))
{
AABufferCreate(GPSPtr->buffer,GPSPtr->checkBuffer);


//星期时间
valueF = AABufferGetGpsWeek(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->GpsWeek= valueF;
}

//星期内时间
valueF = AABufferGetGpsTime(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->GpsTime= valueF;
}

//经度
valueF = AABufferGetLatitudef(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->Latitude= valueF;
}


//纬度
valueF = AABufferGetLongitudef(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->Longtitude = valueF;
}

// 朝向
valueF = AABufferGetHeadingf(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->Heading = valueF;
}


//高度
valueF = AABufferGetAltitude(GPSPtr->checkBuffer);
if(valueF >=0)
{
GPSPtr->Altitude = valueF;
}

if(exlinit == 1)
{
GPS::exl->LoadData();
}

}
else
{
// if(exlinit == 1)
// {
// GPS::exl->LoadData();
// }
}
Sleep(100);
}

}
c++?写入文本?buffer
[解决办法]
定义一个足够大的BYTE数组buff,再定义一个BYTE指针p=buff.没接收一次 memcpy(p ,GPSPtr->buffer ,每次接收的字节数);
p += 每次接收的字节数; // 移动p指向的位置。点击保存后,再让p=buff回复到缓冲区头,继续...

热点排行