X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=go%2Fr3events%2Fmarshal_events.go;h=212f9b14c7d3ca19245e894f6ff4740346536f58;hp=041452c80044ed6d516839656cc2c7c368857fbe;hb=fa43684a042825be410260f547e092be3b432317;hpb=23d4ac6d4f23cff2fcf69ab5277125e39ab9328a diff --git a/go/r3events/marshal_events.go b/go/r3events/marshal_events.go index 041452c..212f9b1 100644 --- a/go/r3events/marshal_events.go +++ b/go/r3events/marshal_events.go @@ -32,69 +32,85 @@ func UnmarshalByteByte2Event(data [][]byte) (event interface{}, category string, } switch string(data[0]) { case "DoorLockUpdate": - event = DoorLockUpdate{} - err = json.Unmarshal(data[1],&event) + newevent := new(DoorLockUpdate) + err = json.Unmarshal(data[1],newevent) category = "door" + event = *newevent case "DoorAjarUpdate": - event := DoorAjarUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(DoorAjarUpdate) + err = json.Unmarshal(data[1], newevent) category = "door" + event = *newevent case "BackdoorAjarUpdate": - event := DoorAjarUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(BackdoorAjarUpdate) + err = json.Unmarshal(data[1], newevent) category = "door" + event = *newevent case "DoorCommandEvent": - event := DoorCommandEvent{} - err = json.Unmarshal(data[1], &event) + newevent := new(DoorCommandEvent) + err = json.Unmarshal(data[1], newevent) category = "door" + event = *newevent case "DoorProblemEvent": - event := DoorProblemEvent{} - err = json.Unmarshal(data[1], &event) + newevent := new(DoorProblemEvent) + err = json.Unmarshal(data[1], newevent) category = "door" + event = *newevent case "BoreDoomButtonPressEvent": - event := BoreDoomButtonPressEvent{} - err = json.Unmarshal(data[1], &event) + newevent := new(BoreDoomButtonPressEvent) + err = json.Unmarshal(data[1], newevent) category = "buttons" + event = *newevent case "TempSensorUpdate": - event := TempSensorUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(TempSensorUpdate) + err = json.Unmarshal(data[1], newevent) category = "sensors" + event = *newevent case "IlluminationSensorUpdate": - event := IlluminationSensorUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(IlluminationSensorUpdate) + err = json.Unmarshal(data[1], newevent) category = "sensors" + event = *newevent case "DustSensorUpdate": - event := DustSensorUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(DustSensorUpdate) + err = json.Unmarshal(data[1], newevent) category = "sensors" + event = *newevent case "RelativeHumiditySensorUpdate": - event := RelativeHumiditySensorUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(RelativeHumiditySensorUpdate) + err = json.Unmarshal(data[1], newevent) category = "sensors" + event = *newevent case "TimeTick": - event := TimeTick{} - err = json.Unmarshal(data[1], &event) + newevent := new(TimeTick) + err = json.Unmarshal(data[1], newevent) category = "time" + event = *newevent case "MovementSensorUpdate": - event := MovementSensorUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(MovementSensorUpdate) + err = json.Unmarshal(data[1], newevent) category = "movement" + event = *newevent case "PresenceUpdate": - event := PresenceUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(PresenceUpdate) + err = json.Unmarshal(data[1], newevent) category = "presence" + event = *newevent case "SomethingReallyIsMoving": - event := SomethingReallyIsMoving{} - err = json.Unmarshal(data[1], &event) + newevent := new(SomethingReallyIsMoving) + err = json.Unmarshal(data[1], newevent) category = "movement" + event = *newevent case "NetDHCPACK": - event := NetDHCPACK{} - err = json.Unmarshal(data[1], &event) + newevent := new(NetDHCPACK) + err = json.Unmarshal(data[1], newevent) category = "network" + event = *newevent case "NetGWStatUpdate": - event := NetGWStatUpdate{} - err = json.Unmarshal(data[1], &event) + newevent := new(NetGWStatUpdate) + err = json.Unmarshal(data[1], newevent) category = "network" + event = *newevent default: event = nil err = errors.New("cannot unmarshal unknown type")