GrabBag/App/ScrewPosition/ScrewPositionApp/Presenter/Inc/ScrewPositionTCPProtocol.h

63 lines
2.0 KiB
C
Raw Normal View History

#ifndef SCREWPOSITIONTCPPROTOCOL_H
#define SCREWPOSITIONTCPPROTOCOL_H
#include "TCPServerProtocol.h"
#include "IVrConfig.h"
/**
* @brief ScrewPosition TCP协议类
*
* AppCommon TCPServerProtocol
* ParseJSONCommand
* - ScrewDetectRequest: XYZRPY
* - ToolDiskDetectRequest:
* - ScanRequest:
*/
class ScrewPositionTCPProtocol : public TCPServerProtocol
{
public:
/**
* @brief
* @param success
* @param cameraIndex -1
* @param timestamp
* @param detectionType
*/
using DetectionTriggerWithTypeCallback = std::function<bool(bool success, int cameraIndex, qint64 timestamp, DetectionType detectionType)>;
ScrewPositionTCPProtocol();
~ScrewPositionTCPProtocol() override;
/**
* @brief
*/
void SetDetectionTriggerWithTypeCallback(const DetectionTriggerWithTypeCallback& callback);
protected:
/**
* @brief /
*/
void ParseJSONCommand(const TCPClient* pClient, const QJsonObject& jsonData) override;
private:
/**
* @brief
*/
void HandleScrewDetectCommand(const TCPClient* pClient, qint64 timestamp);
/**
* @brief
*/
void HandleToolDiskDetectCommand(const TCPClient* pClient, qint64 timestamp);
/**
* @brief
*/
bool TriggerDetection(const TCPClient* pClient, qint64 timestamp, DetectionType type, const QString& responseType, const QString& errorDesc);
private:
DetectionTriggerWithTypeCallback m_detectionTypeCallback;
};
#endif // SCREWPOSITIONTCPPROTOCOL_H