diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocol.cs
index 658c868..fe3ecbb 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiInTcpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusAsciiInTcpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs
index 1560508..60f6956 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
using System.Text;
namespace Modbus.Net.Modbus
@@ -8,12 +10,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiInTcpProtocolLinker : TcpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusAsciiInTcpProtocolLinker(string ip)
- : base(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"), false)
+ : base(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"), false)
{
}
@@ -25,7 +33,7 @@ namespace Modbus.Net.Modbus
public ModbusAsciiInTcpProtocolLinker(string ip, int port)
: base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "100")));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "100")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocol.cs
index 6b3e343..6c17258 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiInUdpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusAsciiInUdpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs
index 9cc11c6..fa79aeb 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
using System.Text;
namespace Modbus.Net.Modbus
@@ -8,12 +10,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiInUdpProtocolLinker : UdpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusAsciiInUdpProtocolLinker(string ip)
- : base(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"), false)
+ : base(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"), false)
{
}
@@ -25,7 +33,7 @@ namespace Modbus.Net.Modbus
public ModbusAsciiInUdpProtocolLinker(string ip, int port)
: base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0")));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocol.cs
index f207ad9..04b0d3d 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusAsciiProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["COM"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["COM"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs
index fc78c9c..8c80f7c 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
+using System;
using System.Collections.Generic;
+using System.IO;
using System.IO.Ports;
using System.Text;
@@ -10,6 +12,12 @@ namespace Modbus.Net.Modbus
///
public class ModbusAsciiProtocolLinker : ComProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
@@ -18,7 +26,7 @@ namespace Modbus.Net.Modbus
public ModbusAsciiProtocolLinker(string com, int slaveAddress)
: base(com, 9600, Parity.None, StopBits.One, 8, slaveAddress)
{
- ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int, int)>[] { new List<(int, int)> { (1, 1), (2, 2) }, new List<(int, int)> { (3, 3), (4, 4) } }, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0")));
+ ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int, int)>[] { new List<(int, int)> { (1, 1), (2, 2) }, new List<(int, int)> { (3, 3), (4, 4) } }, int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocol.cs
index 22caa9d..29793f7 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuInTcpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusRtuInTcpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs
index 8f32f65..605db87 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,12 +9,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuInTcpProtocolLinker : TcpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusRtuInTcpProtocolLinker(string ip)
- : base(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"), false)
+ : base(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"), false)
{
}
@@ -24,7 +32,7 @@ namespace Modbus.Net.Modbus
public ModbusRtuInTcpProtocolLinker(string ip, int port)
: base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0")));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocol.cs
index fb19427..de076e9 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuInUdpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusRtuInUdpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs
index d809d7e..f1a26f0 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,12 +9,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuInUdpProtocolLinker : UdpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusRtuInUdpProtocolLinker(string ip)
- : base(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"), false)
+ : base(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"), false)
{
}
@@ -24,7 +32,7 @@ namespace Modbus.Net.Modbus
public ModbusRtuInUdpProtocolLinker(string ip, int port)
: base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0")));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocol.cs
index c70a46d..9a0221c 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusRtuProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["COM"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["COM"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs
index d0e8499..9e66d7b 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
+using System;
using System.Collections.Generic;
+using System.IO;
using System.IO.Ports;
namespace Modbus.Net.Modbus
@@ -9,6 +11,12 @@ namespace Modbus.Net.Modbus
///
public class ModbusRtuProtocolLinker : ComProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
@@ -17,7 +25,7 @@ namespace Modbus.Net.Modbus
public ModbusRtuProtocolLinker(string com, int slaveAddress)
: base(com, 9600, Parity.None, StopBits.One, 8, slaveAddress)
{
- ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int, int)>[] { new List<(int, int)> { (0, 0) }, new List<(int, int)> { (1, 1) } }, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0")));
+ ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int, int)>[] { new List<(int, int)> { (0, 0) }, new List<(int, int)> { (1, 1) } }, int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0")));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocol.cs
index 283f823..9dce3ff 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusTcpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusTcpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs
index 35bfa9c..47a9cff 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
+using System;
using System.Collections.Generic;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -8,12 +10,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusTcpProtocolLinker : TcpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusTcpProtocolLinker(string ip)
- : this(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"))
+ : this(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"))
{
}
@@ -24,7 +32,7 @@ namespace Modbus.Net.Modbus
/// 端口
public ModbusTcpProtocolLinker(string ip, int port) : base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0"), true, DuplicateWithCount.GetDuplcateFunc(new List { 4, 5 }, 6)));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0"), true, DuplicateWithCount.GetDuplcateFunc(new List { 4, 5 }, 6)));
}
///
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocol.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocol.cs
index 17b9c3a..9b73606 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocol.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -7,13 +9,19 @@ namespace Modbus.Net.Modbus
///
public class ModbusUdpProtocol : ModbusProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// 从站号
/// 主站号
public ModbusUdpProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["IP"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocolLinker.cs
index 5bddb7c..4169375 100644
--- a/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Modbus/ModbusUdpProtocolLinker.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
+using System;
using System.Collections.Generic;
+using System.IO;
namespace Modbus.Net.Modbus
{
@@ -8,12 +10,18 @@ namespace Modbus.Net.Modbus
///
public class ModbusUdpProtocolLinker : UdpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public ModbusUdpProtocolLinker(string ip)
- : this(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ModbusPort"] ?? "502"))
+ : this(ip, int.Parse(configuration.GetSection("Modbus.Net")["ModbusPort"] ?? "502"))
{
}
@@ -24,7 +32,7 @@ namespace Modbus.Net.Modbus
/// 端口
public ModbusUdpProtocolLinker(string ip, int port) : base(ip, port)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0"), true, DuplicateWithCount.GetDuplcateFunc(new List { 4, 5 }, 6)));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0"), true, DuplicateWithCount.GetDuplcateFunc(new List { 4, 5 }, 6)));
}
///
diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocol.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocol.cs
index 62edeab..0b57273 100644
--- a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocol.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
using Nito.AsyncEx;
+using System;
+using System.IO;
using System.Threading.Tasks;
namespace Modbus.Net.Siemens
@@ -9,6 +11,12 @@ namespace Modbus.Net.Siemens
///
public class SiemensPpiProtocol : SiemensProtocol
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
private readonly string _com;
private readonly AsyncLock _lock = new AsyncLock();
@@ -18,7 +26,7 @@ namespace Modbus.Net.Siemens
/// 从站号
/// 主站号
public SiemensPpiProtocol(byte slaveAddress, byte masterAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["COM"], slaveAddress, masterAddress)
+ : this(configuration.GetSection("Modbus.Net")["COM"], slaveAddress, masterAddress)
{
}
diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs
index f111acd..073922a 100644
--- a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
using System.IO.Ports;
using System.Threading;
using System.Threading.Tasks;
@@ -11,6 +13,12 @@ namespace Modbus.Net.Siemens
///
public class SiemensPpiProtocolLinker : ComProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
@@ -19,7 +27,7 @@ namespace Modbus.Net.Siemens
public SiemensPpiProtocolLinker(string com, int slaveAddress)
: base(com, 9600, Parity.Even, StopBits.One, 8, slaveAddress)
{
- ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["FetchSleepTime"] ?? "0"), true, null, 100));
+ ((BaseConnector)BaseConnector).AddController(new FifoController(int.Parse(configuration.GetSection("Modbus.Net")["FetchSleepTime"] ?? "0"), true, null, 100));
}
///
diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocol.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocol.cs
index 3993f16..a9be024 100644
--- a/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocol.cs
+++ b/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocol.cs
@@ -1,5 +1,7 @@
using Microsoft.Extensions.Configuration;
using Nito.AsyncEx;
+using System;
+using System.IO;
using System.Threading.Tasks;
namespace Modbus.Net.Siemens
@@ -20,6 +22,12 @@ namespace Modbus.Net.Siemens
private int _connectTryCount;
private readonly AsyncLock _lock = new AsyncLock();
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
@@ -31,7 +39,7 @@ namespace Modbus.Net.Siemens
///
public SiemensTcpProtocol(byte tdpuSize, ushort tsapSrc, ushort tsapDst, ushort maxCalling, ushort maxCalled,
ushort maxPdu)
- : this(tdpuSize, tsapSrc, tsapDst, maxCalling, maxCalled, maxPdu, new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"])
+ : this(tdpuSize, tsapSrc, tsapDst, maxCalling, maxCalled, maxPdu, configuration.GetSection("Modbus.Net")["IP"])
{
}
@@ -49,7 +57,7 @@ namespace Modbus.Net.Siemens
ushort maxPdu, string ip)
: this(
tdpuSize, tsapSrc, tsapDst, maxCalling, maxCalled, maxPdu, ip,
- int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["SiemensPort"] ?? "102"))
+ int.Parse(configuration.GetSection("Modbus.Net")["SiemensPort"] ?? "102"))
{
}
diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocolLinker.cs
index c576005..e2d78cf 100644
--- a/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net.Siemens/SiemensTcpProtocolLinker.cs
@@ -1,6 +1,7 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
+using System.IO;
namespace Modbus.Net.Siemens
{
@@ -9,12 +10,18 @@ namespace Modbus.Net.Siemens
///
public class SiemensTcpProtocolLinker : TcpProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造函数
///
/// IP地址
public SiemensTcpProtocolLinker(string ip)
- : this(ip, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["SiemensPort"] ?? "102"))
+ : this(ip, int.Parse(configuration.GetSection("Modbus.Net")["SiemensPort"] ?? "102"))
{
}
diff --git a/Modbus.Net/Modbus.Net/Linker/ComProtocolLinker.cs b/Modbus.Net/Modbus.Net/Linker/ComProtocolLinker.cs
index af7683d..29c6797 100644
--- a/Modbus.Net/Modbus.Net/Linker/ComProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net/Linker/ComProtocolLinker.cs
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
using System.IO.Ports;
namespace Modbus.Net
@@ -8,6 +10,12 @@ namespace Modbus.Net
///
public abstract class ComProtocolLinker : ProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造器
///
@@ -17,7 +25,7 @@ namespace Modbus.Net
/// 数据位
/// 从站地址
protected ComProtocolLinker(int baudRate, Parity parity, StopBits stopBits, int dataBits, int slaveAddress)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["COM"], baudRate, parity, stopBits, dataBits, slaveAddress)
+ : this(configuration.GetSection("Modbus.Net")["COM"], baudRate, parity, stopBits, dataBits, slaveAddress)
{
}
@@ -35,7 +43,7 @@ namespace Modbus.Net
int slaveAddress, bool isFullDuplex = false)
: this(
com, baudRate, parity, stopBits, dataBits,
- int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["ComConnectionTimeout"] ?? "-1"), slaveAddress, isFullDuplex)
+ int.Parse(configuration.GetSection("Modbus.Net")["ComConnectionTimeout"] ?? "-1"), slaveAddress, isFullDuplex)
{
}
diff --git a/Modbus.Net/Modbus.Net/Linker/TcpProtocolLinker.cs b/Modbus.Net/Modbus.Net/Linker/TcpProtocolLinker.cs
index 397f4e9..e070dbd 100644
--- a/Modbus.Net/Modbus.Net/Linker/TcpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net/Linker/TcpProtocolLinker.cs
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Configuration;
-
+using System;
+using System.IO;
namespace Modbus.Net
{
@@ -8,11 +9,17 @@ namespace Modbus.Net
///
public abstract class TcpProtocolLinker : ProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造器
///
protected TcpProtocolLinker(int port)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], port)
+ : this(configuration.GetSection("Modbus.Net")["IP"], port)
{
}
@@ -23,7 +30,7 @@ namespace Modbus.Net
/// 端口
/// 是否为全双工
protected TcpProtocolLinker(string ip, int port, bool isFullDuplex = true)
- : this(ip, port, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
+ : this(ip, port, int.Parse(configuration.GetSection("Modbus.Net")["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
{
}
diff --git a/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs b/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs
index 6b11779..75dd8d7 100644
--- a/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs
+++ b/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Configuration;
-
+using System;
+using System.IO;
namespace Modbus.Net
{
@@ -8,11 +9,17 @@ namespace Modbus.Net
///
public abstract class UdpProtocolLinker : ProtocolLinker
{
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
///
/// 构造器
///
protected UdpProtocolLinker(int port)
- : this(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IP"], port)
+ : this(configuration.GetSection("Modbus.Net")["IP"], port)
{
}
@@ -23,7 +30,7 @@ namespace Modbus.Net
/// 端口
/// 是否为全双工
protected UdpProtocolLinker(string ip, int port, bool isFullDuplex = true)
- : this(ip, port, int.Parse(new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetSection("Config")["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
+ : this(ip, port, int.Parse(configuration.GetSection("Modbus.Net")["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
{
}
diff --git a/Modbus.Net/Modbus.Net/appsettings.json b/Modbus.Net/Modbus.Net/appsettings.json
index a836018..0ad9944 100644
--- a/Modbus.Net/Modbus.Net/appsettings.json
+++ b/Modbus.Net/Modbus.Net/appsettings.json
@@ -1,5 +1,5 @@
{
- "Config": {
+ "Modbus.Net": {
"COM": "COM1",
"IP": "192.168.1.1",
"ComConnectionTimeout": "3000",
diff --git a/Samples/AnyType/appsettings.json b/Samples/AnyType/appsettings.json
index 8502ba8..ae6e3a7 100644
--- a/Samples/AnyType/appsettings.json
+++ b/Samples/AnyType/appsettings.json
@@ -6,7 +6,7 @@
}
},
"AllowedHosts": "*",
- "Config": {
+ "Modbus.Net": {
"ModbusPort": "502"
}
}
diff --git a/Samples/MachineJob/DatabaseWrite.cs b/Samples/MachineJob/DatabaseWrite.cs
index 28c5025..821467d 100644
--- a/Samples/MachineJob/DatabaseWrite.cs
+++ b/Samples/MachineJob/DatabaseWrite.cs
@@ -6,7 +6,13 @@ namespace MachineJob
{
public class DatabaseWriteContext : DbContext
{
- static readonly string connectionString = new ConfigurationBuilder().AddJsonFile($"appsettings.json").Build().GetConnectionString("DatabaseWriteConnectionString")!;
+ private static readonly IConfigurationRoot configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
+ .Build();
+
+ private static readonly string connectionString = configuration.GetConnectionString("DatabaseWriteConnectionString")!;
public DbSet DatabaseWrites { get; set; }
diff --git a/Samples/MachineJob/Worker.cs b/Samples/MachineJob/Worker.cs
index 053aab0..6dce341 100644
--- a/Samples/MachineJob/Worker.cs
+++ b/Samples/MachineJob/Worker.cs
@@ -44,8 +44,8 @@ namespace MachineJob.Service
new AddressUnit() { Area = "DB1", Address = 18, DataType = typeof(short), Id = "10", Name = "Test10" }
};
- IMachine machine = new ModbusMachine("ModbusMachine1", ModbusType.Tcp, "192.168.0.161", _addresses, true, 1, 2, Endian.BigEndianLsb);
- IMachine machine2 = new SiemensMachine("SiemensMachine1", SiemensType.Tcp, "192.168.0.161", SiemensMachineModel.S7_1200, _addresses2, true, 1, 2);
+ IMachine machine = new ModbusMachine("ModbusMachine1", ModbusType.Tcp, null, _addresses, true, 1, 2, Endian.BigEndianLsb);
+ IMachine machine2 = new SiemensMachine("SiemensMachine1", SiemensType.Tcp, null, SiemensMachineModel.S7_1200, _addresses2, true, 1, 2);
await MachineJobSchedulerCreator.CreateScheduler("Trigger1", -1, 10).Result.From(machine.Id, machine, MachineDataType.Name).Result.Query(machine.Id + ".ConsoleQuery", QueryConsole).Result.To(machine.Id + ".To", machine).Result.Deal(machine.Id + ".Deal", OnSuccess, OnFailure).Result.Run();
Thread.Sleep(5000);
diff --git a/Samples/MachineJob/appsettings.json b/Samples/MachineJob/appsettings.json
index 0f91a9c..64cc3ff 100644
--- a/Samples/MachineJob/appsettings.json
+++ b/Samples/MachineJob/appsettings.json
@@ -11,7 +11,11 @@
"ConnectionStrings": {
"DatabaseWriteConnectionString": "Server=localhost; User ID=root; Password=123456; Database=modbusnettest;"
},
- "Config": {
- "FetchSleepTime": "100"
+ "Modbus.Net": {
+ "FetchSleepTime": "100",
+ "IP": "192.168.8.210",
+ "IPConnectionTimeout": "5000",
+ "ModbusPort": "502",
+ "SiemensPort": "102"
}
}
diff --git a/Tests/Modbus.Net.PersistedTests/Program.cs b/Tests/Modbus.Net.PersistedTests/Program.cs
index 5265e2b..30d2c6e 100644
--- a/Tests/Modbus.Net.PersistedTests/Program.cs
+++ b/Tests/Modbus.Net.PersistedTests/Program.cs
@@ -99,7 +99,8 @@ ModbusMachine machine3 = new ModbusMachine(3, ModbusTy
},
}, true, 4, 1);
Random r = new Random();
-await MachineJobSchedulerCreator.CreateScheduler("Trigger1", -1, 10).Result.Apply(machine.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine.Id + ".Query", returnDef => {
+await MachineJobSchedulerCreator.CreateScheduler("Trigger1", -1, 10).Result.Apply(machine.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine.Id + ".Query", returnDef =>
+{
return new Dictionary() {{
"4X 1.0", r.Next() % 65536
},
@@ -111,7 +112,8 @@ await MachineJobSchedulerCreator.CreateScheduler("Trigger1", -1, 10).Result.Appl
}
};
}).Result.To(machine.Id + ".To", machine).Result.Deal().Result.Run();
-await MachineJobSchedulerCreator.CreateScheduler("Trigger2", -1, 10).Result.Apply(machine2.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine2.Id + ".Query", returnDef => {
+await MachineJobSchedulerCreator.CreateScheduler("Trigger2", -1, 10).Result.Apply(machine2.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine2.Id + ".Query", returnDef =>
+{
return new Dictionary() {{
"4X 1.0", r.Next() % 65536
},
@@ -123,7 +125,8 @@ await MachineJobSchedulerCreator.CreateScheduler("Trigger2", -1, 10).Result.Appl
}
};
}).Result.To(machine2.Id + ".To", machine2).Result.Deal().Result.Run();
-await MachineJobSchedulerCreator.CreateScheduler("Trigger3", -1, 10).Result.Apply(machine3.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine3.Id + ".Query", returnDef => {
+await MachineJobSchedulerCreator.CreateScheduler("Trigger3", -1, 10).Result.Apply(machine3.Id + ".Apply", null, MachineDataType.Address).Result.Query(machine3.Id + ".Query", returnDef =>
+{
return new Dictionary() {{
"4X 1.0", r.Next() % 65536
},