|
|
|
@ -98,13 +98,6 @@ public class ConfigSubscribe : IJob
|
|
|
|
|
switch (tempStr)
|
|
|
|
|
{
|
|
|
|
|
case "thing/product/*/requests":
|
|
|
|
|
//{"bid":"f936a236-030c-4358-bee9-b5075e1e2ddf",
|
|
|
|
|
//"data":{"flight_id":"e5ce8433-c264-4357-84d9-b701faf90d9e"},
|
|
|
|
|
//"method":"flighttask_resource_get",
|
|
|
|
|
//"tid":"61b6389a-7b72-49ae-bb46-0729e85c95d2",
|
|
|
|
|
//"timestamp":1750554644321,
|
|
|
|
|
//"gateway":"8UUXN5400A079H"}
|
|
|
|
|
// todo 处理资源获取请求
|
|
|
|
|
switch (method)
|
|
|
|
|
{
|
|
|
|
|
// 临时凭证上传
|
|
|
|
@ -130,14 +123,14 @@ public class ConfigSubscribe : IJob
|
|
|
|
|
{
|
|
|
|
|
bucket = "test",
|
|
|
|
|
endpoint = "http://175.27.168.120:6013",
|
|
|
|
|
object_key_prefix = $"{Guid.NewGuid().ToString()}", // todo 是否设计任务id ?
|
|
|
|
|
object_key_prefix = Guid.NewGuid().ToString(), // todo 是否设计任务id ?
|
|
|
|
|
provider = "minio",
|
|
|
|
|
region = "linyi",
|
|
|
|
|
credentials = new
|
|
|
|
|
{
|
|
|
|
|
access_key_id = "minioadmin",
|
|
|
|
|
access_key_secret = "minioadmin",
|
|
|
|
|
expire = 480,
|
|
|
|
|
expire = 3600,
|
|
|
|
|
security_token = ""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -151,6 +144,12 @@ public class ConfigSubscribe : IJob
|
|
|
|
|
case "flight_areas_get":
|
|
|
|
|
//Console.WriteLine("跳过自定义飞行区文件获取");
|
|
|
|
|
break;
|
|
|
|
|
//{"bid":"f936a236-030c-4358-bee9-b5075e1e2ddf",
|
|
|
|
|
//"data":{"flight_id":"e5ce8433-c264-4357-84d9-b701faf90d9e"},
|
|
|
|
|
//"method":"flighttask_resource_get",
|
|
|
|
|
//"tid":"61b6389a-7b72-49ae-bb46-0729e85c95d2",
|
|
|
|
|
//"timestamp":1750554644321,
|
|
|
|
|
//"gateway":"8UUXN5400A079H"}
|
|
|
|
|
// 获取航线
|
|
|
|
|
case "flighttask_resource_get":
|
|
|
|
|
string flightId = data.flight_id + "";
|
|
|
|
@ -211,69 +210,65 @@ public class ConfigSubscribe : IJob
|
|
|
|
|
{
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lock (_dockUploadFileLocker)
|
|
|
|
|
string flightId = data.file.ext.flight_id;
|
|
|
|
|
string taskId = _manageApp.GetTaskAssignByFlightId(flightId).TaskId;
|
|
|
|
|
var fileUpload = new LasaMediaFile()
|
|
|
|
|
{
|
|
|
|
|
string flightId = data.file.ext.flight_id;
|
|
|
|
|
string taskId = _manageApp.GetTaskAssignByFlightId(flightId).TaskId;
|
|
|
|
|
var fileUpload = new LasaMediaFile()
|
|
|
|
|
{
|
|
|
|
|
Id = Guid.NewGuid().ToString(),
|
|
|
|
|
FlightId = flightId, // 计划id
|
|
|
|
|
TaskId = taskId, // 任务id
|
|
|
|
|
DroneModelKey = data.file.ext.drone_model_key, // 无人机型号
|
|
|
|
|
IsOriginal = data.file.ext.is_original,
|
|
|
|
|
MediaIndex = data.file.ext.media_index,
|
|
|
|
|
PayloadModelKey = data.file.ext.payload_model_key, //这应该可以标明是什么设置
|
|
|
|
|
AbsoluteAltitude = data.file.metadata.absolute_altitude, // 拍摄绝对高度
|
|
|
|
|
GimbalYawDegree = data.file.metadata.gimbal_yaw_degree, //云台偏航角度
|
|
|
|
|
RelativeAltitude = data.file.metadata.relative_altitude, // 拍摄相对高度
|
|
|
|
|
Lat = data.file.metadata.shoot_position.lat,
|
|
|
|
|
Lng = data.file.metadata.shoot_position.lng,
|
|
|
|
|
Name = data.file.name,
|
|
|
|
|
ObjectKey = data.file.object_key,
|
|
|
|
|
Path = data.file.path, // 目前这个好像没有值
|
|
|
|
|
CreateTime = ((string)data.file.metadata.created_time).ToDateTime(),
|
|
|
|
|
};
|
|
|
|
|
// todo 添加事务
|
|
|
|
|
_sqlSugarClient.Insertable(fileUpload).ExecuteCommand();
|
|
|
|
|
if (result.need_reply.Equals(1))
|
|
|
|
|
Id = Guid.NewGuid().ToString(),
|
|
|
|
|
FlightId = flightId, // 计划id
|
|
|
|
|
TaskId = taskId, // 任务id
|
|
|
|
|
DroneModelKey = data.file.ext.drone_model_key, // 无人机型号
|
|
|
|
|
IsOriginal = data.file.ext.is_original,
|
|
|
|
|
MediaIndex = data.file.ext.media_index,
|
|
|
|
|
PayloadModelKey = data.file.ext.payload_model_key, //这应该可以标明是什么设置
|
|
|
|
|
AbsoluteAltitude = data.file.metadata.absolute_altitude, // 拍摄绝对高度
|
|
|
|
|
GimbalYawDegree = data.file.metadata.gimbal_yaw_degree, //云台偏航角度
|
|
|
|
|
RelativeAltitude = data.file.metadata.relative_altitude, // 拍摄相对高度
|
|
|
|
|
Lat = data.file.metadata.shoot_position.lat,
|
|
|
|
|
Lng = data.file.metadata.shoot_position.lng,
|
|
|
|
|
Name = data.file.name,
|
|
|
|
|
ObjectKey = data.file.object_key,
|
|
|
|
|
Path = data.file.path, // 目前这个好像没有值
|
|
|
|
|
CreateTime = ((string)data.file.metadata.created_time).ToDateTime(),
|
|
|
|
|
};
|
|
|
|
|
// todo 添加事务
|
|
|
|
|
await _sqlSugarClient.Insertable(fileUpload).ExecuteCommandAsync();
|
|
|
|
|
if (result.need_reply.Equals(1))
|
|
|
|
|
{
|
|
|
|
|
var fileUploadCallbackEventReply = new FileUploadCallbackEventReply<object>()
|
|
|
|
|
{
|
|
|
|
|
var fileUploadCallbackEventReply = new FileUploadCallbackEventReply<object>()
|
|
|
|
|
bid = result.bid,
|
|
|
|
|
tid = result.tid,
|
|
|
|
|
method = "file_upload_callback",
|
|
|
|
|
gateway = sn,
|
|
|
|
|
data = new
|
|
|
|
|
{
|
|
|
|
|
bid = result.bid,
|
|
|
|
|
tid = result.tid,
|
|
|
|
|
method = "file_upload_callback",
|
|
|
|
|
gateway = sn,
|
|
|
|
|
data = new
|
|
|
|
|
{
|
|
|
|
|
result = 0
|
|
|
|
|
},
|
|
|
|
|
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
|
|
|
|
};
|
|
|
|
|
_ = _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply",
|
|
|
|
|
JsonConvert.SerializeObject(fileUploadCallbackEventReply));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var expectFileCount = data.flight_task.expected_file_count;
|
|
|
|
|
var uploadedFileCount = data.flight_task.uploaded_file_count;
|
|
|
|
|
|
|
|
|
|
var taskRecord = new LasaTask()
|
|
|
|
|
{
|
|
|
|
|
Id = taskId,
|
|
|
|
|
ExpectedFileCount = expectFileCount, // 期望文件数量
|
|
|
|
|
UploadedFileCount = uploadedFileCount // 已上传文件数量
|
|
|
|
|
result = 0
|
|
|
|
|
},
|
|
|
|
|
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
|
|
|
|
};
|
|
|
|
|
// 当expectFileCount 等于uploadedFileCount时,则表示航线执行完成
|
|
|
|
|
if (uploadedFileCount.Equals(expectFileCount))
|
|
|
|
|
{
|
|
|
|
|
taskRecord.Status = 5; // 成功状态
|
|
|
|
|
}
|
|
|
|
|
_ = _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply",
|
|
|
|
|
JsonConvert.SerializeObject(fileUploadCallbackEventReply));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_sqlSugarClient.Updateable(taskRecord)
|
|
|
|
|
.IgnoreNullColumns().ExecuteCommand();
|
|
|
|
|
var expectFileCount = data.flight_task.expected_file_count;
|
|
|
|
|
var uploadedFileCount = data.flight_task.uploaded_file_count;
|
|
|
|
|
|
|
|
|
|
var taskRecord = new LasaTask()
|
|
|
|
|
{
|
|
|
|
|
Id = taskId,
|
|
|
|
|
ExpectedFileCount = expectFileCount, // 期望文件数量
|
|
|
|
|
UploadedFileCount = uploadedFileCount // 已上传文件数量
|
|
|
|
|
};
|
|
|
|
|
// 当expectFileCount 等于uploadedFileCount时,则表示航线执行完成
|
|
|
|
|
if (uploadedFileCount.Equals(expectFileCount))
|
|
|
|
|
{
|
|
|
|
|
taskRecord.Status = 5; // 成功状态
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _sqlSugarClient.Updateable(taskRecord)
|
|
|
|
|
.IgnoreNullColumns().ExecuteCommandAsync();
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case "release_terminal_control_area":
|
|
|
|
|
//暂不处理
|