You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
3.8 KiB

5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
  1. // 开始、停止绘制
  2. export type TaskState = {
  3. messageType: "EVENT";
  4. data:
  5. | "START_RECORD_SIG"
  6. | "END_RECORD_SIG"
  7. | "FINISHED"
  8. | "START_RECORD_LEFT"
  9. | "FINISH_RECORD_RIGHT"
  10. | "FINISH_RECORD"
  11. | "FINISH_RECORD_LEFT"
  12. | "END_RECORD_SIG"
  13. | "END_RECORD"
  14. | "START_RECORD_RIGHT"
  15. | "WRONG_SIDE";
  16. // data: {
  17. // event: "START_RECORD_SIG" | "END_RECORD_SIG" | "FINISHED" | "START_RECORD_LEFT" | "FINISH_RECORD_RIGHT" | "FINISH_RECORD" | "FINISH_RECORD_LEFT" | "END_RECORD_SIG" | "END_RECORD" | "START_RECORD_RIGHT";
  18. // };
  19. path: "/api/measurement-task/event";
  20. };
  21. // 连续上报坐标点
  22. export type TrackRecordSig = {
  23. messageType: "STATE";
  24. data: {
  25. x: number;
  26. y: number;
  27. };
  28. path: "/api/measurement-task/point-report";
  29. };
  30. export const defaultContext: ContextMessage["data"] = {
  31. loginFlag: true,
  32. loginUser: {
  33. id: 3, //数据主键id
  34. account: "test001", //用户账户
  35. nickname: "测试账户001", //用户昵称
  36. userRole: "User", //用户角色,可用值:User,Admin,Dev
  37. isBuiltInUser: false, //是否内置用户(内置用户不可删除)
  38. },
  39. };
  40. // 上下文状态
  41. export type ContextMessage = {
  42. messageType: "DeviceContext";
  43. data: {
  44. loginFlag: Boolean;
  45. loginUser: Partial<{
  46. id: number;
  47. account: string;
  48. nickname: string;
  49. password: string;
  50. userRole: "Admin" | "User" | "Dev";
  51. isBuiltInUser: boolean;
  52. }>;
  53. };
  54. path: "/api/deviceContext";
  55. };
  56. export type loginUser = Partial<{
  57. id: 3; //数据主键id
  58. account: "test001"; //用户账户
  59. nickname: "测试账户001"; //用户昵称
  60. userRole: "User"; //用户角色,可用值:User,Admin,Dev
  61. isBuiltInUser: false; //是否内置用户(内置用户不可删除)
  62. }>;
  63. export const taskStatusDescMap: { [k in MeasureState["data"]["taskStatus"]]: string } = {
  64. IDLE: "空闲",
  65. MEASURING: "测量中",
  66. WAITING_FOR_MEASURING: "等待测量",
  67. FINISHED: "测量完成",
  68. START_RECORD_LEFT: "",
  69. FINISH_RECORD_RIGHT: "",
  70. FINISH_RECORD: "",
  71. FINISH_RECORD_LEFT: "",
  72. END_RECORD_SIG: "",
  73. END_RECORD: "",
  74. START_RECORD_RIGHT: "",
  75. };
  76. // 测量任务状态
  77. export type MeasureState = {
  78. messageType: "STATE";
  79. data: {
  80. taskStatus:
  81. | "IDLE"
  82. | "MEASURING"
  83. | "WAITING_FOR_MEASURING"
  84. | "FINISHED"
  85. | "START_RECORD_LEFT"
  86. | "FINISH_RECORD_RIGHT"
  87. | "FINISH_RECORD"
  88. | "FINISH_RECORD_LEFT"
  89. | "END_RECORD_SIG"
  90. | "END_RECORD"
  91. | "START_RECORD_RIGHT";
  92. measureSideCnt: 0 | 1 | 2; //已测量数量,0,1,2 最多两边(左边和右边)
  93. isMeasuringLeftEnd: boolean; //测量左侧完成
  94. isMeasuringRightEnd: boolean; //测量右侧完成
  95. motionlessSigFlag: boolean; //滑轮质心是否静止
  96. inStartMeasuringPos: boolean; //是否在允许开始测量的位置
  97. isWrongSide: boolean; //测量方向是错误的
  98. // profileRecordDescription: null; //用户填写的新测量信息
  99. };
  100. path: "/api/measurement-task/get-task-state";
  101. };
  102. export const defaultMeasureState = {
  103. taskStatus: "IDLE",
  104. measureSideCnt: 0, //已测量数量,0,1,2 最多两边(左边和右边)
  105. isMeasuringLeftEnd: false, //测量左侧完成
  106. isMeasuringRightEnd: false, //测量右侧完成
  107. motionlessSigFlag: true, //滑轮质心是否静止
  108. inStartMeasuringPos: true, //是否在允许开始测量的位置
  109. };
  110. export type ChannelMessage = {
  111. messageType: "STATE";
  112. data: {
  113. isConnect: boolean;
  114. connectPort: string;
  115. sn: string;
  116. descriptivePortName: string;
  117. };
  118. path: "/api/subdevice/uartchanel/get-channel-state";
  119. };
  120. export type DeviceStatus = {
  121. messageType: "STATE";
  122. data: {
  123. isConnected: boolean; //是否链接
  124. power: number; //电量
  125. inclinatorX: number; //x轴倾斜
  126. inclinatorY: number; //y轴倾斜
  127. temperature: number; //温度
  128. };
  129. path: "/api/profiler-state/get-state";
  130. };
  131. export type Datagram = TrackRecordSig | TaskState | ContextMessage | MeasureState | ChannelMessage | DeviceStatus;