diff --git a/component/ckm.go b/component/ckm.go index 02ce93b..b2b54eb 100644 --- a/component/ckm.go +++ b/component/ckm.go @@ -2,15 +2,13 @@ package component import ( "joylink.club/ecs" - "joylink.club/rtsssimulation/component/component_data" ) var ( - CkmTag = ecs.NewTag() - CkmMgzTag = ecs.NewTag() //门故障tag - CkmCircuitType = ecs.NewComponentType[CkmCircuit]() - CkmStateType = ecs.NewComponentType[component_data.CkmState]() - CkmPslType = ecs.NewComponentType[CkmPsl]() + CkmTag = ecs.NewTag() + CkmStateLossTag = ecs.NewTag() //状态丢失故障tag + CkmCircuitType = ecs.NewComponentType[CkmCircuit]() + CkmPslType = ecs.NewComponentType[CkmPsl]() ) type CkmCircuit struct { diff --git a/component/component_data/ckm.pb.go b/component/component_data/ckm.pb.go deleted file mode 100644 index f48daac..0000000 --- a/component/component_data/ckm.pb.go +++ /dev/null @@ -1,180 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.33.0 -// protoc v4.23.1 -// source: component/ckm.proto - -package component_data - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type CkmState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Close bool `protobuf:"varint,1,opt,name=close,proto3" json:"close,omitempty"` - Mms bool `protobuf:"varint,2,opt,name=mms,proto3" json:"mms,omitempty"` //门模式(false远程,true本地) - Mgz bool `protobuf:"varint,3,opt,name=mgz,proto3" json:"mgz,omitempty"` //门故障 - // 驱动状态(没有继电器时直接操作以下状态) - Km bool `protobuf:"varint,4,opt,name=km,proto3" json:"km,omitempty"` //开门 - Gm bool `protobuf:"varint,5,opt,name=gm,proto3" json:"gm,omitempty"` //关门 -} - -func (x *CkmState) Reset() { - *x = CkmState{} - if protoimpl.UnsafeEnabled { - mi := &file_component_ckm_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CkmState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CkmState) ProtoMessage() {} - -func (x *CkmState) ProtoReflect() protoreflect.Message { - mi := &file_component_ckm_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CkmState.ProtoReflect.Descriptor instead. -func (*CkmState) Descriptor() ([]byte, []int) { - return file_component_ckm_proto_rawDescGZIP(), []int{0} -} - -func (x *CkmState) GetClose() bool { - if x != nil { - return x.Close - } - return false -} - -func (x *CkmState) GetMms() bool { - if x != nil { - return x.Mms - } - return false -} - -func (x *CkmState) GetMgz() bool { - if x != nil { - return x.Mgz - } - return false -} - -func (x *CkmState) GetKm() bool { - if x != nil { - return x.Km - } - return false -} - -func (x *CkmState) GetGm() bool { - if x != nil { - return x.Gm - } - return false -} - -var File_component_ckm_proto protoreflect.FileDescriptor - -var file_component_ckm_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6b, 0x6d, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x22, 0x64, 0x0a, 0x08, 0x43, 0x6b, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x6d, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x6d, 0x67, 0x7a, 0x12, 0x0e, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x02, 0x6b, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x02, 0x67, 0x6d, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_component_ckm_proto_rawDescOnce sync.Once - file_component_ckm_proto_rawDescData = file_component_ckm_proto_rawDesc -) - -func file_component_ckm_proto_rawDescGZIP() []byte { - file_component_ckm_proto_rawDescOnce.Do(func() { - file_component_ckm_proto_rawDescData = protoimpl.X.CompressGZIP(file_component_ckm_proto_rawDescData) - }) - return file_component_ckm_proto_rawDescData -} - -var file_component_ckm_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_component_ckm_proto_goTypes = []interface{}{ - (*CkmState)(nil), // 0: component.CkmState -} -var file_component_ckm_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_component_ckm_proto_init() } -func file_component_ckm_proto_init() { - if File_component_ckm_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_component_ckm_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CkmState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_component_ckm_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_component_ckm_proto_goTypes, - DependencyIndexes: file_component_ckm_proto_depIdxs, - MessageInfos: file_component_ckm_proto_msgTypes, - }.Build() - File_component_ckm_proto = out.File - file_component_ckm_proto_rawDesc = nil - file_component_ckm_proto_goTypes = nil - file_component_ckm_proto_depIdxs = nil -} diff --git a/entity/ckm.go b/entity/ckm.go index 517f2cf..c624f31 100644 --- a/entity/ckm.go +++ b/entity/ckm.go @@ -8,7 +8,7 @@ import ( "unsafe" ) -var CkmBaseComponentTypes = []ecs.IComponentType{component.UidType, component.CkmTag, component.CkmStateType, component.FixedPositionTransformType} +var CkmBaseComponentTypes = []ecs.IComponentType{component.UidType, component.CkmTag, component.FixedPositionTransformType} func LoadCkm(w ecs.World) error { data := GetWorldData(w) diff --git a/proto/src/component/ckm.proto b/proto/src/component/ckm.proto deleted file mode 100644 index b3b4928..0000000 --- a/proto/src/component/ckm.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -package component; - -option go_package = "./component/component_data"; - -message CkmState { - bool close = 1; - bool mms = 2; //门模式(false远程,true本地) - bool mgz = 3; //门故障 - - //驱动状态(没有继电器时直接操作以下状态) - bool km = 4; //开门 - bool gm = 5; //关门 -} \ No newline at end of file diff --git a/sys/circuit_sys/ckm.go b/sys/circuit_sys/ckm.go index f9cb575..dee1edc 100644 --- a/sys/circuit_sys/ckm.go +++ b/sys/circuit_sys/ckm.go @@ -23,11 +23,10 @@ func (p *CkmSys) Update(world ecs.World) { worldData := entity.GetWorldData(world) p.query.Each(world, func(entry *ecs.Entry) { //车库门故障(状态丢失) - if entry.HasComponent(component.CkmMgzTag) { + if entry.HasComponent(component.CkmStateLossTag) { return } posCom := component.FixedPositionTransformType.Get(entry) - state := component.CkmStateType.Get(entry) remote := true //是否远程模式 circuit := component.CkmCircuitType.Get(entry) //目前不考虑没有车库门电路的情况 //车库门PSL @@ -40,15 +39,12 @@ func (p *CkmSys) Update(world ecs.World) { if posCom.Pos == consts.TwoPosMin { component.RelayDriveType.Get(circuit.MGJ).Td = true component.RelayDriveType.Get(circuit.MKJ).Td = false - state.Close = true } else { component.RelayDriveType.Get(circuit.MGJ).Td = false component.RelayDriveType.Get(circuit.MKJ).Td = true - state.Close = false } //门故障继电器及状态 - component.RelayDriveType.Get(circuit.MGZJ).Td = entry.HasComponent(component.CkmMgzTag) - state.Mgz = entry.HasComponent(component.CkmMgzTag) + component.RelayDriveType.Get(circuit.MGZJ).Td = entry.HasComponent(component.CkmStateLossTag) //开/关门继电器驱动状态 if remote { kmBit, err := worldData.QueryQdBit(component.UidType.Get(circuit.KMJ).Id) @@ -68,14 +64,10 @@ func (p *CkmSys) Update(world ecs.World) { component.RelayDriveType.Get(circuit.KMJ).Td = component.BitStateType.Get(ckmPsl.KMA).Val component.RelayDriveType.Get(circuit.GMJ).Td = component.BitStateType.Get(ckmPsl.GMA).Val } - //车库门状态 - state.Km = component.BitStateType.Get(circuit.KMJ).Val - state.Gm = component.BitStateType.Get(circuit.GMJ).Val - state.Mgz = entry.HasComponent(component.CkmMgzTag) //驱动 - if state.Gm { + if component.BitStateType.Get(circuit.GMJ).Val { posCom.Speed = -component.CalculateTwoPositionAvgSpeed(3*1000, world.Tick()) - } else if state.Km { + } else if component.BitStateType.Get(circuit.KMJ).Val { posCom.Speed = component.CalculateTwoPositionAvgSpeed(3*1000, world.Tick()) } })