Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dc64d08e9d | ||
![]() |
a92995d766 | ||
![]() |
348a6f7622 |
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
||||||
}
|
}
|
||||||
|
@@ -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()
|
||||||
}
|
}
|
||||||
|
@@ -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
2
go.mod
@@ -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
4
go.sum
@@ -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=
|
||||||
|
@@ -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")
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user