3 Commits

Author SHA1 Message Date
Adrian Zürcher
dc64d08e9d new son_data model 2025-05-05 07:32:26 +02:00
Adrian Zürcher
a92995d766 removie unused websocket 2025-04-29 17:16:36 +02:00
Adrian Zürcher
348a6f7622 move client context to correct place 2025-04-29 17:15:20 +02:00
7 changed files with 29 additions and 72 deletions

View File

@@ -50,9 +50,6 @@ func NewDriver(cfgDir, name string, debug bool) (*ArtNetDriver, error) {
logger.Error("artNet.NewDriver.LoadCfg", "error load driver configuration: "+err.Error()) logger.Error("artNet.NewDriver.LoadCfg", "error load driver configuration: "+err.Error())
return nil, err return nil, err
} }
d.Conn = client.NewClient(logger)
return &d, nil return &d, nil
} }
@@ -81,11 +78,11 @@ func (d *ArtNetDriver) SetValue(bus string, address uint, value uint8) error {
return fmt.Errorf("no bus '%s' found", bus) return fmt.Errorf("no bus '%s' found", bus)
} }
d.Buses[bus].Data.SetValue(address, value) d.Buses[bus].Data.SetValue(address, value)
return d.Buses[bus].SendData() return d.Buses[bus].SendData()
} }
func (d *ArtNetDriver) Connect(ip, id string, port uint) error { func (d *ArtNetDriver) Connect(ip, id string, port uint) error {
d.Conn = client.NewClient(d.Log)
if err := d.Conn.Connect(ip, id, port); err != nil { if err := d.Conn.Connect(ip, id, port); err != nil {
return err return err
} }

View File

@@ -30,7 +30,8 @@ func (d *ArtNetDriver) CreateBus(c *gin.Context) {
_, err := auth.GetIDFromQuery(c) _, err := auth.GetIDFromQuery(c)
if err != nil { if err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError(err.Error()) r.SetError()
r.SetMessage(err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
@@ -42,14 +43,16 @@ func (d *ArtNetDriver) CreateBus(c *gin.Context) {
if addr := net.ParseIP(busPayload.Ip); addr == nil { if addr := net.ParseIP(busPayload.Ip); addr == nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("wrong ip '" + busPayload.Ip + "'") r.SetError()
r.SetMessage("wrong ip '" + busPayload.Ip + "'")
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
if _, ok := d.Buses[busPayload.Name]; ok { if _, ok := d.Buses[busPayload.Name]; ok {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("bus " + busPayload.Name + " exists already") r.SetError()
r.SetMessage("bus " + busPayload.Name + " exists already")
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
return return
} }
@@ -57,7 +60,7 @@ func (d *ArtNetDriver) CreateBus(c *gin.Context) {
bus := d.NewBus(busPayload.Name, busPayload.Ip, busPayload.GetPort()) bus := d.NewBus(busPayload.Name, busPayload.Ip, busPayload.GetPort())
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendMessage(fmt.Sprintf("bus '%s' successfully created with ip: %s and on port: %d", bus.Name, bus.Ip, bus.GetPort())) r.SetMessage(fmt.Sprintf("bus '%s' successfully created with ip: %s and on port: %d", bus.Name, bus.Ip, bus.GetPort()))
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
d.cfgHandler.SaveCfg(*d) d.cfgHandler.SaveCfg(*d)
} }
@@ -66,7 +69,8 @@ func (d *ArtNetDriver) RemoveBus(c *gin.Context) {
_, err := auth.GetIDFromQuery(c) _, err := auth.GetIDFromQuery(c)
if err != nil { if err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("id: " + err.Error()) r.SetError()
r.SetMessage("id: " + err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
@@ -78,14 +82,14 @@ func (d *ArtNetDriver) RemoveBus(c *gin.Context) {
if _, ok := d.Buses[busPayload.Name]; !ok { if _, ok := d.Buses[busPayload.Name]; !ok {
r := json_dataModels.NewResponse() r := json_dataModels.NewResponse()
r.SendMessage("bus " + busPayload.Name + " not found") r.SetMessage("bus " + busPayload.Name + " not found")
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
return return
} else { } else {
delete(d.Buses, busPayload.Name) delete(d.Buses, busPayload.Name)
} }
r := json_dataModels.NewResponse() r := json_dataModels.NewResponse()
r.SendMessage(fmt.Sprintf("bus '%s' successfully removed", busPayload.Name)) r.SetMessage(fmt.Sprintf("bus '%s' successfully removed", busPayload.Name))
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
d.cfgHandler.SaveCfg(*d) d.cfgHandler.SaveCfg(*d)
} }
@@ -94,7 +98,8 @@ func (d *ArtNetDriver) Start(c *gin.Context) {
_, err := auth.GetIDFromQuery(c) _, err := auth.GetIDFromQuery(c)
if err != nil { if err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("id: " + err.Error()) r.SetError()
r.SetMessage("id: " + err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
@@ -107,7 +112,7 @@ func (d *ArtNetDriver) Start(c *gin.Context) {
d.Buses[busPayload.Name].Start(d.Log) d.Buses[busPayload.Name].Start(d.Log)
r := json_dataModels.NewResponse() r := json_dataModels.NewResponse()
r.SendMessage(fmt.Sprintf("bus '%s' running", busPayload.Name)) r.SetMessage(fmt.Sprintf("bus '%s' running", busPayload.Name))
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
d.cfgHandler.SaveCfg(*d) d.cfgHandler.SaveCfg(*d)
} }
@@ -116,7 +121,8 @@ func (d *ArtNetDriver) Stop(c *gin.Context) {
_, err := auth.GetIDFromQuery(c) _, err := auth.GetIDFromQuery(c)
if err != nil { if err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("id: " + err.Error()) r.SetError()
r.SetMessage("id: " + err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
@@ -129,7 +135,7 @@ func (d *ArtNetDriver) Stop(c *gin.Context) {
d.Buses[busPayload.Name].Stop() d.Buses[busPayload.Name].Stop()
r := json_dataModels.NewResponse() r := json_dataModels.NewResponse()
r.SendMessage(fmt.Sprintf("bus '%s' stopped", busPayload.Name)) r.SetMessage(fmt.Sprintf("bus '%s' stopped", busPayload.Name))
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
d.cfgHandler.SaveCfg(*d) d.cfgHandler.SaveCfg(*d)
} }
@@ -138,7 +144,8 @@ func (d *ArtNetDriver) Status(c *gin.Context) {
_, err := auth.GetIDFromQuery(c) _, err := auth.GetIDFromQuery(c)
if err != nil { if err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("id: " + err.Error()) r.SetError()
r.SetMessage("id: " + err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return return
} }
@@ -153,6 +160,6 @@ func (d *ArtNetDriver) Status(c *gin.Context) {
if d.Buses[busPayload.Name].Status() { if d.Buses[busPayload.Name].Status() {
state = "running" state = "running"
} }
r.SendMessage(fmt.Sprintf("bus '%s' %s", busPayload.Name, state)) r.SetMessage(fmt.Sprintf("bus '%s' %s", busPayload.Name, state))
c.JSON(http.StatusOK, r) c.JSON(http.StatusOK, r)
} }

View File

@@ -6,7 +6,7 @@ import (
json_dataModels "github.com/tecamino/tecamino-json_data/models" json_dataModels "github.com/tecamino/tecamino-json_data/models"
) )
func (d *ArtNetDriver) Subscribe(subs ...json_dataModels.Subscribe) { func (d *ArtNetDriver) Subscribe(subs ...json_dataModels.Subscription) {
if d.Subscriptions == nil { if d.Subscriptions == nil {
d.Subscriptions = models.NewSubscriptions() d.Subscriptions = models.NewSubscriptions()
} }

View File

@@ -1,49 +0,0 @@
package driver
const (
OnCreate = "onCreate"
OnChange = "onChange"
OnDelete = "onDelete"
)
//func (d *ArtNetDriver) Websocket(c *gin.Context) {
// id, err := auth.GetIDFromQuery(c)
// if err != nil {
// d.Log.Error("artNet.webSocket.Websocket", "error GetIDFromAuth: "+err.Error())
// return
// }
// d.Log.Debug("artNet.webSocket.Websocket", "authorization id token: "+id)
// ctx, cancel := context.WithTimeout(c.Request.Context(), 10*time.Minute)
// defer cancel()
// conn, err := d.Connections.ConnectRecievingWsConnection(id, c)
// if err != nil {
// d.Log.Error("artNet.webSocket.Websocket", "error connecting recieving websocket conection: "+err.Error())
// return
// }
// defer d.Connections.DisconnectRecievingWsConnection(id, websocket.StatusInternalError, "Internal error")
// var request any
// //Read loop
// for {
// err := wsjson.Read(ctx, conn, &request)
// if err != nil {
// d.Log.Error("artNet.webSocket.Websocket", "read error:"+err.Error())
// log.Println("WebSocket read error:", err)
// break
// }
// fmt.Println(request)
// Set
// if request.Set != nil {
// for _, set := range *request.Set {
// if err = d.SetValue(set); err != nil {
// d.Log.Error("artNet.webSocket.Websocket", "set value error"+err.Error())
// log.Println(err)
// continue
// }
// time.Sleep(23 * time.Millisecond)
// }
// }
// }
// }

2
go.mod
View File

@@ -9,7 +9,7 @@ require (
github.com/gin-gonic/gin v1.10.0 github.com/gin-gonic/gin v1.10.0
github.com/google/uuid v1.6.0 github.com/google/uuid v1.6.0
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e
github.com/tecamino/tecamino-json_data v0.0.11 github.com/tecamino/tecamino-json_data v0.0.12
github.com/tecamino/tecamino-logger v0.2.0 github.com/tecamino/tecamino-logger v0.2.0
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )

4
go.sum
View File

@@ -65,8 +65,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e h1:nt2877sKfojlHCTOBXbpWjBkuWKritFaGIfgQwbQUls= github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e h1:nt2877sKfojlHCTOBXbpWjBkuWKritFaGIfgQwbQUls=
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e/go.mod h1:B4+Kq1u5FlULTjFSM707Q6e/cOHFv0z/6QRoxubDIQ8= github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e/go.mod h1:B4+Kq1u5FlULTjFSM707Q6e/cOHFv0z/6QRoxubDIQ8=
github.com/tecamino/tecamino-json_data v0.0.11 h1:WVcF0tj+ElM9hRM1PccbSnY8DHJnLPauqzY0o0ib9O0= github.com/tecamino/tecamino-json_data v0.0.12 h1:S4Y+WcfQNrin7P73ZI+4eJWh62IwJVhriRsPGGM8N34=
github.com/tecamino/tecamino-json_data v0.0.11/go.mod h1:LLlyD7Wwqplb2BP4PeO86EokEcTRidlW5MwgPd1T2JY= github.com/tecamino/tecamino-json_data v0.0.12/go.mod h1:LLlyD7Wwqplb2BP4PeO86EokEcTRidlW5MwgPd1T2JY=
github.com/tecamino/tecamino-logger v0.2.0 h1:NPH/Gg9qRhmVoW8b39i1eXu/LEftHc74nyISpcRG+XU= github.com/tecamino/tecamino-logger v0.2.0 h1:NPH/Gg9qRhmVoW8b39i1eXu/LEftHc74nyISpcRG+XU=
github.com/tecamino/tecamino-logger v0.2.0/go.mod h1:0M1E9Uei/qw3e3WA1x3lBo1eP3H5oeYE7GjYrMahnj8= github.com/tecamino/tecamino-logger v0.2.0/go.mod h1:0M1E9Uei/qw3e3WA1x3lBo1eP3H5oeYE7GjYrMahnj8=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=

View File

@@ -169,14 +169,16 @@ func (b *Bus) ParsePayload(c *gin.Context) error {
if err := c.BindJSON(b); err != nil { if err := c.BindJSON(b); err != nil {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("json: " + err.Error()) r.SetError()
r.SetMessage("json: " + err.Error())
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return err return err
} }
if b.Name == "" { if b.Name == "" {
r := json_data.NewResponse() r := json_data.NewResponse()
r.SendError("bus name missing") r.SetError()
r.SetMessage("bus name missing")
c.JSON(http.StatusBadRequest, r) c.JSON(http.StatusBadRequest, r)
return errors.New("bus name missing") return errors.New("bus name missing")
} }