初始
This commit is contained in:
107
third/plane/progress.go
Normal file
107
third/plane/progress.go
Normal file
@ -0,0 +1,107 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user