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) {
const executor_id = row.executor_id
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)
if (!point) {
@ -35,6 +36,21 @@ export default class EnvManager {
const item = _.cloneDeep(payload)
item.id = executor_id
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)
}
}
@ -163,7 +179,7 @@ export default class EnvManager {
this.clearExecutors()
this.clearInv()
this.viewport.runtimeManager.clear()
this.viewport?.runtimeManager?.clear()
} finally {
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', {
projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode,
envId: 1,
agvId: agvId,
targetWayPointId,
targetDirection,
chargerId,
option
})
}

8
src/modules/charger/ChargerPropertySetter.ts

@ -6,13 +6,9 @@ const propertySetter: PropertySetter = {
fields: [
...basicFieldsSetter,
{
dataPath: 'dt.chargerWidth', label: '充电桩宽度', input: 'InputNumber',
dataPath: 'dt.chargerPortDirection', label: '充口方向', input: 'Input',
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 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)
constructor(itemTypeName: string) {
@ -42,23 +42,12 @@ export default class ChargerRenderer extends BaseRenderer {
)
}
createLineBasic(start: ItemJson, end: ItemJson, type: LinkType): THREE.Object3D {
throw new Error('not allow store line.')
}
updateLine(start: ItemJson, end: ItemJson, type: LinkType, option?: RendererCudOption) {
throw new Error('not allow store line.')
createLine(start: ItemJson, end: ItemJson, type: LinkType): THREE.Object3D {
return null
}
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 texture = textureLoader.load(chargerUrl)
@ -66,7 +55,7 @@ export default class ChargerRenderer extends BaseRenderer {
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)
const planeMaterial = new THREE.MeshLambertMaterial({
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 {
// 创建平面几何体
if (!item.dt.clxWidth || !item.dt.clxDepth) {
system.showErrorDialog('field clxWidth / clxDepth is null!')
return
}
const group = new Clx3dObject(item, option)
group.name = ClxRenderer.POINT_NAME

5
src/types/RCS.d.ts

@ -53,11 +53,10 @@ declare interface RCS {
/**
*
* @param agvId ID
* @param targetWayPointId ID
* @param targetDirection
* @param chargerId ID
* @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