123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package debugger
- import (
- "Wine-Server/utils"
- "Wine-Server/utils/tables"
- "github.com/gorilla/websocket"
- )
- func keepAlive(conn *websocket.Conn) {
- _ = conn.WriteJSON(utils.WsEvent("pon", nil))
- }
- func listDevices(conn *websocket.Conn) {
- result := utils.JsonType{}
- for seq, device := range utils.SellerDevices {
- table := tables.DeviceTable{Id: seq}
- _ = table.Get()
- result[seq] = utils.JsonType{
- "seq": seq, "online": device.Online, "location": table.Addr,
- "ppv1": table.Wines[0].Ppv, "ppv2": table.Wines[1].Ppv,
- "ppv3": table.Wines[2].Ppv, "ppv4": table.Wines[3].Ppv,
- }
- }
- _ = conn.WriteJSON(utils.WsEvent("devices", result))
- }
- func setDebug(conn *websocket.Conn, data any) {
- var param debugParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- _ = conn.WriteJSON(utils.WsError("params error"))
- return
- }
- if device, exist := utils.SellerDevices[param.Seq]; exist {
- if device.Online {
- _ = device.Conn.WriteJSON(utils.WsEvent("setDebug", param.Debug))
- return
- }
- _ = conn.WriteJSON(utils.WsError("device offline"))
- return
- }
- _ = conn.WriteJSON(utils.WsError("no such device"))
- }
- func openGate(conn *websocket.Conn, who string, data any) {
- var param openParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- _ = conn.WriteJSON(utils.WsError("params error"))
- return
- }
- if device, exist := utils.SellerDevices[param.Seq]; exist {
- if device.Online {
- _ = device.Conn.WriteJSON(utils.WsEvent("openGate", utils.JsonType{
- "kind": param.Kind,
- "who": who,
- }))
- return
- }
- _ = conn.WriteJSON(utils.WsError("device offline"))
- return
- }
- _ = conn.WriteJSON(utils.WsError("no such device"))
- }
- func setLocation(conn *websocket.Conn, data any) {
- var param locationParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- _ = conn.WriteJSON(utils.WsError("params error"))
- return
- }
- table := tables.DeviceTable{Id: param.Seq}
- _ = table.Get()
- err = table.Update(utils.JsonType{"addr": param.Loc})
- if err != nil {
- utils.Logger.Printf("update location failed, device[%s], addr[%s], error: %s\n", param.Seq, param.Loc, err)
- _ = conn.WriteJSON(utils.WsError("update location failed"))
- }
- _ = conn.WriteJSON(utils.WsEvent("locationUpdated", nil))
- }
- func setPpv(conn *websocket.Conn, data any) {
- var param ppvParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- _ = conn.WriteJSON(utils.WsError("params error"))
- return
- }
- table := tables.DeviceTable{Id: param.Seq}
- _ = table.Get()
- err = table.Update(utils.JsonType{utils.Format("ppv%d", param.Index+1): param.Value})
- if err != nil {
- utils.Logger.Printf(
- "update location failed, device[%s], ppv%d[%s], error: %s\n",
- param.Seq, param.Index, param.Value, err,
- )
- _ = conn.WriteJSON(utils.WsError("update ppv failed"))
- }
- if device, exist := utils.SellerDevices[param.Seq]; exist {
- if device.Online {
- _ = device.Conn.WriteJSON(utils.WsEvent("ppvUpdate", utils.JsonType{
- "index": param.Index,
- "value": param.Value,
- }))
- return
- }
- _ = conn.WriteJSON(utils.WsError("device offline"))
- return
- }
- _ = conn.WriteJSON(utils.WsError("no such device"))
- }
|