Compare commits
5 Commits
bc6501efed
...
22f0e49845
Author | SHA1 | Date | |
---|---|---|---|
|
22f0e49845 | ||
|
a07c75db68 | ||
|
2fcab2d9e9 | ||
|
82754e40d9 | ||
|
107f3e50d9 |
@ -1 +1 @@
|
||||
Subproject commit e64115ada314a096debd061cf54ee774f1091aa7
|
||||
Subproject commit 8117a06f1ebccc1e239e56cfc0a3137f499c8515
|
@ -491,3 +491,15 @@ export async function ckmUpdateParams(data: {
|
||||
}) {
|
||||
return await api.put(`${UriBase}/ckm/operation`, data);
|
||||
}
|
||||
|
||||
export async function xcjUpdateParams(data: {
|
||||
simulationId: string;
|
||||
mapId: number;
|
||||
deviceId: number;
|
||||
operation: request.Xcj.Operation;
|
||||
param: {
|
||||
fault: request.Xcj.Fault;
|
||||
};
|
||||
}) {
|
||||
return await api.put(`${UriBase}/xcj/operation`, data);
|
||||
}
|
||||
|
115
src/components/draw-app/dialogs/XcjOperation.vue
Normal file
115
src/components/draw-app/dialogs/XcjOperation.vue
Normal file
@ -0,0 +1,115 @@
|
||||
<!-- eslint-disable vue/no-mutating-props -->
|
||||
<template>
|
||||
<draggable-dialog
|
||||
v-model="showXcjOperation"
|
||||
seamless
|
||||
title="洗车机设置参数"
|
||||
:width="380"
|
||||
:height="0"
|
||||
>
|
||||
<template v-slot:footer>
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
<q-form ref="myForm" @submit="onCreate" class="q-gutter-md">
|
||||
<q-input
|
||||
dense
|
||||
outlined
|
||||
readonly
|
||||
label="名称"
|
||||
v-model="props.code"
|
||||
/>
|
||||
<div
|
||||
class="q-gutter-sm"
|
||||
style="border: 1px solid #ccc; border-radius: 3px"
|
||||
>
|
||||
<div>设置故障:</div>
|
||||
<q-radio
|
||||
v-for="option in xcjFaultOption"
|
||||
:key="option.value"
|
||||
v-model="xcjFault"
|
||||
:val="option.value"
|
||||
:label="option.label"
|
||||
/>
|
||||
</div>
|
||||
<q-card-actions align="right" class="text-primary">
|
||||
<q-btn
|
||||
flat
|
||||
label="取消"
|
||||
@click="showXcjOperation = false"
|
||||
v-close-popup
|
||||
/>
|
||||
<q-btn flat label="确认" type="submit" />
|
||||
</q-card-actions>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
</draggable-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { QForm } from 'quasar';
|
||||
import { xcjUpdateParams } from 'src/api/Simulation';
|
||||
import DraggableDialog from 'src/components/common/DraggableDialog.vue';
|
||||
import { request } from 'src/protos/request';
|
||||
import { useLineStore } from 'src/stores/line-store';
|
||||
import { errorNotify } from 'src/utils/CommonNotify';
|
||||
|
||||
import { onMounted, onUnmounted, ref } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
id: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
code: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
xcjFaultProp: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const lineStore = useLineStore();
|
||||
const showXcjOperation = ref(true);
|
||||
const xcjFault = ref<request.Xcj.Fault>(0);
|
||||
const xcjFaultOption = [
|
||||
{
|
||||
label: '无故障',
|
||||
value: request.Xcj.Fault.FA_NONE,
|
||||
},
|
||||
{
|
||||
label: '故障',
|
||||
value: request.Xcj.Fault.FA_Fault,
|
||||
},
|
||||
];
|
||||
|
||||
onMounted(() => {
|
||||
xcjFault.value = props.xcjFaultProp;
|
||||
});
|
||||
|
||||
const myForm = ref<QForm | null>(null);
|
||||
function onCreate() {
|
||||
myForm.value?.validate().then(async (res) => {
|
||||
if (res) {
|
||||
const obj = {
|
||||
simulationId: lineStore?.simulationId || '',
|
||||
mapId: lineStore.mapId as number,
|
||||
deviceId: props.id,
|
||||
operation: request.Xcj.Operation.SetParams,
|
||||
param: {
|
||||
fault: xcjFault.value,
|
||||
},
|
||||
};
|
||||
xcjUpdateParams(obj).catch((e) => errorNotify('操作失败:' + e.title, e));
|
||||
showXcjOperation.value = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
onUnmounted(() => {
|
||||
lineStore.deviceOpreratDialogInstance = null;
|
||||
});
|
||||
</script>
|
||||
<style scoped></style>
|
@ -34,6 +34,9 @@
|
||||
<flood-gate-state
|
||||
v-else-if="lineStore.selectedGraphicType === FloodGate.Type"
|
||||
></flood-gate-state>
|
||||
<car-washing-state
|
||||
v-else-if="lineStore.selectedGraphicType === CarWashing.Type"
|
||||
></car-washing-state>
|
||||
</div>
|
||||
</q-scroll-area>
|
||||
</template>
|
||||
@ -66,6 +69,8 @@ import { GarageDoor } from 'src/graphics/garageDoor/GarageDoor';
|
||||
import GarageDoorState from './states/GarageDoorState.vue';
|
||||
import { FloodGate } from 'src/graphics/floodGate/FloodGate';
|
||||
import FloodGateState from './states/FloodGateState.vue';
|
||||
import CarWashingState from './states/CarWashingState.vue';
|
||||
import { CarWashing } from 'src/graphics/carWashing/CarWashing';
|
||||
|
||||
const lineStore = useLineStore();
|
||||
</script>
|
||||
|
182
src/components/line-app/states/CarWashingState.vue
Normal file
182
src/components/line-app/states/CarWashingState.vue
Normal file
@ -0,0 +1,182 @@
|
||||
<template>
|
||||
<q-card flat bordered>
|
||||
<q-card-section class="flex justify-between">
|
||||
<div class="text-h6">洗车机状态</div>
|
||||
<q-btn-dropdown color="primary" label="操作">
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in operationOptions"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="doCarWashingOperation(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
</q-card-section>
|
||||
<q-separator inset />
|
||||
<q-card-section>
|
||||
<q-list dense>
|
||||
<q-item v-for="(item, index) in list" :key="index">
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-item-label caption>{{
|
||||
item.formatFn
|
||||
? item.formatFn(carWashingState[item.key])
|
||||
: carWashingState[item.key]
|
||||
}}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { useLineStore } from 'src/stores/line-store';
|
||||
import { ref, watch, onMounted, onUnmounted, toRaw } from 'vue';
|
||||
import { request } from 'src/protos/request';
|
||||
import { CarWashing } from 'src/graphics/carWashing/CarWashing';
|
||||
import XcjOperation from 'src/components/draw-app/dialogs/XcjOperation.vue';
|
||||
import { CarWashingState } from 'src/drawApp/graphics/CarWashingInteraction';
|
||||
import { Dialog } from 'quasar';
|
||||
|
||||
const lineStore = useLineStore();
|
||||
const carWashingState = ref<CarWashingState>(new CarWashingState());
|
||||
const code = ref('');
|
||||
const operationOptions = [
|
||||
{
|
||||
label: '设置参数',
|
||||
value: request.Xcj.Operation.SetParams,
|
||||
},
|
||||
];
|
||||
const carWashingFault = ref<request.Xcj.Fault>(0);
|
||||
let copySelectGraphic: CarWashing | null = null;
|
||||
|
||||
interface KeyType {
|
||||
label: string;
|
||||
key: keyof CarWashingState;
|
||||
formatFn?(v: CarWashingState[keyof CarWashingState]): string;
|
||||
}
|
||||
|
||||
const list: KeyType[] = [
|
||||
{ label: '洗车机索引', key: 'id' },
|
||||
{ label: '洗车机名称', key: 'code', formatFn: getNameFormat },
|
||||
{ label: '洗车请求', key: 'xqj', formatFn: getBoolFormat },
|
||||
{ label: '是否停稳', key: 'twjList', formatFn: getTwFormat },
|
||||
{ label: '通过请求', key: 'tgqj', formatFn: getBoolFormat },
|
||||
{ label: '洗车就绪', key: 'xcjxj', formatFn: getBoolFormat },
|
||||
{ label: '洗车允许', key: 'xcyxj', formatFn: getBoolFormat },
|
||||
{ label: '移动允许', key: 'cfjList', formatFn: getYXFormat },
|
||||
{ label: '紧急停车', key: 'jtj', formatFn: getBoolFormat },
|
||||
{ label: '通过允许', key: 'tgyxj', formatFn: getBoolFormat },
|
||||
];
|
||||
watch(
|
||||
() => lineStore.selectedGraphics,
|
||||
(val, oldVal) => {
|
||||
if (oldVal?.length == 1 && oldVal[0] instanceof CarWashing) {
|
||||
unSubscribeState(oldVal[0]);
|
||||
}
|
||||
if (val?.length == 1 && val[0] instanceof CarWashing) {
|
||||
copySelectGraphic = toRaw(val[0]);
|
||||
initCarWashingState(val[0]);
|
||||
} else {
|
||||
copySelectGraphic = null;
|
||||
carWashingState.value = new CarWashingState();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
if (lineStore.selectedGraphics) {
|
||||
initCarWashingState(lineStore.selectedGraphics[0] as CarWashing);
|
||||
}
|
||||
});
|
||||
|
||||
function getNameFormat() {
|
||||
console.log(code.value, '1111111');
|
||||
return code.value;
|
||||
}
|
||||
|
||||
function getBoolFormat(v: boolean) {
|
||||
return v ? '是' : '否';
|
||||
}
|
||||
function getTwFormat(v: boolean[]) {
|
||||
if (v.length === 2) {
|
||||
return `头部${v[0] ? '停稳' : '未停稳'};尾部${v[1] ? '停稳' : '未停稳'};`;
|
||||
} else if (v.length === 3) {
|
||||
return `头部${v[0] ? '停稳' : '未停稳'};中部${
|
||||
v[1] ? '停稳' : '未停稳'
|
||||
};尾部${v[2] ? '停稳' : '未停稳'};`;
|
||||
} else {
|
||||
return '状态显示错误';
|
||||
}
|
||||
}
|
||||
|
||||
function getYXFormat(v: boolean[]) {
|
||||
if (v.length === 2) {
|
||||
return `头部${v[0] ? '允许' : '不允许'};尾部${v[1] ? '允许' : '不允许'};`;
|
||||
} else if (v.length === 3) {
|
||||
return `头部${v[0] ? '允许' : '不允许'};中部${
|
||||
v[1] ? '允许' : '不允许'
|
||||
};尾部${v[2] ? '允许' : '不允许'};`;
|
||||
} else {
|
||||
return '状态显示错误';
|
||||
}
|
||||
}
|
||||
|
||||
function initCarWashingState(carWashing: CarWashing) {
|
||||
copySelectGraphic = toRaw(carWashing);
|
||||
code.value = carWashing.datas.code;
|
||||
console.log(code.value, carWashing);
|
||||
|
||||
updateState(carWashing);
|
||||
subscribeState(carWashing);
|
||||
}
|
||||
|
||||
function updateState(carWashing: CarWashing) {
|
||||
carWashingState.value = carWashing.states.clone() as CarWashingState;
|
||||
carWashingFault.value = carWashingState.value.param.fault;
|
||||
}
|
||||
|
||||
function doCarWashingOperation(item: {
|
||||
label: string;
|
||||
value: request.Xcj.Operation;
|
||||
}) {
|
||||
if (!lineStore.simulationId) return;
|
||||
if (item.label == '设置参数') {
|
||||
if (lineStore.deviceOpreratDialogInstance) return;
|
||||
lineStore.deviceOpreratDialogInstance = Dialog.create({
|
||||
component: XcjOperation,
|
||||
componentProps: {
|
||||
id: +carWashingState.value.id,
|
||||
code: code.value,
|
||||
xcjFaultProp: carWashingState.value.param.fault,
|
||||
},
|
||||
cancel: true,
|
||||
persistent: true,
|
||||
}).onCancel(() => {
|
||||
lineStore.deviceOpreratDialogInstance = null;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function subscribeState(g: CarWashing) {
|
||||
g.on('stateupdate', updateState);
|
||||
}
|
||||
|
||||
function unSubscribeState(g: CarWashing) {
|
||||
g.off('stateupdate', updateState);
|
||||
}
|
||||
|
||||
onUnmounted(() => {
|
||||
if (copySelectGraphic) {
|
||||
unSubscribeState(copySelectGraphic);
|
||||
}
|
||||
});
|
||||
</script>
|
@ -104,7 +104,6 @@ watch(
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
console.log('1111111111');
|
||||
if (lineStore.selectedGraphics) {
|
||||
initFloodGateState(lineStore.selectedGraphics[0] as FloodGate);
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ function getHost(): string {
|
||||
// return '192.168.3.7:9091';
|
||||
// return '192.168.3.47:9091';
|
||||
// return '192.168.3.37:9091';
|
||||
//return '192.168.33.207:9091'; // 张骞
|
||||
return '192.168.33.207:9091'; // 张骞
|
||||
// return '192.168.33.93:9091';
|
||||
// return '192.168.3.37:9091'; //卫志宏
|
||||
// return 'test.joylink.club/bjrtsts-service'; // 测试
|
||||
|
@ -142,7 +142,10 @@ import { Dialog } from 'quasar';
|
||||
import { useDrawStore } from 'src/stores/draw-store';
|
||||
import { saveDraft } from 'src/api/DraftApi';
|
||||
import { SignalDraw } from 'src/graphics/signal/SignalDrawAssistant';
|
||||
import { CarWashingData } from './graphics/CarWashingInteraction';
|
||||
import {
|
||||
CarWashingData,
|
||||
CarWashingState,
|
||||
} from './graphics/CarWashingInteraction';
|
||||
import {
|
||||
CarWashing,
|
||||
CarWashingTemplate,
|
||||
@ -246,7 +249,10 @@ export function initCommonDrawApp(app: IDrawApp) {
|
||||
app,
|
||||
new ConcentrationDividingLineTemplate(new ConcentrationDividingLineData())
|
||||
);
|
||||
new CarWashingDraw(app, new CarWashingTemplate(new CarWashingData()));
|
||||
new CarWashingDraw(
|
||||
app,
|
||||
new CarWashingTemplate(new CarWashingData(), new CarWashingState())
|
||||
);
|
||||
new GarageDoorDraw(
|
||||
app,
|
||||
new GarageDoorTemplate(new GarageDoorData(), new GarageDoorState())
|
||||
|
@ -1,13 +1,25 @@
|
||||
import * as pb_1 from 'google-protobuf';
|
||||
import { FederatedMouseEvent } from 'pixi.js';
|
||||
import { FederatedMouseEvent, DisplayObject } from 'pixi.js';
|
||||
import {
|
||||
CarWashing,
|
||||
ICarWashingData,
|
||||
ICarWashingState,
|
||||
} from 'src/graphics/carWashing/CarWashing';
|
||||
import { GraphicInteractionPlugin, JlGraphic, IGraphicScene } from 'jl-graphic';
|
||||
import {
|
||||
GraphicInteractionPlugin,
|
||||
JlGraphic,
|
||||
IGraphicScene,
|
||||
MenuItemOptions,
|
||||
ContextMenu,
|
||||
} from 'jl-graphic';
|
||||
|
||||
import { graphicData } from 'src/protos/stationLayoutGraphics';
|
||||
import { GraphicDataBase } from './GraphicDataBase';
|
||||
import { GraphicDataBase, GraphicStateBase } from './GraphicDataBase';
|
||||
import { state } from 'src/protos/device_state';
|
||||
import { request } from 'src/protos/request';
|
||||
import { useLineStore } from 'src/stores/line-store';
|
||||
import { Dialog } from 'quasar';
|
||||
import XcjOperation from 'src/components/draw-app/dialogs/XcjOperation.vue';
|
||||
|
||||
export class CarWashingData extends GraphicDataBase implements ICarWashingData {
|
||||
constructor(data?: graphicData.CarWashing) {
|
||||
@ -60,10 +72,110 @@ export class CarWashingData extends GraphicDataBase implements ICarWashingData {
|
||||
}
|
||||
}
|
||||
|
||||
export class CarWashingState
|
||||
extends GraphicStateBase
|
||||
implements ICarWashingState
|
||||
{
|
||||
constructor(proto?: state.XcjState) {
|
||||
let states;
|
||||
if (proto) {
|
||||
states = proto;
|
||||
} else {
|
||||
states = new state.XcjState();
|
||||
}
|
||||
super(states, CarWashing.Type);
|
||||
}
|
||||
get code(): string {
|
||||
return this.states.id + '';
|
||||
}
|
||||
get id(): number {
|
||||
return this.states.id;
|
||||
}
|
||||
set id(id: number) {
|
||||
this.states.id = id;
|
||||
}
|
||||
get param(): request.XcjParam {
|
||||
return this.states.param;
|
||||
}
|
||||
set param(param: request.XcjParam) {
|
||||
this.states.param = param;
|
||||
}
|
||||
get xqj(): boolean {
|
||||
return this.states.xqj;
|
||||
}
|
||||
set xqj(v: boolean) {
|
||||
this.states.xqj = v;
|
||||
}
|
||||
get twjList(): boolean[] {
|
||||
return this.states.twjList;
|
||||
}
|
||||
set twjList(v: boolean[]) {
|
||||
this.states.twjList = v;
|
||||
}
|
||||
get tgqj(): boolean {
|
||||
return this.states.tgqj;
|
||||
}
|
||||
set tgqj(v: boolean) {
|
||||
this.states.tgqj = v;
|
||||
}
|
||||
get xcjxj(): boolean {
|
||||
return this.states.xcjxj;
|
||||
}
|
||||
set xcjxj(v: boolean) {
|
||||
this.states.xcjxj = v;
|
||||
}
|
||||
get xcyxj(): boolean {
|
||||
return this.states.xcyxj;
|
||||
}
|
||||
set xcyxj(v: boolean) {
|
||||
this.states.xcyxj = v;
|
||||
}
|
||||
get cfjList(): boolean[] {
|
||||
return this.states.cfjList;
|
||||
}
|
||||
set cfjList(v: boolean[]) {
|
||||
this.states.cfjList = v;
|
||||
}
|
||||
get jtj(): boolean {
|
||||
return this.states.jtj;
|
||||
}
|
||||
set jtj(v: boolean) {
|
||||
this.states.jtj = v;
|
||||
}
|
||||
get tgyxj(): boolean {
|
||||
return this.states.tgyxj;
|
||||
}
|
||||
set tgyxj(v: boolean) {
|
||||
this.states.tgyxj = v;
|
||||
}
|
||||
get states(): state.XcjState {
|
||||
return this.getState<state.XcjState>();
|
||||
}
|
||||
clone(): CarWashingState {
|
||||
return new CarWashingState(this.states.cloneMessage());
|
||||
}
|
||||
copyFrom(data: GraphicStateBase): void {
|
||||
pb_1.Message.copyInto(data._state, this._state);
|
||||
}
|
||||
eq(data: GraphicStateBase): boolean {
|
||||
return pb_1.Message.equals(this._state, data._state);
|
||||
}
|
||||
}
|
||||
|
||||
const setXcjParam: MenuItemOptions = { name: '设置参数' };
|
||||
const xcjOperateMenu: ContextMenu = ContextMenu.init({
|
||||
name: '洗车机操作菜单',
|
||||
groups: [
|
||||
{
|
||||
items: [setXcjParam],
|
||||
},
|
||||
],
|
||||
});
|
||||
export class CarWashingOperationInteraction extends GraphicInteractionPlugin<CarWashing> {
|
||||
static Name = 'car_washing_operation';
|
||||
constructor(scene: IGraphicScene) {
|
||||
super(CarWashingOperationInteraction.Name, scene);
|
||||
scene.registerMenu(xcjOperateMenu);
|
||||
}
|
||||
static init(scene: IGraphicScene) {
|
||||
return new CarWashingOperationInteraction(scene);
|
||||
@ -74,12 +186,16 @@ export class CarWashingOperationInteraction extends GraphicInteractionPlugin<Car
|
||||
bind(g: CarWashing): void {
|
||||
g.eventMode = 'static';
|
||||
g.cursor = 'pointer';
|
||||
g.selectable = true;
|
||||
g.on('mousedown', this.onPress, this);
|
||||
g.on('_rightclick', this.onContextMenu);
|
||||
}
|
||||
unbind(g: CarWashing): void {
|
||||
g.eventMode = 'none';
|
||||
g.cursor = 'default';
|
||||
g.selectable = false;
|
||||
g.off('mousedown', this.onPress, this);
|
||||
g.off('_rightclick', this.onContextMenu);
|
||||
}
|
||||
onPress(e: FederatedMouseEvent) {
|
||||
const g = e.target as CarWashing;
|
||||
@ -91,4 +207,25 @@ export class CarWashingOperationInteraction extends GraphicInteractionPlugin<Car
|
||||
g.off('mouseleave', this.onRelease, this);
|
||||
g.off('mouseup', this.onRelease, this);
|
||||
}
|
||||
|
||||
onContextMenu(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const carWashing = target.getGraphic<CarWashing>();
|
||||
if (!carWashing) return;
|
||||
const lineStore = useLineStore();
|
||||
setXcjParam.handler = async () => {
|
||||
if (lineStore.deviceOpreratDialogInstance) return;
|
||||
lineStore.deviceOpreratDialogInstance = Dialog.create({
|
||||
component: XcjOperation,
|
||||
componentProps: {
|
||||
id: carWashing.id,
|
||||
code: carWashing.datas.code,
|
||||
xcjFaultProp: carWashing.states.param.fault,
|
||||
},
|
||||
cancel: true,
|
||||
persistent: true,
|
||||
});
|
||||
};
|
||||
xcjOperateMenu.open(e.global);
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import {
|
||||
} from 'src/graphics/signal/Signal';
|
||||
import {
|
||||
CarWashingData,
|
||||
CarWashingState,
|
||||
CarWashingOperationInteraction,
|
||||
} from './graphics/CarWashingInteraction';
|
||||
import {
|
||||
@ -327,7 +328,7 @@ export function initLineScene(lineApp: IGraphicApp, sceneName: string) {
|
||||
new AutoReturnBoxData(),
|
||||
new AutoReturnBoxState()
|
||||
),
|
||||
new CarWashingTemplate(new CarWashingData()),
|
||||
new CarWashingTemplate(new CarWashingData(), new CarWashingState()),
|
||||
new GarageDoorTemplate(new GarageDoorData(), new GarageDoorState()),
|
||||
new FloodGateTemplate(new FloodGateData(), new FloodGateState()),
|
||||
];
|
||||
@ -464,6 +465,11 @@ function handleSubscribe(lineScene: IGraphicScene) {
|
||||
states.push(new FloodGateState(item));
|
||||
}
|
||||
});
|
||||
storage.allStatus.xcjStates.forEach((item) => {
|
||||
if (item.id) {
|
||||
states.push(new CarWashingState(item));
|
||||
}
|
||||
});
|
||||
storage.allStatus.trainState.forEach((item) => {
|
||||
// 列车
|
||||
if (!item.show) {
|
||||
|
@ -1,12 +1,14 @@
|
||||
import { Graphics } from 'pixi.js';
|
||||
import {
|
||||
GraphicData,
|
||||
GraphicState,
|
||||
JlGraphic,
|
||||
JlGraphicTemplate,
|
||||
VectorText,
|
||||
linePoint,
|
||||
} from 'jl-graphic';
|
||||
import { Section, SectionType } from '../section/Section';
|
||||
import { request } from 'src/protos/request';
|
||||
|
||||
export interface ICarWashingData extends GraphicData {
|
||||
get code(): string;
|
||||
@ -21,6 +23,28 @@ export interface ICarWashingData extends GraphicData {
|
||||
copyFrom(data: ICarWashingData): void;
|
||||
eq(other: ICarWashingData): boolean;
|
||||
}
|
||||
export interface ICarWashingState extends GraphicState {
|
||||
get id(): number;
|
||||
set id(v: number);
|
||||
get param(): request.XcjParam;
|
||||
set param(v: request.XcjParam);
|
||||
get xqj(): boolean; //洗车请求
|
||||
set xqj(v: boolean);
|
||||
get twjList(): boolean[]; //停稳
|
||||
set twjList(v: boolean[]);
|
||||
get tgqj(): boolean; //通过请求
|
||||
set tgqj(v: boolean);
|
||||
get xcjxj(): boolean; //洗车就绪
|
||||
set xcjxj(v: boolean);
|
||||
get xcyxj(): boolean; //洗车允许
|
||||
set xcyxj(v: boolean);
|
||||
get cfjList(): boolean[]; //移动允许
|
||||
set cfjList(v: boolean[]);
|
||||
get jtj(): boolean; //紧急停车
|
||||
set jtj(v: boolean);
|
||||
get tgyxj(): boolean; //通过允许
|
||||
set tgyxj(v: boolean);
|
||||
}
|
||||
|
||||
const carWashingConsts = {
|
||||
codeFontSize: 12,
|
||||
@ -48,6 +72,9 @@ export class CarWashing extends JlGraphic {
|
||||
get datas(): ICarWashingData {
|
||||
return this.getDatas<ICarWashingData>();
|
||||
}
|
||||
get states(): ICarWashingState {
|
||||
return this.getStates<ICarWashingState>();
|
||||
}
|
||||
doRepaint(): void {
|
||||
const codeGraph = this.codeGraph;
|
||||
codeGraph.text = this.datas.code;
|
||||
@ -106,12 +133,13 @@ export class CarWashing extends JlGraphic {
|
||||
}
|
||||
|
||||
export class CarWashingTemplate extends JlGraphicTemplate<CarWashing> {
|
||||
constructor(dataTemplate: ICarWashingData) {
|
||||
super(CarWashing.Type, { dataTemplate });
|
||||
constructor(dataTemplate: ICarWashingData, stateTemplate?: ICarWashingState) {
|
||||
super(CarWashing.Type, { dataTemplate, stateTemplate });
|
||||
}
|
||||
new(): CarWashing {
|
||||
const carWashing = new CarWashing();
|
||||
carWashing.loadData(this.datas);
|
||||
carWashing.loadState(this.states);
|
||||
return carWashing;
|
||||
}
|
||||
}
|
||||
|
@ -702,7 +702,7 @@ const garageDoorCjList = [
|
||||
const floodGateCjList = garageDoorCjList;
|
||||
|
||||
//洗车机
|
||||
const carWashingCjList = [
|
||||
const threecarWashingCjList = [
|
||||
{
|
||||
code: 'XCJ1',
|
||||
refDeviceCodesAndPos: [
|
||||
@ -743,13 +743,13 @@ const carWashingCjList = [
|
||||
refDeviceCodesAndPos: [
|
||||
[
|
||||
{
|
||||
code: 'XCIXJ',
|
||||
code: 'XCJXJ',
|
||||
position: PostionType.Q,
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
code: 'XCIXJ',
|
||||
code: 'XCJXJ',
|
||||
position: PostionType.H,
|
||||
},
|
||||
],
|
||||
@ -829,6 +829,24 @@ const carWashingCjList = [
|
||||
},
|
||||
];
|
||||
|
||||
const twocarWashingCjList = threecarWashingCjList.map((cjData) => ({
|
||||
code: cjData.code,
|
||||
refDeviceCodesAndPos: cjData.refDeviceCodesAndPos
|
||||
.map((device) =>
|
||||
device.filter((item) => item.code !== 'TWJ3' && item.code !== 'CFJ3')
|
||||
)
|
||||
.filter((item) => item.length > 0),
|
||||
}));
|
||||
|
||||
const onecarWashingCjList = twocarWashingCjList.map((cjData) => ({
|
||||
code: cjData.code,
|
||||
refDeviceCodesAndPos: cjData.refDeviceCodesAndPos
|
||||
.map((device) =>
|
||||
device.filter((item) => item.code !== 'TWJ2' && item.code !== 'CFJ2')
|
||||
)
|
||||
.filter((item) => item.length > 0),
|
||||
}));
|
||||
|
||||
const DeviceType = graphicData.RelatedRef.DeviceType;
|
||||
export const ciCjMap = new Map<string, CjData[]>([
|
||||
[
|
||||
@ -872,6 +890,8 @@ export const ciCjMap = new Map<string, CjData[]>([
|
||||
[`${DeviceType.Breakers}+undefined`, breakersCjList],
|
||||
[`${DeviceType.PowerScreen}+undefined`, powerScreenCjList],
|
||||
[`${DeviceType.GarageDoor}+undefined`, garageDoorCjList],
|
||||
[`${DeviceType.CarWashing}+undefined`, carWashingCjList],
|
||||
[`${DeviceType.CarWashing}+3`, threecarWashingCjList],
|
||||
[`${DeviceType.CarWashing}+2`, twocarWashingCjList],
|
||||
[`${DeviceType.CarWashing}+1`, onecarWashingCjList],
|
||||
[`${DeviceType.FloodGate}+undefined`, floodGateCjList],
|
||||
]);
|
||||
|
@ -105,13 +105,27 @@ const garageDoorQdList = [
|
||||
|
||||
const floodGateQdList = garageDoorQdList;
|
||||
|
||||
const carWashingQdList = [
|
||||
const threecarWashingQdList = [
|
||||
{
|
||||
code: 'XCJ1',
|
||||
refDeviceCodes: [['XQJ'], ['TWJ1'], ['TWJ2'], ['TWJ3'], ['TGQJ']],
|
||||
},
|
||||
];
|
||||
|
||||
const twocarWashingQdList = [
|
||||
{
|
||||
code: 'XCJ1',
|
||||
refDeviceCodes: [['XQJ'], ['TWJ1'], ['TWJ2'], ['TGQJ']],
|
||||
},
|
||||
];
|
||||
|
||||
const onecarWashingQdList = [
|
||||
{
|
||||
code: 'XCJ1',
|
||||
refDeviceCodes: [['XQJ'], ['TWJ1'], ['TGQJ']],
|
||||
},
|
||||
];
|
||||
|
||||
watch(changeScreenDoorGroup, (group) => {
|
||||
downScreenDoorQdList[0].refDeviceCodes = [['XGMJ']];
|
||||
if (group?.length == 1) {
|
||||
@ -177,6 +191,8 @@ export const ciQdMap = new Map<string, QdData[]>([
|
||||
[`${DeviceType.ScreenDoor}+down`, downScreenDoorQdList],
|
||||
[`${DeviceType.ScreenDoor}+up`, upScreenDoorQdList],
|
||||
[`${DeviceType.GarageDoor}+undefined`, garageDoorQdList],
|
||||
[`${DeviceType.CarWashing}+undefined`, carWashingQdList],
|
||||
[`${DeviceType.CarWashing}+3`, threecarWashingQdList],
|
||||
[`${DeviceType.CarWashing}+2`, twocarWashingQdList],
|
||||
[`${DeviceType.CarWashing}+1`, onecarWashingQdList],
|
||||
[`${DeviceType.FloodGate}+undefined`, floodGateQdList],
|
||||
]);
|
||||
|
@ -468,7 +468,7 @@ const garageDoorCombinations = [
|
||||
const floodGateCombinations = garageDoorCombinations;
|
||||
|
||||
//洗车机
|
||||
const carWashingCombinations = [
|
||||
const threeCarWashingCombinations = [
|
||||
{
|
||||
code: 'XCJ1',
|
||||
refDeviceCodesAndModel: [
|
||||
@ -498,7 +498,7 @@ const carWashingCombinations = [
|
||||
code: 'XCJ2',
|
||||
refDeviceCodesAndModel: [
|
||||
{
|
||||
code: 'XCIXJ',
|
||||
code: 'XCJXJ',
|
||||
model: RelayModelType.JWXC_1700,
|
||||
},
|
||||
{
|
||||
@ -529,6 +529,24 @@ const carWashingCombinations = [
|
||||
},
|
||||
];
|
||||
|
||||
const twoCarWashingCombinations = threeCarWashingCombinations.map(
|
||||
(combination) => ({
|
||||
code: combination.code,
|
||||
refDeviceCodesAndModel: combination.refDeviceCodesAndModel.filter(
|
||||
(item) => item.code !== 'TWJ3' && item.code !== 'CFJ3'
|
||||
),
|
||||
})
|
||||
);
|
||||
|
||||
const oneCarWashingCombinations = twoCarWashingCombinations.map(
|
||||
(combination) => ({
|
||||
code: combination.code,
|
||||
refDeviceCodesAndModel: combination.refDeviceCodesAndModel.filter(
|
||||
(item) => item.code !== 'TWJ2' && item.code !== 'CFJ2'
|
||||
),
|
||||
})
|
||||
);
|
||||
|
||||
const DeviceType = graphicData.RelatedRef.DeviceType;
|
||||
export const combinationsMap = new Map<string, Combinationtype[]>([
|
||||
[
|
||||
@ -572,6 +590,8 @@ export const combinationsMap = new Map<string, Combinationtype[]>([
|
||||
[`${DeviceType.Breakers}`, breakersCombinations],
|
||||
[`${DeviceType.PowerScreen}`, powerScreenCombinations],
|
||||
[`${DeviceType.GarageDoor}`, garageDoorCombinations],
|
||||
[`${DeviceType.CarWashing}`, carWashingCombinations],
|
||||
[`${DeviceType.CarWashing + '+' + '3'}`, threeCarWashingCombinations],
|
||||
[`${DeviceType.CarWashing + '+' + '2'}`, twoCarWashingCombinations],
|
||||
[`${DeviceType.CarWashing + '+' + '1'}`, oneCarWashingCombinations],
|
||||
[`${DeviceType.FloodGate}`, floodGateCombinations],
|
||||
]);
|
||||
|
@ -770,8 +770,9 @@ function oneClickGeneraterRelayLayout() {
|
||||
});
|
||||
//洗车机
|
||||
storage.carWashings.forEach((carWashing) => {
|
||||
const duanNum = carWashing.duanNum || 3;
|
||||
const deviceCombinations = combinationsMap.get(
|
||||
`${DeviceType.CarWashing}`
|
||||
`${DeviceType.CarWashing}+${duanNum}`
|
||||
);
|
||||
if (
|
||||
carWashing.centralizedStations.includes(concentrationStation) &&
|
||||
@ -782,6 +783,10 @@ function oneClickGeneraterRelayLayout() {
|
||||
DeviceType.CarWashing,
|
||||
carWashing.code
|
||||
);
|
||||
allDeviceModelMap.set(
|
||||
`${DeviceType.CarWashing}+${carWashing.code}`,
|
||||
`${carWashing.duanNum}`
|
||||
);
|
||||
}
|
||||
});
|
||||
//信号机故障报警仪-电源屏-断路器
|
||||
|
@ -6989,6 +6989,283 @@ export namespace state {
|
||||
return CkmState.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
export class XcjState extends pb_1.Message {
|
||||
#one_of_decls: number[][] = [];
|
||||
constructor(data?: any[] | {
|
||||
id?: number;
|
||||
param?: dependency_3.request.XcjParam;
|
||||
xqj?: boolean;
|
||||
twjList?: boolean[];
|
||||
tgqj?: boolean;
|
||||
xcjxj?: boolean;
|
||||
xcyxj?: boolean;
|
||||
cfjList?: boolean[];
|
||||
jtj?: boolean;
|
||||
tgyxj?: boolean;
|
||||
}) {
|
||||
super();
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [4, 8], this.#one_of_decls);
|
||||
if (!Array.isArray(data) && typeof data == "object") {
|
||||
if ("id" in data && data.id != undefined) {
|
||||
this.id = data.id;
|
||||
}
|
||||
if ("param" in data && data.param != undefined) {
|
||||
this.param = data.param;
|
||||
}
|
||||
if ("xqj" in data && data.xqj != undefined) {
|
||||
this.xqj = data.xqj;
|
||||
}
|
||||
if ("twjList" in data && data.twjList != undefined) {
|
||||
this.twjList = data.twjList;
|
||||
}
|
||||
if ("tgqj" in data && data.tgqj != undefined) {
|
||||
this.tgqj = data.tgqj;
|
||||
}
|
||||
if ("xcjxj" in data && data.xcjxj != undefined) {
|
||||
this.xcjxj = data.xcjxj;
|
||||
}
|
||||
if ("xcyxj" in data && data.xcyxj != undefined) {
|
||||
this.xcyxj = data.xcyxj;
|
||||
}
|
||||
if ("cfjList" in data && data.cfjList != undefined) {
|
||||
this.cfjList = data.cfjList;
|
||||
}
|
||||
if ("jtj" in data && data.jtj != undefined) {
|
||||
this.jtj = data.jtj;
|
||||
}
|
||||
if ("tgyxj" in data && data.tgyxj != undefined) {
|
||||
this.tgyxj = data.tgyxj;
|
||||
}
|
||||
}
|
||||
}
|
||||
get id() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
|
||||
}
|
||||
set id(value: number) {
|
||||
pb_1.Message.setField(this, 1, value);
|
||||
}
|
||||
get param() {
|
||||
return pb_1.Message.getWrapperField(this, dependency_3.request.XcjParam, 2) as dependency_3.request.XcjParam;
|
||||
}
|
||||
set param(value: dependency_3.request.XcjParam) {
|
||||
pb_1.Message.setWrapperField(this, 2, value);
|
||||
}
|
||||
get has_param() {
|
||||
return pb_1.Message.getField(this, 2) != null;
|
||||
}
|
||||
get xqj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 3, false) as boolean;
|
||||
}
|
||||
set xqj(value: boolean) {
|
||||
pb_1.Message.setField(this, 3, value);
|
||||
}
|
||||
get twjList() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 4, []) as boolean[];
|
||||
}
|
||||
set twjList(value: boolean[]) {
|
||||
pb_1.Message.setField(this, 4, value);
|
||||
}
|
||||
get tgqj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 5, false) as boolean;
|
||||
}
|
||||
set tgqj(value: boolean) {
|
||||
pb_1.Message.setField(this, 5, value);
|
||||
}
|
||||
get xcjxj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 6, false) as boolean;
|
||||
}
|
||||
set xcjxj(value: boolean) {
|
||||
pb_1.Message.setField(this, 6, value);
|
||||
}
|
||||
get xcyxj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 7, false) as boolean;
|
||||
}
|
||||
set xcyxj(value: boolean) {
|
||||
pb_1.Message.setField(this, 7, value);
|
||||
}
|
||||
get cfjList() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 8, []) as boolean[];
|
||||
}
|
||||
set cfjList(value: boolean[]) {
|
||||
pb_1.Message.setField(this, 8, value);
|
||||
}
|
||||
get jtj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 9, false) as boolean;
|
||||
}
|
||||
set jtj(value: boolean) {
|
||||
pb_1.Message.setField(this, 9, value);
|
||||
}
|
||||
get tgyxj() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 10, false) as boolean;
|
||||
}
|
||||
set tgyxj(value: boolean) {
|
||||
pb_1.Message.setField(this, 10, value);
|
||||
}
|
||||
static fromObject(data: {
|
||||
id?: number;
|
||||
param?: ReturnType<typeof dependency_3.request.XcjParam.prototype.toObject>;
|
||||
xqj?: boolean;
|
||||
twjList?: boolean[];
|
||||
tgqj?: boolean;
|
||||
xcjxj?: boolean;
|
||||
xcyxj?: boolean;
|
||||
cfjList?: boolean[];
|
||||
jtj?: boolean;
|
||||
tgyxj?: boolean;
|
||||
}): XcjState {
|
||||
const message = new XcjState({});
|
||||
if (data.id != null) {
|
||||
message.id = data.id;
|
||||
}
|
||||
if (data.param != null) {
|
||||
message.param = dependency_3.request.XcjParam.fromObject(data.param);
|
||||
}
|
||||
if (data.xqj != null) {
|
||||
message.xqj = data.xqj;
|
||||
}
|
||||
if (data.twjList != null) {
|
||||
message.twjList = data.twjList;
|
||||
}
|
||||
if (data.tgqj != null) {
|
||||
message.tgqj = data.tgqj;
|
||||
}
|
||||
if (data.xcjxj != null) {
|
||||
message.xcjxj = data.xcjxj;
|
||||
}
|
||||
if (data.xcyxj != null) {
|
||||
message.xcyxj = data.xcyxj;
|
||||
}
|
||||
if (data.cfjList != null) {
|
||||
message.cfjList = data.cfjList;
|
||||
}
|
||||
if (data.jtj != null) {
|
||||
message.jtj = data.jtj;
|
||||
}
|
||||
if (data.tgyxj != null) {
|
||||
message.tgyxj = data.tgyxj;
|
||||
}
|
||||
return message;
|
||||
}
|
||||
toObject() {
|
||||
const data: {
|
||||
id?: number;
|
||||
param?: ReturnType<typeof dependency_3.request.XcjParam.prototype.toObject>;
|
||||
xqj?: boolean;
|
||||
twjList?: boolean[];
|
||||
tgqj?: boolean;
|
||||
xcjxj?: boolean;
|
||||
xcyxj?: boolean;
|
||||
cfjList?: boolean[];
|
||||
jtj?: boolean;
|
||||
tgyxj?: boolean;
|
||||
} = {};
|
||||
if (this.id != null) {
|
||||
data.id = this.id;
|
||||
}
|
||||
if (this.param != null) {
|
||||
data.param = this.param.toObject();
|
||||
}
|
||||
if (this.xqj != null) {
|
||||
data.xqj = this.xqj;
|
||||
}
|
||||
if (this.twjList != null) {
|
||||
data.twjList = this.twjList;
|
||||
}
|
||||
if (this.tgqj != null) {
|
||||
data.tgqj = this.tgqj;
|
||||
}
|
||||
if (this.xcjxj != null) {
|
||||
data.xcjxj = this.xcjxj;
|
||||
}
|
||||
if (this.xcyxj != null) {
|
||||
data.xcyxj = this.xcyxj;
|
||||
}
|
||||
if (this.cfjList != null) {
|
||||
data.cfjList = this.cfjList;
|
||||
}
|
||||
if (this.jtj != null) {
|
||||
data.jtj = this.jtj;
|
||||
}
|
||||
if (this.tgyxj != null) {
|
||||
data.tgyxj = this.tgyxj;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
serialize(): Uint8Array;
|
||||
serialize(w: pb_1.BinaryWriter): void;
|
||||
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
|
||||
const writer = w || new pb_1.BinaryWriter();
|
||||
if (this.id != 0)
|
||||
writer.writeUint32(1, this.id);
|
||||
if (this.has_param)
|
||||
writer.writeMessage(2, this.param, () => this.param.serialize(writer));
|
||||
if (this.xqj != false)
|
||||
writer.writeBool(3, this.xqj);
|
||||
if (this.twjList.length)
|
||||
writer.writePackedBool(4, this.twjList);
|
||||
if (this.tgqj != false)
|
||||
writer.writeBool(5, this.tgqj);
|
||||
if (this.xcjxj != false)
|
||||
writer.writeBool(6, this.xcjxj);
|
||||
if (this.xcyxj != false)
|
||||
writer.writeBool(7, this.xcyxj);
|
||||
if (this.cfjList.length)
|
||||
writer.writePackedBool(8, this.cfjList);
|
||||
if (this.jtj != false)
|
||||
writer.writeBool(9, this.jtj);
|
||||
if (this.tgyxj != false)
|
||||
writer.writeBool(10, this.tgyxj);
|
||||
if (!w)
|
||||
return writer.getResultBuffer();
|
||||
}
|
||||
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): XcjState {
|
||||
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new XcjState();
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup())
|
||||
break;
|
||||
switch (reader.getFieldNumber()) {
|
||||
case 1:
|
||||
message.id = reader.readUint32();
|
||||
break;
|
||||
case 2:
|
||||
reader.readMessage(message.param, () => message.param = dependency_3.request.XcjParam.deserialize(reader));
|
||||
break;
|
||||
case 3:
|
||||
message.xqj = reader.readBool();
|
||||
break;
|
||||
case 4:
|
||||
message.twjList = reader.readPackedBool();
|
||||
break;
|
||||
case 5:
|
||||
message.tgqj = reader.readBool();
|
||||
break;
|
||||
case 6:
|
||||
message.xcjxj = reader.readBool();
|
||||
break;
|
||||
case 7:
|
||||
message.xcyxj = reader.readBool();
|
||||
break;
|
||||
case 8:
|
||||
message.cfjList = reader.readPackedBool();
|
||||
break;
|
||||
case 9:
|
||||
message.jtj = reader.readBool();
|
||||
break;
|
||||
case 10:
|
||||
message.tgyxj = reader.readBool();
|
||||
break;
|
||||
default: reader.skipField();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
serializeBinary(): Uint8Array {
|
||||
return this.serialize();
|
||||
}
|
||||
static deserializeBinary(bytes: Uint8Array): XcjState {
|
||||
return XcjState.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
export class VariationStatus extends pb_1.Message {
|
||||
#one_of_decls: number[][] = [];
|
||||
constructor(data?: any[] | {
|
||||
@ -7166,9 +7443,10 @@ export namespace state {
|
||||
stationQc?: StationQc;
|
||||
ckmStates?: CkmState[];
|
||||
fymStates?: CkmState[];
|
||||
xcjStates?: XcjState[];
|
||||
}) {
|
||||
super();
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], this.#one_of_decls);
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], this.#one_of_decls);
|
||||
if (!Array.isArray(data) && typeof data == "object") {
|
||||
if ("trainState" in data && data.trainState != undefined) {
|
||||
this.trainState = data.trainState;
|
||||
@ -7215,6 +7493,9 @@ export namespace state {
|
||||
if ("fymStates" in data && data.fymStates != undefined) {
|
||||
this.fymStates = data.fymStates;
|
||||
}
|
||||
if ("xcjStates" in data && data.xcjStates != undefined) {
|
||||
this.xcjStates = data.xcjStates;
|
||||
}
|
||||
}
|
||||
}
|
||||
get trainState() {
|
||||
@ -7310,6 +7591,12 @@ export namespace state {
|
||||
set fymStates(value: CkmState[]) {
|
||||
pb_1.Message.setRepeatedWrapperField(this, 15, value);
|
||||
}
|
||||
get xcjStates() {
|
||||
return pb_1.Message.getRepeatedWrapperField(this, XcjState, 16) as XcjState[];
|
||||
}
|
||||
set xcjStates(value: XcjState[]) {
|
||||
pb_1.Message.setRepeatedWrapperField(this, 16, value);
|
||||
}
|
||||
static fromObject(data: {
|
||||
trainState?: ReturnType<typeof TrainMapState.prototype.toObject>[];
|
||||
switchState?: ReturnType<typeof SwitchState.prototype.toObject>[];
|
||||
@ -7326,6 +7613,7 @@ export namespace state {
|
||||
stationQc?: ReturnType<typeof StationQc.prototype.toObject>;
|
||||
ckmStates?: ReturnType<typeof CkmState.prototype.toObject>[];
|
||||
fymStates?: ReturnType<typeof CkmState.prototype.toObject>[];
|
||||
xcjStates?: ReturnType<typeof XcjState.prototype.toObject>[];
|
||||
}): AllDevicesStatus {
|
||||
const message = new AllDevicesStatus({});
|
||||
if (data.trainState != null) {
|
||||
@ -7373,6 +7661,9 @@ export namespace state {
|
||||
if (data.fymStates != null) {
|
||||
message.fymStates = data.fymStates.map(item => CkmState.fromObject(item));
|
||||
}
|
||||
if (data.xcjStates != null) {
|
||||
message.xcjStates = data.xcjStates.map(item => XcjState.fromObject(item));
|
||||
}
|
||||
return message;
|
||||
}
|
||||
toObject() {
|
||||
@ -7392,6 +7683,7 @@ export namespace state {
|
||||
stationQc?: ReturnType<typeof StationQc.prototype.toObject>;
|
||||
ckmStates?: ReturnType<typeof CkmState.prototype.toObject>[];
|
||||
fymStates?: ReturnType<typeof CkmState.prototype.toObject>[];
|
||||
xcjStates?: ReturnType<typeof XcjState.prototype.toObject>[];
|
||||
} = {};
|
||||
if (this.trainState != null) {
|
||||
data.trainState = this.trainState.map((item: TrainMapState) => item.toObject());
|
||||
@ -7438,6 +7730,9 @@ export namespace state {
|
||||
if (this.fymStates != null) {
|
||||
data.fymStates = this.fymStates.map((item: CkmState) => item.toObject());
|
||||
}
|
||||
if (this.xcjStates != null) {
|
||||
data.xcjStates = this.xcjStates.map((item: XcjState) => item.toObject());
|
||||
}
|
||||
return data;
|
||||
}
|
||||
serialize(): Uint8Array;
|
||||
@ -7474,6 +7769,8 @@ export namespace state {
|
||||
writer.writeRepeatedMessage(14, this.ckmStates, (item: CkmState) => item.serialize(writer));
|
||||
if (this.fymStates.length)
|
||||
writer.writeRepeatedMessage(15, this.fymStates, (item: CkmState) => item.serialize(writer));
|
||||
if (this.xcjStates.length)
|
||||
writer.writeRepeatedMessage(16, this.xcjStates, (item: XcjState) => item.serialize(writer));
|
||||
if (!w)
|
||||
return writer.getResultBuffer();
|
||||
}
|
||||
@ -7528,6 +7825,9 @@ export namespace state {
|
||||
case 15:
|
||||
reader.readMessage(message.fymStates, () => pb_1.Message.addToRepeatedWrapperField(message, 15, CkmState.deserialize(reader), CkmState));
|
||||
break;
|
||||
case 16:
|
||||
reader.readMessage(message.xcjStates, () => pb_1.Message.addToRepeatedWrapperField(message, 16, XcjState.deserialize(reader), XcjState));
|
||||
break;
|
||||
default: reader.skipField();
|
||||
}
|
||||
}
|
||||
|
@ -2264,14 +2264,14 @@ export namespace request {
|
||||
return CkmParam.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
export class CkmBoxOperationReq extends pb_1.Message {
|
||||
export class XcjOperationReq extends pb_1.Message {
|
||||
#one_of_decls: number[][] = [];
|
||||
constructor(data?: any[] | {
|
||||
simulationId?: string;
|
||||
mapId?: number;
|
||||
ckmBoxId?: number;
|
||||
buttonCode?: string;
|
||||
down?: boolean;
|
||||
deviceId?: number;
|
||||
operation?: Xcj.Operation;
|
||||
param?: XcjParam;
|
||||
}) {
|
||||
super();
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
|
||||
@ -2282,14 +2282,14 @@ export namespace request {
|
||||
if ("mapId" in data && data.mapId != undefined) {
|
||||
this.mapId = data.mapId;
|
||||
}
|
||||
if ("ckmBoxId" in data && data.ckmBoxId != undefined) {
|
||||
this.ckmBoxId = data.ckmBoxId;
|
||||
if ("deviceId" in data && data.deviceId != undefined) {
|
||||
this.deviceId = data.deviceId;
|
||||
}
|
||||
if ("buttonCode" in data && data.buttonCode != undefined) {
|
||||
this.buttonCode = data.buttonCode;
|
||||
if ("operation" in data && data.operation != undefined) {
|
||||
this.operation = data.operation;
|
||||
}
|
||||
if ("down" in data && data.down != undefined) {
|
||||
this.down = data.down;
|
||||
if ("param" in data && data.param != undefined) {
|
||||
this.param = data.param;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2305,46 +2305,49 @@ export namespace request {
|
||||
set mapId(value: number) {
|
||||
pb_1.Message.setField(this, 2, value);
|
||||
}
|
||||
get ckmBoxId() {
|
||||
get deviceId() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
|
||||
}
|
||||
set ckmBoxId(value: number) {
|
||||
set deviceId(value: number) {
|
||||
pb_1.Message.setField(this, 3, value);
|
||||
}
|
||||
get buttonCode() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
|
||||
get operation() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 4, Xcj.Operation.Undefined) as Xcj.Operation;
|
||||
}
|
||||
set buttonCode(value: string) {
|
||||
set operation(value: Xcj.Operation) {
|
||||
pb_1.Message.setField(this, 4, value);
|
||||
}
|
||||
get down() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 5, false) as boolean;
|
||||
get param() {
|
||||
return pb_1.Message.getWrapperField(this, XcjParam, 5) as XcjParam;
|
||||
}
|
||||
set down(value: boolean) {
|
||||
pb_1.Message.setField(this, 5, value);
|
||||
set param(value: XcjParam) {
|
||||
pb_1.Message.setWrapperField(this, 5, value);
|
||||
}
|
||||
get has_param() {
|
||||
return pb_1.Message.getField(this, 5) != null;
|
||||
}
|
||||
static fromObject(data: {
|
||||
simulationId?: string;
|
||||
mapId?: number;
|
||||
ckmBoxId?: number;
|
||||
buttonCode?: string;
|
||||
down?: boolean;
|
||||
}): CkmBoxOperationReq {
|
||||
const message = new CkmBoxOperationReq({});
|
||||
deviceId?: number;
|
||||
operation?: Xcj.Operation;
|
||||
param?: ReturnType<typeof XcjParam.prototype.toObject>;
|
||||
}): XcjOperationReq {
|
||||
const message = new XcjOperationReq({});
|
||||
if (data.simulationId != null) {
|
||||
message.simulationId = data.simulationId;
|
||||
}
|
||||
if (data.mapId != null) {
|
||||
message.mapId = data.mapId;
|
||||
}
|
||||
if (data.ckmBoxId != null) {
|
||||
message.ckmBoxId = data.ckmBoxId;
|
||||
if (data.deviceId != null) {
|
||||
message.deviceId = data.deviceId;
|
||||
}
|
||||
if (data.buttonCode != null) {
|
||||
message.buttonCode = data.buttonCode;
|
||||
if (data.operation != null) {
|
||||
message.operation = data.operation;
|
||||
}
|
||||
if (data.down != null) {
|
||||
message.down = data.down;
|
||||
if (data.param != null) {
|
||||
message.param = XcjParam.fromObject(data.param);
|
||||
}
|
||||
return message;
|
||||
}
|
||||
@ -2352,9 +2355,9 @@ export namespace request {
|
||||
const data: {
|
||||
simulationId?: string;
|
||||
mapId?: number;
|
||||
ckmBoxId?: number;
|
||||
buttonCode?: string;
|
||||
down?: boolean;
|
||||
deviceId?: number;
|
||||
operation?: Xcj.Operation;
|
||||
param?: ReturnType<typeof XcjParam.prototype.toObject>;
|
||||
} = {};
|
||||
if (this.simulationId != null) {
|
||||
data.simulationId = this.simulationId;
|
||||
@ -2362,14 +2365,14 @@ export namespace request {
|
||||
if (this.mapId != null) {
|
||||
data.mapId = this.mapId;
|
||||
}
|
||||
if (this.ckmBoxId != null) {
|
||||
data.ckmBoxId = this.ckmBoxId;
|
||||
if (this.deviceId != null) {
|
||||
data.deviceId = this.deviceId;
|
||||
}
|
||||
if (this.buttonCode != null) {
|
||||
data.buttonCode = this.buttonCode;
|
||||
if (this.operation != null) {
|
||||
data.operation = this.operation;
|
||||
}
|
||||
if (this.down != null) {
|
||||
data.down = this.down;
|
||||
if (this.param != null) {
|
||||
data.param = this.param.toObject();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@ -2381,17 +2384,17 @@ export namespace request {
|
||||
writer.writeString(1, this.simulationId);
|
||||
if (this.mapId != 0)
|
||||
writer.writeInt32(2, this.mapId);
|
||||
if (this.ckmBoxId != 0)
|
||||
writer.writeUint32(3, this.ckmBoxId);
|
||||
if (this.buttonCode.length)
|
||||
writer.writeString(4, this.buttonCode);
|
||||
if (this.down != false)
|
||||
writer.writeBool(5, this.down);
|
||||
if (this.deviceId != 0)
|
||||
writer.writeUint32(3, this.deviceId);
|
||||
if (this.operation != Xcj.Operation.Undefined)
|
||||
writer.writeEnum(4, this.operation);
|
||||
if (this.has_param)
|
||||
writer.writeMessage(5, this.param, () => this.param.serialize(writer));
|
||||
if (!w)
|
||||
return writer.getResultBuffer();
|
||||
}
|
||||
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CkmBoxOperationReq {
|
||||
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new CkmBoxOperationReq();
|
||||
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): XcjOperationReq {
|
||||
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new XcjOperationReq();
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup())
|
||||
break;
|
||||
@ -2403,13 +2406,13 @@ export namespace request {
|
||||
message.mapId = reader.readInt32();
|
||||
break;
|
||||
case 3:
|
||||
message.ckmBoxId = reader.readUint32();
|
||||
message.deviceId = reader.readUint32();
|
||||
break;
|
||||
case 4:
|
||||
message.buttonCode = reader.readString();
|
||||
message.operation = reader.readEnum();
|
||||
break;
|
||||
case 5:
|
||||
message.down = reader.readBool();
|
||||
reader.readMessage(message.param, () => message.param = XcjParam.deserialize(reader));
|
||||
break;
|
||||
default: reader.skipField();
|
||||
}
|
||||
@ -2419,8 +2422,125 @@ export namespace request {
|
||||
serializeBinary(): Uint8Array {
|
||||
return this.serialize();
|
||||
}
|
||||
static deserializeBinary(bytes: Uint8Array): CkmBoxOperationReq {
|
||||
return CkmBoxOperationReq.deserialize(bytes);
|
||||
static deserializeBinary(bytes: Uint8Array): XcjOperationReq {
|
||||
return XcjOperationReq.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
export class Xcj extends pb_1.Message {
|
||||
#one_of_decls: number[][] = [];
|
||||
constructor(data?: any[] | {}) {
|
||||
super();
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
|
||||
if (!Array.isArray(data) && typeof data == "object") { }
|
||||
}
|
||||
static fromObject(data: {}): Xcj {
|
||||
const message = new Xcj({});
|
||||
return message;
|
||||
}
|
||||
toObject() {
|
||||
const data: {} = {};
|
||||
return data;
|
||||
}
|
||||
serialize(): Uint8Array;
|
||||
serialize(w: pb_1.BinaryWriter): void;
|
||||
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
|
||||
const writer = w || new pb_1.BinaryWriter();
|
||||
if (!w)
|
||||
return writer.getResultBuffer();
|
||||
}
|
||||
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Xcj {
|
||||
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Xcj();
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup())
|
||||
break;
|
||||
switch (reader.getFieldNumber()) {
|
||||
default: reader.skipField();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
serializeBinary(): Uint8Array {
|
||||
return this.serialize();
|
||||
}
|
||||
static deserializeBinary(bytes: Uint8Array): Xcj {
|
||||
return Xcj.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
export namespace Xcj {
|
||||
export enum Operation {
|
||||
Undefined = 0,
|
||||
SetParams = 1
|
||||
}
|
||||
export enum Fault {
|
||||
FA_NONE = 0,
|
||||
FA_Fault = 1
|
||||
}
|
||||
}
|
||||
export class XcjParam extends pb_1.Message {
|
||||
#one_of_decls: number[][] = [];
|
||||
constructor(data?: any[] | {
|
||||
fault?: Xcj.Fault;
|
||||
}) {
|
||||
super();
|
||||
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
|
||||
if (!Array.isArray(data) && typeof data == "object") {
|
||||
if ("fault" in data && data.fault != undefined) {
|
||||
this.fault = data.fault;
|
||||
}
|
||||
}
|
||||
}
|
||||
get fault() {
|
||||
return pb_1.Message.getFieldWithDefault(this, 1, Xcj.Fault.FA_NONE) as Xcj.Fault;
|
||||
}
|
||||
set fault(value: Xcj.Fault) {
|
||||
pb_1.Message.setField(this, 1, value);
|
||||
}
|
||||
static fromObject(data: {
|
||||
fault?: Xcj.Fault;
|
||||
}): XcjParam {
|
||||
const message = new XcjParam({});
|
||||
if (data.fault != null) {
|
||||
message.fault = data.fault;
|
||||
}
|
||||
return message;
|
||||
}
|
||||
toObject() {
|
||||
const data: {
|
||||
fault?: Xcj.Fault;
|
||||
} = {};
|
||||
if (this.fault != null) {
|
||||
data.fault = this.fault;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
serialize(): Uint8Array;
|
||||
serialize(w: pb_1.BinaryWriter): void;
|
||||
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
|
||||
const writer = w || new pb_1.BinaryWriter();
|
||||
if (this.fault != Xcj.Fault.FA_NONE)
|
||||
writer.writeEnum(1, this.fault);
|
||||
if (!w)
|
||||
return writer.getResultBuffer();
|
||||
}
|
||||
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): XcjParam {
|
||||
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new XcjParam();
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup())
|
||||
break;
|
||||
switch (reader.getFieldNumber()) {
|
||||
case 1:
|
||||
message.fault = reader.readEnum();
|
||||
break;
|
||||
default: reader.skipField();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
serializeBinary(): Uint8Array {
|
||||
return this.serialize();
|
||||
}
|
||||
static deserializeBinary(bytes: Uint8Array): XcjParam {
|
||||
return XcjParam.deserialize(bytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user