SATProtocol.h 3.0 KB

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