123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #pragma once
- //#include "GeneratorDriver.h"
- #include "LogicDriver.h"
- #define TIMEOUTVALUE 500
- #define TIMEOUTVALUE_NOMAL 100
- #define VALUELENGTH_NORMAL 50
- #define VALUELENGTH_MAX 100
- class CMACHINE_DPC : public LogicDriver
- {
- std::string *m_pWorkpath;
- public:
- CMACHINE_DPC();
- virtual ~CMACHINE_DPC();
- ///////////////////////////////////////////////////////
- virtual bool DriverEntry(ResDataObject &Configuration);
- virtual bool Driver_Probe(ResDataObject &HardwareInfo);
- virtual bool SYSTEM_CALL SetDriverWorkPath(const char * PARAM_IN pWorkPath);
- virtual PVOID SYSTEM_CALL LoadDriver();//无根节点
- virtual void SYSTEM_CALL UnloadDriver();
- RET_STATUS SYSTEM_CALL GetDriverDictionary(ResDataObject& PARAM_OUT DriverInfo);
- RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
- //virtual bool OnNotify(HANDLE ExitNotify);
- virtual DWORD SYSTEM_CALL OnNotify(HANDLE evtList[], DWORD count);
- virtual bool Connect();
- virtual void DisConnect();
- //给硬件驱动设置Unique工作路径
- //如果是同一设备同一连接情况下,硬件多次接入,系统会保证工作路径是一样的.
- //连接后,单一硬件相关的数据要保存在此.
- virtual bool SYSTEM_CALL SetDeviceWorkPath(const char * PARAM_IN pWorkPath);
- //逻辑设备树的加载和卸载
- virtual PVOID SYSTEM_CALL LoadLogicDevices();
- virtual void SYSTEM_CALL UnloadLogicDevices();
- virtual bool SYSTEM_CALL OnHeartBeat();
- virtual bool Device_Probe(ResDataObject &HardwareInfo);
- bool SetupStitching(int nImageCount, int nDirection, int nInitialHeight, int nStitchLength, int nStepLength, int nSID, int nStitchType);
- /////////////////////////////////
- static PACKET_RET PackageProcess(const char * RecData, DWORD nLength, DWORD& PacketLength);
- int SendCommandWithoutAck(char* strCommand, int nTimeOut = TIMEOUTVALUE);
- size_t OnCallback(const char * strPackage, size_t nLength);
- public:
- int m_nImageCount{ 0 }; // total number of stitching images
- int m_nCurrentImage{ 0 }; //Current stitching procedure image
- bool m_bStitchingInProgress{ false };
- private:
- string m_strWorkPath;
- ResDataObject m_DeviceConfig; //设备属性
- HMODULE m_hDPCDll;
- bool m_bStatusFlag{false};
- HMODULE m_SCFDllFileHandle;
- SCF* m_pSCFServer;
- typedef SCF* (*GetSCF)();
- GetSCF m_fpGetSCF;
- typedef void(*ReleaseSCF)(SCF *p);
- ReleaseSCF m_fpReleaseSCF;
- SCFPacket *m_pSendPacket;
- SCFPacket *m_pReceivePacket;
- string m_strCurrentCommand{ "" };
- CRITICAL_SECTION m_stCSProcessMsg;
- class CMACHINE_Logical * m_pGenLogical;
-
- ResDataObject m_DetectorToTableDistance;
- ResDataObject m_DistanceSourcetoDetector;
- ResDataObject m_DistanceSourcetoEntrance;
- ResDataObject m_ProjectionNum;
- ResDataObject m_ProjectionMaxAngle;
- ResDataObject m_ProjectionDirection;
- ResDataObject m_MechAngle;
- ResDataObject m_MechHeight;
- };
|