111 lines
2.5 KiB
Go
111 lines
2.5 KiB
Go
package component
|
||
|
||
import (
|
||
"fmt"
|
||
"joylink.club/ecs"
|
||
"joylink.club/rtsssimulation/component/component_proto"
|
||
)
|
||
|
||
var PsdTag = ecs.NewTag()
|
||
var PsdStateType = ecs.NewComponentType[component_proto.PsdState]()
|
||
|
||
var PsdCircuitType = ecs.NewComponentType[PsdCircuit]()
|
||
|
||
type PsdCircuit struct {
|
||
//屏蔽门驱动继电器
|
||
GMJ *ecs.Entry
|
||
//KMJ4 *ecs.Entry
|
||
//KMJ8 *ecs.Entry
|
||
KMJMap map[int32]*ecs.Entry //开门继电器,k-编组
|
||
//屏蔽门表示继电器
|
||
MGJ *ecs.Entry
|
||
MPLJ *ecs.Entry
|
||
//启动探测继电器
|
||
QDTCJ *ecs.Entry
|
||
//停止探测继电器
|
||
TZTCJ *ecs.Entry
|
||
//大概就是表示探测过程中出现异常
|
||
ZAWJ *ecs.Entry
|
||
//间隙探测旁路继电器
|
||
JXTCPLJ *ecs.Entry
|
||
//一些不知道如何使用的继电器,为了使得采集、驱动逻辑正常,先构建出来
|
||
UnusedJ []*ecs.Entry
|
||
}
|
||
|
||
var AsdCannotOpenTag = ecs.NewTag()
|
||
var AsdCannotCloseTag = ecs.NewTag()
|
||
|
||
func GetAsdFaultTag(fault component_proto.Psd_Fault) (ecs.IComponentType, error) {
|
||
switch fault {
|
||
case component_proto.Psd_AsdCannotClose:
|
||
return AsdCannotCloseTag, nil
|
||
case component_proto.Psd_AsdCannotOpen:
|
||
return AsdCannotOpenTag, nil
|
||
default:
|
||
return nil, fmt.Errorf("未知的屏蔽门故障类型[%s]", fault)
|
||
}
|
||
}
|
||
|
||
var AsdTag = ecs.NewTag()
|
||
var AsdListType = ecs.NewComponentType[AsdList]()
|
||
|
||
// AsdList 滑动门列表
|
||
type AsdList struct {
|
||
List []*ecs.Entry
|
||
}
|
||
|
||
var AsdMotorStateType = ecs.NewComponentType[AsdMotorState]()
|
||
|
||
// AsdMotorState 滑动门电机状态
|
||
type AsdMotorState struct {
|
||
TD bool //电机通电
|
||
KM bool //向开门方向转动
|
||
MG bool //门是否关闭(继电器状态)
|
||
}
|
||
|
||
var AsdStateType = ecs.NewComponentType[component_proto.AsdState]()
|
||
|
||
// AsdForceType ture强制开门 false强制关门
|
||
var AsdForceType = ecs.NewComponentType[BitState]()
|
||
|
||
// AsdHasObstacleTag 滑动门有障碍物
|
||
var AsdHasObstacleTag = ecs.NewTag()
|
||
|
||
var PlatformMkxCircuitType = ecs.NewComponentType[PlatformMkxCircuit]()
|
||
|
||
// PlatformMkxCircuit 站台门控箱电路
|
||
type PlatformMkxCircuit struct {
|
||
MkxList []*ecs.Entry
|
||
PCBJ *ecs.Entry
|
||
POBJ *ecs.Entry
|
||
PABJ *ecs.Entry
|
||
}
|
||
|
||
var MkxType = ecs.NewComponentType[Mkx]()
|
||
|
||
type Mkx struct {
|
||
PCB *ecs.Entry
|
||
POB *ecs.Entry
|
||
PAB *ecs.Entry
|
||
MPL *ecs.Entry
|
||
}
|
||
|
||
var PscType = ecs.NewComponentType[Psc]()
|
||
|
||
type Psc struct {
|
||
//InterlockKM4 bool
|
||
//InterlockKM8 bool
|
||
InterlockKmGroup map[int32]bool //开门编组。k-编组 v-设置开门
|
||
InterlockGM bool
|
||
InterlockMPL bool
|
||
|
||
MkxKM bool
|
||
MkxGM bool
|
||
MkxPL bool
|
||
|
||
QDTC bool
|
||
TZTC bool
|
||
//ZAW bool
|
||
JXTCPL bool
|
||
}
|