diff --git a/docs/nanopct4.txt b/docs/nanopct4.txt new file mode 100644 index 00000000..ca3a9886 --- /dev/null +++ b/docs/nanopct4.txt @@ -0,0 +1,5 @@ +ubuntu 18.04 dns +nano /etc/NetworkManager/NetworkManager.conf +#dns=dnsmasq +echo "nameserver 8.8.8.8">/etc/resolv.conf +service systemd-resolved restart \ No newline at end of file diff --git a/projects/Infrastructure/Infrastructure.csproj b/projects/Infrastructure/Infrastructure.csproj index f5e202e9..ef67ecc6 100644 --- a/projects/Infrastructure/Infrastructure.csproj +++ b/projects/Infrastructure/Infrastructure.csproj @@ -11,6 +11,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/projects/IoTNode/Services/IoTNodeEventHandler.cs b/projects/IoTNode/Services/IoTNodeEventHandler.cs index d99d57f3..4b83a7c5 100644 --- a/projects/IoTNode/Services/IoTNodeEventHandler.cs +++ b/projects/IoTNode/Services/IoTNodeEventHandler.cs @@ -8,6 +8,7 @@ using IoT.Shared.Services; using IoTNode.DeviceServices.Onvif; using System; using System.Threading.Tasks; +using Microsoft.Extensions.Logging; namespace IoTNode.Services { @@ -18,13 +19,19 @@ namespace IoTNode.Services IEventHander>, IEventHander> { + private readonly ILogger _logger; private readonly ISceneTiggerService _sceneTiggerService; private readonly IoTNodeJob _job; private readonly OnvifService _onvifService; private readonly IoTNodeClient _ioTNodeClient; - public IoTNodeEventHandler(ISceneTiggerService sceneTiggerService, IoTNodeJob job, OnvifService onvifService, IoTNodeClient ioTNodeClient) + public IoTNodeEventHandler(ILogger logger, + ISceneTiggerService sceneTiggerService, + IoTNodeJob job, + OnvifService onvifService, + IoTNodeClient ioTNodeClient) { + this._logger = logger; this._sceneTiggerService = sceneTiggerService; this._job = job; this._onvifService = onvifService; @@ -48,28 +55,7 @@ namespace IoTNode.Services public void Handle(EntityUpdatedEvent message) { - var data = message.Data; - foreach (var tigger in this._sceneTiggerService.GetSceneTiggers()) - { - if (tigger.DataId == data.Id) - { - var methodText = $"bool Valid(string name,string key,{data.Type.ToString().ToLower()} value,string description){{ return {tigger.Condition};}}"; - try - { - dynamic method = CSScript.Evaluator.LoadMethod(methodText); - dynamic value = data.GetValue(); - var result = method.Valid(data.Name, data.Key, value, data.Description); - if (result) - { - _job.TiggerHandle(tigger.Id); - } - } - catch (Exception ex) - { - ex.PrintStack(); - } - } - } + this.TiggerHandle(message); } public void Handle(EntityUpdatedEvent message) @@ -80,11 +66,47 @@ namespace IoTNode.Services this._onvifService.StopPushToServer(); this._onvifService.StartPushToServer(); } - else if(message.Data.Name=="organ") + else if (message.Data.Name == "organ") { this._ioTNodeClient.Close(); this._ioTNodeClient.Connect(); } } + + private void TiggerHandle(BaseEvent message) + { + try + { + this._logger.LogInformation($"Debug>call tigger handler when data update at {DateTime.Now.ToLongDateString()} "); + foreach (var tigger in this._sceneTiggerService.GetSceneTiggers()) + { + var data = message.Data; + if (tigger.DataId == data.Id) + { + this._logger.LogInformation($"Debug>match tigger at {DateTime.Now.ToLongDateString()} "); + var methodText = $"bool Valid(string name,string key,{data.Type.ToString().ToLower()} value,string description){{ return {tigger.Condition};}}"; + try + { + dynamic method = CSScript.Evaluator.LoadMethod(methodText); + dynamic value = data.GetValue(); + var result = method.Valid(data.Name, data.Key, value, data.Description); + if (result) + { + this._logger.LogInformation($"Debug>match contdation at {DateTime.Now.ToLongDateString()} "); + this._job.TiggerHandle(tigger.Id); + } + } + catch (Exception ex) + { + this._logger.LogError(ex.ToString()); + } + } + } + } + catch (Exception ex) + { + this._logger.LogError(ex.ToString()); + } + } } } \ No newline at end of file diff --git a/projects/IoTNode/Services/IoTNodeJob.cs b/projects/IoTNode/Services/IoTNodeJob.cs index 3eb32e83..6702095a 100644 --- a/projects/IoTNode/Services/IoTNodeJob.cs +++ b/projects/IoTNode/Services/IoTNodeJob.cs @@ -38,7 +38,7 @@ namespace IoTNode.Services public void TiggerHandle(Guid tiggerId) { - this._logger.LogDebug($"global tigger exec:{tiggerId}"); + this._logger.LogDebug($"node tigger exec:{tiggerId}"); var commands = this._sceneTiggerRepo.ReadOnlyTable() .Include(o => o.Scene).ThenInclude(o => o.SceneCommands).ThenInclude(o => o.Command).ThenInclude(o => o.Api) .Include(o => o.Scene).ThenInclude(o => o.SceneCommands).ThenInclude(o => o.Command).ThenInclude(o => o.Device) diff --git a/projects/Version.cs b/projects/Version.cs index c36231de..0457986e 100644 --- a/projects/Version.cs +++ b/projects/Version.cs @@ -1,4 +1,4 @@ using System.Reflection; [assembly: AssemblyVersion("1.0.0.*")] -[assembly: AssemblyInformationalVersion("1.0.0.508")] \ No newline at end of file +[assembly: AssemblyInformationalVersion("1.0.0.509")] \ No newline at end of file