信号机操作调整

This commit is contained in:
fan 2023-10-16 15:47:09 +08:00
parent 1aa6514809
commit ec07d43813
15 changed files with 13052 additions and 2946 deletions

@ -1 +1 @@
Subproject commit f43d8dbec4b997ef729ceb6e086db1bd066c0790
Subproject commit c3893c5b49cf1c5c169655fb321d133d71e4fcdf

10224
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -56,6 +56,15 @@ export async function removeTrain(data: {
return response.data;
}
export async function setSignalState(data: {
simulationId: string;
mapId: number;
id: string;
aspect: number;
}) {
return await api.post(`${UriBase}/signal/operation`, data);
}
export async function setSwitchPosition(data: {
simulationId: string;
mapId: number;

View File

@ -3,9 +3,9 @@ function getHost(): string {
// return '192.168.3.47:9091';
// return '192.168.3.37:9091';
// return '192.168.3.15:9091';
// return '192.168.3.5:9091';
return '192.168.3.5:9091';
// return '192.168.3.37:9091';
return '192.168.3.233:9091';
// return '192.168.3.233:9091';
// return 'test.joylink.club/bjrtss-server';
}

View File

@ -1,7 +1,6 @@
import { TrainTemplate } from 'src/graphics/train/Train';
import { TrainDraw } from 'src/graphics/train/TrainDrawAssistant';
import { Signal, SignalTemplate } from 'src/graphics/signal/Signal';
import { SignalDraw } from 'src/graphics/signal/SignalDrawAssistant';
import { Signal } from 'src/graphics/signal/Signal';
import { GraphicData, IDrawApp } from 'src/jl-graphic';
import { ContextMenu } from 'src/jl-graphic/ui/ContextMenu';
import { MenuItemOptions } from 'src/jl-graphic/ui/Menu';
@ -9,7 +8,6 @@ import { TrainState } from './graphics/TrainInteraction';
import {
SignalData,
DrawSignalInteraction,
SignalState,
} from './graphics/SignalInteraction';
import { graphicData } from 'src/protos/stationLayoutGraphics';
import { Platform, PlatformTemplate } from 'src/graphics/platform/Platform';
@ -175,7 +173,7 @@ export function initCommonDrawApp(app: IDrawApp) {
app,
new StationTemplate(new StationData(), new StationState())
);
new SignalDraw(app, new SignalTemplate(new SignalData(), new SignalState()));
// new SignalDraw(app, new SignalTemplate(new SignalData(), new SignalState()));
new TrainDraw(app, new TrainTemplate(new TrainState()));
new SectionDraw(app, new SectionTemplate(new SectionData()));
new TurnoutDraw(

View File

@ -0,0 +1,36 @@
import { Signal } from 'src/graphics/signal/Signal';
import { CategoryType } from 'src/components/CategoryType';
const jkSignalConsts = {
lampNum: 1,
};
const thSignalConsts = {
lampNum: 2,
};
function getJkTypeConsts(type: string) {
if (type === Signal.Type) {
return jkSignalConsts;
} else {
throw new Error('未找到该设备类型的常量');
}
}
function getThTypeConsts(type: string) {
if (type === Signal.Type) {
return thSignalConsts;
} else {
throw new Error('未找到该设备类型的常量');
}
}
export function getCategoryConsts(category: CategoryType) {
if (category === CategoryType.TH) {
return getThTypeConsts;
} else if (category === CategoryType.JK) {
return getJkTypeConsts;
} else {
throw new Error('未找到该厂商的常量函数');
}
}

View File

@ -18,6 +18,7 @@ import { FederatedMouseEvent, DisplayObject } from 'pixi.js';
import { state } from 'src/protos/device_state';
import { useLineStore } from 'src/stores/line-store';
import { SignalGraphicHitArea } from 'src/graphics/signal/SignalDrawAssistant';
import { setSignalState } from 'src/api/Simulation';
export class SignalData extends GraphicDataBase implements ISignalData {
constructor(data?: graphicData.Signal) {
@ -97,144 +98,12 @@ export class SignalState extends GraphicStateBase implements ISignalState {
get code(): string {
return this.states.id;
}
// get redOpen(): boolean {
// return this.states.redOpen;
// }
// set redOpen(v: boolean) {
// this.states.redOpen = v;
// }
// get redFlash(): boolean {
// return this.states.redFlash;
// }
// set redFlash(v: boolean) {
// this.states.redFlash = v;
// }
// get greenOpen(): boolean {
// return this.states.greenOpen;
// }
// set greenOpen(v: boolean) {
// this.states.greenOpen = v;
// }
// get greenFlash(): boolean {
// return this.states.greenFlash;
// }
// set greenFlash(v: boolean) {
// this.states.greenFlash = v;
// }
// get yellowOpen(): boolean {
// return this.states.yellowOpen;
// }
// set yellowOpen(v: boolean) {
// this.states.yellowOpen = v;
// }
// get yellowFlash(): boolean {
// return this.states.yellowFlash;
// }
// set yellowFlash(v: boolean) {
// this.states.yellowFlash = v;
// }
// get whiteOpen(): boolean {
// return this.states.whiteOpen;
// }
// set whiteOpen(v: boolean) {
// this.states.whiteOpen = v;
// }
// get whiteFlash(): boolean {
// return this.states.whiteFlash;
// }
// set whiteFlash(v: boolean) {
// this.states.whiteFlash = v;
// }
// get blueOpen(): boolean {
// return this.states.blueOpen;
// }
// set blueOpen(v: boolean) {
// this.states.blueOpen = v;
// }
// get blueFlash(): boolean {
// return this.states.blueFlash;
// }
// set blueFlash(v: boolean) {
// this.states.blueFlash = v;
// }
// get fleetMode(): boolean {
// return this.states.fleetMode;
// }
// set fleetMode(v: boolean) {
// this.states.fleetMode = v;
// }
// get ctrlFleetMode(): boolean {
// return this.states.ctrlFleetMode;
// }
// set ctrlFleetMode(v: boolean) {
// this.states.ctrlFleetMode = v;
// }
// get autoMode(): boolean {
// return this.states.autoMode;
// }
// set autoMode(v: boolean) {
// this.states.autoMode = v;
// }
// get ctrlAutoMode(): boolean {
// return this.states.ctrlAutoMode;
// }
// set ctrlAutoMode(v: boolean) {
// this.states.ctrlAutoMode = v;
// }
// get extinguish(): boolean {
// return this.states.extinguish;
// }
// set extinguish(v: boolean) {
// this.states.extinguish = v;
// }
// get approachLock(): boolean {
// return this.states.approachLock;
// }
// set approachLock(v: boolean) {
// this.states.approachLock = v;
// }
// get protectRoute(): boolean {
// return this.states.protectRoute;
// }
// set protectRoute(v: boolean) {
// this.states.protectRoute = v;
// }
// get autoRouteDisable(): boolean {
// return this.states.autoRouteDisable;
// }
// set autoRouteDisable(v: boolean) {
// this.states.autoRouteDisable = v;
// }
// get callon(): boolean {
// return this.states.callon;
// }
// set callon(v: boolean) {
// this.states.callon = v;
// }
// get yellowYellow(): boolean {
// return this.states.yellowYellow;
// }
// set yellowYellow(v: boolean) {
// this.states.yellowYellow = v;
// }
// get yellowGreen(): boolean {
// return this.states.yellowGreen;
// }
// set yellowGreen(v: boolean) {
// this.states.yellowGreen = v;
// }
// get blocked(): boolean {
// return this.states.blocked;
// }
// set blocked(v: boolean) {
// this.states.blocked = v;
// }
// get lampFailure(): boolean {
// return this.states.lampFailure;
// }
// set lampFailure(v: boolean) {
// this.states.lampFailure = v;
// }
get aspect(): number {
return this.states.aspect;
}
set aspect(v: number) {
this.states.aspect = v;
}
get states(): state.SignalState {
return this.getState<state.SignalState>();
}
@ -252,23 +121,21 @@ export class SignalState extends GraphicStateBase implements ISignalState {
const mirrorFlipConfig: MenuItemOptions = {
name: '镜像翻转',
};
const signalRedConfig: MenuItemOptions = {
name: '开红灯',
};
const signalGreenConfig: MenuItemOptions = {
name: '开绿灯',
};
const signalYellowConfig: MenuItemOptions = {
name: '开黄灯',
};
const signalGuideConfig: MenuItemOptions = {
name: '开引导',
};
const signalCloseConfig: MenuItemOptions = {
name: '信号机关闭',
};
const signalRedFlashConfig: MenuItemOptions = {
name: '信号机红闪',
};
const signalOpenConfig: MenuItemOptions = {
name: '信号机开放',
};
const signalFleetConfig: MenuItemOptions = {
name: '连锁自动进路',
};
const humanControlConfig: MenuItemOptions = {
name: '进路交人工控',
};
const logicConfig: MenuItemOptions = {
name: '逻辑点灯',
name: '关灯',
};
const SignalEditMenu: ContextMenu = ContextMenu.init({
name: '信号机编辑菜单',
@ -283,12 +150,11 @@ const SignalOperateMenu: ContextMenu = ContextMenu.init({
groups: [
{
items: [
signalRedConfig,
signalGreenConfig,
signalYellowConfig,
signalGuideConfig,
signalCloseConfig,
signalOpenConfig,
signalFleetConfig,
humanControlConfig,
logicConfig,
signalRedFlashConfig,
],
},
],
@ -331,6 +197,7 @@ export class SignalOperateInteraction extends GraphicInteractionPlugin<Signal> {
constructor(app: IGraphicScene) {
super(SignalOperateInteraction.Name, app);
app.registerMenu(SignalOperateMenu);
console.log('111111111');
}
static init(app: IGraphicScene) {
return new SignalOperateInteraction(app);
@ -346,49 +213,64 @@ export class SignalOperateInteraction extends GraphicInteractionPlugin<Signal> {
g.selectable = true;
g.lampMainBody.hitArea = new SignalGraphicHitArea(g);
g.on('_leftclick', this.onLeftClick, this);
g.on('rightclick', this.onContextMenu, this);
}
unbind(g: Signal): void {
g.selectable = false;
g.eventMode = 'none';
g.off('_leftclick', this.onLeftClick, this);
g.off('rightclick', this.onContextMenu);
}
onLeftClick() {
useLineStore().stateProCountIncrease();
}
// onContextMenu(e: FederatedMouseEvent) {
// const target = e.target as DisplayObject;
// const signal = target.getGraphic() as Signal;
// this.app.updateSelected(signal);
// signalCloseConfig.handler = () => {
// signal.states.redOpen = true;
// signal.states.greenOpen = false;
// signal.doRepaint();
// };
// signalOpenConfig.handler = () => {
// signal.states.redOpen = false;
// signal.states.greenOpen = true;
// signal.doRepaint();
// };
// signalFleetConfig.handler = () => {
// signal.states.fleetMode = true;
// signal.doRepaint();
// };
// humanControlConfig.handler = () => {
// signal.states.autoRouteDisable = true;
// signal.doRepaint();
// };
// logicConfig.handler = () => {
// signal.states.extinguish = true;
// signal.doRepaint();
// };
// signalRedFlashConfig.handler = () => {
// signal.states.redFlash = true;
// signal.states.redOpen = false;
// signal.states.greenOpen = false;
// signal.doRepaint();
// };
// SignalOperateMenu.open(e.global);
// }
onContextMenu(e: FederatedMouseEvent) {
const target = e.target as DisplayObject;
const signal = target.getGraphic() as Signal;
this.app.updateSelected(signal);
const simulationId = useLineStore().simulationId || '';
const mapId = useLineStore().mapId as number;
signalCloseConfig.handler = () => {
setSignalState({
simulationId,
mapId,
id: signal.datas.id,
aspect: state.Signal.Aspect.OFF,
});
};
signalRedConfig.handler = () => {
setSignalState({
simulationId,
mapId,
id: signal.datas.id,
aspect: state.Signal.Aspect.H,
});
};
signalGreenConfig.handler = () => {
setSignalState({
simulationId,
mapId,
id: signal.datas.id,
aspect: state.Signal.Aspect.L,
});
};
signalYellowConfig.handler = () => {
setSignalState({
simulationId,
mapId,
id: signal.datas.id,
aspect: state.Signal.Aspect.U,
});
};
signalGuideConfig.handler = () => {
setSignalState({
simulationId,
mapId,
id: signal.datas.id,
aspect: state.Signal.Aspect.HU,
});
};
SignalOperateMenu.open(e.global);
}
}

View File

@ -40,6 +40,11 @@ import {
} from './commonApp';
import { Notify } from 'quasar';
import { generateCalculateLink } from 'src/api/GenerateApi';
import { SignalDraw } from 'src/graphics/signal/SignalDrawAssistant';
import { SignalTemplate, Signal } from 'src/graphics/signal/Signal';
import { SignalData, SignalState } from './graphics/SignalInteraction';
import { getCategoryConsts } from './gategoryConsts';
import { CategoryType } from 'src/components/CategoryType';
let jkDrawApp: IDrawApp | null = null;
@ -93,12 +98,21 @@ export function initJkDrawApp(): IDrawApp {
}
return true;
};
const getJkTypeConsts = getCategoryConsts(CategoryType.JK);
jkDrawApp = newDrawApp({
dataLoader: loadJkDrawDatas,
isSupportDeletion: isSupportDeletion,
});
const app = jkDrawApp;
initCommonDrawApp(app);
new SignalDraw(
app,
new SignalTemplate(
new SignalData(),
new SignalState(),
getJkTypeConsts(Signal.Type)
)
);
new SectionLinkDraw(app, new SectionLinkTemplate(new SectionLinkData()));
new AxleCountingSectionDraw(
app,

View File

@ -130,6 +130,7 @@ import {
TrackLogicSectionTemplate,
} from 'src/graphics/trackLogicSection/TrackLogicSection';
import { TrackLogicSectionData } from './graphics/TrackLogicSectionInteraction';
import { getCategoryConsts } from './gategoryConsts';
const showOptions: MenuItemOptions = {
name: '显示控制',
@ -193,9 +194,18 @@ export function initLineScene(lineApp: IGraphicApp, sceneName: string) {
],
};
const lineScene = lineApp.initScene(sceneName, options);
const categoryType = useLineStore().categoryType;
if (!categoryType) {
throw new Error('为获取到厂商信息');
}
const getTypeConsts = getCategoryConsts(categoryType);
const graphicTemplate = [
new TrainTemplate(new TrainState()),
new SignalTemplate(new SignalData(), new SignalState()),
new SignalTemplate(
new SignalData(),
new SignalState(),
getTypeConsts(Signal.Type)
),
new PlatformTemplate(new PlatformData(), new PlatformState()),
new ScreenDoorTemplate(new ScreenDoorData()),
new StationTemplate(new StationData(), new StationState()),
@ -258,6 +268,7 @@ function handleSubscribe(lineScene: IGraphicScene) {
const states: GraphicState[] = [];
const storage = state.PushedDevicesStatus.deserialize(message);
if (storage.all) {
console.log(storage.allStatus, '===');
storage.allStatus.sectionState.forEach((item) => {
if (state.SectionType[item.type] == 'Axle') {
//计轴区段
@ -276,6 +287,11 @@ function handleSubscribe(lineScene: IGraphicScene) {
states.push(new TurnoutStates(item));
}
});
storage.allStatus.signalState.forEach((item) => {
if (item.id) {
states.push(new SignalState(item));
}
});
storage.allStatus.trainState.forEach((item) => {
// 列车
if (!item.show) {

View File

@ -29,6 +29,11 @@ import {
loadCommonDrawDatas,
saveDrawToServer,
} from './commonApp';
import { SignalDraw } from 'src/graphics/signal/SignalDrawAssistant';
import { SignalTemplate, Signal } from 'src/graphics/signal/Signal';
import { SignalData, SignalState } from './graphics/SignalInteraction';
import { getCategoryConsts } from './gategoryConsts';
import { CategoryType } from 'src/components/CategoryType';
let thDrawApp: IDrawApp | null = null;
@ -74,7 +79,16 @@ export function initThDrawApp(): IDrawApp {
dataLoader: loadThDrawDatas,
});
const app = thDrawApp;
const getThTypeConsts = getCategoryConsts(CategoryType.TH);
initCommonDrawApp(app);
new SignalDraw(
app,
new SignalTemplate(
new SignalData(),
new SignalState(),
getThTypeConsts(Signal.Type)
)
);
new TrackSectionDraw(app, new TrackSectionTemplate(new TrackSectionData()));
new TrackLogicSectionDraw(
app,

View File

@ -6,6 +6,7 @@ import {
} from 'src/jl-graphic';
import { Lamp } from './Lamp';
import { ISignalState, SignalColorEnum, signalConsts } from './Signal';
import { state } from 'src/protos/device_state';
// export enum LampEnum {
// lampPostColor = '0xFFFFFF',
@ -108,6 +109,29 @@ export class LampMainBody extends JlGraphic {
}
chagneState(states: ISignalState) {
this.stopAnmiation();
if (states.aspect === state.Signal.Aspect.H) {
this.lamps[0].createLamp(SignalColorEnum.redLamp);
if (this.lamps[1]) {
this.lamps[1].createLamp(SignalColorEnum.closeLamp);
}
} else if (states.aspect === state.Signal.Aspect.L) {
this.lamps[0].createLamp(SignalColorEnum.greenLamp);
if (this.lamps[1]) {
this.lamps[1].createLamp(SignalColorEnum.closeLamp);
}
} else if (states.aspect === state.Signal.Aspect.U) {
this.lamps[0].createLamp(SignalColorEnum.yellowLamp);
if (this.lamps[1]) {
this.lamps[1].createLamp(SignalColorEnum.closeLamp);
}
} else if (states.aspect === state.Signal.Aspect.HU) {
this.lamps[0].createLamp(SignalColorEnum.redLamp);
if (this.lamps[1]) {
this.lamps[1].createLamp(SignalColorEnum.yellowLamp);
}
} else if (states.aspect === state.Signal.Aspect.OFF) {
this.lamps.forEach((lamp) => lamp.createLamp(SignalColorEnum.closeLamp));
}
// if (states.extinguish) {
// this.lamps.forEach((lamp) => lamp.createLogicMode());
// } else {

View File

@ -53,52 +53,8 @@ export interface ISignalData extends GraphicData {
export interface ISignalState extends GraphicState {
id?: string;
// get redOpen(): boolean;
// set redOpen(v: boolean);
// get redFlash(): boolean;
// set redFlash(v: boolean);
// get greenOpen(): boolean;
// set greenOpen(v: boolean);
// get greenFlash(): boolean;
// set greenFlash(v: boolean);
// get yellowOpen(): boolean;
// set yellowOpen(v: boolean);
// get yellowFlash(): boolean;
// set yellowFlash(v: boolean);
// get whiteOpen(): boolean;
// set whiteOpen(v: boolean);
// get whiteFlash(): boolean;
// set whiteFlash(v: boolean);
// get blueOpen(): boolean;
// set blueOpen(v: boolean);
// get blueFlash(): boolean;
// set blueFlash(v: boolean);
// get fleetMode(): boolean;
// set fleetMode(v: boolean);
// get ctrlFleetMode(): boolean;
// set ctrlFleetMode(v: boolean);
// get autoMode(): boolean;
// set autoMode(v: boolean);
// get ctrlAutoMode(): boolean;
// set ctrlAutoMode(v: boolean);
// get extinguish(): boolean;
// set extinguish(v: boolean);
// get approachLock(): boolean;
// set approachLock(v: boolean);
// get protectRoute(): boolean;
// set protectRoute(v: boolean);
// get autoRouteDisable(): boolean;
// set autoRouteDisable(v: boolean);
// get callon(): boolean;
// set callon(v: boolean);
// get yellowYellow(): boolean;
// set yellowYellow(v: boolean);
// get yellowGreen(): boolean;
// set yellowGreen(v: boolean);
// get blocked(): boolean;
// set blocked(v: boolean);
// get lampFailure(): boolean;
// set lampFailure(v: boolean);
get aspect(): number;
set aspect(v: number);
}
export enum SignalColorEnum {
@ -112,6 +68,7 @@ export enum SignalColorEnum {
yellowLamp = '0XFFFF00',
whiteLamp = '0XFFFFFF',
blueLamp = '0X0033FF',
closeLamp = '0X000000',
logicModeColor = '0x000000',
lampLineColor = '0x3149c3',
}
@ -140,13 +97,15 @@ export class Signal extends JlGraphic {
fleetMode: Graphics = new Graphics();
lampMainBody: LampMainBody = new LampMainBody();
blockedMode: Graphics = new Graphics();
gategoryConsts: { [propname: string]: any };
constructor() {
constructor(gategoryConsts: { [propname: string]: any }) {
super(Signal.Type);
this.addChild(this.humanControl);
this.addChild(this.fleetMode);
this.addChild(this.lampMainBody);
this.addChild(this.signalCode);
this.gategoryConsts = gategoryConsts;
}
get datas(): ISignalData {
@ -170,7 +129,7 @@ export class Signal extends JlGraphic {
paint(): void {
const mirror = this.datas.mirror;
this.lampMainBody.paint(signalConsts.lampNum, mirror, this.states);
this.lampMainBody.paint(this.gategoryConsts.lampNum, mirror, this.states);
this.signalCode.paint(this.datas, this.states);
const codeTransform = this.datas?.childTransforms?.find(
(item) => item.name === 'signalCode'
@ -326,11 +285,17 @@ export class Signal extends JlGraphic {
}
export class SignalTemplate extends JlGraphicTemplate<Signal> {
constructor(dataTemplate: ISignalData, stateTemplate: ISignalState) {
gategoryConsts: { [propname: string]: any };
constructor(
dataTemplate: ISignalData,
stateTemplate: ISignalState,
gategoryConsts: { [propname: string]: any }
) {
super(Signal.Type, { dataTemplate, stateTemplate });
this.gategoryConsts = gategoryConsts;
}
new(): Signal {
const g = new Signal();
const g = new Signal(this.gategoryConsts);
g.loadData(this.datas);
g.loadState(this.states);
return g;

View File

@ -377,16 +377,16 @@ export namespace state {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
id?: string;
light?: Signal.Light[];
aspect?: Signal.Aspect;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2], this.#one_of_decls);
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("id" in data && data.id != undefined) {
this.id = data.id;
}
if ("light" in data && data.light != undefined) {
this.light = data.light;
if ("aspect" in data && data.aspect != undefined) {
this.aspect = data.aspect;
}
}
}
@ -396,35 +396,35 @@ export namespace state {
set id(value: string) {
pb_1.Message.setField(this, 1, value);
}
get light() {
return pb_1.Message.getRepeatedWrapperField(this, Signal.Light, 2) as Signal.Light[];
get aspect() {
return pb_1.Message.getFieldWithDefault(this, 2, Signal.Aspect.OFF) as Signal.Aspect;
}
set light(value: Signal.Light[]) {
pb_1.Message.setRepeatedWrapperField(this, 2, value);
set aspect(value: Signal.Aspect) {
pb_1.Message.setField(this, 2, value);
}
static fromObject(data: {
id?: string;
light?: ReturnType<typeof Signal.Light.prototype.toObject>[];
aspect?: Signal.Aspect;
}): SignalState {
const message = new SignalState({});
if (data.id != null) {
message.id = data.id;
}
if (data.light != null) {
message.light = data.light.map(item => Signal.Light.fromObject(item));
if (data.aspect != null) {
message.aspect = data.aspect;
}
return message;
}
toObject() {
const data: {
id?: string;
light?: ReturnType<typeof Signal.Light.prototype.toObject>[];
aspect?: Signal.Aspect;
} = {};
if (this.id != null) {
data.id = this.id;
}
if (this.light != null) {
data.light = this.light.map((item: Signal.Light) => item.toObject());
if (this.aspect != null) {
data.aspect = this.aspect;
}
return data;
}
@ -434,8 +434,8 @@ export namespace state {
const writer = w || new pb_1.BinaryWriter();
if (this.id.length)
writer.writeString(1, this.id);
if (this.light.length)
writer.writeRepeatedMessage(2, this.light, (item: Signal.Light) => item.serialize(writer));
if (this.aspect != Signal.Aspect.OFF)
writer.writeEnum(2, this.aspect);
if (!w)
return writer.getResultBuffer();
}
@ -449,7 +449,7 @@ export namespace state {
message.id = reader.readString();
break;
case 2:
reader.readMessage(message.light, () => pb_1.Message.addToRepeatedWrapperField(message, 2, Signal.Light.deserialize(reader), Signal.Light));
message.aspect = reader.readEnum();
break;
default: reader.skipField();
}
@ -506,103 +506,12 @@ export namespace state {
export namespace Signal {
export enum Aspect {
OFF = 0,
ON = 1,
L = 2,
H = 3,
U = 4,
HU = 5,
B = 6,
A = 7
}
export class Light extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
color?: Signal.Aspect;
display?: boolean;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("color" in data && data.color != undefined) {
this.color = data.color;
}
if ("display" in data && data.display != undefined) {
this.display = data.display;
}
}
}
get color() {
return pb_1.Message.getFieldWithDefault(this, 1, Signal.Aspect.OFF) as Signal.Aspect;
}
set color(value: Signal.Aspect) {
pb_1.Message.setField(this, 1, value);
}
get display() {
return pb_1.Message.getFieldWithDefault(this, 2, false) as boolean;
}
set display(value: boolean) {
pb_1.Message.setField(this, 2, value);
}
static fromObject(data: {
color?: Signal.Aspect;
display?: boolean;
}): Light {
const message = new Light({});
if (data.color != null) {
message.color = data.color;
}
if (data.display != null) {
message.display = data.display;
}
return message;
}
toObject() {
const data: {
color?: Signal.Aspect;
display?: boolean;
} = {};
if (this.color != null) {
data.color = this.color;
}
if (this.display != null) {
data.display = this.display;
}
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.color != Signal.Aspect.OFF)
writer.writeEnum(1, this.color);
if (this.display != false)
writer.writeBool(2, this.display);
if (!w)
return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Light {
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Light();
while (reader.nextField()) {
if (reader.isEndGroup())
break;
switch (reader.getFieldNumber()) {
case 1:
message.color = reader.readEnum();
break;
case 2:
message.display = reader.readBool();
break;
default: reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): Light {
return Light.deserialize(bytes);
}
L = 1,
H = 2,
U = 3,
HU = 4,
B = 5,
A = 6
}
}
export class PlatformState extends pb_1.Message {

197
src/protos/request.ts Normal file
View File

@ -0,0 +1,197 @@
/**
* Generated by the protoc-gen-ts. DO NOT EDIT!
* compiler version: 4.23.1
* source: request.proto
* git: https://github.com/thesayyn/protoc-gen-ts */
import * as pb_1 from "google-protobuf";
export namespace request {
export class Turnout 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: {}): Turnout {
const message = new Turnout({});
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): Turnout {
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Turnout();
while (reader.nextField()) {
if (reader.isEndGroup())
break;
switch (reader.getFieldNumber()) {
default: reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): Turnout {
return Turnout.deserialize(bytes);
}
}
export namespace Turnout {
export enum Operation {
Undefined = 0,
DC = 1,
CancelDC = 2,
FC = 3,
CancelFC = 4,
SetSB = 5,
CancelSB = 6,
SetJC = 7,
CancelJC = 8
}
}
export class TurnoutOperationReq extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
simulationId?: string;
mapId?: number;
deviceId?: string;
operation?: Turnout.Operation;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("simulationId" in data && data.simulationId != undefined) {
this.simulationId = data.simulationId;
}
if ("mapId" in data && data.mapId != undefined) {
this.mapId = data.mapId;
}
if ("deviceId" in data && data.deviceId != undefined) {
this.deviceId = data.deviceId;
}
if ("operation" in data && data.operation != undefined) {
this.operation = data.operation;
}
}
}
get simulationId() {
return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
}
set simulationId(value: string) {
pb_1.Message.setField(this, 1, value);
}
get mapId() {
return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
}
set mapId(value: number) {
pb_1.Message.setField(this, 2, value);
}
get deviceId() {
return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
}
set deviceId(value: string) {
pb_1.Message.setField(this, 3, value);
}
get operation() {
return pb_1.Message.getFieldWithDefault(this, 4, Turnout.Operation.Undefined) as Turnout.Operation;
}
set operation(value: Turnout.Operation) {
pb_1.Message.setField(this, 4, value);
}
static fromObject(data: {
simulationId?: string;
mapId?: number;
deviceId?: string;
operation?: Turnout.Operation;
}): TurnoutOperationReq {
const message = new TurnoutOperationReq({});
if (data.simulationId != null) {
message.simulationId = data.simulationId;
}
if (data.mapId != null) {
message.mapId = data.mapId;
}
if (data.deviceId != null) {
message.deviceId = data.deviceId;
}
if (data.operation != null) {
message.operation = data.operation;
}
return message;
}
toObject() {
const data: {
simulationId?: string;
mapId?: number;
deviceId?: string;
operation?: Turnout.Operation;
} = {};
if (this.simulationId != null) {
data.simulationId = this.simulationId;
}
if (this.mapId != null) {
data.mapId = this.mapId;
}
if (this.deviceId != null) {
data.deviceId = this.deviceId;
}
if (this.operation != null) {
data.operation = this.operation;
}
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.simulationId.length)
writer.writeString(1, this.simulationId);
if (this.mapId != 0)
writer.writeInt32(2, this.mapId);
if (this.deviceId.length)
writer.writeString(3, this.deviceId);
if (this.operation != Turnout.Operation.Undefined)
writer.writeEnum(4, this.operation);
if (!w)
return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): TurnoutOperationReq {
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new TurnoutOperationReq();
while (reader.nextField()) {
if (reader.isEndGroup())
break;
switch (reader.getFieldNumber()) {
case 1:
message.simulationId = reader.readString();
break;
case 2:
message.mapId = reader.readInt32();
break;
case 3:
message.deviceId = reader.readString();
break;
case 4:
message.operation = reader.readEnum();
break;
default: reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): TurnoutOperationReq {
return TurnoutOperationReq.deserialize(bytes);
}
}
}

4978
yarn.lock

File diff suppressed because it is too large Load Diff