80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
#include "CANMessage.h"
|
|
|
|
|
|
CCANMessage::CCANMessage()
|
|
{
|
|
|
|
}
|
|
|
|
CCANMessage::CCANMessage(const CCANMessage &Src)
|
|
{
|
|
*this = Src;
|
|
}
|
|
|
|
CCANMessage::CCANMessage(const quint32 Channel, const TPCANMsg CANMsg, const TPCANTimestamp CANTimeStamp)
|
|
{
|
|
SetDataFromDriver(Channel,CANMsg,CANTimeStamp);
|
|
}
|
|
|
|
int CCANMessage::SetDataFromDriver(quint32 Channel, TPCANMsg CANMsg, TPCANTimestamp CANTimeStamp)
|
|
{
|
|
mCANChannel = Channel;
|
|
mCANMsgID = (unsigned long long)CANMsg.ID;
|
|
mCANMsgLength = (unsigned char)CANMsg.LEN;
|
|
mCANMsgType = CANMsg.MSGTYPE;
|
|
mCANMsgData = QByteArray((const char*)&CANMsg.DATA);
|
|
mCANMsgMicrosecs = CANTimeStamp.micros;
|
|
mCANMsgMillisecs = CANTimeStamp.millis;
|
|
mCANMsgMillisecsOverflow = CANTimeStamp.millis_overflow;
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
QDataStream &operator<<(QDataStream &out, const CCANMessage &source)
|
|
{
|
|
out << source.mCANChannel
|
|
<< source.mCANMsgID
|
|
<< source.mCANMsgType
|
|
<< source.mCANMsgLength
|
|
<< source.mCANMsgData
|
|
<< source.mCANMsgMillisecs
|
|
<< source.mCANMsgMillisecsOverflow
|
|
<< source.mCANMsgMicrosecs;
|
|
|
|
return out;
|
|
}
|
|
|
|
QDataStream &operator>>(QDataStream &in, CCANMessage &dest)
|
|
{
|
|
in >> dest.mCANChannel
|
|
>> dest.mCANMsgID
|
|
>> dest.mCANMsgType
|
|
>> dest.mCANMsgLength
|
|
>> dest.mCANMsgData
|
|
>> dest.mCANMsgMillisecs
|
|
>> dest.mCANMsgMillisecsOverflow
|
|
>> dest.mCANMsgMicrosecs;
|
|
|
|
return in;
|
|
}
|
|
|
|
CCANMessage& CCANMessage::operator=(const CCANMessage *source)
|
|
{
|
|
if(source == this)
|
|
{
|
|
return *this;
|
|
}
|
|
|
|
this->mCANChannel = source->mCANChannel;
|
|
this->mCANMsgID = source->mCANMsgID;
|
|
this->mCANMsgType = source->mCANMsgType;
|
|
this->mCANMsgLength = source->mCANMsgLength;
|
|
this->mCANMsgData = source->mCANMsgData;
|
|
this->mCANMsgMillisecs = source->mCANMsgMillisecs;
|
|
this->mCANMsgMillisecsOverflow = source->mCANMsgMillisecsOverflow;
|
|
this->mCANMsgMicrosecs = source->mCANMsgMicrosecs;
|
|
|
|
return *this;
|
|
}
|