X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-eventbroker_zmq%2Fr3events%2Fmarshal_events.go;h=66799c74cd3c25ff3876cc0670a6bc84165277be;hb=a8e0651d52192d208758ae9a59e21af313685da4;hp=d00d4623434c5042ab9005266373eaa471166c29;hpb=417e9a91ef92b248513da9f2be83519d37c599e7;p=svn42.git diff --git a/go/r3-eventbroker_zmq/r3events/marshal_events.go b/go/r3-eventbroker_zmq/r3events/marshal_events.go index d00d462..66799c7 100644 --- a/go/r3-eventbroker_zmq/r3events/marshal_events.go +++ b/go/r3-eventbroker_zmq/r3events/marshal_events.go @@ -9,17 +9,20 @@ import ( "strings" ) +func NameOfStruct(evi interface{}) (name string) { + etype := fmt.Sprintf("%T", evi) + etype_lastsep := strings.LastIndex(etype,".") + return etype[etype_lastsep+1:] //works in all cases for etype_lastsep in range -1 to len(etype)-1 +} func MarshalEvent2ByteByte(event_interface interface{}) (data [][]byte, err error) { var msg []byte - fmt.Printf("%T%+v\n", event_interface, event_interface) + //~ fmt.Printf("%T%+v\n", event_interface, event_interface) msg, err = json.Marshal(event_interface) if err != nil { return } - etype := fmt.Sprintf("%T", event_interface) - etype_lastsep := strings.LastIndex(etype,".") - data = [][]byte{[]byte(etype[etype_lastsep+1:]), msg} //works in all cases for etype_lastsep in range -1 to len(etype)-1 + data = [][]byte{[]byte(NameOfStruct(event_interface)), msg} //works in all cases for etype_lastsep in range -1 to len(etype)-1 return } @@ -34,11 +37,14 @@ func UnmarshalByteByte2Event(data [][]byte) (event interface{}, err error) { case "DoorAjarUpdate": event := new(DoorAjarUpdate) err = json.Unmarshal(data[1], event) + case "BackdoorAjarUpdate": + event := new(DoorAjarUpdate) + err = json.Unmarshal(data[1], event) case "DoorCommandEvent": event := new(DoorCommandEvent) err = json.Unmarshal(data[1], event) - case "ButtonPressUpdate": - event := new(ButtonPressUpdate) + case "BoreDoomButtonPressEvent": + event := new(BoreDoomButtonPressEvent) err = json.Unmarshal(data[1], event) case "TempSensorUpdate": event := new(TempSensorUpdate)