Files
zmkgC/third/plane/progress.go
2025-07-07 20:11:59 +08:00

108 lines
3.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package plane
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"github.com/tiger1103/gfast/v3/third/plane/globe"
)
type Progerss_putter_close_Req struct {
g.Meta `path:"progress/putter_close" summary:"推杆闭合进度" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_putter_close(ctx context.Context, req *Progerss_putter_close_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_putter_close_map)
}
type Progerss_putter_open_Req struct {
g.Meta `path:"progress/putter_open" summary:"推杆展开进度" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_putter_open(ctx context.Context, req *Progerss_putter_open_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_putter_open_map)
}
type Progerss_Reply_Req struct {
g.Meta `path:"progress/err_reply" summary:"up回复错误状态" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_Reply(ctx context.Context, req *Progerss_Reply_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Reply)
}
type Progerss_device_reboot_Req struct {
g.Meta `path:"progress/device_reboot" summary:"机库重启进度推送" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_device_reboot(ctx context.Context, req *Progerss_device_reboot_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_device_reboot_map)
}
type Progerss_cover_close_Req struct {
g.Meta `path:"progress/cover_close" summary:"机库关闭舱盖进度推送" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_cover_close(ctx context.Context, req *Progerss_cover_close_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_cover_close_map)
}
type Progerss_cover_open_Req struct {
g.Meta `path:"progress/cover_open" summary:"机库打开舱盖进度推送" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_cover_open(ctx context.Context, req *Progerss_cover_open_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_cover_open_map)
}
type Progerss_drone_close_Req struct {
g.Meta `path:"progress/drone_close" summary:"飞行器关机进度推送" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_drone_close(ctx context.Context, req *Progerss_drone_close_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_drone_close_map)
}
type Progerss_drone_open_Req struct {
g.Meta `path:"progress/drone_open" summary:"飞行器开机进度推送" method:"get" tags:"无人机进度数据相关ws"`
}
func (receiver PLANE) Progerss_drone_open(ctx context.Context, req *Progerss_drone_open_Req) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Progress_drone_open_map)
}
type DeviceStatusReq struct {
g.Meta `path:"device_status" summary:"ws推送飞机状态" method:"get" tags:"无人机进度数据相关ws"`
}
type DeviceStatusRes struct {
Code int `json:"code"`
Data interface{} `json:"data"`
}
func (receiver PLANE) DeviceStatus(ctx context.Context, req *DeviceStatusReq) (res *UsualRes, err error) {
return save_ws(ctx, &globe.WS_Status_map)
}
func save_ws(ctx context.Context, _map *globe.WS_MAP) (res *UsualRes, err error) {
r := ghttp.RequestFromCtx(ctx)
ws, err := r.WebSocket()
if err != nil {
return nil, err
}
ip := r.Get("token").String()
globe.MutexRw.Lock()
(*_map)[ip] = ws
globe.MutexRw.Unlock()
fmt.Println("ws连接了", ip)
for {
_, _, err = ws.ReadMessage()
if err != nil {
fmt.Println("ws断开了", ip)
delete(*_map, ip)
return nil, err
}
}
}