From aec00ecc093be803860c8675cbe1c4c776a7cb4e Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Tue, 19 Mar 2024 17:49:21 +0800
Subject: [PATCH] update: 新建航线、事件编辑、kmz文件问题修改
---
src/api/wayline.ts | 128 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 120 insertions(+), 8 deletions(-)
diff --git a/src/api/wayline.ts b/src/api/wayline.ts
index ec579dc..7d92683 100644
--- a/src/api/wayline.ts
+++ b/src/api/wayline.ts
@@ -28,6 +28,12 @@
return result.data
}
}
+// get Wayline File
+export const getWayLineFile = async function (workspaceId: string, waylineId: string) {
+ const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/waylines/${waylineId}/urlData`
+ const result = await request.get(url)
+ return result.data
+}
// Delete Wayline File
export const deleteWaylineFile = async function (workspaceId: string, waylineId: string): Promise<IWorkspaceResponse<any>> {
@@ -36,20 +42,62 @@
return result.data
}
+export interface waylineJob {
+ name: string
+ fileId: string
+ waylineId:string
+ dockSn: string
+ workspaceId: string
+ taskType: TaskType
+ executeSingleTime?: string
+ repeatExecuteTimeArr?: string[]
+ executeStartTime?: string
+ executeEndTime?: string
+ executeRepeatTime?: string[]
+ frequencyValue?: number
+ frequencyType?: number
+ repeatRuleType?: number
+ repeatRuleValueDay?: number[]
+ repeatRuleValueWeek?: number[]
+ startPower: number
+ rthAltitude: number
+ outOfControl: number
+ finishAction: number
+ breakContinue: number
+}
export interface CreatePlan {
name: string,
file_id: string,
dock_sn: string,
task_type: TaskType, // 任务类型
wayline_type: WaylineType, // 航线类型
- execute_time?: number // 执行时间(毫秒)
+ task_days?: number[] // 执行任务的日期(秒)
+ task_periods?: number[][] // 执行任务的时间点(秒)
rth_altitude: number // 相对机场返航高度 20 - 500
out_of_control_action: OutOfControlAction // 失控动作
-}
-// Create Wayline Job
+ // 重复频率类型
+ rep_fre_type?:number
+ // 重复频率值
+ rep_fre_val?:number
+ // 重复规则值
+ rep_rule_val?:[]
+ rep_rule_type?:number
+
+ min_battery_capacity?:number
+ // 执行开始时间
+ execute_start_time_arr:number[][]
+}
+// 新增计划
export const createPlan = async function (workspaceId: string, plan: CreatePlan): Promise<IWorkspaceResponse<any>> {
const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/flight-tasks`
+ const result = await request.post(url, plan)
+ return result.data
+}
+
+// 新增计划,重复定时和连续执行走这个逻辑
+export const createPlanCondition = async function (workspaceId: string, plan: CreatePlan): Promise<IWorkspaceResponse<any>> {
+ const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/flight-tasks-condition`
const result = await request.post(url, plan)
return result.data
}
@@ -65,8 +113,10 @@
dock_name: string,
workspace_id: string,
username: string,
- execute_time: string,
+ begin_time: string,
end_time: string,
+ execute_time: string,
+ completed_time: string,
status: TaskStatus, // 任务状态
progress: number, // 执行进度
code: number, // 错误码
@@ -77,10 +127,27 @@
uploaded_count: number // 已上传媒体数量
}
-// Get Wayline Jobs
-export const getWaylineJobs = async function (workspaceId: string, page: IPage): Promise<IListWorkspaceResponse<Task>> {
+export interface TaskQueryParam{
+ dockSn?:string
+ taskType?:any
+ status?:any
+ name?:string
+ startTime?:string
+ endTime?:string
+ parentId?:string
+}
+
+// 获取计划列表(分页)
+export const getWaylineJobs = async function (workspaceId: string, page: IPage, params:TaskQueryParam): Promise<IListWorkspaceResponse<Task>> {
const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/jobs?page=${page.page}&page_size=${page.page_size}`
- const result = await request.get(url)
+ const result = await request.get(url, { params })
+ return result.data
+}
+
+// 获取子数据
+export const getWaylineChildrenJobs = async function (workspaceId: string, params:TaskQueryParam): Promise<IListWorkspaceResponse<Task>> {
+ const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/getChildrenJobs`
+ const result = await request.get(url, { params })
return result.data
}
@@ -88,11 +155,29 @@
job_id: string
}
-// 取消机场任务
+// 删除机场任务
export async function deleteTask (workspaceId: string, params: DeleteTaskParams): Promise<IWorkspaceResponse<{}>> {
const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/jobs`
const result = await request.delete(url, {
params: params
+ })
+ return result.data
+}
+
+export enum UpdateTaskStatus {
+ Suspend = 0, // 暂停
+ Resume = 1, // 恢复
+}
+export interface UpdateTaskStatusBody {
+ job_id: string
+ status: UpdateTaskStatus
+}
+
+// 更新机场任务状态
+export async function updateTaskStatus (workspaceId: string, body: UpdateTaskStatusBody): Promise<IWorkspaceResponse<{}>> {
+ const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/jobs/${body.job_id}`
+ const result = await request.put(url, {
+ status: body.status
})
return result.data
}
@@ -114,3 +199,30 @@
const result = await request.post(url)
return result.data
}
+
+// 历史轨迹记录
+export const getHistoryTrack = async function (workspaceId: string, page: number, page_size :number): Promise<IWorkspaceResponse<any>> {
+ const url = `/log/droneFlightLog/page?page=${page}&page_sie=${page_size}&workspaceId=${workspaceId}`
+ const result = await request.get(url)
+ return result.data
+}
+
+// 历史轨迹详情
+export const getHistoryDetail = async function (id: string): Promise<IWorkspaceResponse<any>> {
+ const url = `/log/droneFlightLog/infoListByFid?flightId=${id}`
+ const result = await request.get(url)
+ return result.data
+}
+
+export interface Point{
+ lon:number,
+ lat:number,
+ height?:number,
+ distance?:number
+}
+
+export const flyByArea = async function (sn:string, dockPoint:Point, jsonPath:any, radius:number, deviceSn:string, payloadIndex:string): Promise<IWorkspaceResponse<any>> {
+ const url = `${HTTP_PREFIX}/workspaces/${sn}/jobs/${deviceSn}/flyByArea`
+ const result = await request.post(url, { dockPoint: dockPoint, jsonPath: jsonPath, radius: radius, payloadIndex: payloadIndex })
+ return result.data
+}
--
Gitblit v1.9.3