diff --git a/OpenAuth.App/ServiceApp/Subscribe/ConfigSubscribe.cs b/OpenAuth.App/ServiceApp/Subscribe/ConfigSubscribe.cs index 37c2820..d3463d1 100644 --- a/OpenAuth.App/ServiceApp/Subscribe/ConfigSubscribe.cs +++ b/OpenAuth.App/ServiceApp/Subscribe/ConfigSubscribe.cs @@ -1,4 +1,5 @@ -using System.Dynamic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Dynamic; using System.Text; using Infrastructure.Cache; using Infrastructure.CloudSdk; @@ -317,10 +318,12 @@ public class ConfigSubscribe : IJob UploadedFileCount = uploadedFileCount // 已上传文件数量 }; // 当expectFileCount 等于uploadedFileCount时,则表示航线执行完成 + /* if (uploadedFileCount.Equals(expectFileCount)) { taskRecord.Status = 5; // 成功状态 } + */ await _sqlSugarClient.Updateable(taskRecord) .IgnoreNullColumns().ExecuteCommandAsync(); @@ -331,7 +334,40 @@ public class ConfigSubscribe : IJob break; case "flighttask_progress": { - code = data.result; + // "0":"初始状态" + // "1":"启动前检查,飞行器是否在执行航线中" + // "2":"启动前检查,机场是否退出工作模式" + // "3":"启动前检查,航线执行中" + // "4":"启动前检查,返航中" + // "5":"航线执行进入准备状态,开始等待任务下发" + // "6":"机场进入工作状态" + // "7":"进入开机检查准备工作和开盖准备工作" + // "8":"图传远程对频" + // "9":"等待飞行系统准备就绪,推送连接建立" + // "10":"等待 RTK 源监听有值上报" + // "11":"检查 RTK 源是否是机场源,如果不是要重新设置" + // "12":"等待飞行控制权通知" + // "13":"机场无控制权,抢夺飞行器控制权" + // "14":"自定义飞行区一致性检查" + // "15":"离线地图一致性检查" + // "16":"获取最新 KMZ URL" + // "17":"下载 KMZ" + // "18":"KMZ 上传中" + // "19":"染色配置" + // "20":"飞行器起飞参数设置,备降点设置,起飞高度设置,染色设置" + // "21":"飞行器 flyto 起飞参数设置" + // "22":"起飞机场检查降落机场准备状态" + // "23":"Home 点设置" + // "24":"触发执行航线" + // "25":"航线执行中" + // "26":"进入返航的检查准备工作" + // "27":"飞行器降落机场" + // "28":"降落以后的关盖" + // "29":"机场退出工作模式" + // "30":"机场异常恢复","31":"机场上传飞行系统日志","32":"相机录像状态检查","33":"获取媒体文件数量","34":"机场起飞开盖的异常恢复","35":"通知任务结果","36":"日志列表拉取 - 飞行器列表","37":"日志列表拉取 - 拉取机场列表","38":"日志列表拉取 - 上传日志列表结果","39":"日志拉取-拉取飞行器日志","40":"日志拉取-拉取机场日志","41":"日志拉取-压缩飞行器日志","42":"日志拉取-压缩机场日志","43":"日志拉取-上传飞行器日志","44":"日志拉取-上传机场日志","45":"日志拉取-通知结果","46":"自定义飞行区文件更新准备中","47":"自定义飞行区更新中","48":"离线地图更新准备中","49":"离线地图更新中","65533":"结束后等待服务回包","65534":"无具体状态","65535":"UNKNOWN"} + code = data.result; // result + var x = (int)data.output.ext.wayline_mission_state; + var flightId2 = (string)data.output.ext.flight_id; // 处理航线进度 ,也有可能是失败 if (code != 0) { @@ -361,27 +397,40 @@ public class ConfigSubscribe : IJob } else { - if (result.need_reply.Equals(1)) + // 航线成功 + if (x.Equals(9)) // 航结结束,更新任务状态 { - var fileUploadCallbackEventReply = new FileUploadCallbackEventReply() + var task1 = await _sqlSugarClient + .Queryable() + .SingleAsync(a => a.FlightId == flightId2); + var record = new LasaTask() { - bid = result.bid, - tid = result.tid, - method = "flighttask_progress", - gateway = sn, - data = new - { - result = 0 - }, - timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(), + Id = task1.Id, + Status = 5 }; - await _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply", - JsonConvert.SerializeObject(fileUploadCallbackEventReply)); + await _sqlSugarClient.Updateable(record).IgnoreNullColumns().ExecuteCommandAsync(); } - - Console.WriteLine($"航线进度:{message}"); } + if (result.need_reply.Equals(1)) + { + var fileUploadCallbackEventReply = new FileUploadCallbackEventReply() + { + bid = result.bid, + tid = result.tid, + method = "flighttask_progress", + gateway = sn, + data = new + { + result = 0 + }, + timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(), + }; + await _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply", + JsonConvert.SerializeObject(fileUploadCallbackEventReply)); + } + + Console.WriteLine($"航线进度:{message}"); break; } default: @@ -501,6 +550,7 @@ public class ConfigSubscribe : IJob break; case "thing/product/*/osd": // todo 处理保存 减少三位,保存 + // todo 字段信息 Console.WriteLine($"osd消息: {message}"); break; default: