diff --git a/bj-rtss-message b/bj-rtss-message
index f6f49ec..f0f4152 160000
--- a/bj-rtss-message
+++ b/bj-rtss-message
@@ -1 +1 @@
-Subproject commit f6f49ec19378c9a9845c53bd4425143f654ae59e
+Subproject commit f0f415273f5e188db87ee361e6808e4ec90ceda1
diff --git a/src/components/draw-app/properties/SectionLinkProperty.vue b/src/components/draw-app/properties/SectionLinkProperty.vue
index 1052c01..b3215bc 100644
--- a/src/components/draw-app/properties/SectionLinkProperty.vue
+++ b/src/components/draw-app/properties/SectionLinkProperty.vue
@@ -13,6 +13,53 @@
@blur="onUpdate"
label="编号"
/>
+
+
+
+
+ A端关联设备
+
+
+ {{ aSimRef }}
+
+
+
+
+
+
+ B端关联设备
+
+
+ {{ bSimRef }}
+
+
+
+
+
+
+ A端关联端口设备
+
+
+ {{ aRef }}
+
+
+
+
+
+
+ B端关联端口设备
+
+
+ {{ bRef }}
+
+
+
+
+
@@ -20,16 +67,61 @@
import { SectionLink } from 'src/graphics/sectionLink/SectionLink';
import { SectionLinkData } from 'src/drawApp/graphics/SectionLinkInteraction';
import { useDrawStore } from 'src/stores/draw-store';
-import { shallowRef, watchEffect } from 'vue';
+import { shallowRef, watchEffect, ref } from 'vue';
+import { AxleCounting } from 'src/graphics/axleCounting/AxleCounting';
+import { Turnout } from 'src/graphics/turnout/Turnout';
const drawStore = useDrawStore();
const sectionLinkModel = shallowRef(new SectionLinkData());
+const aSimRef = ref('');
+const bSimRef = ref('');
+const aRef = ref('');
+const bRef = ref('');
watchEffect(() => {
const sectionLink = drawStore.selectedGraphic;
+ const portList = ['A', 'B', 'C'];
if (sectionLink && sectionLink instanceof SectionLink) {
sectionLinkModel.value = sectionLink.saveData();
+ aSimRef.value = '';
+ bSimRef.value = '';
+ aRef.value = '';
+ bRef.value = '';
+ if (sectionLinkModel.value.aSimRef) {
+ const g = drawStore
+ .getDrawApp()
+ .queryStore.queryById(sectionLinkModel.value.aSimRef.id) as
+ | AxleCounting
+ | Turnout;
+ aSimRef.value = g.datas.code;
+ }
+ if (sectionLinkModel.value.bSimRef) {
+ const g = drawStore
+ .getDrawApp()
+ .queryStore.queryById(sectionLinkModel.value.bSimRef.id) as
+ | AxleCounting
+ | Turnout;
+ bSimRef.value = g.datas.code;
+ }
+ if (sectionLinkModel.value.aRef) {
+ const g = drawStore
+ .getDrawApp()
+ .queryStore.queryById(sectionLinkModel.value.aRef.id) as
+ | SectionLink
+ | Turnout;
+ aRef.value =
+ g.datas.code + '_' + portList[sectionLinkModel.value.aRef.devicePort];
+ }
+ if (sectionLinkModel.value.bRef) {
+ const g = drawStore
+ .getDrawApp()
+ .queryStore.queryById(sectionLinkModel.value.bRef.id) as
+ | SectionLink
+ | Turnout;
+ bRef.value =
+ g.datas.code + '_' + portList[sectionLinkModel.value.bRef.devicePort];
+ }
}
});
diff --git a/src/drawApp/graphics/SectionLinkInteraction.ts b/src/drawApp/graphics/SectionLinkInteraction.ts
index c7d0d38..346bc50 100644
--- a/src/drawApp/graphics/SectionLinkInteraction.ts
+++ b/src/drawApp/graphics/SectionLinkInteraction.ts
@@ -39,11 +39,35 @@ export class SectionLinkData
(p) => new graphicData.Point({ x: p.x, y: p.y })
);
}
- get refDevice(): string {
- return this.data.refDevice;
+ get up(): boolean {
+ return this.data.up;
}
- set refDevice(v: string) {
- this.data.refDevice = v;
+ set up(v: boolean) {
+ this.data.up = v;
+ }
+ get aSimRef(): graphicData.SimpleRef {
+ return this.data.aSimRef;
+ }
+ set aSimRef(v: graphicData.SimpleRef) {
+ this.data.aSimRef = v;
+ }
+ get bSimRef(): graphicData.SimpleRef {
+ return this.data.bSimRef;
+ }
+ set bSimRef(v: graphicData.SimpleRef) {
+ this.data.bSimRef = v;
+ }
+ get aRef(): graphicData.RelatedRef {
+ return this.data.aRef;
+ }
+ set aRef(v: graphicData.RelatedRef) {
+ this.data.aRef = v;
+ }
+ get bRef(): graphicData.RelatedRef {
+ return this.data.bRef;
+ }
+ set bRef(v: graphicData.RelatedRef) {
+ this.data.bRef = v;
}
clone(): SectionLinkData {
diff --git a/src/drawApp/index.ts b/src/drawApp/index.ts
index 6a3576c..13db706 100644
--- a/src/drawApp/index.ts
+++ b/src/drawApp/index.ts
@@ -446,9 +446,9 @@ export async function loadDrawDatas(app: GraphicApp) {
storage.axleCountingSections.forEach((axleCountingSection) => {
datas.push(new AxleCountingSectionData(axleCountingSection));
});
- storage.logicSections.forEach((logicSection) => {
- datas.push(new LogicSectionData(logicSection));
- });
+ // storage.logicSections.forEach((logicSection) => {
+ // datas.push(new LogicSectionData(logicSection));
+ // });
await app.loadGraphic(datas);
} else {
app.loadGraphic([]);
diff --git a/src/graphics/CommonGraphics.ts b/src/graphics/CommonGraphics.ts
index 58777ff..8f1ffcf 100644
--- a/src/graphics/CommonGraphics.ts
+++ b/src/graphics/CommonGraphics.ts
@@ -114,3 +114,8 @@ export interface IRelatedRefData {
id: string; //关联的设备ID
devicePort: graphicData.RelatedRef.DevicePort; //关联的设备端口
}
+
+export interface ISimpleRefData {
+ deviceType: graphicData.SimpleRef.DeviceType;
+ id: string;
+}
diff --git a/src/graphics/sectionLink/SectionLink.ts b/src/graphics/sectionLink/SectionLink.ts
index f085f74..e1f9479 100644
--- a/src/graphics/sectionLink/SectionLink.ts
+++ b/src/graphics/sectionLink/SectionLink.ts
@@ -9,14 +9,23 @@ import {
movePointAlongNormal,
} from 'src/jl-graphic';
import { ILineGraphic } from 'src/jl-graphic/plugins/GraphicEditPlugin';
+import { IRelatedRefData, ISimpleRefData } from '../CommonGraphics';
export interface ISectionLinkData extends GraphicData {
get code(): string; // 编号
set code(v: string);
get points(): IPointData[];
set points(points: IPointData[]);
- get refDevice(): string;
- set refDevice(v: string);
+ get up(): boolean;
+ set up(v: boolean);
+ get aSimRef(): ISimpleRefData;
+ set aSimRef(v: ISimpleRefData);
+ get bSimRef(): ISimpleRefData;
+ set bSimRef(v: ISimpleRefData);
+ get aRef(): IRelatedRefData;
+ set aRef(v: IRelatedRefData);
+ get bRef(): IRelatedRefData;
+ set bRef(v: IRelatedRefData);
clone(): ISectionLinkData;
copyFrom(data: ISectionLinkData): void;
eq(other: ISectionLinkData): boolean;
diff --git a/src/graphics/sectionLink/SectionLinkDrawAssistant.ts b/src/graphics/sectionLink/SectionLinkDrawAssistant.ts
index 626b759..b5f67aa 100644
--- a/src/graphics/sectionLink/SectionLinkDrawAssistant.ts
+++ b/src/graphics/sectionLink/SectionLinkDrawAssistant.ts
@@ -25,6 +25,7 @@ import { Section } from '../section/Section';
import { Turnout } from '../turnout/Turnout';
import { AxleCounting } from '../axleCounting/AxleCounting';
import { IRelatedRefData } from '../CommonGraphics';
+import { graphicData } from 'src/protos/stationLayoutGraphics';
export class SectionLinkDraw extends GraphicDrawAssistant<
SectionLinkTemplate,
@@ -59,15 +60,18 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
}
});
this.graphic.lineTo(cp.x, cp.y);
- console.log(cp, '000');
}
prepareData(data: ISectionLinkData): boolean {
- console.log(this.points, '000');
data.points = this.points;
return true;
}
- generateBySection(section: Section) {
+ generateBySection(
+ section: Section,
+ refData: IRelatedRefData,
+ axle1: AxleCounting,
+ axle2: AxleCounting
+ ): SectionLink {
const sectionLink = new SectionLink();
sectionLink.loadData(this.graphicTemplate.datas);
sectionLink.id = GraphicIdGenerator.next();
@@ -76,14 +80,57 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
points.push(section.localToCanvasPoint(p));
});
sectionLink.datas.points = points;
+ const DeviceType = graphicData.SimpleRef.DeviceType;
+ const refAxle1 = this.buildSimpleRef(axle1.id, DeviceType.AxleCounting);
+ const refAxle2 = this.buildSimpleRef(axle2.id, DeviceType.AxleCounting);
+ /**
+ * 判断link AB端 A端一定在左侧(根据计轴关联区段判断区段AB端是否倒序)
+ */
+ if (points[0].x > points[points.length - 1].x) {
+ if (refData.devicePort === 0) {
+ sectionLink.datas.aSimRef = refAxle2;
+ sectionLink.datas.bSimRef = refAxle1;
+ } else {
+ sectionLink.datas.aSimRef = refAxle1;
+ sectionLink.datas.bSimRef = refAxle2;
+ }
+ } else if (points[0].x < points[points.length - 1].x) {
+ if (refData.devicePort === 0) {
+ sectionLink.datas.aSimRef = refAxle1;
+ sectionLink.datas.bSimRef = refAxle2;
+ } else {
+ sectionLink.datas.aSimRef = refAxle2;
+ sectionLink.datas.bSimRef = refAxle1;
+ }
+ } else {
+ throw new Error('无法判断linkAB端');
+ }
this.storeGraphic(sectionLink);
+ return sectionLink;
}
- generateByTurnoutAxle(turnout: Turnout, port: number) {
+ generateByTurnoutAxle(
+ turnout: Turnout,
+ port: graphicData.RelatedRef.DevicePort,
+ axle: AxleCounting
+ ): SectionLink {
const sectionLink = new SectionLink();
sectionLink.loadData(this.graphicTemplate.datas);
sectionLink.id = GraphicIdGenerator.next();
const forkP = new Point(turnout.position.x, turnout.position.y);
const points: IPointData[] = [forkP];
+ const refTurnout = this.buildRelatedRef(
+ turnout.id,
+ graphicData.RelatedRef.DeviceType.Turnout,
+ port
+ );
+ const refSimTurnout = this.buildSimpleRef(
+ turnout.id,
+ graphicData.SimpleRef.DeviceType.Turnout
+ );
+ const refAxle = this.buildSimpleRef(
+ axle.id,
+ graphicData.SimpleRef.DeviceType.AxleCounting
+ );
if (port === 0) {
turnout.datas.pointA.forEach((p) => {
points.push(turnout.localToCanvasPoint(p));
@@ -97,10 +144,26 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
points.push(turnout.localToCanvasPoint(p));
});
}
+ if (points[0].x > points[points.length - 1].x) {
+ sectionLink.datas.aSimRef = refAxle;
+ sectionLink.datas.bSimRef = refSimTurnout;
+ sectionLink.datas.bRef = refTurnout;
+ } else if (points[0].x < points[points.length - 1].x) {
+ sectionLink.datas.bSimRef = refAxle;
+ sectionLink.datas.aSimRef = refSimTurnout;
+ sectionLink.datas.aRef = refTurnout;
+ } else {
+ throw new Error('无法判断linkAB端');
+ }
sectionLink.datas.points = points;
this.storeGraphic(sectionLink);
+ return sectionLink;
}
- generateByTurnout(turnout: Turnout, port: number, pRef: IRelatedRefData) {
+ generateByTurnout(
+ turnout: Turnout,
+ port: graphicData.RelatedRef.DevicePort,
+ pRef: IRelatedRefData
+ ) {
const refg = this.app.queryStore.queryById(pRef.id) as Turnout;
const sectionLink = new SectionLink();
sectionLink.loadData(this.graphicTemplate.datas);
@@ -108,6 +171,37 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
const forkP1 = new Point(refg.position.x, refg.position.y);
const forkP2 = new Point(turnout.position.x, turnout.position.y);
const points: IPointData[] = [forkP1];
+ const refTurnout1 = this.buildRelatedRef(
+ turnout.id,
+ graphicData.RelatedRef.DeviceType.Turnout,
+ port
+ );
+ const refTurnout2 = this.buildRelatedRef(
+ pRef.id,
+ graphicData.RelatedRef.DeviceType.Turnout,
+ pRef.devicePort
+ );
+ const refSimT1 = this.buildSimpleRef(
+ turnout.id,
+ graphicData.SimpleRef.DeviceType.Turnout
+ );
+ const refSimT2 = this.buildSimpleRef(
+ pRef.id,
+ graphicData.SimpleRef.DeviceType.Turnout
+ );
+ if (forkP1.x > forkP2.x) {
+ sectionLink.datas.aSimRef = refSimT2;
+ sectionLink.datas.bSimRef = refSimT1;
+ sectionLink.datas.aRef = refTurnout2;
+ sectionLink.datas.bRef = refTurnout1;
+ } else if (forkP1.x < forkP2.x) {
+ sectionLink.datas.aSimRef = refSimT1;
+ sectionLink.datas.bSimRef = refSimT2;
+ sectionLink.datas.aRef = refTurnout1;
+ sectionLink.datas.bRef = refTurnout2;
+ } else {
+ throw new Error('无法判断linkAB端');
+ }
if (pRef.devicePort === 0) {
refg.datas.pointA.forEach((p) => {
points.push(refg.localToCanvasPoint(p));
@@ -137,28 +231,154 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
sectionLink.datas.points = points;
this.storeGraphic(sectionLink);
}
+ /**
+ * 缓存计轴和link关系,为生成link关联关系提供数据依据
+ * @param map
+ * @param axleId
+ * @param linkId
+ */
+ cacheAxleLinkRelation(
+ map: Map,
+ axleId: string,
+ linkId: string
+ ) {
+ const list = map.get(axleId);
+ if (list) {
+ list.push(linkId);
+ map.set(axleId, list);
+ } else {
+ map.set(axleId, [linkId]);
+ }
+ }
+ /**
+ * 构建简单设备关联数据
+ * @param id
+ * @param deviceType
+ * @returns
+ */
+ buildSimpleRef(id: string, deviceType: graphicData.SimpleRef.DeviceType) {
+ return new graphicData.SimpleRef({ deviceType, id });
+ }
+ /**
+ * 构建关系数据
+ * @param id
+ * @param deviceType
+ * @param devicePort
+ * @returns
+ */
+ buildRelatedRef(
+ id: string,
+ deviceType: graphicData.RelatedRef.DeviceType,
+ devicePort: graphicData.RelatedRef.DevicePort
+ ): IRelatedRefData {
+ return new graphicData.RelatedRef({ id, deviceType, devicePort });
+ }
+ /**构建link之间的关联关系 */
+ buildLinkRef(map: Map) {
+ const DeviceType = graphicData.RelatedRef.DeviceType;
+ const DevicePort = graphicData.RelatedRef.DevicePort;
+ map.forEach((value) => {
+ if (value.length === 2) {
+ const link1 = this.app.queryStore.queryById(value[0]) as SectionLink;
+ const link2 = this.app.queryStore.queryById(value[1]) as SectionLink;
+ if (link1.datas.aSimRef.id === link2.datas.bSimRef.id) {
+ link1.datas.aRef = this.buildRelatedRef(
+ link2.id,
+ DeviceType.SectionLink,
+ DevicePort.B
+ );
+ link2.datas.bRef = this.buildRelatedRef(
+ link1.id,
+ DeviceType.SectionLink,
+ DevicePort.A
+ );
+ } else if (link1.datas.bSimRef.id === link2.datas.aSimRef.id) {
+ link1.datas.bRef = this.buildRelatedRef(
+ link2.id,
+ DeviceType.SectionLink,
+ DevicePort.A
+ );
+ link2.datas.aRef = this.buildRelatedRef(
+ link1.id,
+ DeviceType.SectionLink,
+ DevicePort.B
+ );
+ } else if (link1.datas.aSimRef.id === link2.datas.aSimRef.id) {
+ link1.datas.aRef = this.buildRelatedRef(
+ link2.id,
+ DeviceType.SectionLink,
+ DevicePort.A
+ );
+ link2.datas.aRef = this.buildRelatedRef(
+ link1.id,
+ DeviceType.SectionLink,
+ DevicePort.A
+ );
+ } else if (link1.datas.bSimRef.id === link2.datas.bSimRef.id) {
+ link1.datas.bRef = this.buildRelatedRef(
+ link2.id,
+ DeviceType.SectionLink,
+ DevicePort.B
+ );
+ link2.datas.bRef = this.buildRelatedRef(
+ link1.id,
+ DeviceType.SectionLink,
+ DevicePort.B
+ );
+ } else {
+ throw new Error('构建link关联关系错误!');
+ }
+ }
+ });
+ }
+ // cacheTurnoutPort(map: Map, device) {
+ // const pList = map.get(deviceId);
+ // if (pList) {
+ // pList.push(device.devicePort);
+ // generated.set(g.id, pList);
+ // } else {
+ // generated.set(g.id, [device.devicePort]);
+ // }
+ // }
+ /**
+ * 一键生成link
+ */
oneGenerates() {
const axleCountingList = this.app.queryStore.queryByType(
AxleCounting.Type
);
const turnoutList = this.app.queryStore.queryByType(Turnout.Type);
const generated = new Map();
+ const axleRefLink: Map = new Map();
axleCountingList.forEach((axleCounting) => {
axleCounting.datas.axleCountingRef.forEach((device) => {
const g = this.app.queryStore.queryById(device.id);
if (g.type === Section.Type && !generated.get(device.id)) {
- const g1 = axleCountingList.find((axleCounting) => {
- const s = axleCounting.datas.axleCountingRef.find(
- (ref) => ref.id === device.id
+ const axle1 = axleCountingList.find((axleCountingNew) => {
+ const s = axleCountingNew.datas.axleCountingRef.find(
+ (ref) =>
+ ref.id === device.id && axleCountingNew.id !== axleCounting.id
);
return s;
});
- if (g1) {
- this.generateBySection(g as Section);
+ if (axle1) {
+ const link = this.generateBySection(
+ g as Section,
+ device,
+ axleCounting,
+ axle1
+ );
generated.set(g.id, ['A', 'B']);
+ this.cacheAxleLinkRelation(axleRefLink, axleCounting.id, link.id);
+ this.cacheAxleLinkRelation(axleRefLink, axle1.id, link.id);
}
} else if (g.type === Turnout.Type) {
- this.generateByTurnoutAxle(g as Turnout, device.devicePort);
+ const link = this.generateByTurnoutAxle(
+ g as Turnout,
+ device.devicePort,
+ axleCounting
+ );
+ this.cacheAxleLinkRelation(axleRefLink, axleCounting.id, link.id);
if (generated.get(g.id)) {
const pList = generated.get(g.id);
pList.push(device.devicePort);
@@ -210,7 +430,9 @@ export class SectionLinkDraw extends GraphicDrawAssistant<
}
}
});
+ this.buildLinkRef(axleRefLink);
}
+
clearCache(): void {
this.points = [];
this.graphic.clear();
diff --git a/src/protos/device_state.ts b/src/protos/device_state.ts
index fa49ba8..6301baa 100644
--- a/src/protos/device_state.ts
+++ b/src/protos/device_state.ts
@@ -509,4 +509,253 @@ export namespace state {
return TrainState.deserialize(bytes);
}
}
+ export class VariationStatus extends pb_1.Message {
+ #one_of_decls: number[][] = [];
+ constructor(data?: any[] | {
+ updatedTrain?: TrainState[];
+ removedTrainId?: string[];
+ updatedSwitch?: SwitchState[];
+ updatedSection?: SectionState[];
+ }) {
+ super();
+ pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1, 2, 3, 4], this.#one_of_decls);
+ if (!Array.isArray(data) && typeof data == "object") {
+ if ("updatedTrain" in data && data.updatedTrain != undefined) {
+ this.updatedTrain = data.updatedTrain;
+ }
+ if ("removedTrainId" in data && data.removedTrainId != undefined) {
+ this.removedTrainId = data.removedTrainId;
+ }
+ if ("updatedSwitch" in data && data.updatedSwitch != undefined) {
+ this.updatedSwitch = data.updatedSwitch;
+ }
+ if ("updatedSection" in data && data.updatedSection != undefined) {
+ this.updatedSection = data.updatedSection;
+ }
+ }
+ }
+ get updatedTrain() {
+ return pb_1.Message.getRepeatedWrapperField(this, TrainState, 1) as TrainState[];
+ }
+ set updatedTrain(value: TrainState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 1, value);
+ }
+ get removedTrainId() {
+ return pb_1.Message.getFieldWithDefault(this, 2, []) as string[];
+ }
+ set removedTrainId(value: string[]) {
+ pb_1.Message.setField(this, 2, value);
+ }
+ get updatedSwitch() {
+ return pb_1.Message.getRepeatedWrapperField(this, SwitchState, 3) as SwitchState[];
+ }
+ set updatedSwitch(value: SwitchState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 3, value);
+ }
+ get updatedSection() {
+ return pb_1.Message.getRepeatedWrapperField(this, SectionState, 4) as SectionState[];
+ }
+ set updatedSection(value: SectionState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 4, value);
+ }
+ static fromObject(data: {
+ updatedTrain?: ReturnType[];
+ removedTrainId?: string[];
+ updatedSwitch?: ReturnType[];
+ updatedSection?: ReturnType[];
+ }): VariationStatus {
+ const message = new VariationStatus({});
+ if (data.updatedTrain != null) {
+ message.updatedTrain = data.updatedTrain.map(item => TrainState.fromObject(item));
+ }
+ if (data.removedTrainId != null) {
+ message.removedTrainId = data.removedTrainId;
+ }
+ if (data.updatedSwitch != null) {
+ message.updatedSwitch = data.updatedSwitch.map(item => SwitchState.fromObject(item));
+ }
+ if (data.updatedSection != null) {
+ message.updatedSection = data.updatedSection.map(item => SectionState.fromObject(item));
+ }
+ return message;
+ }
+ toObject() {
+ const data: {
+ updatedTrain?: ReturnType[];
+ removedTrainId?: string[];
+ updatedSwitch?: ReturnType[];
+ updatedSection?: ReturnType[];
+ } = {};
+ if (this.updatedTrain != null) {
+ data.updatedTrain = this.updatedTrain.map((item: TrainState) => item.toObject());
+ }
+ if (this.removedTrainId != null) {
+ data.removedTrainId = this.removedTrainId;
+ }
+ if (this.updatedSwitch != null) {
+ data.updatedSwitch = this.updatedSwitch.map((item: SwitchState) => item.toObject());
+ }
+ if (this.updatedSection != null) {
+ data.updatedSection = this.updatedSection.map((item: SectionState) => item.toObject());
+ }
+ 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.updatedTrain.length)
+ writer.writeRepeatedMessage(1, this.updatedTrain, (item: TrainState) => item.serialize(writer));
+ if (this.removedTrainId.length)
+ writer.writeRepeatedString(2, this.removedTrainId);
+ if (this.updatedSwitch.length)
+ writer.writeRepeatedMessage(3, this.updatedSwitch, (item: SwitchState) => item.serialize(writer));
+ if (this.updatedSection.length)
+ writer.writeRepeatedMessage(4, this.updatedSection, (item: SectionState) => item.serialize(writer));
+ if (!w)
+ return writer.getResultBuffer();
+ }
+ static deserialize(bytes: Uint8Array | pb_1.BinaryReader): VariationStatus {
+ const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new VariationStatus();
+ while (reader.nextField()) {
+ if (reader.isEndGroup())
+ break;
+ switch (reader.getFieldNumber()) {
+ case 1:
+ reader.readMessage(message.updatedTrain, () => pb_1.Message.addToRepeatedWrapperField(message, 1, TrainState.deserialize(reader), TrainState));
+ break;
+ case 2:
+ pb_1.Message.addToRepeatedField(message, 2, reader.readString());
+ break;
+ case 3:
+ reader.readMessage(message.updatedSwitch, () => pb_1.Message.addToRepeatedWrapperField(message, 3, SwitchState.deserialize(reader), SwitchState));
+ break;
+ case 4:
+ reader.readMessage(message.updatedSection, () => pb_1.Message.addToRepeatedWrapperField(message, 4, SectionState.deserialize(reader), SectionState));
+ break;
+ default: reader.skipField();
+ }
+ }
+ return message;
+ }
+ serializeBinary(): Uint8Array {
+ return this.serialize();
+ }
+ static deserializeBinary(bytes: Uint8Array): VariationStatus {
+ return VariationStatus.deserialize(bytes);
+ }
+ }
+ export class AllDevicesStatus extends pb_1.Message {
+ #one_of_decls: number[][] = [];
+ constructor(data?: any[] | {
+ trainState?: TrainState[];
+ switchState?: SwitchState[];
+ sectionState?: SectionState[];
+ }) {
+ super();
+ pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1, 2, 3], this.#one_of_decls);
+ if (!Array.isArray(data) && typeof data == "object") {
+ if ("trainState" in data && data.trainState != undefined) {
+ this.trainState = data.trainState;
+ }
+ if ("switchState" in data && data.switchState != undefined) {
+ this.switchState = data.switchState;
+ }
+ if ("sectionState" in data && data.sectionState != undefined) {
+ this.sectionState = data.sectionState;
+ }
+ }
+ }
+ get trainState() {
+ return pb_1.Message.getRepeatedWrapperField(this, TrainState, 1) as TrainState[];
+ }
+ set trainState(value: TrainState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 1, value);
+ }
+ get switchState() {
+ return pb_1.Message.getRepeatedWrapperField(this, SwitchState, 2) as SwitchState[];
+ }
+ set switchState(value: SwitchState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 2, value);
+ }
+ get sectionState() {
+ return pb_1.Message.getRepeatedWrapperField(this, SectionState, 3) as SectionState[];
+ }
+ set sectionState(value: SectionState[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 3, value);
+ }
+ static fromObject(data: {
+ trainState?: ReturnType[];
+ switchState?: ReturnType[];
+ sectionState?: ReturnType[];
+ }): AllDevicesStatus {
+ const message = new AllDevicesStatus({});
+ if (data.trainState != null) {
+ message.trainState = data.trainState.map(item => TrainState.fromObject(item));
+ }
+ if (data.switchState != null) {
+ message.switchState = data.switchState.map(item => SwitchState.fromObject(item));
+ }
+ if (data.sectionState != null) {
+ message.sectionState = data.sectionState.map(item => SectionState.fromObject(item));
+ }
+ return message;
+ }
+ toObject() {
+ const data: {
+ trainState?: ReturnType[];
+ switchState?: ReturnType[];
+ sectionState?: ReturnType[];
+ } = {};
+ if (this.trainState != null) {
+ data.trainState = this.trainState.map((item: TrainState) => item.toObject());
+ }
+ if (this.switchState != null) {
+ data.switchState = this.switchState.map((item: SwitchState) => item.toObject());
+ }
+ if (this.sectionState != null) {
+ data.sectionState = this.sectionState.map((item: SectionState) => item.toObject());
+ }
+ 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.trainState.length)
+ writer.writeRepeatedMessage(1, this.trainState, (item: TrainState) => item.serialize(writer));
+ if (this.switchState.length)
+ writer.writeRepeatedMessage(2, this.switchState, (item: SwitchState) => item.serialize(writer));
+ if (this.sectionState.length)
+ writer.writeRepeatedMessage(3, this.sectionState, (item: SectionState) => item.serialize(writer));
+ if (!w)
+ return writer.getResultBuffer();
+ }
+ static deserialize(bytes: Uint8Array | pb_1.BinaryReader): AllDevicesStatus {
+ const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new AllDevicesStatus();
+ while (reader.nextField()) {
+ if (reader.isEndGroup())
+ break;
+ switch (reader.getFieldNumber()) {
+ case 1:
+ reader.readMessage(message.trainState, () => pb_1.Message.addToRepeatedWrapperField(message, 1, TrainState.deserialize(reader), TrainState));
+ break;
+ case 2:
+ reader.readMessage(message.switchState, () => pb_1.Message.addToRepeatedWrapperField(message, 2, SwitchState.deserialize(reader), SwitchState));
+ break;
+ case 3:
+ reader.readMessage(message.sectionState, () => pb_1.Message.addToRepeatedWrapperField(message, 3, SectionState.deserialize(reader), SectionState));
+ break;
+ default: reader.skipField();
+ }
+ }
+ return message;
+ }
+ serializeBinary(): Uint8Array {
+ return this.serialize();
+ }
+ static deserializeBinary(bytes: Uint8Array): AllDevicesStatus {
+ return AllDevicesStatus.deserialize(bytes);
+ }
+ }
}
diff --git a/src/protos/stationLayoutGraphics.ts b/src/protos/stationLayoutGraphics.ts
index a73b14d..31e8f66 100644
--- a/src/protos/stationLayoutGraphics.ts
+++ b/src/protos/stationLayoutGraphics.ts
@@ -24,7 +24,7 @@ export namespace graphicData {
separators?: Separator[];
sectionLinks?: SectionLink[];
axleCountingSections?: AxleCountingSection[];
- logicSections?: AxleCountingSection[];
+ logicSections?: LogicSection[];
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], this.#one_of_decls);
@@ -182,9 +182,9 @@ export namespace graphicData {
pb_1.Message.setRepeatedWrapperField(this, 16, value);
}
get logicSections() {
- return pb_1.Message.getRepeatedWrapperField(this, AxleCountingSection, 17) as AxleCountingSection[];
+ return pb_1.Message.getRepeatedWrapperField(this, LogicSection, 17) as LogicSection[];
}
- set logicSections(value: AxleCountingSection[]) {
+ set logicSections(value: LogicSection[]) {
pb_1.Message.setRepeatedWrapperField(this, 17, value);
}
static fromObject(data: {
@@ -204,7 +204,7 @@ export namespace graphicData {
separators?: ReturnType[];
sectionLinks?: ReturnType[];
axleCountingSections?: ReturnType[];
- logicSections?: ReturnType[];
+ logicSections?: ReturnType[];
}): RtssGraphicStorage {
const message = new RtssGraphicStorage({});
if (data.canvas != null) {
@@ -256,7 +256,7 @@ export namespace graphicData {
message.axleCountingSections = data.axleCountingSections.map(item => AxleCountingSection.fromObject(item));
}
if (data.logicSections != null) {
- message.logicSections = data.logicSections.map(item => AxleCountingSection.fromObject(item));
+ message.logicSections = data.logicSections.map(item => LogicSection.fromObject(item));
}
return message;
}
@@ -278,7 +278,7 @@ export namespace graphicData {
separators?: ReturnType[];
sectionLinks?: ReturnType[];
axleCountingSections?: ReturnType[];
- logicSections?: ReturnType[];
+ logicSections?: ReturnType[];
} = {};
if (this.canvas != null) {
data.canvas = this.canvas.toObject();
@@ -329,7 +329,7 @@ export namespace graphicData {
data.axleCountingSections = this.axleCountingSections.map((item: AxleCountingSection) => item.toObject());
}
if (this.logicSections != null) {
- data.logicSections = this.logicSections.map((item: AxleCountingSection) => item.toObject());
+ data.logicSections = this.logicSections.map((item: LogicSection) => item.toObject());
}
return data;
}
@@ -370,7 +370,7 @@ export namespace graphicData {
if (this.axleCountingSections.length)
writer.writeRepeatedMessage(16, this.axleCountingSections, (item: AxleCountingSection) => item.serialize(writer));
if (this.logicSections.length)
- writer.writeRepeatedMessage(17, this.logicSections, (item: AxleCountingSection) => item.serialize(writer));
+ writer.writeRepeatedMessage(17, this.logicSections, (item: LogicSection) => item.serialize(writer));
if (!w)
return writer.getResultBuffer();
}
@@ -429,7 +429,7 @@ export namespace graphicData {
reader.readMessage(message.axleCountingSections, () => pb_1.Message.addToRepeatedWrapperField(message, 16, AxleCountingSection.deserialize(reader), AxleCountingSection));
break;
case 17:
- reader.readMessage(message.logicSections, () => pb_1.Message.addToRepeatedWrapperField(message, 17, AxleCountingSection.deserialize(reader), AxleCountingSection));
+ reader.readMessage(message.logicSections, () => pb_1.Message.addToRepeatedWrapperField(message, 17, LogicSection.deserialize(reader), LogicSection));
break;
default: reader.skipField();
}
@@ -2080,6 +2080,7 @@ export namespace graphicData {
code?: string;
kilometerSystem?: KilometerSystem;
axleCountingRef?: RelatedRef[];
+ indexNumber?: number;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [4], this.#one_of_decls);
@@ -2096,6 +2097,9 @@ export namespace graphicData {
if ("axleCountingRef" in data && data.axleCountingRef != undefined) {
this.axleCountingRef = data.axleCountingRef;
}
+ if ("indexNumber" in data && data.indexNumber != undefined) {
+ this.indexNumber = data.indexNumber;
+ }
}
}
get common() {
@@ -2128,11 +2132,18 @@ export namespace graphicData {
set axleCountingRef(value: RelatedRef[]) {
pb_1.Message.setRepeatedWrapperField(this, 4, value);
}
+ get indexNumber() {
+ return pb_1.Message.getFieldWithDefault(this, 5, 0) as number;
+ }
+ set indexNumber(value: number) {
+ pb_1.Message.setField(this, 5, value);
+ }
static fromObject(data: {
common?: ReturnType;
code?: string;
kilometerSystem?: ReturnType;
axleCountingRef?: ReturnType[];
+ indexNumber?: number;
}): AxleCounting {
const message = new AxleCounting({});
if (data.common != null) {
@@ -2147,6 +2158,9 @@ export namespace graphicData {
if (data.axleCountingRef != null) {
message.axleCountingRef = data.axleCountingRef.map(item => RelatedRef.fromObject(item));
}
+ if (data.indexNumber != null) {
+ message.indexNumber = data.indexNumber;
+ }
return message;
}
toObject() {
@@ -2155,6 +2169,7 @@ export namespace graphicData {
code?: string;
kilometerSystem?: ReturnType;
axleCountingRef?: ReturnType[];
+ indexNumber?: number;
} = {};
if (this.common != null) {
data.common = this.common.toObject();
@@ -2168,6 +2183,9 @@ export namespace graphicData {
if (this.axleCountingRef != null) {
data.axleCountingRef = this.axleCountingRef.map((item: RelatedRef) => item.toObject());
}
+ if (this.indexNumber != null) {
+ data.indexNumber = this.indexNumber;
+ }
return data;
}
serialize(): Uint8Array;
@@ -2182,6 +2200,8 @@ export namespace graphicData {
writer.writeMessage(3, this.kilometerSystem, () => this.kilometerSystem.serialize(writer));
if (this.axleCountingRef.length)
writer.writeRepeatedMessage(4, this.axleCountingRef, (item: RelatedRef) => item.serialize(writer));
+ if (this.indexNumber != 0)
+ writer.writeInt32(5, this.indexNumber);
if (!w)
return writer.getResultBuffer();
}
@@ -2203,6 +2223,9 @@ export namespace graphicData {
case 4:
reader.readMessage(message.axleCountingRef, () => pb_1.Message.addToRepeatedWrapperField(message, 4, RelatedRef.deserialize(reader), RelatedRef));
break;
+ case 5:
+ message.indexNumber = reader.readInt32();
+ break;
default: reader.skipField();
}
}
@@ -2905,7 +2928,8 @@ export namespace graphicData {
paRef?: RelatedRef;
pbRef?: RelatedRef;
sectionType?: Section.SectionType;
- children?: string[];
+ axleCountings?: string[];
+ index?: number;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3, 7], this.#one_of_decls);
@@ -2928,8 +2952,11 @@ export namespace graphicData {
if ("sectionType" in data && data.sectionType != undefined) {
this.sectionType = data.sectionType;
}
- if ("children" in data && data.children != undefined) {
- this.children = data.children;
+ if ("axleCountings" in data && data.axleCountings != undefined) {
+ this.axleCountings = data.axleCountings;
+ }
+ if ("index" in data && data.index != undefined) {
+ this.index = data.index;
}
}
}
@@ -2978,12 +3005,18 @@ export namespace graphicData {
set sectionType(value: Section.SectionType) {
pb_1.Message.setField(this, 6, value);
}
- get children() {
+ get axleCountings() {
return pb_1.Message.getFieldWithDefault(this, 7, []) as string[];
}
- set children(value: string[]) {
+ set axleCountings(value: string[]) {
pb_1.Message.setField(this, 7, value);
}
+ get index() {
+ return pb_1.Message.getFieldWithDefault(this, 8, 0) as number;
+ }
+ set index(value: number) {
+ pb_1.Message.setField(this, 8, value);
+ }
static fromObject(data: {
common?: ReturnType;
code?: string;
@@ -2991,7 +3024,8 @@ export namespace graphicData {
paRef?: ReturnType;
pbRef?: ReturnType;
sectionType?: Section.SectionType;
- children?: string[];
+ axleCountings?: string[];
+ index?: number;
}): Section {
const message = new Section({});
if (data.common != null) {
@@ -3012,8 +3046,11 @@ export namespace graphicData {
if (data.sectionType != null) {
message.sectionType = data.sectionType;
}
- if (data.children != null) {
- message.children = data.children;
+ if (data.axleCountings != null) {
+ message.axleCountings = data.axleCountings;
+ }
+ if (data.index != null) {
+ message.index = data.index;
}
return message;
}
@@ -3025,7 +3062,8 @@ export namespace graphicData {
paRef?: ReturnType;
pbRef?: ReturnType;
sectionType?: Section.SectionType;
- children?: string[];
+ axleCountings?: string[];
+ index?: number;
} = {};
if (this.common != null) {
data.common = this.common.toObject();
@@ -3045,8 +3083,11 @@ export namespace graphicData {
if (this.sectionType != null) {
data.sectionType = this.sectionType;
}
- if (this.children != null) {
- data.children = this.children;
+ if (this.axleCountings != null) {
+ data.axleCountings = this.axleCountings;
+ }
+ if (this.index != null) {
+ data.index = this.index;
}
return data;
}
@@ -3066,8 +3107,10 @@ export namespace graphicData {
writer.writeMessage(5, this.pbRef, () => this.pbRef.serialize(writer));
if (this.sectionType != Section.SectionType.Physical)
writer.writeEnum(6, this.sectionType);
- if (this.children.length)
- writer.writeRepeatedString(7, this.children);
+ if (this.axleCountings.length)
+ writer.writeRepeatedString(7, this.axleCountings);
+ if (this.index != 0)
+ writer.writeInt32(8, this.index);
if (!w)
return writer.getResultBuffer();
}
@@ -3098,6 +3141,9 @@ export namespace graphicData {
case 7:
pb_1.Message.addToRepeatedField(message, 7, reader.readString());
break;
+ case 8:
+ message.index = reader.readInt32();
+ break;
default: reader.skipField();
}
}
@@ -3113,7 +3159,6 @@ export namespace graphicData {
export namespace Section {
export enum SectionType {
Physical = 0,
- Logic = 1,
TurnoutPhysical = 2
}
}
@@ -3351,7 +3396,8 @@ export namespace graphicData {
Section = 0,
Turnout = 1,
TrainWindow = 2,
- AxleCounting = 3
+ AxleCounting = 3,
+ SectionLink = 4
}
export enum DevicePort {
A = 0,
@@ -3359,6 +3405,96 @@ export namespace graphicData {
C = 2
}
}
+ export class TurnoutPosRef extends pb_1.Message {
+ #one_of_decls: number[][] = [];
+ constructor(data?: any[] | {
+ id?: string;
+ position?: number;
+ }) {
+ super();
+ 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 ("position" in data && data.position != undefined) {
+ this.position = data.position;
+ }
+ }
+ }
+ get id() {
+ return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
+ }
+ set id(value: string) {
+ pb_1.Message.setField(this, 1, value);
+ }
+ get position() {
+ return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
+ }
+ set position(value: number) {
+ pb_1.Message.setField(this, 2, value);
+ }
+ static fromObject(data: {
+ id?: string;
+ position?: number;
+ }): TurnoutPosRef {
+ const message = new TurnoutPosRef({});
+ if (data.id != null) {
+ message.id = data.id;
+ }
+ if (data.position != null) {
+ message.position = data.position;
+ }
+ return message;
+ }
+ toObject() {
+ const data: {
+ id?: string;
+ position?: number;
+ } = {};
+ if (this.id != null) {
+ data.id = this.id;
+ }
+ if (this.position != null) {
+ data.position = this.position;
+ }
+ 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.length)
+ writer.writeString(1, this.id);
+ if (this.position != 0)
+ writer.writeInt32(2, this.position);
+ if (!w)
+ return writer.getResultBuffer();
+ }
+ static deserialize(bytes: Uint8Array | pb_1.BinaryReader): TurnoutPosRef {
+ const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new TurnoutPosRef();
+ while (reader.nextField()) {
+ if (reader.isEndGroup())
+ break;
+ switch (reader.getFieldNumber()) {
+ case 1:
+ message.id = reader.readString();
+ break;
+ case 2:
+ message.position = reader.readInt32();
+ break;
+ default: reader.skipField();
+ }
+ }
+ return message;
+ }
+ serializeBinary(): Uint8Array {
+ return this.serialize();
+ }
+ static deserializeBinary(bytes: Uint8Array): TurnoutPosRef {
+ return TurnoutPosRef.deserialize(bytes);
+ }
+ }
export class Separator extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
@@ -3475,13 +3611,113 @@ export namespace graphicData {
return Separator.deserialize(bytes);
}
}
+ export class SimpleRef extends pb_1.Message {
+ #one_of_decls: number[][] = [];
+ constructor(data?: any[] | {
+ deviceType?: SimpleRef.DeviceType;
+ id?: string;
+ }) {
+ super();
+ pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
+ if (!Array.isArray(data) && typeof data == "object") {
+ if ("deviceType" in data && data.deviceType != undefined) {
+ this.deviceType = data.deviceType;
+ }
+ if ("id" in data && data.id != undefined) {
+ this.id = data.id;
+ }
+ }
+ }
+ get deviceType() {
+ return pb_1.Message.getFieldWithDefault(this, 1, SimpleRef.DeviceType.Turnout) as SimpleRef.DeviceType;
+ }
+ set deviceType(value: SimpleRef.DeviceType) {
+ pb_1.Message.setField(this, 1, value);
+ }
+ get id() {
+ return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
+ }
+ set id(value: string) {
+ pb_1.Message.setField(this, 2, value);
+ }
+ static fromObject(data: {
+ deviceType?: SimpleRef.DeviceType;
+ id?: string;
+ }): SimpleRef {
+ const message = new SimpleRef({});
+ if (data.deviceType != null) {
+ message.deviceType = data.deviceType;
+ }
+ if (data.id != null) {
+ message.id = data.id;
+ }
+ return message;
+ }
+ toObject() {
+ const data: {
+ deviceType?: SimpleRef.DeviceType;
+ id?: string;
+ } = {};
+ if (this.deviceType != null) {
+ data.deviceType = this.deviceType;
+ }
+ if (this.id != null) {
+ data.id = this.id;
+ }
+ 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.deviceType != SimpleRef.DeviceType.Turnout)
+ writer.writeEnum(1, this.deviceType);
+ if (this.id.length)
+ writer.writeString(2, this.id);
+ if (!w)
+ return writer.getResultBuffer();
+ }
+ static deserialize(bytes: Uint8Array | pb_1.BinaryReader): SimpleRef {
+ const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new SimpleRef();
+ while (reader.nextField()) {
+ if (reader.isEndGroup())
+ break;
+ switch (reader.getFieldNumber()) {
+ case 1:
+ message.deviceType = reader.readEnum();
+ break;
+ case 2:
+ message.id = reader.readString();
+ break;
+ default: reader.skipField();
+ }
+ }
+ return message;
+ }
+ serializeBinary(): Uint8Array {
+ return this.serialize();
+ }
+ static deserializeBinary(bytes: Uint8Array): SimpleRef {
+ return SimpleRef.deserialize(bytes);
+ }
+ }
+ export namespace SimpleRef {
+ export enum DeviceType {
+ Turnout = 0,
+ AxleCounting = 1
+ }
+ }
export class SectionLink extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
common?: CommonInfo;
code?: string;
points?: Point[];
- refDevice?: string;
+ up?: boolean;
+ aSimRef?: SimpleRef;
+ bSimRef?: SimpleRef;
+ aRef?: RelatedRef;
+ bRef?: RelatedRef;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls);
@@ -3495,8 +3731,20 @@ export namespace graphicData {
if ("points" in data && data.points != undefined) {
this.points = data.points;
}
- if ("refDevice" in data && data.refDevice != undefined) {
- this.refDevice = data.refDevice;
+ if ("up" in data && data.up != undefined) {
+ this.up = data.up;
+ }
+ if ("aSimRef" in data && data.aSimRef != undefined) {
+ this.aSimRef = data.aSimRef;
+ }
+ if ("bSimRef" in data && data.bSimRef != undefined) {
+ this.bSimRef = data.bSimRef;
+ }
+ if ("aRef" in data && data.aRef != undefined) {
+ this.aRef = data.aRef;
+ }
+ if ("bRef" in data && data.bRef != undefined) {
+ this.bRef = data.bRef;
}
}
}
@@ -3521,17 +3769,57 @@ export namespace graphicData {
set points(value: Point[]) {
pb_1.Message.setRepeatedWrapperField(this, 3, value);
}
- get refDevice() {
- return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
+ get up() {
+ return pb_1.Message.getFieldWithDefault(this, 4, false) as boolean;
}
- set refDevice(value: string) {
+ set up(value: boolean) {
pb_1.Message.setField(this, 4, value);
}
+ get aSimRef() {
+ return pb_1.Message.getWrapperField(this, SimpleRef, 5) as SimpleRef;
+ }
+ set aSimRef(value: SimpleRef) {
+ pb_1.Message.setWrapperField(this, 5, value);
+ }
+ get has_aSimRef() {
+ return pb_1.Message.getField(this, 5) != null;
+ }
+ get bSimRef() {
+ return pb_1.Message.getWrapperField(this, SimpleRef, 6) as SimpleRef;
+ }
+ set bSimRef(value: SimpleRef) {
+ pb_1.Message.setWrapperField(this, 6, value);
+ }
+ get has_bSimRef() {
+ return pb_1.Message.getField(this, 6) != null;
+ }
+ get aRef() {
+ return pb_1.Message.getWrapperField(this, RelatedRef, 7) as RelatedRef;
+ }
+ set aRef(value: RelatedRef) {
+ pb_1.Message.setWrapperField(this, 7, value);
+ }
+ get has_aRef() {
+ return pb_1.Message.getField(this, 7) != null;
+ }
+ get bRef() {
+ return pb_1.Message.getWrapperField(this, RelatedRef, 8) as RelatedRef;
+ }
+ set bRef(value: RelatedRef) {
+ pb_1.Message.setWrapperField(this, 8, value);
+ }
+ get has_bRef() {
+ return pb_1.Message.getField(this, 8) != null;
+ }
static fromObject(data: {
common?: ReturnType;
code?: string;
points?: ReturnType[];
- refDevice?: string;
+ up?: boolean;
+ aSimRef?: ReturnType;
+ bSimRef?: ReturnType;
+ aRef?: ReturnType;
+ bRef?: ReturnType;
}): SectionLink {
const message = new SectionLink({});
if (data.common != null) {
@@ -3543,8 +3831,20 @@ export namespace graphicData {
if (data.points != null) {
message.points = data.points.map(item => Point.fromObject(item));
}
- if (data.refDevice != null) {
- message.refDevice = data.refDevice;
+ if (data.up != null) {
+ message.up = data.up;
+ }
+ if (data.aSimRef != null) {
+ message.aSimRef = SimpleRef.fromObject(data.aSimRef);
+ }
+ if (data.bSimRef != null) {
+ message.bSimRef = SimpleRef.fromObject(data.bSimRef);
+ }
+ if (data.aRef != null) {
+ message.aRef = RelatedRef.fromObject(data.aRef);
+ }
+ if (data.bRef != null) {
+ message.bRef = RelatedRef.fromObject(data.bRef);
}
return message;
}
@@ -3553,7 +3853,11 @@ export namespace graphicData {
common?: ReturnType;
code?: string;
points?: ReturnType[];
- refDevice?: string;
+ up?: boolean;
+ aSimRef?: ReturnType;
+ bSimRef?: ReturnType;
+ aRef?: ReturnType;
+ bRef?: ReturnType;
} = {};
if (this.common != null) {
data.common = this.common.toObject();
@@ -3564,8 +3868,20 @@ export namespace graphicData {
if (this.points != null) {
data.points = this.points.map((item: Point) => item.toObject());
}
- if (this.refDevice != null) {
- data.refDevice = this.refDevice;
+ if (this.up != null) {
+ data.up = this.up;
+ }
+ if (this.aSimRef != null) {
+ data.aSimRef = this.aSimRef.toObject();
+ }
+ if (this.bSimRef != null) {
+ data.bSimRef = this.bSimRef.toObject();
+ }
+ if (this.aRef != null) {
+ data.aRef = this.aRef.toObject();
+ }
+ if (this.bRef != null) {
+ data.bRef = this.bRef.toObject();
}
return data;
}
@@ -3579,8 +3895,16 @@ export namespace graphicData {
writer.writeString(2, this.code);
if (this.points.length)
writer.writeRepeatedMessage(3, this.points, (item: Point) => item.serialize(writer));
- if (this.refDevice.length)
- writer.writeString(4, this.refDevice);
+ if (this.up != false)
+ writer.writeBool(4, this.up);
+ if (this.has_aSimRef)
+ writer.writeMessage(5, this.aSimRef, () => this.aSimRef.serialize(writer));
+ if (this.has_bSimRef)
+ writer.writeMessage(6, this.bSimRef, () => this.bSimRef.serialize(writer));
+ if (this.has_aRef)
+ writer.writeMessage(7, this.aRef, () => this.aRef.serialize(writer));
+ if (this.has_bRef)
+ writer.writeMessage(8, this.bRef, () => this.bRef.serialize(writer));
if (!w)
return writer.getResultBuffer();
}
@@ -3600,7 +3924,19 @@ export namespace graphicData {
reader.readMessage(message.points, () => pb_1.Message.addToRepeatedWrapperField(message, 3, Point.deserialize(reader), Point));
break;
case 4:
- message.refDevice = reader.readString();
+ message.up = reader.readBool();
+ break;
+ case 5:
+ reader.readMessage(message.aSimRef, () => message.aSimRef = SimpleRef.deserialize(reader));
+ break;
+ case 6:
+ reader.readMessage(message.bSimRef, () => message.bSimRef = SimpleRef.deserialize(reader));
+ break;
+ case 7:
+ reader.readMessage(message.aRef, () => message.aRef = RelatedRef.deserialize(reader));
+ break;
+ case 8:
+ reader.readMessage(message.bRef, () => message.bRef = RelatedRef.deserialize(reader));
break;
default: reader.skipField();
}
@@ -3622,9 +3958,11 @@ export namespace graphicData {
points?: Point[];
paRef?: RelatedRef;
pbRef?: RelatedRef;
+ turnoutPos?: TurnoutPosRef[];
+ indexNumber?: number;
}) {
super();
- pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls);
+ pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3, 6], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("common" in data && data.common != undefined) {
this.common = data.common;
@@ -3641,6 +3979,12 @@ export namespace graphicData {
if ("pbRef" in data && data.pbRef != undefined) {
this.pbRef = data.pbRef;
}
+ if ("turnoutPos" in data && data.turnoutPos != undefined) {
+ this.turnoutPos = data.turnoutPos;
+ }
+ if ("indexNumber" in data && data.indexNumber != undefined) {
+ this.indexNumber = data.indexNumber;
+ }
}
}
get common() {
@@ -3682,12 +4026,26 @@ export namespace graphicData {
get has_pbRef() {
return pb_1.Message.getField(this, 5) != null;
}
+ get turnoutPos() {
+ return pb_1.Message.getRepeatedWrapperField(this, TurnoutPosRef, 6) as TurnoutPosRef[];
+ }
+ set turnoutPos(value: TurnoutPosRef[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 6, value);
+ }
+ get indexNumber() {
+ return pb_1.Message.getFieldWithDefault(this, 7, 0) as number;
+ }
+ set indexNumber(value: number) {
+ pb_1.Message.setField(this, 7, value);
+ }
static fromObject(data: {
common?: ReturnType;
code?: string;
points?: ReturnType[];
paRef?: ReturnType;
pbRef?: ReturnType;
+ turnoutPos?: ReturnType[];
+ indexNumber?: number;
}): AxleCountingSection {
const message = new AxleCountingSection({});
if (data.common != null) {
@@ -3705,6 +4063,12 @@ export namespace graphicData {
if (data.pbRef != null) {
message.pbRef = RelatedRef.fromObject(data.pbRef);
}
+ if (data.turnoutPos != null) {
+ message.turnoutPos = data.turnoutPos.map(item => TurnoutPosRef.fromObject(item));
+ }
+ if (data.indexNumber != null) {
+ message.indexNumber = data.indexNumber;
+ }
return message;
}
toObject() {
@@ -3714,6 +4078,8 @@ export namespace graphicData {
points?: ReturnType[];
paRef?: ReturnType;
pbRef?: ReturnType;
+ turnoutPos?: ReturnType[];
+ indexNumber?: number;
} = {};
if (this.common != null) {
data.common = this.common.toObject();
@@ -3730,6 +4096,12 @@ export namespace graphicData {
if (this.pbRef != null) {
data.pbRef = this.pbRef.toObject();
}
+ if (this.turnoutPos != null) {
+ data.turnoutPos = this.turnoutPos.map((item: TurnoutPosRef) => item.toObject());
+ }
+ if (this.indexNumber != null) {
+ data.indexNumber = this.indexNumber;
+ }
return data;
}
serialize(): Uint8Array;
@@ -3746,6 +4118,10 @@ export namespace graphicData {
writer.writeMessage(4, this.paRef, () => this.paRef.serialize(writer));
if (this.has_pbRef)
writer.writeMessage(5, this.pbRef, () => this.pbRef.serialize(writer));
+ if (this.turnoutPos.length)
+ writer.writeRepeatedMessage(6, this.turnoutPos, (item: TurnoutPosRef) => item.serialize(writer));
+ if (this.indexNumber != 0)
+ writer.writeInt32(7, this.indexNumber);
if (!w)
return writer.getResultBuffer();
}
@@ -3770,6 +4146,12 @@ export namespace graphicData {
case 5:
reader.readMessage(message.pbRef, () => message.pbRef = RelatedRef.deserialize(reader));
break;
+ case 6:
+ reader.readMessage(message.turnoutPos, () => pb_1.Message.addToRepeatedWrapperField(message, 6, TurnoutPosRef.deserialize(reader), TurnoutPosRef));
+ break;
+ case 7:
+ message.indexNumber = reader.readInt32();
+ break;
default: reader.skipField();
}
}
@@ -3782,4 +4164,166 @@ export namespace graphicData {
return AxleCountingSection.deserialize(bytes);
}
}
+ export class LogicSection extends pb_1.Message {
+ #one_of_decls: number[][] = [];
+ constructor(data?: any[] | {
+ common?: CommonInfo;
+ code?: string;
+ points?: Point[];
+ axleSectionId?: string;
+ indexNumber?: number;
+ }) {
+ super();
+ pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls);
+ if (!Array.isArray(data) && typeof data == "object") {
+ if ("common" in data && data.common != undefined) {
+ this.common = data.common;
+ }
+ if ("code" in data && data.code != undefined) {
+ this.code = data.code;
+ }
+ if ("points" in data && data.points != undefined) {
+ this.points = data.points;
+ }
+ if ("axleSectionId" in data && data.axleSectionId != undefined) {
+ this.axleSectionId = data.axleSectionId;
+ }
+ if ("indexNumber" in data && data.indexNumber != undefined) {
+ this.indexNumber = data.indexNumber;
+ }
+ }
+ }
+ get common() {
+ return pb_1.Message.getWrapperField(this, CommonInfo, 1) as CommonInfo;
+ }
+ set common(value: CommonInfo) {
+ pb_1.Message.setWrapperField(this, 1, value);
+ }
+ get has_common() {
+ return pb_1.Message.getField(this, 1) != null;
+ }
+ get code() {
+ return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
+ }
+ set code(value: string) {
+ pb_1.Message.setField(this, 2, value);
+ }
+ get points() {
+ return pb_1.Message.getRepeatedWrapperField(this, Point, 3) as Point[];
+ }
+ set points(value: Point[]) {
+ pb_1.Message.setRepeatedWrapperField(this, 3, value);
+ }
+ get axleSectionId() {
+ return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
+ }
+ set axleSectionId(value: string) {
+ pb_1.Message.setField(this, 4, value);
+ }
+ get indexNumber() {
+ return pb_1.Message.getFieldWithDefault(this, 5, 0) as number;
+ }
+ set indexNumber(value: number) {
+ pb_1.Message.setField(this, 5, value);
+ }
+ static fromObject(data: {
+ common?: ReturnType;
+ code?: string;
+ points?: ReturnType[];
+ axleSectionId?: string;
+ indexNumber?: number;
+ }): LogicSection {
+ const message = new LogicSection({});
+ if (data.common != null) {
+ message.common = CommonInfo.fromObject(data.common);
+ }
+ if (data.code != null) {
+ message.code = data.code;
+ }
+ if (data.points != null) {
+ message.points = data.points.map(item => Point.fromObject(item));
+ }
+ if (data.axleSectionId != null) {
+ message.axleSectionId = data.axleSectionId;
+ }
+ if (data.indexNumber != null) {
+ message.indexNumber = data.indexNumber;
+ }
+ return message;
+ }
+ toObject() {
+ const data: {
+ common?: ReturnType;
+ code?: string;
+ points?: ReturnType[];
+ axleSectionId?: string;
+ indexNumber?: number;
+ } = {};
+ if (this.common != null) {
+ data.common = this.common.toObject();
+ }
+ if (this.code != null) {
+ data.code = this.code;
+ }
+ if (this.points != null) {
+ data.points = this.points.map((item: Point) => item.toObject());
+ }
+ if (this.axleSectionId != null) {
+ data.axleSectionId = this.axleSectionId;
+ }
+ if (this.indexNumber != null) {
+ data.indexNumber = this.indexNumber;
+ }
+ 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.has_common)
+ writer.writeMessage(1, this.common, () => this.common.serialize(writer));
+ if (this.code.length)
+ writer.writeString(2, this.code);
+ if (this.points.length)
+ writer.writeRepeatedMessage(3, this.points, (item: Point) => item.serialize(writer));
+ if (this.axleSectionId.length)
+ writer.writeString(4, this.axleSectionId);
+ if (this.indexNumber != 0)
+ writer.writeInt32(5, this.indexNumber);
+ if (!w)
+ return writer.getResultBuffer();
+ }
+ static deserialize(bytes: Uint8Array | pb_1.BinaryReader): LogicSection {
+ const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new LogicSection();
+ while (reader.nextField()) {
+ if (reader.isEndGroup())
+ break;
+ switch (reader.getFieldNumber()) {
+ case 1:
+ reader.readMessage(message.common, () => message.common = CommonInfo.deserialize(reader));
+ break;
+ case 2:
+ message.code = reader.readString();
+ break;
+ case 3:
+ reader.readMessage(message.points, () => pb_1.Message.addToRepeatedWrapperField(message, 3, Point.deserialize(reader), Point));
+ break;
+ case 4:
+ message.axleSectionId = reader.readString();
+ break;
+ case 5:
+ message.indexNumber = reader.readInt32();
+ break;
+ default: reader.skipField();
+ }
+ }
+ return message;
+ }
+ serializeBinary(): Uint8Array {
+ return this.serialize();
+ }
+ static deserializeBinary(bytes: Uint8Array): LogicSection {
+ return LogicSection.deserialize(bytes);
+ }
+ }
}