devices/deviceoutput/ordeviceoutput_hardware.cxx
#include "ordeviceoutput_hardware.h"
ORDeviceOutputHardware::ORDeviceOutputHardware()
{
mCounter = 0;
mSerialPort = 1;
mFileOpen = false;
mExportFilename = "C:\\ordeviceoutput.txt";
}
ORDeviceOutputHardware::~ORDeviceOutputHardware()
{
}
bool ORDeviceOutputHardware::Open()
{
mExportFile = fopen( mExportFilename, "wt" );
if( mExportFile )
{
mFileOpen = true;
}
return true;
}
bool ORDeviceOutputHardware::GetSetupInfo()
{
return true;
}
bool ORDeviceOutputHardware::Close()
{
if( mFileOpen )
{
fclose( mExportFile );
mFileOpen = false;
}
return true;
}
bool ORDeviceOutputHardware::FetchDataPacket(FBTime &pTime)
{
pTime = mSystem.SystemTime;
PollData();
if(mCounter%4)
{
return true;
}
else
{
return false;
}
}
bool ORDeviceOutputHardware::PollData()
{
mCounter++;
return true;
}
bool ORDeviceOutputHardware::SendDataPacket(FBTime &pTime)
{
if( mFileOpen )
{
fprintf(mExportFile,"[%s]\t(%.2lf,%.2lf,%.2lf)\t(%.2lf,%.2lf,%.2lf)\n",
(char*)pTime.GetTimeString(),
mPosition[0],
mPosition[1],
mPosition[2],
mRotation[0],
mRotation[1],
mRotation[2]
);
}
return true;
}
void ORDeviceOutputHardware::WritePos( double* pPos )
{
mPosition[0] = pPos[0];
mPosition[1] = pPos[1];
mPosition[2] = pPos[2];
}
void ORDeviceOutputHardware::WriteRot( double* pRot )
{
mRotation[0] = pRot[0];
mRotation[1] = pRot[1];
mRotation[2] = pRot[2];
}