Browse Source

Charger 充电API 已完成

master
修宁 6 months ago
parent
commit
ddfb1fbc60
  1. 20
      src/core/manager/EnvManager.ts
  2. 5
      src/core/script/RCSScript.ts
  3. 8
      src/modules/charger/ChargerPropertySetter.ts
  4. 19
      src/modules/charger/ChargerRenderer.ts
  5. 5
      src/modules/clx/ClxRenderer.ts
  6. 5
      src/types/RCS.d.ts

20
src/core/manager/EnvManager.ts

@ -24,7 +24,8 @@ export default class EnvManager {
for (const row of res.data) { for (const row of res.data) {
const executor_id = row.executor_id const executor_id = row.executor_id
const payload = JSON.parse(row.virtual_executor_payload) const payload = JSON.parse(row.virtual_executor_payload)
const wayPointId = row.virtual_location_at // 车所在的标记位置,及方向 11_4:RIGHT
const [wayPointId, direction] = _.split(row.virtual_location_at, ':')
const point = Model.find(wayPointId) const point = Model.find(wayPointId)
if (!point) { if (!point) {
@ -35,6 +36,21 @@ export default class EnvManager {
const item = _.cloneDeep(payload) const item = _.cloneDeep(payload)
item.id = executor_id item.id = executor_id
item.tf[0] = _.cloneDeep(point.tf[0]) item.tf[0] = _.cloneDeep(point.tf[0])
switch (_.toLower(direction)) {
// right=0/left=180/up=90/down=-90
case 'right':
item.tf[1][1] = 0 // 右侧
break
case 'left':
item.tf[1][1] = 180 // 左侧
break
case 'down':
item.tf[1][1] = -90 // 下方
break
case 'up':
item.tf[1][1] = 90 // 上方
break
}
Model.createExecutor(item) Model.createExecutor(item)
} }
} }
@ -163,7 +179,7 @@ export default class EnvManager {
this.clearExecutors() this.clearExecutors()
this.clearInv() this.clearInv()
this.viewport.runtimeManager.clear() this.viewport?.runtimeManager?.clear()
} finally { } finally {
system.clearLoading() system.clearLoading()

5
src/core/script/RCSScript.ts

@ -85,14 +85,13 @@ export default class RCSScript implements RCS {
}) })
} }
agvToCharger(agvId: string, targetWayPointId: string, targetDirection: LLCDirection, option?: any): Promise<ServerResponse<boolean>> { agvToCharger(agvId: string, chargerId: string, option: AgvOptions = {}): Promise<ServerResponse<Object>> {
return Request.request.post('/api/workbench/RcsController@agvToCharger', { return Request.request.post('/api/workbench/RcsController@agvToCharger', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: 1,
agvId: agvId, agvId: agvId,
targetWayPointId, chargerId,
targetDirection,
option option
}) })
} }

8
src/modules/charger/ChargerPropertySetter.ts

@ -6,13 +6,9 @@ const propertySetter: PropertySetter = {
fields: [ fields: [
...basicFieldsSetter, ...basicFieldsSetter,
{ {
dataPath: 'dt.chargerWidth', label: '充电桩宽度', input: 'InputNumber', dataPath: 'dt.chargerPortDirection', label: '充口方向', input: 'Input',
inputProps: {}, inputProps: {},
}, }
{
dataPath: 'dt.chargerDepth', label: '充电桩深度', input: 'InputNumber',
inputProps: {},
},
], ],
}, },
}; };

19
src/modules/charger/ChargerRenderer.ts

@ -19,7 +19,7 @@ export default class ChargerRenderer extends BaseRenderer {
* , * ,
*/ */
readonly defulePositionY: number = Constract.HEIGHT_WAY readonly defulePositionY: number = Constract.HEIGHT_WAY
readonly defaultScale: THREE.Vector3 = new THREE.Vector3(1, 1, 1) readonly defaultScale: THREE.Vector3 = new THREE.Vector3(0.6, 1, 0.3)
readonly defaultRotation: THREE.Vector3 = new THREE.Vector3(0, 0, 0) readonly defaultRotation: THREE.Vector3 = new THREE.Vector3(0, 0, 0)
constructor(itemTypeName: string) { constructor(itemTypeName: string) {
@ -42,23 +42,12 @@ export default class ChargerRenderer extends BaseRenderer {
) )
} }
createLine(start: ItemJson, end: ItemJson, type: LinkType): THREE.Object3D {
createLineBasic(start: ItemJson, end: ItemJson, type: LinkType): THREE.Object3D { return null
throw new Error('not allow store line.')
}
updateLine(start: ItemJson, end: ItemJson, type: LinkType, option?: RendererCudOption) {
throw new Error('not allow store line.')
} }
createPoint(item: ItemJson, option?: RendererCudOption): THREE.Object3D { createPoint(item: ItemJson, option?: RendererCudOption): THREE.Object3D {
// 创建平面几何体 // 创建平面几何体
if (!item.dt.chargerWidth || !item.dt.chargerDepth) {
system.showErrorDialog('field chargerWidth / chargerDepth is null!')
return null
}
const textureLoader = new THREE.TextureLoader() const textureLoader = new THREE.TextureLoader()
const texture = textureLoader.load(chargerUrl) const texture = textureLoader.load(chargerUrl)
@ -66,7 +55,7 @@ export default class ChargerRenderer extends BaseRenderer {
group.name = ChargerRenderer.POINT_NAME group.name = ChargerRenderer.POINT_NAME
// 绘制背景矩形框 // 绘制背景矩形框
const planeGeometry = new THREE.PlaneGeometry(item.dt.chargerWidth, item.dt.chargerDepth) const planeGeometry = new THREE.PlaneGeometry(this.defaultScale.x, this.defaultScale.z)
planeGeometry.rotateX(-Math.PI / 2) planeGeometry.rotateX(-Math.PI / 2)
const planeMaterial = new THREE.MeshLambertMaterial({ const planeMaterial = new THREE.MeshLambertMaterial({
map: texture, // 颜色贴图 map: texture, // 颜色贴图

5
src/modules/clx/ClxRenderer.ts

@ -51,11 +51,6 @@ export default class ClxRenderer extends BaseRenderer {
createPoint(item: ItemJson, option?: RendererCudOption): THREE.Object3D { createPoint(item: ItemJson, option?: RendererCudOption): THREE.Object3D {
// 创建平面几何体 // 创建平面几何体
if (!item.dt.clxWidth || !item.dt.clxDepth) {
system.showErrorDialog('field clxWidth / clxDepth is null!')
return
}
const group = new Clx3dObject(item, option) const group = new Clx3dObject(item, option)
group.name = ClxRenderer.POINT_NAME group.name = ClxRenderer.POINT_NAME

5
src/types/RCS.d.ts

@ -53,11 +53,10 @@ declare interface RCS {
/** /**
* *
* @param agvId ID * @param agvId ID
* @param targetWayPointId ID * @param chargerId ID
* @param targetDirection
* @param option * @param option
*/ */
agvToCharger(agvId: string, targetWayPointId: string, targetDirection: LLCDirection, option: AgvOptions = {}): Promise<ServerResponse<boolean>> agvToCharger(agvId: string, chargerId: string, option: AgvOptions = {}): Promise<ServerResponse<Object>>
/** /**
* *

Loading…
Cancel
Save