CmdProcess_API.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #pragma once
  2. #include <string>
  3. using namespace std;
  4. #ifdef CMDPROCESS_EXPORTS
  5. #define CMDPROCESS_API extern "C" _declspec(dllexport)
  6. #else
  7. #define CMDPROCESS_API extern "C" _declspec(dllimport)
  8. #endif
  9. #define CMD_FUNC_CMD_LEN 3
  10. #define CMD_FUNC_DATA_MAXLEN 4096
  11. #define CMD_STR_MAXLEN 8192
  12. //设备类型
  13. enum MQDeviceType
  14. {
  15. GEN_G,
  16. AEC_E,
  17. MEC_M,
  18. CLM_C,
  19. FIL_F,
  20. GRD_R,
  21. FPD_S,
  22. CAP_A,
  23. SYN_B,
  24. HSW_H,
  25. DSP_P,
  26. OTH_O,
  27. SVR_Z,
  28. TUB_U,
  29. TOT_T,
  30. XRY_X,
  31. MQDeviceTypeEnd
  32. };
  33. //指令类型
  34. enum MQCommandType
  35. {
  36. Parameter_A,
  37. Return_B,
  38. Sequence_C,
  39. Error_E,
  40. Warning_W,
  41. Data_D,
  42. Return_R, //TODO:哪里来的R
  43. MQCommandTypeEnd
  44. };
  45. //指令类型
  46. enum MQCommandCategory
  47. {
  48. All_A,
  49. DR_D,
  50. RF_F,
  51. MQCommandCategoryEnd
  52. };
  53. //数据类型
  54. enum MQDataType
  55. {
  56. Null_N,
  57. Float_F,
  58. Int_I,
  59. String_C,
  60. Other_E,
  61. Struct_S,
  62. MQDataTypeEnd
  63. };
  64. struct ECOMFunction
  65. {
  66. int FrameNumber;
  67. MQCommandCategory CMDCategory;
  68. wchar_t Command[CMD_FUNC_CMD_LEN+1];
  69. MQDataType DataType;
  70. wchar_t Data[CMD_FUNC_DATA_MAXLEN];
  71. };
  72. struct ECOMCommand
  73. {
  74. MQDeviceType DeviceType;
  75. MQCommandType CommandType;
  76. int ProcessIndex;
  77. int DeviceIndex;
  78. int FunctionNum;
  79. ECOMFunction *pFunctionList;
  80. };
  81. typedef void (*pCMDCallbackfun)(const wstring &strSourceID, DWORD dwCommand,const wstring &strMessage, wstring &strAckMessage);
  82. //typedef bool (CALLBACK* pCMDCallbackfun)(ECOMCommand* Cmd);
  83. extern "C"
  84. {
  85. CMDPROCESS_API bool CMD_SetLogger(const wchar_t* wszLogFile,const wchar_t* wszLogName);
  86. CMDPROCESS_API bool CMD_StartMessenger(const wchar_t* wszName);
  87. CMDPROCESS_API bool CMD_StartMessengerIP(const wchar_t* wszName, const wchar_t* wszBusIP);
  88. CMDPROCESS_API bool CMD_StopMessenger();
  89. CMDPROCESS_API bool CMD_RegCallBack(pCMDCallbackfun pFunction);
  90. //CMDPROCESS_API bool CMD_SendCommand2HW(ECOMCommand *pCmd);
  91. //CMDPROCESS_API bool CMD_SendParameter2HW(const wchar_t* wszCommand);
  92. CMDPROCESS_API bool CMD_Post(const wchar_t* wszDestClient, DWORD dwCommand, const wchar_t* wszCommand);
  93. CMDPROCESS_API bool CMD_Forward(const wchar_t* wszDestClient, DWORD dwCommand, const wchar_t* wszCommand);
  94. CMDPROCESS_API bool CMD_CommandDecode(const wchar_t* wszCommand, ECOMCommand *outpCommand);
  95. CMDPROCESS_API bool CMD_CommandEncode(ECOMCommand* pcommand, wchar_t* outwszCommand);
  96. CMDPROCESS_API bool CMD_FunctionDecode(const wchar_t* wszFunction, ECOMFunction *outpFunction);
  97. CMDPROCESS_API bool CMD_FunctionEncode(ECOMFunction *pfunction, wchar_t* outwszFunction);
  98. CMDPROCESS_API wchar_t CMD_eDeviceTypeToChar( MQDeviceType eDeviceType );
  99. CMDPROCESS_API wchar_t CMD_eCommandTypeToChar( MQCommandType eCommandType );
  100. CMDPROCESS_API wchar_t CMD_eCommandCategoryToChar( MQCommandCategory eCMDCategory );
  101. CMDPROCESS_API wchar_t CMD_eDataTypeToChar( MQDataType eDataType );
  102. CMDPROCESS_API bool CMD_ECOMFunction(int nFrameNumber,MQCommandCategory eCmdCategory,const wchar_t* wszCommand,MQDataType eDataType,const wchar_t* wszData,ECOMFunction *outpFunction);
  103. CMDPROCESS_API bool CMD_ECOMFunctionC(int nFrameNumber,MQCommandCategory eCmdCategory,const wchar_t* wszCommand,const wchar_t* wszData,ECOMFunction *outpFunction);
  104. CMDPROCESS_API bool CMD_ECOMFunctionI(int nFrameNumber,MQCommandCategory eCmdCategory,const wchar_t* wszCommand,int nData,ECOMFunction *outpFunction);
  105. CMDPROCESS_API bool CMD_ECOMFunctionF(int nFrameNumber,MQCommandCategory eCmdCategory,const wchar_t* wszCommand,double fData,ECOMFunction *outpFunction);
  106. CMDPROCESS_API bool CMD_ECOMFunctionS(int nFrameNumber,MQCommandCategory eCmdCategory,const wchar_t* wszCommand,const wchar_t* wszData,ECOMFunction *outpFunction);
  107. CMDPROCESS_API ECOMCommand* CMD_ECOMCommandFL(int nProcessIndex,MQDeviceType eDeviceType,int nDeviceIndex,MQCommandType eCommandType,ECOMFunction* pFunctionList,int nListSize);
  108. CMDPROCESS_API ECOMCommand* CMD_ECOMCommandF(int nProcessIndex,MQDeviceType eDeviceType,int nDeviceIndex,MQCommandType eCommandType,ECOMFunction Func);
  109. CMDPROCESS_API void CMD_ECOMCommandRelease(ECOMCommand *pCommand);
  110. }