Browse Source

去掉 Model 全部换成 R. 前端 success==false 时显示异常原因

master
修宁 6 months ago
parent
commit
fbbab2dfe9
  1. 17
      src/config.ts
  2. 15
      src/core/manager/EnvManager.ts
  3. 44
      src/core/script/RCSScript.ts
  4. 11
      src/types/RCS.d.ts

17
src/config.ts

@ -24,7 +24,20 @@ function globalConfig() {
// 全局拦截配置
axiosInstance.interceptors.response.clear();
axiosInstance.interceptors.response.use(
response => response,
(response) => {
const data = response.data;
if (data && data.success === false) {
// 显示错误对话框
system.showErrorDialog(data.failMessage || '系统异常');
// 返回一个被拒绝的 Promise,这样后续 .then() 不会执行,进入 .catch()
return Promise.reject(response);
}
// 正常情况,继续传递数据
return response;
},
(error: any) => {
const { response } = error;
const err: AxiosInterceptorError = {
@ -72,4 +85,4 @@ function globalConfig() {
export {
globalConfig,
}
}

15
src/core/manager/EnvManager.ts

@ -4,8 +4,8 @@ import mqtt, { type IConnackPacket, type IPublishPacket } from 'mqtt'
import type { ErrorWithReasonCode } from 'mqtt/src/lib/shared.ts'
import type Cl23dObject from '@/modules/cl2/Cl23dObject.ts'
import { Request } from '@ease-forge/shared'
import AmrMessageManager from "@/core/manager/amr/AmrMessageManager";
import {AmrMsg} from "@/core/manager/amr/AmrMessageDefine";
import AmrMessageManager from '@/core/manager/amr/AmrMessageManager'
import { AmrMsg } from '@/core/manager/amr/AmrMessageDefine'
export default class EnvManager {
private viewport: Viewport
@ -99,7 +99,7 @@ export default class EnvManager {
onMqttMessage = (topic: string, payload: Buffer, packet: IPublishPacket) => {
console.log(`[${topic}]-> ${payload.toString()}`)
if (topic.startsWith("/wcs_server/")) {
if (topic.startsWith('/wcs_server/')) {
const message: AmrMsg<any> = JSON.parse(payload.toString())
this.amrMessageManager.handleMessage(topic, message)
} else {
@ -143,12 +143,13 @@ export default class EnvManager {
return
}
this.stop()
await this.stop()
system.showLoading()
worldModel.state.runState.isLoading = true
worldModel.state.runState.currentEnv = Object.freeze(env)
try {
await RCS.projectStart()
await this.loadExecutors()
await this.loadInv()
@ -177,10 +178,8 @@ export default class EnvManager {
async stop() {
system.showLoading()
try {
if (worldModel.state.runState.isRunning) {
worldModel.state.runState.isRunning = false
}
worldModel.state.runState.currentEnv = null
await RCS.projectStop()
worldModel.state.runState.isRunning = false
if (this.client) {
this.client.removeAllListeners()
this.client.end()

44
src/core/script/RCSScript.ts

@ -9,15 +9,33 @@ export default class RCSScript implements RCS {
this.viewport = viewport
}
projectStart(): Promise<ServerResponse<boolean>> {
if (!worldModel.state.project_uuid || !worldModel.state.runState.currentEnvId) {
return Promise.reject(new Error('Project UUID or Environment ID is not set.'))
}
return Request.request.post('/api/workbench/RcsController@projectStart', {
projectUUID: worldModel.state.project_uuid,
envId: worldModel.state.runState.currentEnvId
})
}
projectStop(): Promise<ServerResponse<boolean>> {
if (!worldModel.state.project_uuid || !worldModel.state.runState.currentEnvId) {
return Promise.reject(new Error('Project UUID or Environment ID is not set.'))
}
return Request.request.post('/api/workbench/RcsController@projectStop', {
projectUUID: worldModel.state.project_uuid,
envId: worldModel.state.runState.currentEnvId
})
}
agvMove(agvId: string, targetWayPointId: string, targetDirection: '' | LLCDirection = '', option: AgvOptions = {}): Promise<ServerResponse<boolean>> {
return Request.request.post('/api/workbench/RcsController@agvMove', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
agvId,
targetWayPointId,
targetDirection,
option
envId: worldModel.state.runState.currentEnvId
})
}
@ -25,7 +43,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@waitTaskFinish', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId,
option
})
@ -35,7 +53,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvCarry', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId,
fromStoreLoc,
targetStoreLoc,
@ -47,7 +65,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvLoad', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId,
targetStoreLoc,
option
@ -58,7 +76,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvUnload', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId,
targetStoreLoc,
option
@ -69,7 +87,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvInfo', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId: agvId,
option
})
@ -79,7 +97,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@cancelTasks', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId: agvId,
option
})
@ -89,7 +107,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvToCharger', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
envId: worldModel.state.runState.currentEnvId,
agvId: agvId,
chargerId,
option

11
src/types/RCS.d.ts

@ -2,6 +2,17 @@
* RCS API
*/
declare interface RCS {
/**
*
*/
projectStart(): Promise<ServerResponse<boolean>>
/**
*
*/
projectStop(): Promise<ServerResponse<boolean>>
/**
*
* @param agvId

Loading…
Cancel
Save