106 lines
4.2 KiB
C++
106 lines
4.2 KiB
C++
#include <aladin/status.hpp>
|
|
#include <common/file.hpp>
|
|
|
|
CurrentStatus::CurrentStatus()
|
|
{
|
|
mRemainingBattery=0;
|
|
mBattery=0;
|
|
mTotalDivesLow=0;
|
|
mTotalDivesHigh=0;
|
|
mOffsetNewestLog=0;
|
|
mDiveProfiles=0;
|
|
mEndOfProfileRingBufferLow=0;
|
|
mEndOfProfileRingBufferHigh=0;
|
|
mDataAquisitionTime1=0;
|
|
mDataAquisitionTime2=0;
|
|
mDataAquisitionTime3=0;
|
|
mDataAquisitionTime4=0;
|
|
mCheckSumLow=0;
|
|
mCheckSumHigh=0;
|
|
}
|
|
|
|
CurrentStatus::~CurrentStatus()
|
|
{
|
|
}
|
|
|
|
String CurrentStatus::toString(void)const
|
|
{
|
|
String str;
|
|
str+=String("Battery:")+String().fromDouble(getRemainingBattery())+String(" ");
|
|
str+=String("Battery:")+String().fromBool(getBattery())+String(" ");
|
|
str+=String("TotalDives:")+String().fromInt(getTotalDives())+String(" ");
|
|
str+=String("NewestLog:")+String().fromInt(getOffsetNewestLog())+String(" ");
|
|
str+=String("OffsetLog:")+String().fromInt(getOffsetLog())+String(" ");
|
|
str+=String("DiveProfiles:")+String().fromInt(getDiveProfiles())+String(" ");
|
|
str+=String("OffsetLog:")+String().fromInt(getEndOfProfileRingBuffer())+String(" ");
|
|
str+=String("AcquisitionTime:")+String().fromInt(getAcquisitionTime())+String(" ");
|
|
return str;
|
|
}
|
|
|
|
bool CurrentStatus::readFrom(RawData &array)
|
|
{
|
|
try
|
|
{
|
|
mRemainingBattery=array[0x7F0];
|
|
mBattery=array[0x7F1];
|
|
mTotalDivesLow=array[0x7F2];
|
|
mTotalDivesHigh=array[0x7F3];
|
|
mOffsetNewestLog=array[0x7F4];
|
|
mDiveProfiles=array[0x7F5];
|
|
mEndOfProfileRingBufferLow=array[0x7F6];
|
|
mEndOfProfileRingBufferHigh=array[0x7F7];
|
|
mDataAquisitionTime1=array[0x7F8];
|
|
mDataAquisitionTime2=array[0x7F9];
|
|
mDataAquisitionTime3=array[0x7FA];
|
|
mDataAquisitionTime4=array[0x7FB];
|
|
mCheckSumLow=array[0x7FC];
|
|
mCheckSumHigh=array[0x7FD];
|
|
}
|
|
catch(ArrayIndexOutOfBoundsException exception)
|
|
{
|
|
::OutputDebugString(exception.toString()+String("\n"));
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool CurrentStatus::readFrom(File &inFile)
|
|
{
|
|
if(!inFile.isOkay())return false;
|
|
if(!inFile.read(&mRemainingBattery,sizeof(mRemainingBattery)))return false;
|
|
if(!inFile.read(&mBattery,sizeof(mBattery)))return false;
|
|
if(!inFile.read(&mTotalDivesLow,sizeof(mTotalDivesLow)))return false;
|
|
if(!inFile.read(&mTotalDivesHigh,sizeof(mTotalDivesHigh)))return false;
|
|
if(!inFile.read(&mOffsetNewestLog,sizeof(mOffsetNewestLog)))return false;
|
|
if(!inFile.read(&mDiveProfiles,sizeof(mDiveProfiles)))return false;
|
|
if(!inFile.read(&mEndOfProfileRingBufferLow,sizeof(mEndOfProfileRingBufferLow)))return false;
|
|
if(!inFile.read(&mEndOfProfileRingBufferHigh,sizeof(mEndOfProfileRingBufferHigh)))return false;
|
|
if(!inFile.read(&mDataAquisitionTime1,sizeof(mDataAquisitionTime1)))return false;
|
|
if(!inFile.read(&mDataAquisitionTime2,sizeof(mDataAquisitionTime2)))return false;
|
|
if(!inFile.read(&mDataAquisitionTime3,sizeof(mDataAquisitionTime3)))return false;
|
|
if(!inFile.read(&mDataAquisitionTime4,sizeof(mDataAquisitionTime4)))return false;
|
|
if(!inFile.read(&mCheckSumLow,sizeof(mCheckSumLow)))return false;
|
|
if(!inFile.read(&mCheckSumHigh,sizeof(mCheckSumHigh)))return false;
|
|
return true;
|
|
}
|
|
|
|
bool CurrentStatus::writeTo(File &outFile)
|
|
{
|
|
if(!outFile.isOkay())return false;
|
|
if(!outFile.write(&mRemainingBattery,sizeof(mRemainingBattery)))return false;
|
|
if(!outFile.write(&mBattery,sizeof(mBattery)))return false;
|
|
if(!outFile.write(&mTotalDivesLow,sizeof(mTotalDivesLow)))return false;
|
|
if(!outFile.write(&mTotalDivesHigh,sizeof(mTotalDivesHigh)))return false;
|
|
if(!outFile.write(&mOffsetNewestLog,sizeof(mOffsetNewestLog)))return false;
|
|
if(!outFile.write(&mDiveProfiles,sizeof(mDiveProfiles)))return false;
|
|
if(!outFile.write(&mEndOfProfileRingBufferLow,sizeof(mEndOfProfileRingBufferLow)))return false;
|
|
if(!outFile.write(&mEndOfProfileRingBufferHigh,sizeof(mEndOfProfileRingBufferHigh)))return false;
|
|
if(!outFile.write(&mDataAquisitionTime1,sizeof(mDataAquisitionTime1)))return false;
|
|
if(!outFile.write(&mDataAquisitionTime2,sizeof(mDataAquisitionTime2)))return false;
|
|
if(!outFile.write(&mDataAquisitionTime3,sizeof(mDataAquisitionTime3)))return false;
|
|
if(!outFile.write(&mDataAquisitionTime4,sizeof(mDataAquisitionTime4)))return false;
|
|
if(!outFile.write(&mCheckSumLow,sizeof(mCheckSumLow)))return false;
|
|
if(!outFile.write(&mCheckSumHigh,sizeof(mCheckSumHigh)))return false;
|
|
return true;
|
|
}
|