1218 lines
35 KiB
Go
1218 lines
35 KiB
Go
|
package dj
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"github.com/gogf/gf/v2/crypto/gmd5"
|
|||
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
"github.com/gogf/gf/v2/os/gtime"
|
|||
|
"github.com/tiger1103/gfast/v3/api/v1/common/coryCommon"
|
|||
|
"math/rand"
|
|||
|
"time"
|
|||
|
)
|
|||
|
|
|||
|
const (
|
|||
|
Drone_open = "drone_open"
|
|||
|
Drone_close = "drone_close"
|
|||
|
Cover_open = "cover_open"
|
|||
|
Cover_close = "cover_close"
|
|||
|
Device_reboot = "device_reboot"
|
|||
|
Putter_open = "putter_open"
|
|||
|
Putter_close = "putter_close"
|
|||
|
Airport_organization_bind = "airport_organization_bind" //设备绑定到组织
|
|||
|
Airport_organization_get = "airport_organization_get" //查询设备绑定对应的组织信息
|
|||
|
Airport_bind_status = "airport_bind_status" //获取设备绑定信息
|
|||
|
Update_topo = "update_topo" //设备拓扑更新
|
|||
|
Flighttask_ready = "flighttask_ready" //任务就绪通知
|
|||
|
Flighttask_resource_get = "flighttask_resource_get" //任务资源获取
|
|||
|
Return_home_info = "return_home_info" //返航信息
|
|||
|
Flighttask_progress = "flighttask_progress" //上报航线任务进度
|
|||
|
Flighttask_prepare = "flighttask_prepare" //下发任务
|
|||
|
Storage_config_get = "storage_config_get" //获取上传临时凭证
|
|||
|
File_upload_callback = "file_upload_callback" //媒体文件上传结果上报
|
|||
|
Takeoff_to_point = "takeoff_to_point" //一键起飞
|
|||
|
Fly_to_point_stop = "fly_to_point_stop" //结束飞向目标点
|
|||
|
Fly_to_point = "fly_to_point" //飞向目标点
|
|||
|
Fly_to_point_progress = "fly_to_point_progress" //flyto 执行结果事件通知
|
|||
|
Flight_authority_grab = "flight_authority_grab" //飞行控制权抢夺
|
|||
|
Speaker_tts_play_start = "speaker_tts_play_start" //喊话器-开始播放TTS文本
|
|||
|
Speaker_audio_play_start = "speaker_audio_play_start" //喊话器-开始播放音频
|
|||
|
Fileupload_progress = "fileupload_progress" //文件上传进度通知(远程日志)
|
|||
|
Config = "config" //config
|
|||
|
|
|||
|
//cory
|
|||
|
OtaCreate = "ota_create" //固件升级
|
|||
|
OtaProgress = "ota_progress" //固件升级进度通知
|
|||
|
FileuploadList = "fileupload_list" //获取设备可上传的文件列表
|
|||
|
FileuploadStart = "fileupload_start" //发起日志文件上传
|
|||
|
DeviceFormat = "device_format" //机场数据格式化
|
|||
|
DroneFormat = "drone_format" //飞行器数据格式化
|
|||
|
ReturnHome1 = "return_home" //返航
|
|||
|
)
|
|||
|
|
|||
|
// CoryAirportOrAircraft 机场or飞机
|
|||
|
type CoryAirportOrAircraft struct {
|
|||
|
Airport interface{} `json:"airport" dc:"机场数据"`
|
|||
|
Aircraft interface{} `json:"aircraft" dc:"飞机数据"`
|
|||
|
HangarSn string `json:"hangarSn" dc:"机仓sn"`
|
|||
|
AircraftSn string `json:"aircraftSn" dc:"飞机sn"`
|
|||
|
Coordinates string `json:"coordinates" dc:"无人机最后一次发送的坐标信息"`
|
|||
|
}
|
|||
|
|
|||
|
/*共有类*/
|
|||
|
type Public struct {
|
|||
|
Tid string `json:"tid"`
|
|||
|
Bid string `json:"bid"`
|
|||
|
Timestamp int64 `json:"timestamp"`
|
|||
|
Gateway string `json:"gateway"`
|
|||
|
Method string `json:"method"`
|
|||
|
}
|
|||
|
|
|||
|
type PublicTwo struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
Output struct {
|
|||
|
Status string `json:"status"`
|
|||
|
} `json:"output"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *Public) SetDefault() {
|
|||
|
//randString := RandString(32)
|
|||
|
//receiver.Bid = randString
|
|||
|
//receiver.Tid = randString
|
|||
|
receiver.Bid = RandString(32)
|
|||
|
receiver.Tid = RandString(32)
|
|||
|
receiver.Timestamp = gtime.Now().TimestampMilli()
|
|||
|
}
|
|||
|
func RandString(len int) string {
|
|||
|
time.Sleep(time.Nanosecond)
|
|||
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|||
|
bytes := make([]byte, len)
|
|||
|
for i := 0; i < len; i++ {
|
|||
|
b := r.Intn(26) + 65
|
|||
|
bytes[i] = byte(b)
|
|||
|
}
|
|||
|
return gmd5.MustEncryptString(string(bytes))
|
|||
|
}
|
|||
|
|
|||
|
// 属性信息1
|
|||
|
type OSD1 struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
JobNumber int `json:"job_number"`
|
|||
|
AccTime int `json:"acc_time"`
|
|||
|
ActivationTime int `json:"activation_time"`
|
|||
|
MaintainStatus struct {
|
|||
|
MaintainStatusArray []struct {
|
|||
|
State int `json:"state"`
|
|||
|
LastMaintainType int `json:"last_maintain_type"`
|
|||
|
LastMaintainTime int `json:"last_maintain_time"`
|
|||
|
LastMaintainWorkSorties int `json:"last_maintain_work_sorties"`
|
|||
|
} `json:"maintain_status_array"`
|
|||
|
} `json:"maintain_status"`
|
|||
|
ElectricSupplyVoltage int `json:"electric_supply_voltage"`
|
|||
|
WorkingVoltage int `json:"working_voltage"`
|
|||
|
WorkingCurrent int `json:"working_current"`
|
|||
|
BackupBattery struct {
|
|||
|
Voltage int `json:"voltage"`
|
|||
|
Temperature float64 `json:"temperature"`
|
|||
|
Switch int `json:"switch"`
|
|||
|
} `json:"backup_battery"`
|
|||
|
DroneBatteryMaintenanceInfo struct {
|
|||
|
MaintenanceState int `json:"maintenance_state"`
|
|||
|
MaintenanceTimeLeft int `json:"maintenance_time_left"`
|
|||
|
} `json:"drone_battery_maintenance_info"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// 属性信息2
|
|||
|
type OSD2 struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlighttaskPrepareCapacity int `json:"flighttask_prepare_capacity"`
|
|||
|
FlighttaskStepCode int `json:"flighttask_step_code"`
|
|||
|
MediaFileDetail struct {
|
|||
|
RemainUpload int `json:"remain_upload"`
|
|||
|
} `json:"media_file_detail"`
|
|||
|
WirelessLink struct {
|
|||
|
GFreqBand float64 `json:"4g_freq_band"`
|
|||
|
GGndQuality int `json:"4g_gnd_quality"`
|
|||
|
GLinkState int `json:"4g_link_state"`
|
|||
|
GQuality int `json:"4g_quality"`
|
|||
|
GUavQuality int `json:"4g_uav_quality"`
|
|||
|
DongleNumber int `json:"dongle_number"`
|
|||
|
LinkWorkmode int `json:"link_workmode"`
|
|||
|
SdrFreqBand float64 `json:"sdr_freq_band"`
|
|||
|
SdrLinkState int `json:"sdr_link_state"`
|
|||
|
SdrQuality int `json:"sdr_quality"`
|
|||
|
} `json:"wireless_link"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// 属性信息3
|
|||
|
type OSD3 struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
NetworkState struct {
|
|||
|
Type int `json:"type"`
|
|||
|
Quality int `json:"quality"`
|
|||
|
Rate float64 `json:"rate"`
|
|||
|
} `json:"network_state"`
|
|||
|
DroneChargeState struct {
|
|||
|
State int `json:"state"`
|
|||
|
CapacityPercent int `json:"capacity_percent"`
|
|||
|
} `json:"drone_charge_state"`
|
|||
|
DroneInDock int `json:"drone_in_dock"`
|
|||
|
Rainfall int `json:"rainfall"`
|
|||
|
WindSpeed float64 `json:"wind_speed"`
|
|||
|
EnvironmentTemperature float64 `json:"environment_temperature"`
|
|||
|
Temperature float64 `json:"temperature"`
|
|||
|
Humidity int `json:"humidity"`
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
Height float64 `json:"height"`
|
|||
|
AlternateLandPoint struct {
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
SafeLandHeight int `json:"safe_land_height"`
|
|||
|
IsConfigured int `json:"is_configured"`
|
|||
|
} `json:"alternate_land_point"`
|
|||
|
FirstPowerOn int64 `json:"first_power_on"`
|
|||
|
PositionState struct {
|
|||
|
IsCalibration int `json:"is_calibration"`
|
|||
|
IsFixed int `json:"is_fixed"`
|
|||
|
Quality int `json:"quality"`
|
|||
|
GpsNumber int `json:"gps_number"`
|
|||
|
RtkNumber int `json:"rtk_number"`
|
|||
|
} `json:"position_state"`
|
|||
|
Storage struct {
|
|||
|
Total int `json:"total"`
|
|||
|
Used int `json:"used"`
|
|||
|
} `json:"storage"`
|
|||
|
ModeCode int `json:"mode_code"`
|
|||
|
CoverState int `json:"cover_state"`
|
|||
|
SupplementLightState int `json:"supplement_light_state"`
|
|||
|
EmergencyStopState int `json:"emergency_stop_state"`
|
|||
|
AirConditionerMode int `json:"air_conditioner_mode"`
|
|||
|
BatteryStoreMode int `json:"battery_store_mode"`
|
|||
|
AlarmState int `json:"alarm_state"`
|
|||
|
PutterState int `json:"putter_state"`
|
|||
|
SubDevice struct {
|
|||
|
DeviceSn string `json:"device_sn"`
|
|||
|
DeviceModelKey string `json:"device_model_key"`
|
|||
|
DeviceOnlineStatus int `json:"device_online_status"`
|
|||
|
DevicePaired int `json:"device_paired"`
|
|||
|
} `json:"sub_device"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// M30/M30T 设备属性
|
|||
|
type M30tEntity struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Battery struct {
|
|||
|
CapacityPercent int `json:"capacity_percent" dc:"电池的总剩余电量"`
|
|||
|
RemainFlightTime int `json:"remain_flight_time" dc:"剩余飞行时间"`
|
|||
|
ReturnHomePower int `json:"return_home_power" dc:"返航所需电量百分比 "`
|
|||
|
} `json:"battery" dc:"飞行器电池信息"`
|
|||
|
Storage struct {
|
|||
|
Total int `json:"total" dc:"总容量"`
|
|||
|
Used int `json:"used" dc:"已使用容量"`
|
|||
|
} `json:"storage" dc:"存储容量"`
|
|||
|
cameras struct {
|
|||
|
RemainPhotoNum int `json:"remain_photo_num" dc:"剩余拍照张数"`
|
|||
|
} `json:"cameras" dc:"飞行器相机信息"`
|
|||
|
HorizontalSpeed float64 `json:"horizontal_speed" dc:"水平速度"`
|
|||
|
VerticalSpeed float64 `json:"vertical_speed" dc:"垂直速度 "`
|
|||
|
Latitude float64 `json:"latitude" dc:"当前位置经度"`
|
|||
|
Longitude float64 `json:"longitude" dc:"当前位置纬度"`
|
|||
|
Elevation float64 `json:"elevation" dc:"相对起飞点高度"`
|
|||
|
TrackId float64 `json:"track_id" dc:"航迹ID"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// 大疆机场 设备属性
|
|||
|
type DjiAirportEntity struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Battery struct {
|
|||
|
VideoQuality int `json:"video_quality" dc:"直播状态 (0自动,1流畅,2高清,3超清)"`
|
|||
|
Status int `json:"status" dc:"直播状态"`
|
|||
|
} `json:"live_status" dc:"网关当前整体直播状态推送"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// AircraftInformation 飞机状态信息 Cory
|
|||
|
type AircraftInformation struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
CommanderFlightHeight float64 `json:"commander_flight_height" dc:"指点飞行高度"`
|
|||
|
HorizontalSpeed float64 `json:"horizontal_speed" dc:"水平速度"`
|
|||
|
VerticalSpeed float64 `json:"vertical_speed" dc:"垂直速度"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// FileUploadCallbackEntity 媒体文件上传结果上报
|
|||
|
type FileUploadCallbackEntity struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
File struct {
|
|||
|
Extension struct {
|
|||
|
DroneModelKey string `json:"drone_model_key"`
|
|||
|
FlightID string `json:"flight_id"`
|
|||
|
IsOriginal bool `json:"is_original"`
|
|||
|
PayloadModelKey string `json:"payload_model_key"`
|
|||
|
} `json:"ext"`
|
|||
|
Metadata struct {
|
|||
|
AbsoluteAltitude float64 `json:"absolute_altitude"`
|
|||
|
CreateTime string `json:"create_time"`
|
|||
|
GimbalYawDegree float64 `json:"gimbal_yaw_degree"`
|
|||
|
RelativeAltitude float64 `json:"relative_altitude"`
|
|||
|
ShootPosition struct {
|
|||
|
Latitude float64 `json:"lat"`
|
|||
|
Longitude float64 `json:"lng"`
|
|||
|
} `json:"shoot_position"`
|
|||
|
} `json:"metadata"`
|
|||
|
Name string `json:"name"`
|
|||
|
ObjectKey string `json:"object_key"`
|
|||
|
Path string `json:"path"`
|
|||
|
} `json:"file"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type State struct {
|
|||
|
Public
|
|||
|
Data interface{} `json:"data"`
|
|||
|
}
|
|||
|
type Service struct {
|
|||
|
Public
|
|||
|
Method string `json:"method"`
|
|||
|
Data interface{} `json:"data"`
|
|||
|
}
|
|||
|
type Event struct {
|
|||
|
Public
|
|||
|
Method string `json:"method"`
|
|||
|
NeedReply int `json:"need_reply"`
|
|||
|
Data interface{} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type Status struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Domain string `json:"domain"`
|
|||
|
Type int `json:"type"`
|
|||
|
SubType int `json:"sub_type"`
|
|||
|
DeviceSecret string `json:"device_secret"`
|
|||
|
Nonce string `json:"nonce"`
|
|||
|
Version int `json:"version"`
|
|||
|
SubDevices []struct {
|
|||
|
Sn string `json:"sn"`
|
|||
|
Type int `json:"type"`
|
|||
|
SubType int `json:"sub_type"`
|
|||
|
Index string `json:"index"`
|
|||
|
DeviceSecret string `json:"device_secret"`
|
|||
|
Nonce string `json:"nonce"`
|
|||
|
Version int `json:"version"`
|
|||
|
} `json:"sub_devices"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type StatusReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type Reboot struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *Reboot) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "device_reboot"
|
|||
|
}
|
|||
|
|
|||
|
/*打开调试模式*/
|
|||
|
type DebugOpen struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *DebugOpen) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "debug_mode_open"
|
|||
|
}
|
|||
|
|
|||
|
/*关闭调试模式*/
|
|||
|
type DebugClose struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *DebugClose) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "debug_mode_close"
|
|||
|
}
|
|||
|
|
|||
|
type Usual struct {
|
|||
|
Public
|
|||
|
Data interface{} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*停止直播*/
|
|||
|
type StopLive struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
VideoId string `json:"video_id"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *StopLive) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "live_stop_push"
|
|||
|
}
|
|||
|
|
|||
|
/*开始直播*/
|
|||
|
type StartLive struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
UrlType int `json:"url_type"`
|
|||
|
Url string `json:"url"`
|
|||
|
VideoId string `json:"video_id"`
|
|||
|
VideoQuality int `json:"video_quality"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *StartLive) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "live_start_push"
|
|||
|
}
|
|||
|
|
|||
|
/*打开舱盖*/
|
|||
|
type CoverOpen struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *CoverOpen) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "cover_open"
|
|||
|
}
|
|||
|
|
|||
|
/*关闭舱盖*/
|
|||
|
type CoverClose struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *CoverClose) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "cover_close"
|
|||
|
}
|
|||
|
|
|||
|
/*飞行器开机*/
|
|||
|
type DroneOpen struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *DroneOpen) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "drone_open"
|
|||
|
}
|
|||
|
|
|||
|
/*飞行器开机*/
|
|||
|
type DroneClose struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *DroneClose) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "drone_close"
|
|||
|
}
|
|||
|
|
|||
|
/*打开充电*/
|
|||
|
|
|||
|
type PutterOpen struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *PutterOpen) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "putter_open"
|
|||
|
}
|
|||
|
|
|||
|
type PutterClose struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *PutterClose) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "putter_close"
|
|||
|
}
|
|||
|
|
|||
|
/*打开充电*/
|
|||
|
|
|||
|
type ChargeOpen struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *ChargeOpen) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "charge_open"
|
|||
|
}
|
|||
|
|
|||
|
/*关闭充电*/
|
|||
|
|
|||
|
type ChargeClose struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *ChargeClose) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "charge_close"
|
|||
|
}
|
|||
|
|
|||
|
/*云平台向设备发送的服务(具体service identifier 见物模型内容)。*/
|
|||
|
func GetServiceTopic(gateway_sn string) string {
|
|||
|
return "thing/product/" + gateway_sn + "/services"
|
|||
|
}
|
|||
|
func GetRequestsReplyTopic(gateway_sn string) string {
|
|||
|
return "thing/product/" + gateway_sn + "/requests_reply"
|
|||
|
}
|
|||
|
func GetEventsReplyTopic(gateway_sn string) string {
|
|||
|
return "thing/product/" + gateway_sn + "/StatusReply"
|
|||
|
}
|
|||
|
|
|||
|
/*开始直播响应*/
|
|||
|
type StartLiveReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
Url string `json:"url"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*开始直播响应*/
|
|||
|
type StopLiveReply struct {
|
|||
|
UsualReply
|
|||
|
}
|
|||
|
|
|||
|
type UsualReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
Output struct {
|
|||
|
Status string `json:"status"`
|
|||
|
} `json:"output"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*打开补光灯*/
|
|||
|
|
|||
|
type Supplement_light_open struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *Supplement_light_open) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "supplement_light_open"
|
|||
|
}
|
|||
|
|
|||
|
/*关闭补光灯*/
|
|||
|
type Supplement_light_close struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *Supplement_light_close) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "supplement_light_close"
|
|||
|
}
|
|||
|
|
|||
|
/*声光报警开关*/
|
|||
|
type Alarm_state_switch struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Action int `json:"action"` //{"0":"关闭","1":"开启"}
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *Alarm_state_switch) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "alarm_state_switch"
|
|||
|
}
|
|||
|
|
|||
|
/*执行任务*/
|
|||
|
type FlighttaskExecute struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskExecute) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "flighttask_execute"
|
|||
|
}
|
|||
|
|
|||
|
/*取消任务*/
|
|||
|
type FlighttaskUndo struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Flight_ids []string `json:"flight_ids"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskUndo) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "flighttask_undo"
|
|||
|
}
|
|||
|
|
|||
|
/*航线暂停*/
|
|||
|
type FlighttaskPause struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskPause) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "flighttask_pause"
|
|||
|
}
|
|||
|
|
|||
|
/*航线恢复*/
|
|||
|
type FlighttaskRecovery struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskRecovery) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "flighttask_recovery"
|
|||
|
}
|
|||
|
|
|||
|
/*一键返航*/
|
|||
|
type ReturnHome struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *ReturnHome) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "return_home"
|
|||
|
}
|
|||
|
|
|||
|
/*取消返航*/
|
|||
|
type ReturnHomeCancel struct {
|
|||
|
Usual
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *ReturnHomeCancel) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "return_home_cancel"
|
|||
|
}
|
|||
|
|
|||
|
/*设备绑定到组织*/
|
|||
|
type AirportOrganizationBind struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
BindDevices []struct {
|
|||
|
DeviceBindingCode string `json:"device_binding_code"` //设备绑定码
|
|||
|
OrganizationId string `json:"organization_id"` //组织id
|
|||
|
DeviceCallsign string `json:"device_callsign"` //设备在组织的名称
|
|||
|
Sn string `json:"sn"` //设备序列号
|
|||
|
DeviceModelKey string `json:"device_model_key"` //产品枚举值
|
|||
|
} `json:"bind_devices"` //绑定参数列表
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*设备绑定到组织回复*/
|
|||
|
type AirportOrganizationBindReplay struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"` //直接填0
|
|||
|
Output struct {
|
|||
|
ErrInfos []struct {
|
|||
|
Sn string `json:"sn"` //设备序列号
|
|||
|
ErrCode int `json:"err_code"` //错误码 自定义,非 0 表示绑定不成功
|
|||
|
} `json:"err_infos"`
|
|||
|
} `json:"output"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*查询设备绑定对应的组织信息*/
|
|||
|
type AirportOrganizationGet struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
DeviceBindingCode string `json:"device_binding_code"` //设备绑定码
|
|||
|
OrganizationId string `json:"organization_id"` //组织id
|
|||
|
} `json:"data"`
|
|||
|
} /*查询设备绑定对应的组织信息回复*/
|
|||
|
type AirportOrganizationGetReplay struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
Output struct {
|
|||
|
OrganizationName string `json:"organization_name"` //组织名称
|
|||
|
} `json:"output"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*获取设备绑定信息*/
|
|||
|
type AirportBindStatus struct {
|
|||
|
Public
|
|||
|
Data []struct {
|
|||
|
Devices []struct {
|
|||
|
Sn string `json:"sn"`
|
|||
|
} `json:"devices"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*获取设备绑定信息回复*/
|
|||
|
type AirportBindStatusReplay struct {
|
|||
|
Public
|
|||
|
Data []struct {
|
|||
|
Result int `json:"result"` //默认0
|
|||
|
Output struct {
|
|||
|
BindStatus []struct {
|
|||
|
Sn string `json:"sn"` //设备序列号
|
|||
|
IsDeviceBindOrganization bool `json:"is_device_bind_organization"` //设备是否绑定到组织
|
|||
|
OrganizationId string `json:"organization_id"` //组织id
|
|||
|
OrganizationName string `json:"organization_name"` //组织名称
|
|||
|
DeviceCallsign string `json:"device_callsign"` //设备在组织中的名称
|
|||
|
} `json:"bind_status"`
|
|||
|
} `json:"output"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type FlighttaskReady struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlightIds []string `json:"flight_ids"` //当前满足任务就绪条件的任务 ID 集合
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
type ReturnHomeInfo struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
LastPointType int `json:"last_point_type"`
|
|||
|
PlannedPathPoints []struct {
|
|||
|
Height float64 `json:"height"`
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
} `json:"planned_path_points"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*下发任务*/
|
|||
|
type FlighttaskPrepare struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
BreakPoint struct {
|
|||
|
Index int `json:"index"`
|
|||
|
Progress float64 `json:"progress"`
|
|||
|
State int `json:"state"`
|
|||
|
WaylineId int `json:"wayline_id"`
|
|||
|
} `json:"break_point"`
|
|||
|
ExecutableConditions struct {
|
|||
|
StorageCapacity int `json:"storage_capacity"`
|
|||
|
} `json:"executable_conditions"`
|
|||
|
ExecuteTime int64 `json:"execute_time"`
|
|||
|
ExitWaylineWhenRcLost int `json:"exit_wayline_when_rc_lost"`
|
|||
|
File struct {
|
|||
|
Fingerprint string `json:"fingerprint"`
|
|||
|
Url string `json:"url"`
|
|||
|
} `json:"file"`
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
OutOfControlAction int `json:"out_of_control_action"`
|
|||
|
ReadyConditions struct {
|
|||
|
BatteryCapacity int `json:"battery_capacity"`
|
|||
|
BeginTime int64 `json:"begin_time"`
|
|||
|
EndTime int64 `json:"end_time"`
|
|||
|
} `json:"ready_conditions"`
|
|||
|
RthAltitude int `json:"rth_altitude"`
|
|||
|
RthMode int `json:"rth_mode"`
|
|||
|
SimulateMission struct {
|
|||
|
IsEnable int `json:"is_enable"`
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
} `json:"simulate_mission"`
|
|||
|
TaskType int `json:"task_type"`
|
|||
|
WaylineType int `json:"wayline_type"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskPrepare) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = Flighttask_prepare
|
|||
|
}
|
|||
|
|
|||
|
// FlighttaskPrepareRes 任务下发 cory
|
|||
|
type FlighttaskPrepareRes struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlightId string `json:"flight_id" dc:"计划 ID"`
|
|||
|
TaskType int `json:"task_type" dc:"任务类型"`
|
|||
|
ExecuteTime int64 `json:"execute_time" dc:"任务类型"`
|
|||
|
WaylineType int `json:"wayline_type" dc:"航线类型"`
|
|||
|
File *FileEntity `json:"file" dc:"航线文件对象"`
|
|||
|
RthAltitude int `json:"rth_altitude" dc:"返航高度" `
|
|||
|
RthMode int `json:"rth_mode" dc:"返航高度模式"`
|
|||
|
OutOfControlAction int `json:"out_of_control_action" dc:"遥控器失控动作"`
|
|||
|
ExitWaylineWhenRcLost int `json:"exit_wayline_when_rc_lost" dc:"航线失控动作"`
|
|||
|
BreakPoint *BreakPoint `json:"break_point" dc:"断点信息" `
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
type BreakPoint struct {
|
|||
|
Index int `json:"index" dc:"断点状态"`
|
|||
|
State int `json:"state" dc:"返航高度模式"`
|
|||
|
Progress float32 `json:"progress" dc:"遥控器失控动作"`
|
|||
|
WaylineId int `json:"wayline_id" dc:"航线失控动作"`
|
|||
|
}
|
|||
|
type FileEntity struct {
|
|||
|
Url string `json:"url" `
|
|||
|
Fingerprint string `json:"fingerprint" `
|
|||
|
}
|
|||
|
|
|||
|
//type FlighttaskResourceGetEntity struct {
|
|||
|
// Data struct {
|
|||
|
// Output *FlighttaskResourceGetTutputEntity `json:"output" `
|
|||
|
// } `json:"data"`
|
|||
|
//}
|
|||
|
//type FlighttaskResourceGetTutputEntity struct {
|
|||
|
// File *FileEntity `json:"file" dc:"航线文件对象"`
|
|||
|
//}
|
|||
|
|
|||
|
func (receiver *FlighttaskPrepareRes) SetDefaultValueCory() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = Flighttask_prepare
|
|||
|
}
|
|||
|
|
|||
|
/*任务资源获取*/
|
|||
|
type FlighttaskResourcGet struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*任务资源获取回复*/
|
|||
|
type FlighttaskResourcGetReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Output struct {
|
|||
|
File struct {
|
|||
|
Fingerprint string `json:"fingerprint"`
|
|||
|
Url string `json:"url"`
|
|||
|
} `json:"file"`
|
|||
|
} `json:"output"`
|
|||
|
Result int `json:"result"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FlighttaskResourcGetReply) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "flighttask_resource_get"
|
|||
|
}
|
|||
|
|
|||
|
/*获取上传临时凭证*/
|
|||
|
type StorageConfigGet struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Module int `json:"module"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*获取上传临时凭证回复*/
|
|||
|
type StorageConfigGetReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Output struct {
|
|||
|
Bucket string `json:"bucket"`
|
|||
|
Credentials struct {
|
|||
|
AccessKeyId string `json:"access_key_id"`
|
|||
|
AccessKeySecret string `json:"access_key_secret"`
|
|||
|
Expire int `json:"expire"`
|
|||
|
SecurityToken string `json:"security_token"`
|
|||
|
} `json:"credentials"`
|
|||
|
Endpoint string `json:"endpoint"`
|
|||
|
ObjectKeyPrefix string `json:"object_key_prefix"`
|
|||
|
Provider string `json:"provider"`
|
|||
|
Region string `json:"region"`
|
|||
|
} `json:"output"`
|
|||
|
Result int `json:"result"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*配置更新回复*/
|
|||
|
type ConfigReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
AppId string `json:"app_id"`
|
|||
|
AppKey string `json:"app_key"`
|
|||
|
AppLicense string `json:"app_license"`
|
|||
|
NtpServerHost string `json:"ntp_server_host"`
|
|||
|
NtpServerPort int `json:"ntp_server_port"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// FileUpLoadListDown 获取设备可上传的文件列表 发送到mqtt
|
|||
|
type FileUpLoadListDown struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
ModuleList []string `json:"module_list" dc:"文件所属过滤列表"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *FileUpLoadListDown) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "fileupload_list"
|
|||
|
}
|
|||
|
|
|||
|
// FileUpLoadListDownUp 获取设备可上传的文件列表 mqtt下发到本地服务
|
|||
|
type FileUpLoadListDownUp struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Files []struct {
|
|||
|
DeviceSN string `json:"device_sn" dc:"设备序列号"`
|
|||
|
List []struct {
|
|||
|
BootIndex int `json:"boot_index" dc:"文件索引"`
|
|||
|
EndTime int64 `json:"end_time" dc:"日志结束时间"`
|
|||
|
Size int `json:"size" dc:"日志文件大小"`
|
|||
|
StartTime int64 `json:"start_time" dc:"日志开始时间"`
|
|||
|
} `json:"list" dc:"文件索引列表"`
|
|||
|
Module string `json:"module" dc:"所属设备类型(0飞行器 2机场)"`
|
|||
|
Result int `json:"result" dc:"返回码"`
|
|||
|
} `json:"files" dc:"文件所属过滤列表"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// LogFileUploadReply 远程日志结构体
|
|||
|
type LogFileUploadReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Bucket string `json:"bucket"`
|
|||
|
Credentials struct {
|
|||
|
AccessKeyId string `json:"access_key_id"`
|
|||
|
AccessKeySecret string `json:"access_key_secret"`
|
|||
|
Expire int `json:"expire"`
|
|||
|
SecurityToken string `json:"security_token"`
|
|||
|
} `json:"credentials"`
|
|||
|
Endpoint string `json:"endpoint"`
|
|||
|
Params struct {
|
|||
|
Files []File `json:"files"`
|
|||
|
//Files []struct {
|
|||
|
// List []struct {
|
|||
|
// BootIndex int `json:"boot_index"`
|
|||
|
// } `json:"list"`
|
|||
|
// Module string `json:"module"`
|
|||
|
// ObjectKey string `json:"object_key"`
|
|||
|
//} `json:"files"`
|
|||
|
} `json:"params"`
|
|||
|
Provider string `json:"provider"`
|
|||
|
Region string `json:"region"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type File struct {
|
|||
|
List []FileList `json:"list"`
|
|||
|
Module string `json:"module"`
|
|||
|
ObjectKey string `json:"object_key"`
|
|||
|
}
|
|||
|
|
|||
|
type FileList struct {
|
|||
|
BootIndex int `json:"boot_index"`
|
|||
|
}
|
|||
|
|
|||
|
// SetDefaultValue Minio存储服务配置
|
|||
|
func (receiver *StorageConfigGetReply) SetDefaultValue() {
|
|||
|
token, access, secret := MinioVoucher()
|
|||
|
Endpoint = g.Cfg().MustGet(context.Background(), "minio.endpoint").String()
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "storage_config_get"
|
|||
|
receiver.Data.Result = 0
|
|||
|
receiver.Data.Output.Bucket = BucketName
|
|||
|
receiver.Data.Output.Credentials.AccessKeyId = access
|
|||
|
receiver.Data.Output.Credentials.AccessKeySecret = secret
|
|||
|
receiver.Data.Output.Credentials.Expire = int(DurationSeconds)
|
|||
|
receiver.Data.Output.Credentials.SecurityToken = token
|
|||
|
receiver.Data.Output.Endpoint = "http://" + Endpoint
|
|||
|
receiver.Data.Output.Provider = "minio"
|
|||
|
receiver.Data.Output.Region = Region
|
|||
|
receiver.Data.Output.ObjectKeyPrefix = "uav"
|
|||
|
}
|
|||
|
|
|||
|
// SetDefaultValue 配置更新
|
|||
|
func (receiver *ConfigReply) SetDefaultValue() {
|
|||
|
ctx := context.Background()
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "config"
|
|||
|
receiver.Data.AppId = g.Cfg().MustGet(ctx, "uav.config.appId").String()
|
|||
|
receiver.Data.AppKey = g.Cfg().MustGet(ctx, "uav.config.appKey").String()
|
|||
|
receiver.Data.AppLicense = g.Cfg().MustGet(ctx, "uav.config.appLicense").String()
|
|||
|
receiver.Data.NtpServerHost = g.Cfg().MustGet(ctx, "uav.config.ntpServerHost").String()
|
|||
|
receiver.Data.NtpServerPort = g.Cfg().MustGet(ctx, "uav.config.ntpServerPort").Int()
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *LogFileUploadReply) SetDefaultValue(rdata *FileUpLoadListDownUp) {
|
|||
|
token, access, secret := MinioVoucher()
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "fileupload_start"
|
|||
|
receiver.Data.Bucket = BucketName
|
|||
|
receiver.Data.Region = Region
|
|||
|
receiver.Data.Credentials.AccessKeyId = access
|
|||
|
receiver.Data.Credentials.AccessKeySecret = secret
|
|||
|
receiver.Data.Credentials.Expire = int(DurationSeconds)
|
|||
|
receiver.Data.Credentials.SecurityToken = token
|
|||
|
receiver.Data.Endpoint = "http://" + coryCommon.Global + ":9999"
|
|||
|
receiver.Data.Provider = "minio"
|
|||
|
//fileOne := LogFileUploadReplySetDefaultValue(rdata, "0", "cory-create/log") //飞行器
|
|||
|
fileTwo := LogFileUploadReplySetDefaultValue(rdata, "3", "log") //机场
|
|||
|
var files []File
|
|||
|
//files = append(files, fileOne, fileTwo)
|
|||
|
files = append(files, fileTwo)
|
|||
|
receiver.Data.Params.Files = files
|
|||
|
}
|
|||
|
|
|||
|
func LogFileUploadReplySetDefaultValue(rdata *FileUpLoadListDownUp, num string, objectKey string) (file File) {
|
|||
|
var fileList []FileList
|
|||
|
for _, data := range rdata.Data.Files {
|
|||
|
if data.Module == num {
|
|||
|
list := data.List
|
|||
|
for i := range list {
|
|||
|
if list[i].BootIndex == 3743 { //从2024-04-28 15:15:19 开始
|
|||
|
fileList = append(fileList, FileList{
|
|||
|
BootIndex: list[i].BootIndex,
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
//err := copier.Copy(&fileList, &list)
|
|||
|
//if err != nil {
|
|||
|
// return
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
file.List = fileList
|
|||
|
file.Module = num
|
|||
|
file.ObjectKey = objectKey
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
/*负载控制—单拍*/
|
|||
|
type CameraPhotoTake struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
PayloadIndex string `json:"payload_index"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *CameraPhotoTake) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "camera_photo_take"
|
|||
|
}
|
|||
|
|
|||
|
/*负载控制—重置云台*/
|
|||
|
type GimbalReset struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
PayloadIndex string `json:"payload_index" dc:"负载编号,相机枚举值。非标准的 device_mode_key,格式为 {type-subtype-gimbalindex}"`
|
|||
|
ResetMode int `json:"reset_mode" dc:"{0回中 1向下 2偏航回中 3俯仰向下}"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *GimbalReset) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "gimbal_reset"
|
|||
|
}
|
|||
|
|
|||
|
/*设置直播清晰度*/
|
|||
|
type LiveSetQuality struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
VideoId string `json:"video_id"`
|
|||
|
VideoQuality int `json:"video_quality"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (receiver *LiveSetQuality) SetDefaultValue() {
|
|||
|
receiver.SetDefault()
|
|||
|
receiver.Method = "live_set_quality"
|
|||
|
}
|
|||
|
|
|||
|
/*负载控制—单拍 响应恢复*/
|
|||
|
type CameraPhotoTakeReply struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Result int `json:"result"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
/*航线执行进度上报*/
|
|||
|
type WaylineProgress struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
Output struct {
|
|||
|
Ext struct {
|
|||
|
BreakPoint struct {
|
|||
|
AttitudeHead float64 `json:"attitude_head"`
|
|||
|
BreakReason int `json:"break_reason"`
|
|||
|
Height float64 `json:"height"`
|
|||
|
Index int `json:"index"`
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
Progress float64 `json:"progress"`
|
|||
|
State int `json:"state"`
|
|||
|
WaylineId int `json:"wayline_id"`
|
|||
|
} `json:"break_point"`
|
|||
|
CurrentWaypointIndex int `json:"current_waypoint_index"`
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
MediaCount int `json:"media_count"`
|
|||
|
TrackId string `json:"track_id"`
|
|||
|
WaylineId int `json:"wayline_id"`
|
|||
|
WaylineMissionState int `json:"wayline_mission_state"`
|
|||
|
} `json:"ext"`
|
|||
|
Progress struct {
|
|||
|
CurrentStep int `json:"current_step"`
|
|||
|
Percent int `json:"percent"`
|
|||
|
} `json:"progress"`
|
|||
|
Status string `json:"status"`
|
|||
|
} `json:"output"`
|
|||
|
Result int `json:"result"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type CoordinateEntity struct {
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
}
|
|||
|
|
|||
|
type Point struct {
|
|||
|
CoordinateEntity
|
|||
|
Height float64 `json:"height"`
|
|||
|
}
|
|||
|
|
|||
|
// TakeoffToPoint /*飞向目标点*/
|
|||
|
type TakeoffToPoint struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
CommanderFlightHeight int `json:"commander_flight_height"`
|
|||
|
CommanderModeLostAction int `json:"commander_mode_lost_action"`
|
|||
|
FlightId string `json:"flight_id"`
|
|||
|
MaxSpeed int `json:"max_speed"`
|
|||
|
RcLostAction int `json:"rc_lost_action"`
|
|||
|
RthAltitude int `json:"rth_altitude"`
|
|||
|
SecurityTakeoffHeight int `json:"security_takeoff_height"`
|
|||
|
TargetHeight int `json:"target_height"`
|
|||
|
TargetLatitude float64 `json:"target_latitude"`
|
|||
|
TargetLongitude float64 `json:"target_longitude"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *TakeoffToPoint) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Takeoff_to_point
|
|||
|
}
|
|||
|
|
|||
|
/*飞向目标点*/
|
|||
|
type FlyToPoint struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlyToId string `json:"fly_to_id"`
|
|||
|
MaxSpeed int `json:"max_speed"`
|
|||
|
Points []Point `json:"points"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *FlyToPoint) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Fly_to_point
|
|||
|
}
|
|||
|
|
|||
|
type FlyToPointStop struct {
|
|||
|
Public
|
|||
|
Data struct{} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *FlyToPointStop) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Fly_to_point_stop
|
|||
|
}
|
|||
|
|
|||
|
// FlyToPointProgress /*飞向目标点的结果通知*/
|
|||
|
type FlyToPointProgress struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
FlyToId string `json:"fly_to_id"`
|
|||
|
PlannedPathPoints []struct {
|
|||
|
Height float64 `json:"height"`
|
|||
|
Latitude float64 `json:"latitude"`
|
|||
|
Longitude float64 `json:"longitude"`
|
|||
|
} `json:"planned_path_points"`
|
|||
|
RemainingDistance int `json:"remaining_distance"`
|
|||
|
RemainingTime int `json:"remaining_time"`
|
|||
|
Result int `json:"result"`
|
|||
|
Status string `json:"status"`
|
|||
|
WayPointIndex int `json:"way_point_index"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
type FlightAuthorityGrab struct {
|
|||
|
Public
|
|||
|
Data struct{} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *FlightAuthorityGrab) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Flight_authority_grab
|
|||
|
}
|
|||
|
|
|||
|
type SpeakerTtsPlayStart struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
PsdkIndex int `json:"psdk_index"`
|
|||
|
Tts struct {
|
|||
|
Md5 string `json:"md5"`
|
|||
|
Name string `json:"name"`
|
|||
|
Text string `json:"text"`
|
|||
|
} `json:"tts"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *SpeakerTtsPlayStart) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Speaker_tts_play_start
|
|||
|
}
|
|||
|
|
|||
|
type SpeakerAudioPlayStart struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
PsdkIndex int `json:"psdk_index" dc:"psdk 负载设备索引(默认0)"`
|
|||
|
File struct {
|
|||
|
Name string `json:"name"`
|
|||
|
Url string `json:"url"`
|
|||
|
Md5 string `json:"md5"`
|
|||
|
Format string `json:"format"`
|
|||
|
} `json:"file"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
func (t *SpeakerAudioPlayStart) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = Speaker_audio_play_start
|
|||
|
}
|
|||
|
|
|||
|
// OtaCreateEntity 固件升级实体
|
|||
|
type OtaCreateEntity struct {
|
|||
|
Public
|
|||
|
Data struct {
|
|||
|
DeviceList []OtaCreateDevice `json:"devices"`
|
|||
|
} `json:"data"`
|
|||
|
}
|
|||
|
type OtaCreateDevice struct {
|
|||
|
FileName string `json:"file_name"` // 文件名(可选字段)
|
|||
|
FileSize int64 `json:"file_size"` // 文件大小(可选字段,建议使用 int64 表示字节)
|
|||
|
FileURL string `json:"file_url"` // 文件 URL(可选字段)
|
|||
|
FirmwareUpgradeType int `json:"firmware_upgrade_type"` // 固件升级类型(必填字段)
|
|||
|
MD5 string `json:"md5"` // MD5 校验码(可选字段)
|
|||
|
ProductVersion string `json:"product_version"` // 产品版本(必填字段)
|
|||
|
SN string `json:"sn"` // 设备序列号(必填字段)
|
|||
|
}
|
|||
|
|
|||
|
func (t *OtaCreateEntity) SetDefaultValue() {
|
|||
|
t.SetDefault()
|
|||
|
t.Method = OtaCreate
|
|||
|
}
|