列车车头激活端调整

This commit is contained in:
joylink_fanyuhong 2024-05-11 09:27:48 +08:00
parent 959592c17b
commit 182ea7c099
4 changed files with 55 additions and 58 deletions

@ -1 +1 @@
Subproject commit e4c55ea4b6f9f5f875d59fc5bba51fc21bc8ef97
Subproject commit 0ed6b1d451f617804d608ede072121a0f1e36fb5

View File

@ -10,7 +10,7 @@ function getHost(): string {
// return '192.168.3.47:9091';
// return '192.168.3.37:9091';
//return '192.168.33.207:9091'; // 张骞
// return '192.168.33.93:9091';
return '192.168.33.93:9091';
// return '192.168.3.37:9091'; //卫志宏
// return 'test.joylink.club/bjrtsts-service'; // 测试
return '192.168.33.233:9091';
@ -26,7 +26,7 @@ export function getHttpBase() {
export function getWebsocketUrl() {
let protocol = 'ws';
let host = '192.168.33.233';
let host = '192.168.33.93';
// let host = 'test.joylink.club';
let port = '8083';
let url = `${protocol}://${host}:${port}`;

View File

@ -77,23 +77,23 @@ export class TrainState extends GraphicStateBase implements ITrainState {
set devicePort(v: string) {
this.states.devicePort = v;
}
get pointTo(): boolean {
return this.states.pointTo;
get driftTo(): boolean {
return this.states.driftTo;
}
set pointTo(v: boolean) {
this.states.pointTo = v;
set driftTo(v: boolean) {
this.states.driftTo = v;
}
get runDirection(): boolean {
return this.states.runDirection;
get trainRunUp(): boolean {
return this.states.trainRunUp;
}
set runDirection(v: boolean) {
this.states.runDirection = v;
set trainRunUp(v: boolean) {
this.states.trainRunUp = v;
}
get headDirection(): boolean {
return this.states.headDirection;
get trainActiveDirection(): number {
return this.states.trainActiveDirection;
}
set headDirection(v: boolean) {
this.states.headDirection = v;
set trainActiveDirection(v: number) {
this.states.trainActiveDirection = v;
}
get trainKilometer(): number {
return this.states.trainKilometer;

View File

@ -40,12 +40,12 @@ export interface ITrainState extends GraphicState {
set headOffset(v: number);
get devicePort(): string;
set devicePort(v: string);
get pointTo(): boolean;
set pointTo(v: boolean);
get runDirection(): boolean;
set runDirection(v: boolean);
get headDirection(): boolean;
set headDirection(v: boolean);
get driftTo(): boolean;
set driftTo(v: boolean);
get trainRunUp(): boolean;
set trainRunUp(v: boolean);
get trainActiveDirection(): number;
set trainActiveDirection(v: number);
get trainKilometer(): number;
set trainKilometer(v: number);
get controlDelayTime(): number;
@ -335,10 +335,7 @@ export class TrainHead extends Container {
];
// 道岔时运行x轴是否在增大决定箭头方向
// 区段时是否从A到B决定箭头方向
if (
(states.devicePort && this.train.isSyntropy) ||
(!states.devicePort && states.pointTo)
) {
if (states.devicePort && !this.train.arrowIsLeft) {
const aP: Array<number> = [];
arrowPoint.forEach((item, index) => {
if (index % 2 == 1) {
@ -349,25 +346,30 @@ export class TrainHead extends Container {
});
arrowPoint = aP;
}
if (
(states.devicePort && this.train.isSyntropy) ||
(!states.devicePort && states.pointTo)
) {
const pP: Array<number> = [];
pausePoint.forEach((item, index) => {
if (index % 2 == 1) {
const p = new Point(pausePoint[index - 1], item);
const newP = calculateMirrorPoint(new Point(0, 0), p);
pP.push(newP.x, newP.y);
}
});
pausePoint = pP;
if (states.trainActiveDirection !== 0) {
const lineIsLeft =
this.train.arrowIsLeft &&
states.driftTo === (states.trainActiveDirection === 1);
if (!lineIsLeft) {
const pP: Array<number> = [];
pausePoint.forEach((item, index) => {
if (index % 2 == 1) {
const p = new Point(pausePoint[index - 1], item);
const newP = calculateMirrorPoint(new Point(0, 0), p);
pP.push(newP.x, newP.y);
}
});
pausePoint = pP;
}
const pColor = DiriveModelColorEnum.AM;
this.pause.lineStyle(pauseW, pColor, 1);
this.pause.moveTo(pausePoint[0], pausePoint[1]);
this.pause.lineTo(pausePoint[2], pausePoint[3]);
} else {
this.pause.visible = false;
}
const aColor = DiriveModelColorEnum.AM;
const pColor = DiriveModelColorEnum.AM;
this.pause.lineStyle(pauseW, pColor, 1);
this.pause.moveTo(pausePoint[0], pausePoint[1]);
this.pause.lineTo(pausePoint[2], pausePoint[3]);
const arrow = this.arrow;
arrow.beginFill(aColor, 1);
arrow.drawPolygon(arrowPoint);
@ -377,11 +379,11 @@ export class TrainHead extends Container {
} else {
this.arrow.visible = false;
}
if (states.tc1Active || states.tc2Active) {
this.pause.visible = true;
} else {
this.pause.visible = false;
}
// if (states.tc1Active || states.tc2Active) {
// this.pause.visible = true;
// } else {
// this.pause.visible = false;
// }
}
}
@ -488,14 +490,14 @@ export class Train extends JlGraphic {
trainHead: TrainHead;
trainbody: TrainBody;
statusTextMap: Map<string, StatusText> = new Map();
isSyntropy: boolean; //判断x坐标是否在增大
arrowIsLeft: boolean; // 箭头是否在列车body的相对左侧
constructor() {
super(Train.Type);
this.trainbody = new TrainBody(this);
this.trainHead = new TrainHead(this);
this.addChild(this.trainHead);
this.addChild(this.trainbody);
this.isSyntropy = false;
this.arrowIsLeft = true;
}
get datas(): ITrainData {
@ -562,15 +564,10 @@ export class Train extends JlGraphic {
}
allLength = getKmDistance(pKm, oKm);
const portP = points[points.length - 1];
const j = 10;
if (Math.abs(portP.x) < j) {
this.isSyntropy = this.states.runDirection;
if (this.states.driftTo) {
this.arrowIsLeft = 0 < portP.x;
} else {
if (this.states.pointTo) {
this.isSyntropy = 0 > portP.x;
} else {
this.isSyntropy = portP.x > 0;
}
this.arrowIsLeft = portP.x < 0;
}
} else {
dev = this.queryStore.queryById<Section>(this.states.headDeviceId);
@ -610,7 +607,7 @@ export class Train extends JlGraphic {
allLength = getKmDistance(BKm, AKm);
const portS = points[0];
const portE = points[points.length - 1];
this.isSyntropy = portE.x > portS.x;
this.arrowIsLeft = portE.x > portS.x && !this.states.driftTo;
}
}
this.trainbody.doRepaint();