34 lines
627 B
C++
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;
|
|
|
|
|
|
|
|
}
|