1
zhang
3 天以前 abcb19ee0cf2659981516133a1a9e7b163f529ce
zy-acs-flow/src/map/tool.js
@@ -85,7 +85,7 @@
    return { mapX: mapPoint.x, mapY: mapPoint.y };
}
export const generateSprite = (deviceType, texture) => {
export const generateSprite = (deviceType, texture, agvModel) => {
    let sprite;
    switch (deviceType) {
        case DEVICE_TYPE.SHELF:
@@ -118,14 +118,14 @@
            if (texture) {
                sprite = new PIXI.Sprite(PIXI.Texture.from(texture, { resourceOptions: { scale: 1 } }));
            }
            sprite.width = 750;
            sprite.height = 1300;
            sprite.zIndex = DEVICE_Z_INDEX.AGV;
            // // sprite.width = 750;
            // // sprite.height = 1300;
            // sprite.zIndex = DEVICE_Z_INDEX.AGV;
            // sprite.scale.set(12, 10)
            if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
                sprite.scale.set(13, 11);
            } else {
                sprite.width = 750;
                sprite.height = 1300;
            }
            break
        case DEVICE_TYPE.POINT:
            sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 1 } }));
@@ -194,8 +194,8 @@
                    y: (event.global.y - batchMoveStartPos.y) / scaleY
                };
                for (let sprite of selectedSprites) {
                    sprite.position.x = sprite.batchMoveStartPos.x - mouseMovement.x;
                    sprite.position.y = sprite.batchMoveStartPos.y - mouseMovement.y;
                    sprite.position.x = sprite.batchMoveStartPos.x + mouseMovement.x;
                    sprite.position.y = sprite.batchMoveStartPos.y + mouseMovement.y;
                }
            }
        }
@@ -699,43 +699,47 @@
    }
}
export const generateAgvSpriteTexture = (agvStatusMode) => {
    switch (agvStatusMode) {
        case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
            return ctuEmptyNoBattery;
        case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
            return ctuEmptyHalfBattery;
        case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
            return ctuEmptyFullBattery;
        case AGV_STATUS_MODE.LOADED_NO_BATTERY:
            return ctuLoadedNoBattery;
        case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
            return ctuLoadedHalfBattery;
        case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
            return ctuLoadedFullBattery;
        default:
            return;
export const generateAgvSpriteTexture = (agvModel, agvStatusMode) => {
    if (!agvModel) {
        console.error("failed to load agv model");
        return;
    }
    if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
        switch (agvStatusMode) {
            case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
                return ASREmptyNoBattery;
            case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
                return ASREmptyHalfBattery;
            case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
                return ASREmptyFullBattery;
            case AGV_STATUS_MODE.LOADED_NO_BATTERY:
                return ASRLoadedNoBattery;
            case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
                return ASRLoadedHalfBattery;
            case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
                return ASRLoadedFullBattery;
            default:
                return;
        }
    } else {
        switch (agvStatusMode) {
            case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
                return ctuEmptyNoBattery;
            case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
                return ctuEmptyHalfBattery;
            case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
                return ctuEmptyFullBattery;
            case AGV_STATUS_MODE.LOADED_NO_BATTERY:
                return ctuLoadedNoBattery;
            case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
                return ctuLoadedHalfBattery;
            case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
                return ctuLoadedFullBattery;
            default:
                return;
        }
    }
}
// export const generateAgvSpriteTexture = (agvStatusMode) => {
//     switch (agvStatusMode) {
//         case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
//             return ASREmptyNoBattery;
//         case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
//             return ASREmptyHalfBattery;
//         case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
//             return ASREmptyFullBattery;
//         case AGV_STATUS_MODE.LOADED_NO_BATTERY:
//             return ASRLoadedNoBattery;
//         case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
//             return ASRLoadedHalfBattery;
//         case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
//             return ASRLoadedFullBattery;
//         default:
//             return;
//     }
// }
export function createAgvJobPanel(parentContainer, text) {
    const panelScale = 4;
@@ -797,26 +801,26 @@
    }
}
const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
const showAgvSprite = (curZone, agvVo, setCurSprite) => {
    const { agvNo, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
    const { agvNo, agvModel, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
    if (!code) { return; }
    const codeSprite = querySprite(DEVICE_TYPE.POINT, code);
    if (!codeSprite) { return; }
    const targetRotation = rotationParseNum(direction);
    const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
    // const backpackCount = backpack?.filter(item => item.loaded === true).length || 0;
    let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo);
    if (!agvSprite) {
        const agvStatusMode = getAgvStatusMode(backpackCount, battery);
        const agvTexture = generateAgvSpriteTexture(agvStatusMode);
        agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture);
        const agvTexture = generateAgvSpriteTexture(agvModel, agvStatusMode);
        agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture, agvModel);
        initSprite(agvSprite, DEVICE_TYPE.AGV);
        agvSprite.data.no = agvNo;
        agvSprite.data.model = agvModel;
        agvSprite.data.backpackCount = backpackCount;
        agvSprite.data.battery = battery;
@@ -831,7 +835,9 @@
        });
        agvText.anchor.set(0.5, 0.5);
        agvText.position.set(0, 8);
        // agvText.position.set(0, 18);
        if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
            agvText.position.set(0, 20);
        }
        agvText.scale.set(MAP_MIRROR ? -1 : 1, 1)
        agvSprite.addChild(agvText);