X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3events%2Fmarshal_events.go;h=7da4e1f32943a97b9c20dd71a6ed38d96744ea91;hb=a87c91b7d4544703879b7ef6e472b863765e3949;hp=041452c80044ed6d516839656cc2c7c368857fbe;hpb=c53db9bb92878e7d356fdf606ce924c6212aba87;p=svn42.git diff --git a/go/r3events/marshal_events.go b/go/r3events/marshal_events.go index 041452c..7da4e1f 100644 --- a/go/r3events/marshal_events.go +++ b/go/r3events/marshal_events.go @@ -32,69 +32,105 @@ 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 "DoorManualMovementEvent": + newevent := new(DoorManualMovementEvent) + 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 "GasLeakAlert": + newevent := new(GasLeakAlert) + err = json.Unmarshal(data[1], newevent) + category = "sensors" + 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 "TempSensorSpike": + newevent := new(TempSensorSpike) + err = json.Unmarshal(data[1], newevent) + category = "sensors" + event = *newevent + case "DustSensorSpike": + newevent := new(DustSensorSpike) + err = json.Unmarshal(data[1], newevent) + category = "sensors" + 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")