{{ props.title || "提示" }}
-
+
{{ props.desc }}
diff --git a/src/components/SprayParam.vue b/src/components/SprayParam.vue
index 838e6d0..e715cbc 100644
--- a/src/components/SprayParam.vue
+++ b/src/components/SprayParam.vue
@@ -11,7 +11,7 @@
type="number"
v-model.number="selectCraft.height"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
-
毫米
+
毫米≥6.5
氮气流速
>({ url: "/api/cmd/stopWork", method: "POST" });
}
+export function pushOutTray(params: Record
) {
+ return httpRequest>({ url: "/api/cmd/trayOut", params, method: "POST" });
+}
+export function pushInTray(params: Record) {
+ return httpRequest>({ url: "/api/cmd/trayIn", params, method: "POST" });
+}
+
export function rotate(params: any) {
return httpRequest>({ url: "/api/cmd/rotate", params, method: "POST" });
}
@@ -71,15 +78,22 @@ export type SprayParam = {
} & WorkType;
export function startSpray(params: SprayParam) {
- return httpRequest({ url: "/api/cmd/startWork", params, method: "POST" });
+ return httpRequest({ url: "/api/cmd/startWork", params: { params }, method: "POST" });
}
-export function startWash(params: Record) {
+export type WashType = "injector" | "nozzle";
+export function startWash(params: { type: WashType }) {
return httpRequest({ url: "/api/cmd/startWash", params, method: "POST" });
}
+export function stopWash(params: Record) {
+ return httpRequest({ url: "/api/cmd/stopWash", params, method: "POST" });
+}
export function startPrefill(params: Record) {
return httpRequest({ url: "/api/cmd/startPrefill", params, method: "POST" });
}
+export function stopPrefill(params: Record) {
+ return httpRequest({ url: "/api/cmd/stopPrefill", params, method: "POST" });
+}
export function startDehumidify(params: { humidity: number }) {
return httpRequest({ url: "/api/cmd/startDehumidify", params, method: "POST" });
}
diff --git a/src/services/wsTypes.ts b/src/services/wsTypes.ts
index db707b3..e1d7938 100644
--- a/src/services/wsTypes.ts
+++ b/src/services/wsTypes.ts
@@ -19,6 +19,22 @@ export type WarnDatagram = {
};
};
+export type WorkStatus = "idle" | "washing" | "prefilling" | "dehumidifying" | "spraying";
+export type DoingStatusDatagram = {
+ type: "ing";
+ data: {
+ workStatus: WorkStatus;
+ };
+};
+
+export const workStatusDescMap: { [k in WorkStatus]: string } = {
+ idle: "空闲",
+ washing: "正在清洗",
+ prefilling: "正在预充",
+ dehumidifying: "正在除湿",
+ spraying: "正在喷涂",
+};
+
export type StatusDatagram = {
type: "status"; // 状态
data: EquipmentStatusType;
@@ -70,22 +86,22 @@ export const defaultStatus: EquipmentStatusType = {
//X轴电机状态
xAxisPosition: 0, //电机位置
xAxisSpeed: 0, //电机速度
- xAxisMovementEnded: false,
- xAxisAtOrigin: false,
+ xAxisMovementEnded: true,
+ xAxisAtOrigin: true,
xAxisLimited: false,
//Y轴电机状态
yAxisPosition: 0,
yAxisSpeed: 0,
- yAxisMovementEnded: false,
- yAxisAtOrigin: false,
+ yAxisMovementEnded: true,
+ yAxisAtOrigin: true,
yAxisLimited: false,
//Z轴电机状态
zAxisPosition: 0,
zAxisSpeed: 0,
- zAxisMovementEnded: false,
- zAxisAtOrigin: false,
+ zAxisMovementEnded: true,
+ zAxisAtOrigin: true,
zAxisLimited: false,
//三通阀状态
@@ -102,4 +118,4 @@ export const defaultStatus: EquipmentStatusType = {
syringePumpNormal: false,
};
-export type Datagram = CmdDatagram | WarnDatagram | StatusDatagram;
+export type Datagram = CmdDatagram | WarnDatagram | StatusDatagram | DoingStatusDatagram;
diff --git a/src/stores/equipmentStatus.ts b/src/stores/equipmentStatus.ts
index 776db29..9244d18 100644
--- a/src/stores/equipmentStatus.ts
+++ b/src/stores/equipmentStatus.ts
@@ -1,7 +1,7 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import * as R from "ramda";
-import { defaultStatus, type EquipmentStatusType } from "@/services/wsTypes";
+import { defaultStatus, type EquipmentStatusType, type WorkStatus } from "@/services/wsTypes";
export const useEquipmentStatusStore = defineStore("equipmentStatus", () => {
const equipmentStatus = ref(defaultStatus);
@@ -11,8 +11,15 @@ export const useEquipmentStatusStore = defineStore("equipmentStatus", () => {
}
};
+ const workStatus = ref("idle");
+ const setWorkStatus = (s: WorkStatus) => {
+ workStatus.value = s;
+ };
+
return {
equipmentStatus,
setEquipmentStatus,
+ workStatus,
+ setWorkStatus
};
});
diff --git a/src/style.css b/src/style.css
index 6021163..5e2d043 100644
--- a/src/style.css
+++ b/src/style.css
@@ -20,6 +20,10 @@
border-radius: 4px;
color: white;
}
+ .btn-dark:disabled {
+ background: #ccc;
+ }
+
.btn-light {
display: flex;
justify-content: center;
@@ -29,6 +33,10 @@
border-radius: 4px;
color: var(--primaryColor);
}
+ .btn-light:disabled {
+ background: #ccc;
+ color: #fff;
+ }
.main-page {
/* height: calc(100vh - var(--headerHeight));
background: linear-gradient(180deg, #dfe8f7 0%, #ffffff 100%); */
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index f24252e..9a38bd2 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -32,6 +32,30 @@
+