cabdef

package
v0.0.0-...-fe94052 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UrlMaintainClients = "/maintain/clients"
	UrlOperateBin      = "/operate/bin"
	UrlBinDeactivate   = "/bin/deactivate"
	UrlBusinessUsable  = "/business/usable"
	UrlBusinessDo      = "/business/do"
	UrlExchangeUsable  = "/exchange/usable"
	UrlExchangeDo      = "/exchange/do"
	UrlDeviceBinInfo   = "/device/bininfo"
	UrlBattery         = "/battery"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Bin

type Bin struct {
	ID uint64 `json:"id,omitempty"`
	// 品牌
	Brand adapter.CabinetBrand `json:"brand,omitempty"`
	// 电柜设备序列号
	Serial string `json:"serial,omitempty"`
	// 仓位名称(N号仓)
	Name string `json:"name,omitempty"`
	// 仓位序号(从1开始)
	Ordinal int `json:"ordinal,omitempty"`
	// 仓门是否开启
	Open bool `json:"open,omitempty"`
	// 仓位是否启用
	Enable bool `json:"enable,omitempty"`
	// 仓位是否健康
	Health bool `json:"health,omitempty"`
	// 是否有电池
	BatteryExists bool `json:"battery_exists,omitempty"`
	// 电池序列号
	BatterySn string `json:"battery_sn,omitempty"`
	// 当前电压
	Voltage float64 `json:"voltage,omitempty"`
	// 当前电流
	Current float64 `json:"current,omitempty"`
	// 电池电量
	Soc float64 `json:"soc,omitempty"`
	// 电池健康程度
	Soh float64 `json:"soh,omitempty"`
	// 仓位备注
	Remark *string `json:"remark,omitempty,omitempty"`
}

Bin is the model entity for the Bin schema.

func (*Bin) Info

func (b *Bin) Info() *BinInfo

type BinDeactivateRequest

type BinDeactivateRequest struct {
	Serial     string  `json:"serial" validate:"required"`     // 电柜编号
	Ordinal    int     `json:"ordinal" validate:"required"`    // 仓位序号
	Deactivate *bool   `json:"deactivate" validate:"required"` // 是否禁用
	Reason     *string `json:"reason"`                         // 原因
}

type BinInfo

type BinInfo struct {
	Ordinal       int     `json:"ordinal,omitempty"`       // 仓位序号
	BatterySN     string  `json:"batterySn,omitempty"`     // 电池编码
	Voltage       float64 `json:"voltage,omitempty"`       // 电压
	Current       float64 `json:"current,omitempty"`       // 电流
	Soc           float64 `json:"soc,omitempty"`           // 电量
	Soh           float64 `json:"soh,omitempty"`           // 健康
	Health        bool    `json:"health,omitempty"`        // 健康
	Enable        bool    `json:"enable,omitempty"`        // 启用
	Open          bool    `json:"open,omitempty"`          // 开启
	BatteryExists bool    `json:"batteryExists,omitempty"` // 电池在位
}

type BinInfoRequest

type BinInfoRequest struct {
	Serial  string `json:"serial" validate:"required"`  // 电柜编号
	Ordinal *int   `json:"ordinal" validate:"required"` // 仓位序号
}

type BinOperateResult

type BinOperateResult struct {
	UUID     string           `json:"uuid"`
	Step     int              `json:"step"`               // 操作步骤
	Business adapter.Business `json:"business"`           // 业务类型
	StartAt  *time.Time       `json:"startAt"`            // 开始时间
	StopAt   *time.Time       `json:"stopAt"`             // 结束时间
	Success  bool             `json:"success"`            // 是否成功
	Before   *BinInfo         `json:"before"`             // 操作前仓位信息
	After    *BinInfo         `json:"after"`              // 操作后仓位信息
	Duration float64          `json:"duration,omitempty"` // 耗时
	Message  string           `json:"message,omitempty"`  // 消息
}

type BusinessRequest

type BusinessRequest struct {
	UUID     uuid.UUID        `json:"uuid" validate:"required"`
	Business adapter.Business `json:"business" validate:"required"` // 业务类别
	Serial   string           `json:"serial" validate:"required"`   // 电柜编号
	Timeout  int64            `json:"timeout" validate:"required"`  // 超时时间(s)
	Battery  string           `json:"battery,omitempty"`            // 需要校验的电池编号 (可为空, 如果是智能柜需要校验放入电池编号的时候必须携带, 例如putin操作)
	Model    string           `json:"model" validate:"required"`    // 电池型号
}

func (*BusinessRequest) String

func (req *BusinessRequest) String() string

type BusinessResponse

type BusinessResponse struct {
	Error   string              `json:"error,omitempty"`
	Results []*BinOperateResult `json:"results"`
}

type BusinuessUsableRequest

type BusinuessUsableRequest struct {
	Minsoc   float64          `json:"minsoc" validate:"required"` // 最小电量
	Business adapter.Business `json:"business" validate:"required"`
	Serial   string           `json:"serial" validate:"required"`
	Model    string           `json:"model" validate:"required"` // 电池型号
}

BusinuessUsableRequest 获取业务仓位请求

type Cabinet

type Cabinet struct {
	ID uint64 `json:"id,omitempty"`
	// 是否在线
	Online bool `json:"online,omitempty"`
	// 品牌
	Brand adapter.CabinetBrand `json:"brand,omitempty"`
	// 电柜编号
	Serial string `json:"serial,omitempty"`
	// 状态
	Status CabinetStatus `json:"status,omitempty"`
	// 电柜是否启用
	Enable bool `json:"enable,omitempty"`
	// 经度
	Lng *float64 `json:"lng,omitempty,omitempty"`
	// 纬度
	Lat *float64 `json:"lat,omitempty,omitempty"`
	// GSM信号强度
	Gsm *float64 `json:"gsm,omitempty,omitempty"`
	// 换电柜总电压 (V)
	Voltage *float64 `json:"voltage,omitempty,omitempty"`
	// 换电柜总电流 (A)
	Current *float64 `json:"current,omitempty,omitempty"`
	// 柜体温度值 (换电柜温度)
	Temperature *float64 `json:"temperature,omitempty,omitempty"`
	// 总用电量
	Electricity *float64 `json:"electricity,omitempty,omitempty"`
}

Cabinet is the model entity for the Cabinet schema.

type CabinetBinUsableResponse

type CabinetBinUsableResponse struct {
	Cabinet     *Cabinet `json:"cabinet"`
	UUID        string   `json:"uuid,omitempty"`
	Fully       *Bin     `json:"fully,omitempty"`       // 满电仓
	Empty       *Bin     `json:"empty,omitempty"`       // 空电仓
	BusinessBin *Bin     `json:"businessBin,omitempty"` // 业务仓位
}

type CabinetNameResponse

type CabinetNameResponse struct {
	Name string `json:"name"`
}

type CabinetStatus

type CabinetStatus string
const (
	StatusInitializing CabinetStatus = "initializing"
	StatusIdle         CabinetStatus = "idle"
	StatusBusy         CabinetStatus = "busy"
	StatusExchange     CabinetStatus = "exchange"
	StatusAbnormal     CabinetStatus = "abnormal"
)

CabinetStatus values.

type DetectBattery

type DetectBattery uint8

DetectBattery 电池检测

const (
	DetectBatteryIgnore DetectBattery = iota // 忽略
	DetectBatteryPutin                       // 检测是否放入
	DetectBatteryPutout                      // 检测是否取走
)

func (DetectBattery) Text

func (o DetectBattery) Text() string

type DetectBin

type DetectBin uint8
const (
	DetectBinIgnore  DetectBin = iota // 忽略
	DetectBinEnable                   // 启用
	DetectBinDisable                  // 禁用
	DetectBinUsable                   // 业务可用
)

func (DetectBin) Text

func (o DetectBin) Text() string

type DetectDoor

type DetectDoor uint8

DetectDoor 仓门检测

const (
	DetectDoorIgnore DetectDoor = iota // 忽略
	DetectDoorOpen                     // 检测是否开门
	DetectDoorClose                    // 检测是否关门
)

func (DetectDoor) Text

func (o DetectDoor) Text() string

type ExchangeRequest

type ExchangeRequest struct {
	UUID    uuid.UUID `json:"uuid" validate:"required"`
	Serial  string    `json:"serial" validate:"required"`  // 电柜编码
	Battery string    `json:"battery"`                     // 当前电池编号, 若放入电池型号不匹配, 则中断换电流程
	Expires int64     `json:"expires" validate:"required"` // 扫码有效期(s), 例如: 30s
	Timeout int64     `json:"timeout" validate:"required"` // 换电步骤超时(s), 例如: 120s
	Minsoc  float64   `json:"minsoc" validate:"required"`  // 换电最小电量
}

type ExchangeResponse

type ExchangeResponse struct {
	Success       bool                   `json:"success"`                 // 是否换电成功
	PutoutBattery string                 `json:"putoutBattery,omitempty"` // 取走电池编号
	PutinBattery  string                 `json:"putinBattery"`            // 放入电池编号
	Results       []*ExchangeStepMessage `json:"results,omitempty"`       // 步骤详情
	Error         string                 `json:"error,omitempty"`         // 错误消息
}

type ExchangeStep

type ExchangeStep uint8

ExchangeStep 换电步骤

const (
	ExchangeStepOpenEmpty ExchangeStep = iota + 1 // 第一步, 开启空电仓
	ExchangeStepPutInto                           // 第二步, 放入旧电池并关闭仓门
	ExchangeStepOpenFull                          // 第三步, 开启满电仓
	ExchangeStepPutOut                            // 第四步, 取出新电池并关闭仓门
)

func (ExchangeStep) Description

func (es ExchangeStep) Description() string

func (ExchangeStep) EqualInt

func (es ExchangeStep) EqualInt(n int) bool

func (ExchangeStep) Int

func (es ExchangeStep) Int() int

func (ExchangeStep) Is

func (es ExchangeStep) Is(step ExchangeStep) bool

func (ExchangeStep) Uint32

func (es ExchangeStep) Uint32() uint32

type ExchangeStepMessage

type ExchangeStepMessage BinOperateResult

func (*ExchangeStepMessage) MarshalBinary

func (m *ExchangeStepMessage) MarshalBinary() ([]byte, error)

func (*ExchangeStepMessage) UnmarshalBinary

func (m *ExchangeStepMessage) UnmarshalBinary(data []byte) error

type ExchangeUsableRequest

type ExchangeUsableRequest struct {
	Serial string  `json:"serial" validate:"required"` // 电柜编号
	Minsoc float64 `json:"minsoc" validate:"required"` // 换电最小电量
	Lock   int64   `json:"lock" validate:"required"`   // 扫码锁定时间
	Model  string  `json:"model" validate:"required"`  // 电池型号
}

type Operate

type Operate string
const (
	OperateUnknown    Operate = "unknown"     // 未知
	OperateDetect     Operate = "detect"      // 检测
	OperateDoorOpen   Operate = "door_open"   // 开仓
	OperateBinDisable Operate = "bin_disable" // 仓位禁用
	OperateBinEnable  Operate = "bin_enable"  // 仓位启用
)

func (Operate) IsCommand

func (o Operate) IsCommand() bool

func (Operate) IsOpen

func (o Operate) IsOpen() bool

func (*Operate) Scan

func (o *Operate) Scan(src interface{}) error

func (Operate) Text

func (o Operate) Text() string

func (Operate) Value

func (o Operate) Value() (driver.Value, error)

type OperateBinRequest

type OperateBinRequest struct {
	Operate Operate `json:"operate" validate:"required"`
	Ordinal *int    `json:"ordinal" validate:"required"`
	Serial  string  `json:"serial" validate:"required"`
	Remark  string  `json:"remark" validate:"required"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL