1 // (c) Bernhard Tittelbach, 2013
12 func MarshalEvent(event_interface interface{}) (data [][]byte, err error) {
14 fmt.Printf("%T%+v\n", event_interface, event_interface)
15 msg, err = json.Marshal(event_interface)
19 etype := []byte(fmt.Sprintf("%T", event_interface)[5:])
20 data = [][]byte{etype, msg}
24 func UnmarshalEvent(data [][]byte) (event interface{}, err error) {
25 switch string(data[0]) {
26 case "DoorLockUpdate":
27 typedevent := new(DoorLockUpdate)
28 err = json.Unmarshal(data[1], typedevent)
30 case "DoorAjarUpdate":
31 typedevent := new(DoorAjarUpdate)
32 err = json.Unmarshal(data[1], typedevent)
34 case "DoorCommandEvent":
35 typedevent := new(DoorCommandEvent)
36 err = json.Unmarshal(data[1], typedevent)
40 err = errors.New("unknown type")