YULTek/Otarcik_CAN/Sources/CANSignal.cpp
2023-01-21 15:31:49 -05:00

34 lines
627 B
C++

#include "CANSignal.h"
#include "defines.h"
CCANSignal::CCANSignal()
{
mEncoding = CAN_SIGNAL_ENCODING_INVALID;
}
int CCANSignal::ComputeNewSignalValue(quint64 MotorolaValue, quint64 IntelValue)
{
if(mEncoding == CAN_SIGNAL_ENCODING_INTEL)
{
mRawValue = IntelValue;
}
else if(mEncoding == CAN_SIGNAL_ENCODING_MOTOROLA)
{
mRawValue = MotorolaValue;
}
else
{
return RET_GENERAL_ERROR;
}
mRawValue >>= mStartBit;
quint64 mask = ((1 << mSignalSize)-1);
mRawValue &= mask;
mPhysicalValue = ((double) mRawValue * mValueFactor) + mValueOffset;
}