diff --git a/bj-rtss-message b/bj-rtss-message
index 0868e92..4db072e 160000
--- a/bj-rtss-message
+++ b/bj-rtss-message
@@ -1 +1 @@
-Subproject commit 0868e9273f80f007eed3820da5f902a4107ac91a
+Subproject commit 4db072e4cdc36bfa951496fb4042ab2a76d381b4
diff --git a/src/components/draw-app/properties/IbpButtonProperty.vue b/src/components/draw-app/properties/IbpButtonProperty.vue
index 89811c7..bdaf8b8 100644
--- a/src/components/draw-app/properties/IbpButtonProperty.vue
+++ b/src/components/draw-app/properties/IbpButtonProperty.vue
@@ -51,7 +51,11 @@ const colorOptions = [
label="是否自复位"
@update:modelValue="onUpdate"
/>
+
-
-
diff --git a/src/drawApp/graphics/IBPButtonInteraction.ts b/src/drawApp/graphics/IBPButtonInteraction.ts
index c2bfa9d..5a44ef4 100644
--- a/src/drawApp/graphics/IBPButtonInteraction.ts
+++ b/src/drawApp/graphics/IBPButtonInteraction.ts
@@ -42,6 +42,12 @@ export class IBPButtonData extends GraphicDataBase implements IIBPButtonData {
set isSelfReset(v: boolean) {
this.data.isSelfReset = v;
}
+ get hasLight(): boolean {
+ return this.data.hasLight;
+ }
+ set hasLight(v: boolean) {
+ this.data.hasLight = v;
+ }
clone() {
return new IBPButtonData(this.data.cloneMessage());
}
diff --git a/src/graphics/IBPButton/IBPButton.ts b/src/graphics/IBPButton/IBPButton.ts
index 60b0fa0..eb6f699 100644
--- a/src/graphics/IBPButton/IBPButton.ts
+++ b/src/graphics/IBPButton/IBPButton.ts
@@ -11,6 +11,8 @@ export interface IIBPButtonData extends GraphicData {
set color(v: ibpGraphicData.IBPButton.IbpButtonColor);
get isSelfReset(): boolean;
set isSelfReset(v: boolean);
+ get hasLight(): boolean;
+ set hasLight(v: boolean);
}
export class IBPButton extends JlGraphic {
@@ -41,7 +43,7 @@ export class IBPButton extends JlGraphic {
this.sprite.texture = this.textures.get(
this.datas.color,
this.isPressed,
- false
+ this.datas.hasLight
);
}
press(): void {
diff --git a/src/protos/device_state.ts b/src/protos/device_state.ts
index b92a4fc..8b1b577 100644
--- a/src/protos/device_state.ts
+++ b/src/protos/device_state.ts
@@ -1046,6 +1046,7 @@ export namespace state {
tailRadarSpeed?: number;
udpInterruption?: boolean;
acceleration?: number;
+ diffTime?: number;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [6], this.#one_of_decls);
@@ -1116,6 +1117,9 @@ export namespace state {
if ("acceleration" in data && data.acceleration != undefined) {
this.acceleration = data.acceleration;
}
+ if ("diffTime" in data && data.diffTime != undefined) {
+ this.diffTime = data.diffTime;
+ }
}
}
get heartbeat() {
@@ -1250,6 +1254,12 @@ export namespace state {
set acceleration(value: number) {
pb_1.Message.setField(this, 22, value);
}
+ get diffTime() {
+ return pb_1.Message.getFieldWithDefault(this, 24, 0) as number;
+ }
+ set diffTime(value: number) {
+ pb_1.Message.setField(this, 24, value);
+ }
static fromObject(data: {
heartbeat?: number;
headLinkId?: string;
@@ -1273,6 +1283,7 @@ export namespace state {
tailRadarSpeed?: number;
udpInterruption?: boolean;
acceleration?: number;
+ diffTime?: number;
}): TrainDynamicState {
const message = new TrainDynamicState({});
if (data.heartbeat != null) {
@@ -1341,6 +1352,9 @@ export namespace state {
if (data.acceleration != null) {
message.acceleration = data.acceleration;
}
+ if (data.diffTime != null) {
+ message.diffTime = data.diffTime;
+ }
return message;
}
toObject() {
@@ -1367,6 +1381,7 @@ export namespace state {
tailRadarSpeed?: number;
udpInterruption?: boolean;
acceleration?: number;
+ diffTime?: number;
} = {};
if (this.heartbeat != null) {
data.heartbeat = this.heartbeat;
@@ -1434,6 +1449,9 @@ export namespace state {
if (this.acceleration != null) {
data.acceleration = this.acceleration;
}
+ if (this.diffTime != null) {
+ data.diffTime = this.diffTime;
+ }
return data;
}
serialize(): Uint8Array;
@@ -1484,6 +1502,8 @@ export namespace state {
writer.writeBool(21, this.udpInterruption);
if (this.acceleration != 0)
writer.writeFloat(22, this.acceleration);
+ if (this.diffTime != 0)
+ writer.writeInt64(24, this.diffTime);
if (!w)
return writer.getResultBuffer();
}
@@ -1559,6 +1579,9 @@ export namespace state {
case 22:
message.acceleration = reader.readFloat();
break;
+ case 24:
+ message.diffTime = reader.readInt64();
+ break;
default: reader.skipField();
}
}
@@ -1599,6 +1622,7 @@ export namespace state {
rightDoorCloseCommand?: boolean;
allDoorClose?: boolean;
udpInterruption?: boolean;
+ updateTime?: number;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
@@ -1678,6 +1702,9 @@ export namespace state {
if ("udpInterruption" in data && data.udpInterruption != undefined) {
this.udpInterruption = data.udpInterruption;
}
+ if ("updateTime" in data && data.updateTime != undefined) {
+ this.updateTime = data.updateTime;
+ }
}
}
get lifeSignal() {
@@ -1830,6 +1857,12 @@ export namespace state {
set udpInterruption(value: boolean) {
pb_1.Message.setField(this, 25, value);
}
+ get updateTime() {
+ return pb_1.Message.getFieldWithDefault(this, 26, 0) as number;
+ }
+ set updateTime(value: number) {
+ pb_1.Message.setField(this, 26, value);
+ }
static fromObject(data: {
lifeSignal?: number;
tc1Active?: boolean;
@@ -1856,6 +1889,7 @@ export namespace state {
rightDoorCloseCommand?: boolean;
allDoorClose?: boolean;
udpInterruption?: boolean;
+ updateTime?: number;
}): TrainVobcState {
const message = new TrainVobcState({});
if (data.lifeSignal != null) {
@@ -1933,6 +1967,9 @@ export namespace state {
if (data.udpInterruption != null) {
message.udpInterruption = data.udpInterruption;
}
+ if (data.updateTime != null) {
+ message.updateTime = data.updateTime;
+ }
return message;
}
toObject() {
@@ -1962,6 +1999,7 @@ export namespace state {
rightDoorCloseCommand?: boolean;
allDoorClose?: boolean;
udpInterruption?: boolean;
+ updateTime?: number;
} = {};
if (this.lifeSignal != null) {
data.lifeSignal = this.lifeSignal;
@@ -2038,6 +2076,9 @@ export namespace state {
if (this.udpInterruption != null) {
data.udpInterruption = this.udpInterruption;
}
+ if (this.updateTime != null) {
+ data.updateTime = this.updateTime;
+ }
return data;
}
serialize(): Uint8Array;
@@ -2094,6 +2135,8 @@ export namespace state {
writer.writeBool(24, this.allDoorClose);
if (this.udpInterruption != false)
writer.writeBool(25, this.udpInterruption);
+ if (this.updateTime != 0)
+ writer.writeInt64(26, this.updateTime);
if (!w)
return writer.getResultBuffer();
}
@@ -2178,6 +2221,9 @@ export namespace state {
case 25:
message.udpInterruption = reader.readBool();
break;
+ case 26:
+ message.updateTime = reader.readInt64();
+ break;
default: reader.skipField();
}
}
@@ -2285,6 +2331,7 @@ export namespace state {
constructor(data?: any[] | {
id?: string;
down?: boolean;
+ aspect?: Signal.Aspect;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
@@ -2295,6 +2342,9 @@ export namespace state {
if ("down" in data && data.down != undefined) {
this.down = data.down;
}
+ if ("aspect" in data && data.aspect != undefined) {
+ this.aspect = data.aspect;
+ }
}
}
get id() {
@@ -2309,9 +2359,16 @@ export namespace state {
set down(value: boolean) {
pb_1.Message.setField(this, 2, value);
}
+ get aspect() {
+ return pb_1.Message.getFieldWithDefault(this, 3, Signal.Aspect.Non) as Signal.Aspect;
+ }
+ set aspect(value: Signal.Aspect) {
+ pb_1.Message.setField(this, 3, value);
+ }
static fromObject(data: {
id?: string;
down?: boolean;
+ aspect?: Signal.Aspect;
}): ButtonState {
const message = new ButtonState({});
if (data.id != null) {
@@ -2320,12 +2377,16 @@ export namespace state {
if (data.down != null) {
message.down = data.down;
}
+ if (data.aspect != null) {
+ message.aspect = data.aspect;
+ }
return message;
}
toObject() {
const data: {
id?: string;
down?: boolean;
+ aspect?: Signal.Aspect;
} = {};
if (this.id != null) {
data.id = this.id;
@@ -2333,6 +2394,9 @@ export namespace state {
if (this.down != null) {
data.down = this.down;
}
+ if (this.aspect != null) {
+ data.aspect = this.aspect;
+ }
return data;
}
serialize(): Uint8Array;
@@ -2343,6 +2407,8 @@ export namespace state {
writer.writeString(1, this.id);
if (this.down != false)
writer.writeBool(2, this.down);
+ if (this.aspect != Signal.Aspect.Non)
+ writer.writeEnum(3, this.aspect);
if (!w)
return writer.getResultBuffer();
}
@@ -2358,6 +2424,9 @@ export namespace state {
case 2:
message.down = reader.readBool();
break;
+ case 3:
+ message.aspect = reader.readEnum();
+ break;
default: reader.skipField();
}
}
diff --git a/src/protos/ibpGraphics.ts b/src/protos/ibpGraphics.ts
index f636a13..8c5b3f2 100644
--- a/src/protos/ibpGraphics.ts
+++ b/src/protos/ibpGraphics.ts
@@ -244,6 +244,7 @@ export namespace ibpGraphicData {
code?: string;
color?: IBPButton.IbpButtonColor;
isSelfReset?: boolean;
+ hasLight?: boolean;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
@@ -260,6 +261,9 @@ export namespace ibpGraphicData {
if ("isSelfReset" in data && data.isSelfReset != undefined) {
this.isSelfReset = data.isSelfReset;
}
+ if ("hasLight" in data && data.hasLight != undefined) {
+ this.hasLight = data.hasLight;
+ }
}
}
get common() {
@@ -289,11 +293,18 @@ export namespace ibpGraphicData {
set isSelfReset(value: boolean) {
pb_1.Message.setField(this, 4, value);
}
+ get hasLight() {
+ return pb_1.Message.getFieldWithDefault(this, 5, false) as boolean;
+ }
+ set hasLight(value: boolean) {
+ pb_1.Message.setField(this, 5, value);
+ }
static fromObject(data: {
common?: ReturnType;
code?: string;
color?: IBPButton.IbpButtonColor;
isSelfReset?: boolean;
+ hasLight?: boolean;
}): IBPButton {
const message = new IBPButton({});
if (data.common != null) {
@@ -308,6 +319,9 @@ export namespace ibpGraphicData {
if (data.isSelfReset != null) {
message.isSelfReset = data.isSelfReset;
}
+ if (data.hasLight != null) {
+ message.hasLight = data.hasLight;
+ }
return message;
}
toObject() {
@@ -316,6 +330,7 @@ export namespace ibpGraphicData {
code?: string;
color?: IBPButton.IbpButtonColor;
isSelfReset?: boolean;
+ hasLight?: boolean;
} = {};
if (this.common != null) {
data.common = this.common.toObject();
@@ -329,6 +344,9 @@ export namespace ibpGraphicData {
if (this.isSelfReset != null) {
data.isSelfReset = this.isSelfReset;
}
+ if (this.hasLight != null) {
+ data.hasLight = this.hasLight;
+ }
return data;
}
serialize(): Uint8Array;
@@ -343,6 +361,8 @@ export namespace ibpGraphicData {
writer.writeEnum(3, this.color);
if (this.isSelfReset != false)
writer.writeBool(4, this.isSelfReset);
+ if (this.hasLight != false)
+ writer.writeBool(5, this.hasLight);
if (!w)
return writer.getResultBuffer();
}
@@ -364,6 +384,9 @@ export namespace ibpGraphicData {
case 4:
message.isSelfReset = reader.readBool();
break;
+ case 5:
+ message.hasLight = reader.readBool();
+ break;
default: reader.skipField();
}
}