Example #1
0
File: mqtt_1.go Project: conas/tno2
func (mb *MQTT_1) setup(ctxPath string, wos *server.WotServer) {
	deviceTopic := str.Concat(ctxPath, "/#")
	token2 := mb.client.Subscribe(deviceTopic, 0, mb.eventHandler(ctxPath, wos))
	if token2.Wait() && token2.Error() != nil {
		log.Fatal(token2.Error)
		os.Exit(1)
	}
	log.Info("MQTT_1 Backend: subscribed to device topic -> ", deviceTopic)

	for _, p := range wos.GetDescription().Properties {
		propPath := str.Concat(ctxPath, "/", p.Name)
		wos.OnGetProperty(*p.Name, func() interface{} {
			return mb.values[propPath]
		})

		if *p.Writable {
			wos.OnUpdateProperty(*p.Name, func(payload interface{}) {
				mb.publish(propPath, payload)
			})
		}
	}
}