// Package gateway 提供设备相关的 7 个 API 方法封装 package gateway import ( "context" "github.com/break/junhong_cmp_fiber/pkg/errors" ) // GetDeviceInfo 获取设备信息 // 通过卡号或设备 ID 查询设备的在线状态、信号强度、WiFi 信息等 // POST /device/info func (c *Client) GetDeviceInfo(ctx context.Context, req *DeviceInfoReq) (*DeviceInfoResp, error) { if req.CardNo == "" && req.DeviceID == "" { return nil, errors.New(errors.CodeInvalidParam, "cardNo 和 deviceId 至少需要一个") } return doRequestWithResponse[DeviceInfoResp](c, ctx, "/device/info", req) } // GetSlotInfo 获取设备卡槽信息 // 查询设备的所有卡槽及其中的卡信息 // POST /device/slot-info func (c *Client) GetSlotInfo(ctx context.Context, req *DeviceInfoReq) (*SlotInfoResp, error) { if req.CardNo == "" && req.DeviceID == "" { return nil, errors.New(errors.CodeInvalidParam, "cardNo 和 deviceId 至少需要一个") } return doRequestWithResponse[SlotInfoResp](c, ctx, "/device/slot-info", req) } // SetSpeedLimit 设置设备限速 // 设置设备的统一限速值(单位 KB/s) // POST /device/speed-limit func (c *Client) SetSpeedLimit(ctx context.Context, req *SpeedLimitReq) error { _, err := c.doRequest(ctx, "/device/speed-limit", req) return err } // SetWiFi 设置设备 WiFi // 配置 WiFi 名称、密码及启用状态,cardNo(ICCID)为必填参数 // POST /device/wifi-config func (c *Client) SetWiFi(ctx context.Context, req *WiFiReq) error { _, err := c.doRequest(ctx, "/device/wifi-config", req) return err } // SwitchCard 设备切换卡 // 为多卡设备切换到目标 ICCID,operationType 固定为 2 // POST /device/card-switch func (c *Client) SwitchCard(ctx context.Context, req *SwitchCardReq) error { // 强制设置 operationType 为 2(切卡操作) req.OperationType = 2 _, err := c.doRequest(ctx, "/device/card-switch", req) return err } // ResetDevice 设备恢复出厂设置 // 将设备恢复到出厂设置状态 // POST /device/factory-reset func (c *Client) ResetDevice(ctx context.Context, req *DeviceOperationReq) error { _, err := c.doRequest(ctx, "/device/factory-reset", req) return err } // RebootDevice 设备重启 // 远程重启设备 // POST /device/restart func (c *Client) RebootDevice(ctx context.Context, req *DeviceOperationReq) error { _, err := c.doRequest(ctx, "/device/restart", req) return err }