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