Former-commit-id: 5e4e0d2b357bc8a4fb5428ebe4cb13faf9515915
TangShanKaiPing
wanggang 5 years ago
parent 3619481d1f
commit 83ae7421cd

@ -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

@ -11,6 +11,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DynamicExpresso.Core" Version="2.3.1" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

@ -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<EntityDeletedEvent<SceneTimer>>,
IEventHander<EntityUpdatedEvent<Data>>
{
private readonly ILogger<IoTNodeEventHandler> _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<IoTNodeEventHandler> 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<Data> 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<Setting> 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<Data> 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());
}
}
}
}

@ -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)

@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.*")]
[assembly: AssemblyInformationalVersion("1.0.0.508")]
[assembly: AssemblyInformationalVersion("1.0.0.509")]
Loading…
Cancel
Save