Fix
This commit is contained in:
@@ -30,7 +30,7 @@ namespace Modbus.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="timeoutTime">发送超时时间</param>
|
/// <param name="timeoutTime">发送超时时间</param>
|
||||||
/// <param name="isFullDuplex">是否为全双工</param>
|
/// <param name="isFullDuplex">是否为全双工</param>
|
||||||
protected BaseConnector(int timeoutTime = 10000, bool isFullDuplex = true)
|
protected BaseConnector(int timeoutTime = 10000, bool isFullDuplex = false)
|
||||||
{
|
{
|
||||||
IsFullDuplex = isFullDuplex;
|
IsFullDuplex = isFullDuplex;
|
||||||
if (timeoutTime < -1) timeoutTime = -1;
|
if (timeoutTime < -1) timeoutTime = -1;
|
||||||
@@ -55,6 +55,10 @@ namespace Modbus.Net
|
|||||||
IDisposable asyncLock = null;
|
IDisposable asyncLock = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (!Controller.IsSending)
|
||||||
|
{
|
||||||
|
Controller.SendStart();
|
||||||
|
}
|
||||||
var messageSendingdef = Controller.AddMessage(message);
|
var messageSendingdef = Controller.AddMessage(message);
|
||||||
if (messageSendingdef != null)
|
if (messageSendingdef != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ namespace Modbus.Net
|
|||||||
IDisposable asyncLock = null;
|
IDisposable asyncLock = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (!Controller.IsSending)
|
||||||
|
{
|
||||||
|
Controller.SendStart();
|
||||||
|
}
|
||||||
var messageSendingdef = Controller.AddMessage(message);
|
var messageSendingdef = Controller.AddMessage(message);
|
||||||
if (messageSendingdef != null)
|
if (messageSendingdef != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ namespace Modbus.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected Task SendingThread { get; set; }
|
protected Task SendingThread { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 消息维护线程是否在运行
|
||||||
|
/// </summary>
|
||||||
|
public virtual bool IsSending => SendingThread.Status.Equals(TaskStatus.Running);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 包切分位置函数
|
/// 包切分位置函数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -8,6 +8,11 @@ namespace Modbus.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class MatchDirectlySendController : MatchController
|
public class MatchDirectlySendController : MatchController
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 消息维护线程是否在运行
|
||||||
|
/// </summary>
|
||||||
|
public override bool IsSending => true;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public MatchDirectlySendController(ICollection<(int, int)>[] keyMatches,
|
public MatchDirectlySendController(ICollection<(int, int)>[] keyMatches,
|
||||||
Func<byte[], int> lengthCalc = null, Func<byte[], bool?> checkRightFunc = null, int? waitingListMaxCount = null) : base(keyMatches,
|
Func<byte[], int> lengthCalc = null, Func<byte[], bool?> checkRightFunc = null, int? waitingListMaxCount = null) : base(keyMatches,
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ namespace Modbus.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IController
|
public interface IController
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 消息维护线程是否在运行
|
||||||
|
/// </summary>
|
||||||
|
bool IsSending { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 增加信息
|
/// 增加信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"TCP": {
|
"TCP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"UDP": {
|
"UDP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"TCP": {
|
"TCP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"UDP": {
|
"UDP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"TCP": {
|
"TCP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"UDP": {
|
"UDP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"TCP": {
|
"TCP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"UDP": {
|
"UDP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
"d:connectionString": "COM1",
|
"d:connectionString": "COM1",
|
||||||
"e:addressMap": "AddressMapModbus",
|
"e:addressMap": "AddressMapModbus",
|
||||||
"f:keepConnect": true,
|
"f:keepConnect": true,
|
||||||
"g:slaveAddress": 3,
|
"g:slaveAddress": 1,
|
||||||
"h:masterAddress": 2,
|
"h:masterAddress": 2,
|
||||||
"i:endian": "BigEndianLsb"
|
"i:endian": "BigEndianLsb"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"TCP": {
|
"TCP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"UDP": {
|
"UDP": {
|
||||||
"ConnectionTimeout": "5000",
|
"ConnectionTimeout": "5000",
|
||||||
"FetchSleepTime": "100",
|
"FetchSleepTime": "100",
|
||||||
"FullDuplex": "False",
|
"FullDuplex": "True",
|
||||||
"Modbus": {
|
"Modbus": {
|
||||||
"ModbusPort": "502",
|
"ModbusPort": "502",
|
||||||
"IP": "192.168.1.1"
|
"IP": "192.168.1.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user