Masterctrl/Sources/Ispindel/IspindelInterface.cpp

45 lines
1.4 KiB
C++

#include "IspindelInterface.h"
#include "ProtocolDefs.h"
#include "IspindelData.h"
CIspindelInterface::CIspindelInterface(int Address, CAbstractNetworkCommIF *NetworkInterface, CIspindelDevice *DevicePtr):
CNetworkDevice(ID_ISPINDEL_INTERFACE,Address,NetworkInterface)
{
mISpindelDevice = DevicePtr;
connect(mISpindelDevice,SIGNAL(NewIspindelDataReceived()),this,SLOT(SendLastIspindelData()));
}
int CIspindelInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
{
Q_UNUSED(DeviceID)
Q_UNUSED(DeviceAddress)
Q_UNUSED(DataSize)
Q_UNUSED(Data)
switch(MessageID)
{
case ISPINDLE_LATEST_DATA_REQUEST:
{
QByteArray Buf;
break;
}
case ISPINDEL_GET_FULL_DATA_BUFFER_REQUEST:
{
QByteArray Buf = mISpindelDevice->GetAllDataBuffer();
mNetworkInterfacePtr->SendNetworkMessage(ID_ISPINDEL_INTERFACE,mDeviceAddress,ISPINDEL_GET_FULL_DATA_BUFFER_RESPONSE,Buf.size(),&Buf);
break;
}
}
return RET_OK;
}
void CIspindelInterface::SendLastIspindelData()
{
QByteArray Buf = mISpindelDevice->GetLastestIspindelDataBuffer();
mNetworkInterfacePtr->SendNetworkMessage(ID_ISPINDEL_INTERFACE,mDeviceAddress,ISPINDLE_LATEST_DATA_RESPONSE,Buf.size(),&Buf);
qDebug("Sent latest Ispindel data to interface");
}