Masterctrl/Sources/Ispindel/IspindelInterface.cpp
jfmartel 3f28be7793 Développements
ajout status de comm dans get statud
2022-05-08 13:21:02 -04:00

59 lines
2.0 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;
}
case ISPINDEL_DELETE_SAMPLE_REQUEST:
{
int Index;
QDataStream Strm(&Data,QIODevice::ReadOnly | QIODevice::Unbuffered);
Strm >> Index;
bool Res = mISpindelDevice->DeleteSampleRequest(Index);
QByteArray ResBuffer;
QDataStream ResultStrm(&ResBuffer,QIODevice::WriteOnly | QIODevice::Unbuffered);
ResultStrm << Res;
mNetworkInterfacePtr->SendNetworkMessage(ID_ISPINDEL_INTERFACE,mDeviceAddress,ISPINDEL_DELETE_SAMPLE_RESPONSE,ResBuffer.size(),&ResBuffer);
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");
}