读书人

串口每200ms上传一次数据数据量不大

发布时间: 2013-03-28 10:20:24 作者: rapoo

串口每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回复到缓冲区头,继续...

读书人网 >C++

热点推荐