Files
Work/aladin/status.cpp
2024-08-07 09:12:07 -04:00

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;
}