信号机2xh1测试
This commit is contained in:
parent
f703158b1c
commit
528f5b9252
@ -1,18 +1,55 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"joylink.club/ecs"
|
||||||
rtss_simulation "joylink.club/rtsssimulation"
|
rtss_simulation "joylink.club/rtsssimulation"
|
||||||
|
"joylink.club/rtsssimulation/consts"
|
||||||
|
"joylink.club/rtsssimulation/entity"
|
||||||
|
"joylink.club/rtsssimulation/examples/signal1/sigSys"
|
||||||
"joylink.club/rtsssimulation/repository"
|
"joylink.club/rtsssimulation/repository"
|
||||||
|
"joylink.club/rtsssimulation/repository/model/proto"
|
||||||
|
"joylink.club/rtsssimulation/sys/circuit_sys"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 信号机测试
|
// 信号机测试
|
||||||
func main() {
|
func main() {
|
||||||
r := &repository.Repository{}
|
proto := &proto.Repository{}
|
||||||
addSignal2XH1(r)
|
proto.Id = "test-for-signal"
|
||||||
sim := rtss_simulation.NewSimulation(r)
|
proto.Version = "v1.0"
|
||||||
|
addProtoSignal2XH1(proto)
|
||||||
|
repo := repository.BuildRepositoryForSignalTest(proto)
|
||||||
|
sim := rtss_simulation.NewSimulation(repo)
|
||||||
|
loadEntities(sim, repo)
|
||||||
|
sim.SetSpeed(0.1)
|
||||||
|
sim.AddSystem(circuit_sys.NewSignal2XH1System())
|
||||||
|
sim.AddSystem(sigSys.NewSignalDebugSystem())
|
||||||
sim.StartUp()
|
sim.StartUp()
|
||||||
|
//
|
||||||
|
time.Sleep(10 * time.Second)
|
||||||
|
sim.Close()
|
||||||
}
|
}
|
||||||
func addSignal2XH1(r *repository.Repository) {
|
func addProtoSignal2XH1(r *proto.Repository) {
|
||||||
//signal := repository.NewSignal("signal1-2xh1", &proto.Kilometer{})
|
//相关继电器
|
||||||
|
r.Relays = append(r.Relays, &proto.Relay{Id: "2xh1-ddj", Code: consts.SIGNAL_DDJ})
|
||||||
|
r.Relays = append(r.Relays, &proto.Relay{Id: "2xh1-dj", Code: consts.SIGNAL_DJ})
|
||||||
|
r.Relays = append(r.Relays, &proto.Relay{Id: "2xh1-lxj", Code: consts.SIGNAL_LXJ})
|
||||||
|
//
|
||||||
|
signal := &proto.Signal{}
|
||||||
|
signal.Id = "signal1-2xh1"
|
||||||
|
signal.Km = &proto.Kilometer{}
|
||||||
|
//
|
||||||
|
group := &proto.ElectronicComponentGroup{Code: consts.SIGNAL_2XH1, ComponentIds: []string{"2xh1-ddj", "2xh1-dj", "2xh1-lxj"}}
|
||||||
|
//
|
||||||
|
signal.ElectronicComponentGroups = append(signal.ElectronicComponentGroups, group)
|
||||||
|
r.Signals = append(r.Signals, signal)
|
||||||
|
}
|
||||||
|
func loadEntities(w ecs.World, repo *repository.Repository) {
|
||||||
|
// 初始化世界数据单例组件
|
||||||
|
entity.LoadWorldData(w, repo)
|
||||||
|
//
|
||||||
|
if le := entity.LoadSignals(w); le != nil {
|
||||||
|
fmt.Println("===>>LoadSignals error : ", le.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
26
examples/signal1/sigSys/debug_sys.go
Normal file
26
examples/signal1/sigSys/debug_sys.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package sigSys
|
||||||
|
|
||||||
|
import (
|
||||||
|
"joylink.club/ecs"
|
||||||
|
"joylink.club/ecs/filter"
|
||||||
|
"joylink.club/rtsssimulation/component"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SignalDebugSystem struct {
|
||||||
|
query *ecs.Query
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSignalDebugSystem() *SignalDebugSystem {
|
||||||
|
return &SignalDebugSystem{query: ecs.NewQuery(filter.Contains(component.Signal2XH1ElectronicType, component.Signal2XH1FilamentType))}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update world 执行
|
||||||
|
func (s *SignalDebugSystem) Update(w ecs.World) {
|
||||||
|
s.query.Each(w, func(entry *ecs.Entry) {
|
||||||
|
uid := component.UidType.Get(entry)
|
||||||
|
//state := component.Signal2XH1ElectronicType.Get(entry)
|
||||||
|
filament := component.Signal2XH1FilamentType.Get(entry)
|
||||||
|
log.Println("===>> uid = ", uid.Id, " 绿灯 = ", filament.L, " 红灯 = ", filament.H)
|
||||||
|
})
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
Subproject commit 47f78cb54ddc2673b87d3f85eea23e3769e417ad
|
Subproject commit 6b6259e2eb95db625111b539ef9b526c8d3862f4
|
17
repository/repository_ceshi.go
Normal file
17
repository/repository_ceshi.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package repository
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"joylink.club/rtsssimulation/repository/model/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
//测试
|
||||||
|
|
||||||
|
func BuildRepositoryForSignalTest(source *proto.Repository) *Repository {
|
||||||
|
repository := newRepository(source.Id, source.Version)
|
||||||
|
buildModels(source, repository)
|
||||||
|
if err := buildSignalRelationShip(source, repository); err != nil {
|
||||||
|
fmt.Println("===>>buildSignalRelationShip error : ", err.Error())
|
||||||
|
}
|
||||||
|
return repository
|
||||||
|
}
|
@ -38,7 +38,6 @@ func BuildRepository(source *proto.Repository) (*Repository, error) {
|
|||||||
repositoryMap[buildRepositoryKey(source.Id, source.Version)] = repository
|
repositoryMap[buildRepositoryKey(source.Id, source.Version)] = repository
|
||||||
return repository, err
|
return repository, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func FindRepository(id string, version string) *Repository {
|
func FindRepository(id string, version string) *Repository {
|
||||||
return repositoryMap[buildRepositoryKey(id, version)]
|
return repositoryMap[buildRepositoryKey(id, version)]
|
||||||
}
|
}
|
||||||
@ -241,6 +240,19 @@ func buildSignalRelationShip(source *proto.Repository, repository *Repository) e
|
|||||||
}
|
}
|
||||||
interrelateSignalAndTurnout(signal, repository.turnoutMap[tp.DeviceId], tp.Port)
|
interrelateSignalAndTurnout(signal, repository.turnoutMap[tp.DeviceId], tp.Port)
|
||||||
}
|
}
|
||||||
|
//关联继电器组
|
||||||
|
for _, group := range protoData.ElectronicComponentGroups {
|
||||||
|
var components []IGroupedElectronicComponent
|
||||||
|
for _, id := range group.GetComponentIds() {
|
||||||
|
if relay := repository.relayMap[id]; relay != nil {
|
||||||
|
components = append(components, relay)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
signal.componentGroups = append(signal.componentGroups, &ElectronicComponentGroup{
|
||||||
|
code: group.Code,
|
||||||
|
components: components,
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user