SATProtocol.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #ifndef __SAT_PROTOCOL__
  2. #define __SAT_PROTOCOL__
  3. #pragma once
  4. namespace SATPROTO{
  5. // 最大设备数;
  6. const int MAX_DEVS(30);
  7. // 文件名最大长度;
  8. const int MAX_NAME(64);
  9. // 最大用例数;
  10. const int MAX_CASES(50);
  11. // 最大任务数;
  12. const int MAX_TASKS(10);
  13. // 通知内容最大长度;
  14. const int MAX_NOTICE(30);
  15. //////////////////////////////////////////////////////////////////////////
  16. // 具体协议指令;
  17. enum ProtocolCMD {
  18. // 登录、登出;
  19. CMD_LOGIN = 0,
  20. CMD_LOGOUT,
  21. // 设备;
  22. CMD_ADD_DEVICE,
  23. CMD_DEL_DEVICE,
  24. CMD_QUERY_DEVICES,
  25. // 查询任务;
  26. CMD_QUERY_TASK,
  27. // 脚本通知
  28. CMD_PY_NOTICE
  29. };
  30. //////////////////////////////////////////////////////////////////////////
  31. // 通信数据声明;
  32. #pragma pack(push)
  33. #pragma pack(1)
  34. // 数据头;
  35. typedef struct _DATAHEADER_ {
  36. // 协议标识符;
  37. byte protocol;
  38. // 当前通信包的长度=header长度+buf长度;
  39. unsigned int len;
  40. // 命令类型;
  41. byte cmd;
  42. }DataHeader, *pDataHeader;
  43. // 请求包
  44. typedef struct _PACKAGE_ {
  45. DataHeader header;
  46. byte buf[4]; // 具体内容(指针地址);
  47. }Package;
  48. // 用于登录/登出;
  49. typedef struct __USERINFO__ {
  50. char szUserName[MAX_PATH];
  51. char szPassword[MAX_PATH];
  52. char szActuatorName[MAX_PATH];
  53. }UserInfo, *pUserInfo;
  54. // 登录返回;
  55. typedef struct __LOGIN_RESP__ {
  56. // true登录成功;
  57. bool bStatus;
  58. // 描述(暂时不用);
  59. char szMessage[MAX_PATH];
  60. }LoginResp, *pLoginResp;
  61. typedef struct __DEVICE__ {
  62. int nType; // 0=虚拟, 1=usb, 2=网线;
  63. char szName[MAX_PATH]; // 设备名称(IP:端口号);
  64. int nStatus; // 设备状态:0表示空闲,1表示繁忙;
  65. }Device, *pDevice;
  66. // 查询设备返回;
  67. typedef struct __QUERY_DEVICES_RESP__ {
  68. // 设备数量;
  69. int nSize;
  70. // 最多只能返回MAX_DEVS个设备;
  71. Device ssDevs[MAX_DEVS];
  72. }DeviceResp, *pDeviceResp;
  73. typedef struct __CASE_INFO__ {
  74. //int nCaseId; // 用例ID;
  75. int nStatus; // 用例状态;
  76. int szCaseName[MAX_NAME]; // 用例名称;
  77. //int szCaseLogPath[MAX_PATH]; // 用例日志路径;
  78. }CaseInfo, *pCaseInfo;
  79. // 任务查询;
  80. typedef struct __TASK_INFO__ {
  81. int nStatus; // 任务状态; 0:执行中;1:执行完成;
  82. int nTaskId; // 任务ID;
  83. char szTaskNo[MAX_NAME]; // 任务编号;
  84. char szTaskName[MAX_NAME]; // 任务名称;
  85. //char szDeviceId[MAX_PATH]; // 设备ID(序列号);
  86. //char szStartTime[MAX_PATH]; // 任务开始时间;
  87. //char szEndTime[MAX_PATH]; // 任务结束时间;
  88. //char szScriptDir[MAX_PATH]; // 脚本路径;
  89. CaseInfo ssCases[MAX_CASES]; // 每个任务上限MAX_CASES个用例脚本;
  90. }TaskInfo, *pTaskInfo;
  91. typedef struct __QUERY_TASK_RESP__ {
  92. int nSize;
  93. TaskInfo ssTasks[MAX_TASKS];
  94. }TaskInfoResp, *pTaskInfoResp;
  95. typedef struct __PY_NOTICE__ {
  96. __int64 nTimeStamp; // 时间戳;
  97. int nNoticeType; // 通知类型;
  98. //char szNotice[MAX_NOTICE]; // 通知内容;
  99. }PyNotice, *pPyNotice;
  100. #pragma pack(pop)
  101. }
  102. #endif // __SAT_PROTOCOL__