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.

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