Application/IStation.Application.Monitor/monitor_control/MonitorControlNTConfigure_Controller.cs
@@ -29,8 +29,21 @@ { throw Oops.Oh("密码错误!"); } var context = new Model.MonitorTestControlParas.StartContext(input.HZ, input.OperatingMode, input.OperatingValue); double operatingValue = 0; /* switch (input.OperatingMode) { case Model.MonitorTestControlParas.eOperatingMode.Timing: { operatingValue = input.OperatingValue * 3600; } break; case Model.MonitorTestControlParas.eOperatingMode.ConstantFlow: break; default: break; }*/ operatingValue = input.OperatingValue * 3600; var context = new Model.MonitorTestControlParas.StartContext(input.HZ, input.OperatingMode, operatingValue); var paras = new Model.MonitorTestControlParas(); paras.ControlType = Model.MonitorTestControlParas.eControlType.Start; paras.Context = context.ToJson(); Entry/IStation.WebApi.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@ <Project> <PropertyGroup> <_PublishTargetUrl>D:\WorkData\IStation\IStationV4.1\Core\Service.V4.1\Entry\IStation.WebApi.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl> <History>True|2022-10-27T06:51:12.0416021Z;True|2022-10-27T14:46:01.8195700+08:00;True|2022-10-27T14:38:00.5077582+08:00;True|2022-10-27T14:28:16.2348825+08:00;False|2022-10-27T14:27:49.2720060+08:00;False|2022-10-27T14:27:25.1445739+08:00;True|2022-10-26T11:27:54.4483138+08:00;True|2022-10-26T11:19:37.6322046+08:00;True|2022-10-26T11:10:05.4129456+08:00;True|2022-10-25T16:33:32.7872520+08:00;True|2022-10-24T16:12:49.4291001+08:00;True|2022-10-24T16:10:25.3757944+08:00;True|2022-10-24T14:04:51.7783988+08:00;True|2022-10-21T18:51:32.0221235+08:00;True|2022-10-21T18:35:12.1463858+08:00;True|2022-10-21T09:54:19.2138550+08:00;True|2022-10-21T09:38:21.1672347+08:00;True|2022-10-19T12:04:59.9103579+08:00;True|2022-10-19T11:57:45.1000513+08:00;True|2022-10-19T11:49:03.6494799+08:00;True|2022-10-19T11:06:22.4198711+08:00;True|2022-10-18T11:17:20.1435537+08:00;True|2022-10-18T09:08:58.6802639+08:00;True|2022-10-17T16:33:12.8912333+08:00;True|2022-10-17T14:23:10.0264671+08:00;True|2022-10-17T14:16:07.3590282+08:00;True|2022-10-17T11:53:21.9425089+08:00;True|2022-10-17T11:45:51.9336429+08:00;True|2022-10-14T14:37:15.6323508+08:00;True|2022-10-11T09:01:44.5831439+08:00;True|2022-10-09T14:03:43.6568874+08:00;True|2022-10-09T11:15:56.2934983+08:00;True|2022-10-09T09:39:28.1074512+08:00;True|2022-10-08T18:45:23.9581502+08:00;True|2022-10-08T18:35:18.5574217+08:00;True|2022-10-08T16:12:04.2903137+08:00;True|2022-10-08T15:59:54.5588351+08:00;True|2022-10-08T15:55:01.2711550+08:00;True|2022-10-08T15:19:08.5487617+08:00;True|2022-10-08T15:11:55.8626990+08:00;False|2022-10-08T15:02:33.5639703+08:00;True|2022-10-08T09:23:21.6592006+08:00;True|2022-10-07T15:35:37.7532304+08:00;True|2022-10-07T15:04:51.9161653+08:00;False|2022-10-07T14:58:32.8816319+08:00;False|2022-10-07T14:54:55.4175944+08:00;False|2022-10-07T14:52:46.7215376+08:00;False|2022-10-07T14:51:14.0508027+08:00;False|2022-10-07T14:49:57.6007572+08:00;False|2022-10-07T14:48:56.6085134+08:00;False|2022-10-07T14:47:54.7931315+08:00;True|2022-09-22T13:35:52.6495568+08:00;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;True|2022-06-15T11:52:36.3090013+08:00;True|2022-06-15T10:29:17.8467709+08:00;</History> <History>True|2022-10-28T01:37:04.8336241Z;True|2022-10-27T16:13:52.0290129+08:00;True|2022-10-27T14:51:12.0416021+08:00;True|2022-10-27T14:46:01.8195700+08:00;True|2022-10-27T14:38:00.5077582+08:00;True|2022-10-27T14:28:16.2348825+08:00;False|2022-10-27T14:27:49.2720060+08:00;False|2022-10-27T14:27:25.1445739+08:00;True|2022-10-26T11:27:54.4483138+08:00;True|2022-10-26T11:19:37.6322046+08:00;True|2022-10-26T11:10:05.4129456+08:00;True|2022-10-25T16:33:32.7872520+08:00;True|2022-10-24T16:12:49.4291001+08:00;True|2022-10-24T16:10:25.3757944+08:00;True|2022-10-24T14:04:51.7783988+08:00;True|2022-10-21T18:51:32.0221235+08:00;True|2022-10-21T18:35:12.1463858+08:00;True|2022-10-21T09:54:19.2138550+08:00;True|2022-10-21T09:38:21.1672347+08:00;True|2022-10-19T12:04:59.9103579+08:00;True|2022-10-19T11:57:45.1000513+08:00;True|2022-10-19T11:49:03.6494799+08:00;True|2022-10-19T11:06:22.4198711+08:00;True|2022-10-18T11:17:20.1435537+08:00;True|2022-10-18T09:08:58.6802639+08:00;True|2022-10-17T16:33:12.8912333+08:00;True|2022-10-17T14:23:10.0264671+08:00;True|2022-10-17T14:16:07.3590282+08:00;True|2022-10-17T11:53:21.9425089+08:00;True|2022-10-17T11:45:51.9336429+08:00;True|2022-10-14T14:37:15.6323508+08:00;True|2022-10-11T09:01:44.5831439+08:00;True|2022-10-09T14:03:43.6568874+08:00;True|2022-10-09T11:15:56.2934983+08:00;True|2022-10-09T09:39:28.1074512+08:00;True|2022-10-08T18:45:23.9581502+08:00;True|2022-10-08T18:35:18.5574217+08:00;True|2022-10-08T16:12:04.2903137+08:00;True|2022-10-08T15:59:54.5588351+08:00;True|2022-10-08T15:55:01.2711550+08:00;True|2022-10-08T15:19:08.5487617+08:00;True|2022-10-08T15:11:55.8626990+08:00;False|2022-10-08T15:02:33.5639703+08:00;True|2022-10-08T09:23:21.6592006+08:00;True|2022-10-07T15:35:37.7532304+08:00;True|2022-10-07T15:04:51.9161653+08:00;False|2022-10-07T14:58:32.8816319+08:00;False|2022-10-07T14:54:55.4175944+08:00;False|2022-10-07T14:52:46.7215376+08:00;False|2022-10-07T14:51:14.0508027+08:00;False|2022-10-07T14:49:57.6007572+08:00;False|2022-10-07T14:48:56.6085134+08:00;False|2022-10-07T14:47:54.7931315+08:00;True|2022-09-22T13:35:52.6495568+08:00;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;</History> <LastFailureDetails /> </PropertyGroup> </Project> Socket/IStation.DataDockingSocket4NT/Log/LogHelper.cs
@@ -12,7 +12,7 @@ /// </summary> internal class NtLogHelper { private const string _logNameDebug = "socket-nt"; private const string _logNameDebug = "socket-nt-debug"; /// <summary> /// 生成调试信息辅助类 @@ -24,9 +24,9 @@ var json = JsonHelper.Object2Json(rece_list); LogHelper.Custom(_logNameDebug, json); } public static void Debug(string msg) { { LogHelper.Custom(_logNameDebug, msg); } Socket/IStation.DataDockingSocket4NT/MsgHandle/HandleHelper.cs
@@ -7,7 +7,7 @@ using IStation.Model; using IStation.Untity; namespace IStation.DataDockingSocket.MsgHandle namespace IStation.DataDockingSocket { public class HandleHelper : IDataDockingSocket.IHandleHelper { @@ -79,19 +79,18 @@ { return; } NtLogHelper.Info("开始处理数据..."); _session = session; if (MonitorMsgHelper.IsNeedHandle(byteMessage)) {//监控指令 { NtLogHelper.Info("MonitorMsgHelper..."); //监控指令 var receList = MonitorMsgHelper.HandleReceive(byteMessage); if (receList == null || receList.Count == 0) return; NtLogHelper.Src(byteMessage); // NtLogHelper.Debug(src_list); //NtLogHelper.Info($"解析数据数量:{receList.Count}\n\r" + // $"{JsonHelper.Object2Json(receList)}"); NtLogHelper.Info("MonitorMsgHelper Over"); NtLogHelper.Src(byteMessage); onReceive(receList); @@ -100,15 +99,24 @@ //不要加else if (ShutDownMsgHelper.IsNeedHandle(byteMessage)) { NtLogHelper.Info("ShutDownMsgHelper..."); if (ShutDownMsgHelper.HandleReceive(session, byteMessage)) { NtLogHelper.Info("ShutDownMsgHelper Over"); return; } } //不要加else if (StartUpMsgHelper.IsNeedHandle(byteMessage)) { NtLogHelper.Info("StartUpMsgHelper... "); if (StartUpMsgHelper.HandleReceive(session, byteMessage)) { NtLogHelper.Info("StartUpMsgHelper Over"); return; } } NtLogHelper.Info("数据处理结束..."); } Socket/IStation.DataDockingSocket4NT/MsgHandle/ShutDownMsgHelper.cs
@@ -1,5 +1,4 @@ using IStation.DataDockingSocket.MsgHandle; using IStation.Untity; using IStation.Untity; using System; using System.Collections.Generic; using System.Linq; @@ -19,7 +18,7 @@ /// <returns></returns> public static bool StartJob(Model.IMonitorDataDockingSession session) { if (session != null) if (session == null) { NtLogHelper.Error($"关机 session:Close"); return false; @@ -50,23 +49,44 @@ static System.Timers.Timer _timeAutoClose; public static void StartAutoClose(double second) { NtLogHelper.Info("开启自动关机模式 时间:" + second+"s"); _timeAutoClose = new System.Timers.Timer(10000 * second);//实例化Timer类,设置间隔时间为10000毫秒; _timeAutoClose.Elapsed += new System.Timers.ElapsedEventHandler(ExecuteAutoClose);//到达时间的时候执行事件; _timeAutoClose.AutoReset = false;//设置是执行一次(false)还是一直执行(true); _timeAutoClose.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; _timeAutoClose.Start(); //启动定时器 try { NtLogHelper.Info("开启自动关机模式 时间:" + second + "s"); _timeAutoClose = new System.Timers.Timer(1000 * second);//实例化Timer类,设置间隔时间为10000毫秒; NtLogHelper.Info("_timeAutoClose 创建成功!"); _timeAutoClose.Elapsed += new System.Timers.ElapsedEventHandler(ExecuteAutoClose);//到达时间的时候执行事件; NtLogHelper.Info(" _timeAutoClose.Elapsed"); _timeAutoClose.AutoReset = false;//设置是执行一次(false)还是一直执行(true); NtLogHelper.Info(" _timeAutoClose.AutoReset = false"); _timeAutoClose.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; NtLogHelper.Info(" _timeAutoClose.Enabled"); _timeAutoClose.Start(); //启动定时器 NtLogHelper.Info("_timeAutoClose.Start()"); } catch (Exception ex) { NtLogHelper.Error(ex.Message); } } private static void ExecuteAutoClose(object source, System.Timers.ElapsedEventArgs e) { if (_timeAutoClose == null) return; _timeAutoClose.Stop(); //先关闭定时器 _timeAutoClose = null; //要执行的业务代码 NtLogHelper.Info("正在自动关机...." ); ShutDownMsgHelper.StartJob(HandleHelper.GetLastSession()); try { NtLogHelper.Info("ExecuteAutoClose"); _timeAutoClose.Stop(); //先关闭定时器 NtLogHelper.Info(" _timeAutoClose.Stop()"); _timeAutoClose = null; //要执行的业务代码 NtLogHelper.Info("正在自动关机...."); StartJob(HandleHelper.GetLastSession()); } catch (Exception ex) { NtLogHelper.Error(ex.Message); } // t.Start(); //执行完毕后再开启器 } Socket/IStation.DataDockingSocket4NT/MsgHandle/StartUpMsgHelper.cs
@@ -1,5 +1,4 @@ using IStation.DataDockingSocket.MsgHandle; using IStation.Model; using IStation.Model; using IStation.Untity; using System; using System.Collections.Generic; @@ -24,7 +23,7 @@ /// <returns></returns> public static bool StartJob(Model.IMonitorDataDockingSession session, MonitorTestControlParas.StartContext paras) { if (session != null) if (session == null) { NtLogHelper.Error($"开机 session:Close"); return false; @@ -82,7 +81,7 @@ return false; } /// <summary> /// 关机指令 /// 开机指令 /// </summary> static string ControlMsgOpen = "01-06-00-0F-00-01-78-09"; /// <summary> @@ -92,30 +91,56 @@ public static bool HandleReceive(Model.IMonitorDataDockingSession session, byte[] byteMessage) { if (InstructionStatus == eStartUpInstructionStatus.未发送) { NtLogHelper.Info("InstructionStatus==eStartUpInstructionStatus.未发送"); return false; } if (InstructionStatus == eStartUpInstructionStatus.开机指令发送) { if (byteMessage.Length >= ControlMsgOpen.Length) NtLogHelper.Info("InstructionStatus==eStartUpInstructionStatus.开机指令发送"); var byteMsgOpen = Encoding.Unicode.GetBytes(ControlMsgOpen); //if (byteMessage.Length >= byteMsgOpen.Length) //{ string strMessage = BitConverter.ToString(byteMessage, 0, byteMessage.Length); if (strMessage == ControlMsgOpen) { string strMessage = BitConverter.ToString(byteMessage, 0, byteMessage.Length); if (strMessage == ControlMsgOpen) {//01-06-00-0F-00-01-78-09 InstructionStatus = eStartUpInstructionStatus.未发送; NtLogHelper.Info($"strMessage ({strMessage})== ControlMsgOpen ({ControlMsgOpen})"); //01-06-00-0F-00-01-78-09 InstructionStatus = eStartUpInstructionStatus.未发送; NtLogHelper.Debug("开机指令返回:" + BitTransfer.ToString(byteMessage)); NtLogHelper.Info("开机指令返回:" + BitTransfer.ToString(byteMessage)); if (_lastParas.OperatingValue > 0) { //开启自动关闭 ShutDownMsgHelper.StartAutoClose(_lastParas.OperatingValue); return true; } else { NtLogHelper.Info("时间小于等于0,不开启自动关闭"); } return true; } else { NtLogHelper.Info($"strMessage ({strMessage})!= ControlMsgOpen ({ControlMsgOpen})"); } //} //else //{ // NtLogHelper.Info($"byteMessage.Length ({byteMessage.Length}) <= ControlMsgOpen.Length ({ControlMsgOpen.Length})"); //} //返回失败, 再发送一次再确认一下 if ((DateTime.Now - _lastOpenSendTime).TotalSeconds > 5) { NtLogHelper.Info($"返回失败, 再发送一次再确认一下"); SendOpenMsg(session); } } if (InstructionStatus == eStartUpInstructionStatus.调频指令发送) { NtLogHelper.Info($"InstructionStatus == eStartUpInstructionStatus.调频指令发送"); //需要判断是否是调频指令:以后再补充 { SendOpenMsg(session); @@ -125,6 +150,7 @@ //返回失败, 再发送一次再确认一下 if ((DateTime.Now - _lastHzSendTime).TotalSeconds > 5) { NtLogHelper.Info($"返回失败, 再发送一次再确认一下"); StartJob(session, _lastParas); } } @@ -132,10 +158,9 @@ return false; } private static void SendOpenMsg(Model.IMonitorDataDockingSession session) private static void SendOpenMsg(Model.IMonitorDataDockingSession session) { byte[] bts = GetControlMsg开机(); session.Send(bts, 0, bts.Length); InstructionStatus = eStartUpInstructionStatus.开机指令发送; Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs
@@ -1,5 +1,4 @@ using IStation.DataDockingSocket.MsgHandle; using IStation.Untity; using IStation.Untity; using System; using System.Collections.Generic; using System.Linq; @@ -66,7 +65,7 @@ var context = Model.MonitorTestControlParas.StartContext.ToModel(paras.Context); if (context == null) return default; NtLogHelper.Debug(context.ToJson()); StartUpMsgHelper.StartJob(session, context); } break; Socket/IStation.DataDockingSocket4NT/instruction/SendInstructionJob.cs
@@ -33,7 +33,7 @@ if (session.IsConnected) { SessionHelper.Cache.Send(bytes, 0, bytes.Length); NtLogHelper.Info(session.SessionName + ":" + BitConverter.ToString(bytes) + ", 发送一条请求数据指令"); NtLogHelper.Info(session.SessionName + ":" + BitConverter.ToString(bytes) + ", 发送一条请求数据指令"); } }); TopShelf/IStation.TopShelf.DataDocking4Socket/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@ --> <Project> <PropertyGroup> <History>True|2022-10-27T07:32:23.6326778Z;True|2022-10-27T15:31:21.2898598+08:00;True|2022-10-27T15:31:06.9752171+08:00;True|2022-10-27T15:30:12.3351290+08:00;True|2022-10-27T15:16:06.6376480+08:00;True|2022-10-27T15:04:16.6181644+08:00;True|2022-10-27T14:56:07.3371453+08:00;True|2022-10-27T14:55:40.9994920+08:00;True|2022-10-26T14:21:13.7358061+08:00;True|2022-10-26T13:58:17.8518712+08:00;True|2022-10-26T10:50:57.8305616+08:00;True|2022-10-26T10:41:24.0512951+08:00;True|2022-10-26T10:36:18.9669938+08:00;True|2022-10-26T10:23:42.5700603+08:00;True|2022-10-26T09:49:18.1242267+08:00;True|2022-10-24T17:44:25.5039390+08:00;True|2022-07-02T00:06:16.6338790+08:00;True|2022-07-02T00:02:49.1000053+08:00;True|2022-07-01T23:23:53.1924783+08:00;True|2022-07-01T14:02:38.1190102+08:00;True|2022-07-01T13:55:33.4591108+08:00;</History> <History>True|2022-10-28T01:35:47.1875028Z;True|2022-10-28T09:10:26.0008427+08:00;True|2022-10-27T18:39:24.9534804+08:00;True|2022-10-27T18:33:34.4681116+08:00;True|2022-10-27T18:13:21.7875951+08:00;True|2022-10-27T18:12:44.3890244+08:00;True|2022-10-27T18:07:26.1755739+08:00;True|2022-10-27T17:57:58.0347320+08:00;True|2022-10-27T17:34:58.8259465+08:00;True|2022-10-27T17:22:06.3154634+08:00;False|2022-10-27T17:20:19.9004059+08:00;True|2022-10-27T17:18:10.4716763+08:00;True|2022-10-27T17:05:00.4099257+08:00;True|2022-10-27T16:54:07.3727699+08:00;True|2022-10-27T16:42:08.7868428+08:00;True|2022-10-27T16:20:40.9187590+08:00;True|2022-10-27T16:15:48.8887876+08:00;True|2022-10-27T15:32:23.6326778+08:00;True|2022-10-27T15:31:21.2898598+08:00;True|2022-10-27T15:31:06.9752171+08:00;True|2022-10-27T15:30:12.3351290+08:00;True|2022-10-27T15:16:06.6376480+08:00;True|2022-10-27T15:04:16.6181644+08:00;True|2022-10-27T14:56:07.3371453+08:00;True|2022-10-27T14:55:40.9994920+08:00;True|2022-10-26T14:21:13.7358061+08:00;True|2022-10-26T13:58:17.8518712+08:00;True|2022-10-26T10:50:57.8305616+08:00;True|2022-10-26T10:41:24.0512951+08:00;True|2022-10-26T10:36:18.9669938+08:00;True|2022-10-26T10:23:42.5700603+08:00;True|2022-10-26T09:49:18.1242267+08:00;True|2022-10-24T17:44:25.5039390+08:00;True|2022-07-02T00:06:16.6338790+08:00;True|2022-07-02T00:02:49.1000053+08:00;True|2022-07-01T23:23:53.1924783+08:00;True|2022-07-01T14:02:38.1190102+08:00;True|2022-07-01T13:55:33.4591108+08:00;</History> <LastFailureDetails /> </PropertyGroup> </Project>