44 lines
1.9 KiB
Go
44 lines
1.9 KiB
Go
package component
|
||
|
||
import (
|
||
"unsafe"
|
||
|
||
"joylink.club/ecs"
|
||
"joylink.club/rtsssimulation/component/component_data"
|
||
"joylink.club/rtsssimulation/component/relation"
|
||
)
|
||
|
||
// 标签
|
||
var (
|
||
// 继电器
|
||
RelayTag = ecs.NewTag()
|
||
// 继电器模型数据关系组件类型
|
||
RelayModelRelaType = relation.RelayModelRelaType
|
||
// 继电器状态组件
|
||
RelayStateType = ecs.NewComponentType[component_data.RelayState]()
|
||
// 继电器故障强制组件
|
||
RelayFaultForceType = ecs.NewComponentType[component_data.RelayFaultForce]()
|
||
)
|
||
|
||
func AddOrUpdateRelayFaultForce(entry *ecs.Entry, q bool) {
|
||
if entry.HasComponent(RelayFaultForceType) {
|
||
entry.SetComponent(RelayFaultForceType, unsafe.Pointer(&component_data.RelayFaultForce{Q: q}))
|
||
} else {
|
||
entry.AddComponent(RelayFaultForceType, unsafe.Pointer(&component_data.RelayFaultForce{Q: q}))
|
||
}
|
||
}
|
||
|
||
// // 无极继电器和偏极继电器稳态为落下,也就是后接点(8组采集接点中的1,3接点,1为中接点),吸气为前接点(1,2接点)
|
||
// // 有极继电器是定位反位双稳态(有永久磁钢),前接点为定位,后接点为反位
|
||
// // 有极继电器(对于道岔中的2DQJ),励磁接点1,2接通为反位,3,4接通为定位
|
||
// // 定义继电器状态时,false表示落下/反位/后接点,true表示吸起/定位/前接点
|
||
// // 缓动继电器:指从通电或断电起,至接点转接止所需时间在0.3s以上的继电器。可分为缓放继电器(如无极缓放继电器等)和缓吸继电器(如热力继电器和时间继电器等)。
|
||
// // 偏极继电器:只有通过规定方向的电流时,才吸起
|
||
// // 继电器驱动组件
|
||
// type RelayDrive struct {
|
||
// Td bool // 是否通电
|
||
// Xq bool // 是否驱动到吸起位置,true:驱动吸起,false:驱动落下(此状态只对有极继电器有效)
|
||
// }
|
||
|
||
// var RelayDriveType = ecs.NewComponentType[RelayDrive]()
|