diff --git a/.env b/.env index b7bf7d5..e17e131 100644 --- a/.env +++ b/.env @@ -7,3 +7,6 @@ VITE_SERVICE_PORT=5175 # /home/cmvr/zh/mkcert 目录中的证书文件名 HTTPS_CERT_FILENAME=192.168.0.224+2.pem HTTPS_KEY_FILENAME=192.168.0.224+2-key.pem + +VITE_VIDEO_SERVER_HOST=http://192.168.0.224 +VITE_TERMINAL_ID=c2f8a06826baf03843925c1a2a13bcfd \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 1121baa..f57449b 100644 --- a/components.d.ts +++ b/components.d.ts @@ -20,7 +20,9 @@ declare module 'vue' { ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] ElMain: typeof import('element-plus/es')['ElMain'] + ElOption: typeof import('element-plus/es')['ElOption'] ElRow: typeof import('element-plus/es')['ElRow'] + ElSelect: typeof import('element-plus/es')['ElSelect'] ElSlider: typeof import('element-plus/es')['ElSlider'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTag: typeof import('element-plus/es')['ElTag'] diff --git a/server/index.js b/server/index.js index 7c9e45d..5cc9864 100644 --- a/server/index.js +++ b/server/index.js @@ -226,7 +226,7 @@ app.post('/api/agv/getCurrentMap', async (req, res) => { // 机器人运动控制 app.post('/api/agv/moveRobot', async (req, res) => { - const grpcClient = setVelocity(req.body.ip) + const grpcClient = createAGVGrpcClient(req.body.ip) const request = { header: { device_id: req.body.deviceId || 'agv_src1100' diff --git a/src/stores/robot.js b/src/stores/robot.js index ccc4707..106eac3 100644 --- a/src/stores/robot.js +++ b/src/stores/robot.js @@ -4,6 +4,7 @@ import { defineStore } from 'pinia' export const useRobotStore = defineStore('robot', { state: () => ({ ip: '192.168.0.28:50052', + robotType: 'inspection', agvDeviceId:'src1100', almDeviceId: 'huayan_arm', spkDeviceId: 'spk1', @@ -32,6 +33,9 @@ export const useRobotStore = defineStore('robot', { setIp(str) { this.ip = str }, + setRobotType(str) { + this.robotType = str + }, setAgvDeviceId(str) { this.agvDeviceId = str }, diff --git a/src/views/Address.vue b/src/views/Address.vue index 0eab5be..bf1e0d4 100644 --- a/src/views/Address.vue +++ b/src/views/Address.vue @@ -9,7 +9,13 @@ - + + + + + + + 进入上位机控制页面 @@ -46,32 +52,36 @@ const loading = ref(false) const ruleFormRef = ref() const ruleForm = ref({ ip: '', - agvDeviceId:'src1100', - almDeviceId: 'huayan_arm', - spkDeviceId: 'spk1', - micDeviceId: 'mic1', - cameraDeviceId: 'real_cam1' + robotType: 'inspection', + // agvDeviceId:'src1100', + // almDeviceId: 'huayan_arm', + // spkDeviceId: 'spk1', + // micDeviceId: 'mic1', + // cameraDeviceId: 'real_cam1' }) const rules = ref({ ip: [ { required: true, message: '请输入机器人IP和端口', trigger: 'blur' } ], - agvDeviceId: [ - { required: true, message: '请输入底盘设备ID', trigger: 'blur' } - ], - almDeviceId: [ - { required: true, message: '请输入机械臂设备ID', trigger: 'blur' } - ], - spkDeviceId: [ - { required: true, message: '请输入扬声器设备ID', trigger: 'blur' } - ], - micDeviceId: [ - { required: true, message: '请输入麦克风设备ID', trigger: 'blur' } - ], - cameraDeviceId: [ - { required: true, message: '请输入相机设备ID', trigger: 'blur' } + robotType: [ + { required: true, message: '请选择机器人类型', trigger: 'blur' } ], + // agvDeviceId: [ + // { required: true, message: '请输入底盘设备ID', trigger: 'blur' } + // ], + // almDeviceId: [ + // { required: true, message: '请输入机械臂设备ID', trigger: 'blur' } + // ], + // spkDeviceId: [ + // { required: true, message: '请输入扬声器设备ID', trigger: 'blur' } + // ], + // micDeviceId: [ + // { required: true, message: '请输入麦克风设备ID', trigger: 'blur' } + // ], + // cameraDeviceId: [ + // { required: true, message: '请输入相机设备ID', trigger: 'blur' } + // ], }) const testConnect = async () => { @@ -79,16 +89,26 @@ const testConnect = async () => { if (valid) { loading.value = true robotStore.setIp(ruleForm.value.ip) - robotStore.setAgvDeviceId(ruleForm.value.agvDeviceId) - robotStore.setAlmDeviceId(ruleForm.value.almDeviceId) - robotStore.setSpkDeviceId(ruleForm.value.spkDeviceId) - robotStore.setMicDeviceId(ruleForm.value.micDeviceId) - robotStore.setCameraDeviceId(ruleForm.value.cameraDeviceId) + robotStore.setRobotType(ruleForm.value.robotType) + if (ruleForm.value.robotType === 'inspection') { + robotStore.setAgvDeviceId('src1100') + robotStore.setAlmDeviceId('huayan_arm') + robotStore.setSpkDeviceId('spk1') + robotStore.setMicDeviceId('mic1') + robotStore.setCameraDeviceId('real_cam1') + } else if (ruleForm.value.robotType === 'explanation') { + robotStore.setAgvDeviceId('src1100') + robotStore.setAlmDeviceId('huayan_arm') + robotStore.setSpkDeviceId('spk1') + robotStore.setMicDeviceId('mic1') + robotStore.setCameraDeviceId('real_cam1') + } + // const result = await getRuntimeState({ // ip: robotStore.ip, // deviceId: ruleForm.value.agvDeviceId // }) - // loading.value = false + loading.value = false // if (result.code === 200) { // robotStore.setPosition(result.data.pose) // robotStore.setBattery(result.data.battery) @@ -150,12 +170,23 @@ const testConnect = async () => { margin-bottom: 12px; } + :deep(.el-form-item__label) { + font-size: 16px; + line-height: 40px; + } + :deep(.el-input__inner) { height: 40px; // 避免 iPad Safari 聚焦小字号输入框时自动缩放页面。 font-size: 16px; } + :deep(.el-select__wrapper) { + height: 40px; + // 避免 iPad Safari 聚焦小字号输入框时自动缩放页面。 + font-size: 16px; + } + .connect { width: 340px; height: 50px; diff --git a/src/views/arm/MechanicalArm.vue b/src/views/arm/MechanicalArm.vue index 94747b7..703177c 100644 --- a/src/views/arm/MechanicalArm.vue +++ b/src/views/arm/MechanicalArm.vue @@ -97,16 +97,16 @@ X 前后平移 - + move('x', '-', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('x', '+', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -119,16 +119,16 @@ Y 左右平移 - + move('y', '-', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('y', '+', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -141,16 +141,16 @@ Z 上下平移 - + move('z', '-', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('z', '+', 'end'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -177,16 +177,16 @@ X 前后平移 - + move('x', '-', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('x', '+', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -199,16 +199,16 @@ Y 左右平移 - + move('y', '-', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('y', '+', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -221,16 +221,16 @@ Z 上下平移 - + move('z', '-', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + move('z', '+', 'posture'))" @pointerup="endPointerControl" @pointercancel="endPointerControl"> - + @@ -254,7 +254,7 @@