From 052ca2ea6ae47ceecf1c8cc3f3ab51396eb98d3a Mon Sep 17 00:00:00 2001
From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr>
Date: Mon, 18 Nov 2024 14:36:32 +0100
Subject: [PATCH] Refactoring in progress

Moving stuff to Gateway once again..
---
 gateway.go | 15 +++++++--------
 z2m.go     |  2 +-
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/gateway.go b/gateway.go
index b20235d..2d73965 100644
--- a/gateway.go
+++ b/gateway.go
@@ -7,15 +7,14 @@ import (
 	"sync"
 
 	MQTT "github.com/eclipse/paho.mqtt.golang"
-	"gitlab.imt-atlantique.fr/xaal/code/go/core/uuid"
 	"gitlab.imt-atlantique.fr/xaal/code/go/core/xaal"
 )
 
 type Gateway struct {
-	client   MQTT.Client
-	engine   *xaal.Engine
-	devices  map[string]*Z2MDevice
-	baseAddr uuid.UUID
+	client  MQTT.Client
+	engine  *xaal.Engine
+	devices map[string]*Z2MDevice
+	config  *Config
 }
 
 var (
@@ -32,7 +31,7 @@ func GetGW() *Gateway {
 
 func NewGW(cfg *Config, eng *xaal.Engine) *Gateway {
 	gw := GetGW()
-	gw.baseAddr = cfg.baseAddr
+	gw.config = cfg
 	gw.client = mqttSetup(cfg, gw.mqttPublishHander)
 	// NOTE: Wondering if we can setup engine before
 	gw.engine = eng
@@ -52,7 +51,7 @@ func (gw *Gateway) GetZDevices() map[string]*Z2MDevice {
 }
 
 func (gw *Gateway) GetZDeviceByTopic(topic string) *Z2MDevice {
-	name := topic[len(mqttTopic+"/"):]
+	name := topic[len(gw.config.topic+"/"):]
 	return gw.GetZDevice(name)
 }
 
@@ -66,7 +65,7 @@ func (gw *Gateway) mqttPublishHander(client MQTT.Client, msg MQTT.Message) {
 	}
 	// slog.Debug("Received message on", "topic", msg.Topic())
 	// Is it devices definitions ?
-	if msg.Topic() == mqttTopic+"/bridge/devices" {
+	if msg.Topic() == gw.config.topic+"/bridge/devices" {
 		gw.jsonParseDevices(msg.Payload())
 	} else {
 		dev := gw.GetZDeviceByTopic(msg.Topic())
diff --git a/z2m.go b/z2m.go
index 0a2db03..e0fa57c 100644
--- a/z2m.go
+++ b/z2m.go
@@ -100,7 +100,7 @@ func (zDev *Z2MDevice) HandleMessage(msg MQTT.Message) {
 // creates new xAAL devices from a bridge device
 func (zDev *Z2MDevice) setupXAALDevices(gw *Gateway) {
 	// TODO: Handle errors
-	baseAddr := gw.baseAddr
+	baseAddr := gw.config.baseAddr
 	ieeeAddr, _ := hexStringToInteger(zDev.IeeeAddress)
 	baseAddr, _ = baseAddr.Add(int64(ieeeAddr))
 
-- 
GitLab