Commit 918658a8 authored by leon.huang's avatar leon.huang

merge origin

parents 4a5bdbd8 fc5bbaa0
This diff is collapsed.
...@@ -32,6 +32,7 @@ namespace ModbusDemo ...@@ -32,6 +32,7 @@ namespace ModbusDemo
private int waitTime; private int waitTime;
private Thread t_UpgradeConn; private Thread t_UpgradeConn;
private Thread t_AutoControl; private Thread t_AutoControl;
public delegate void invokeDelegate(); public delegate void invokeDelegate();
System.Timers.Timer MQTTTimer = new System.Timers.Timer(); System.Timers.Timer MQTTTimer = new System.Timers.Timer();
BackgroundWorker m_bgw0 = new BackgroundWorker(); BackgroundWorker m_bgw0 = new BackgroundWorker();
...@@ -60,7 +61,9 @@ namespace ModbusDemo ...@@ -60,7 +61,9 @@ namespace ModbusDemo
t_UpgradeConn = new Thread(UpgradeProc); t_UpgradeConn = new Thread(UpgradeProc);
t_UpgradeConn.IsBackground = true; t_UpgradeConn.IsBackground = true;
t_UpgradeConn.Start(); t_UpgradeConn.Start();
run();
} }
private void Form1_FormClosed(object sender, FormClosedEventArgs e) private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{ {
System.Environment.Exit(0); System.Environment.Exit(0);
...@@ -76,8 +79,8 @@ namespace ModbusDemo ...@@ -76,8 +79,8 @@ namespace ModbusDemo
int mqttPort; int mqttPort;
string mqttUsername; string mqttUsername;
string mqttPwd; string mqttPwd;
byte[] LevelmodbusID = { 6, 13};
public const string mqttSn = "66666666"; public const string mqttSn = "256333344";
public const string mqttSubscribeControlTopic = "Witium/WTDS78X/" + mqttSn + "/Ctrl"; public const string mqttSubscribeControlTopic = "Witium/WTDS78X/" + mqttSn + "/Ctrl";
public const string mqttBackTopic = "Witium/WTDS78X/" + mqttSn + "/Back"; public const string mqttBackTopic = "Witium/WTDS78X/" + mqttSn + "/Back";
public const string mqttCfgTopic = "Witium/WTDS78X/" + mqttSn + "/Config"; public const string mqttCfgTopic = "Witium/WTDS78X/" + mqttSn + "/Config";
...@@ -160,8 +163,12 @@ namespace ModbusDemo ...@@ -160,8 +163,12 @@ namespace ModbusDemo
.WithAtLeastOnceQoS() .WithAtLeastOnceQoS()
.WithRetainFlag(false) .WithRetainFlag(false)
.Build(); .Build();
<<<<<<< HEAD
mqttClient.PublishAsync(message); mqttClient.PublishAsync(message);
totxt.Log("我在247,执行了Back"); totxt.Log("我在247,执行了Back");
=======
await mqttClient.PublishAsync(message);
>>>>>>> refs/remotes/origin/master
} }
private async Task vCfgResponseBack(string data) private async Task vCfgResponseBack(string data)
...@@ -200,9 +207,6 @@ namespace ModbusDemo ...@@ -200,9 +207,6 @@ namespace ModbusDemo
txtReceiveMessage.AppendText($"已订阅[{mqttSubscribeControlTopic}]主题{Environment.NewLine}"); txtReceiveMessage.AppendText($"已订阅[{mqttSubscribeControlTopic}]主题{Environment.NewLine}");
txtReceiveMessage.AppendText($"已订阅[{mqttCfgTopic}]主题{Environment.NewLine}"); txtReceiveMessage.AppendText($"已订阅[{mqttCfgTopic}]主题{Environment.NewLine}");
//totxt.Log($"已订阅[{mqttSubscribeTopic}]主题{Environment.NewLine}");
//txtReceiveMessage.AppendText($"已订阅[{Data}]主题{Environment.NewLine}");
}))); })));
} }
//private async Task ConnectMqttServerAsync() //private async Task ConnectMqttServerAsync()
...@@ -374,6 +378,7 @@ namespace ModbusDemo ...@@ -374,6 +378,7 @@ namespace ModbusDemo
#region modbus线程 #region modbus线程
private static bool bSetDataIsRunning = false; private static bool bSetDataIsRunning = false;
<<<<<<< HEAD
private Thread ModbusPollThread; private Thread ModbusPollThread;
private void T_AutoControl() private void T_AutoControl()
...@@ -473,16 +478,27 @@ namespace ModbusDemo ...@@ -473,16 +478,27 @@ namespace ModbusDemo
} }
} }
} }
=======
private Thread ModbusPollThread;
>>>>>>> refs/remotes/origin/master
private void vModbusPoll() private void vModbusPoll()
{ {
while (true) while (true)
{
Parallel.Invoke(
() =>
{ {
bSetDataIsRunning = true; bSetDataIsRunning = true;
ModualPoll.vAllNodePoll(); ModualPoll.vAllNodePoll();
mqttData = ModualPoll.stAll_Poll_Package(); mqttData = ModualPoll.stAll_Poll_Package();
ModualPoll.vCheckAlarm_And_Send(mqttClient); ModualPoll.vCheckAlarm_And_Send(mqttClient);
label5.Text = ModbusComm.usCommunFailTimes.ToString(); label5.Text = ModbusComm.usCommunFailTimes.ToString();
Thread.Sleep(100); },
() =>
{
AutoControl.T_AutoControl();
})
;
} }
} }
private void Sendout() private void Sendout()
...@@ -542,8 +558,7 @@ namespace ModbusDemo ...@@ -542,8 +558,7 @@ namespace ModbusDemo
} }
else else
{ {
//txtbox.Text = message; totxt.Log(message);
//totxt.Log(message);
} }
} }
#endregion #endregion
...@@ -999,7 +1014,7 @@ namespace ModbusDemo ...@@ -999,7 +1014,7 @@ namespace ModbusDemo
errCnt++; errCnt++;
Console.WriteLine(DateTime.Now.ToString() + " " + exception.Message); Console.WriteLine(DateTime.Now.ToString() + " " + exception.Message);
MessageBox.Show(DateTime.Now.ToString() + " " + exception.Message); //MessageBox.Show(DateTime.Now.ToString() + " " + exception.Message);
this.UpdateBar.Value = this.UpdateBar.Minimum; this.UpdateBar.Value = this.UpdateBar.Minimum;
//this.StartTest.Enabled = false; //this.StartTest.Enabled = false;
//this.reset.Enabled = false; //this.reset.Enabled = false;
...@@ -1089,13 +1104,18 @@ namespace ModbusDemo ...@@ -1089,13 +1104,18 @@ namespace ModbusDemo
{ {
} }
<<<<<<< HEAD
private async void SubscribeBut_Click(object sender, EventArgs e) private async void SubscribeBut_Click(object sender, EventArgs e)
=======
private void SubscribeBut_Click(object sender, EventArgs e)
>>>>>>> refs/remotes/origin/master
{ {
await Subscribe();
} }
[Obsolete] [Obsolete]
private void btOpenCOM_Click(object sender, EventArgs e) private async void btOpenCOM_Click(object sender, EventArgs e)
{ {
if (LOCALDEBUG == true) if (LOCALDEBUG == true)
{ {
...@@ -1143,22 +1163,36 @@ namespace ModbusDemo ...@@ -1143,22 +1163,36 @@ namespace ModbusDemo
SetMqtt(); SetMqtt();
MQTT_thread = new MethodInvoker(Sendout); MQTT_thread = new MethodInvoker(Sendout);
MQTT_thread.BeginInvoke(null, null); MQTT_thread.BeginInvoke(null, null);
<<<<<<< HEAD
Task.Run(async () => {await ConnectMqttServerAsync(); }); Task.Run(async () => {await ConnectMqttServerAsync(); });
=======
await Task.Run(async () => { await ConnectMqttServerAsync(); });
>>>>>>> refs/remotes/origin/master
ModbusComm.Modbus = ModbusSerialMaster.CreateRtu(comPort); ModbusComm.Modbus = ModbusSerialMaster.CreateRtu(comPort);
ModbusComm.Modbus.Transport.Retries = 0; ModbusComm.Modbus.Transport.Retries = 0;
ModbusComm.Modbus.Transport.ReadTimeout = 1000; ModbusComm.Modbus.Transport.ReadTimeout = 1000;
ModbusComm.Modbus.Transport.WriteTimeout = 1000; ModbusComm.Modbus.Transport.WriteTimeout = 1000;
ModbusComm.Modbus.Transport.WaitToRetryMilliseconds = 0; ModbusComm.Modbus.Transport.WaitToRetryMilliseconds = 0;
<<<<<<< HEAD
//t_AutoControl = new Thread(T_AutoControl); //t_AutoControl = new Thread(T_AutoControl);
//t_AutoControl.IsBackground = true; //t_AutoControl.IsBackground = true;
//t_AutoControl.Start(); //t_AutoControl.Start();
=======
//t_AutoControl = new Thread(T_AutoControl)
//{
// IsBackground = true
//};
//t_AutoControl.Start();
>>>>>>> refs/remotes/origin/master
modbus_Timer.Enabled = true; modbus_Timer.Enabled = true;
btOpenCOM.Enabled = false; btOpenCOM.Enabled = false;
btCloseCOM.Enabled = true; btCloseCOM.Enabled = true;
if (bCretaThead == false) if (bCretaThead == false)
{ {
bCretaThead = true; bCretaThead = true;
ModbusPollThread = new Thread (vModbusPoll); ModbusPollThread = new Thread(vModbusPoll);
ModbusPollThread.Start(); ModbusPollThread.Start();
ModbusPollThread.Priority = ThreadPriority.Normal; ModbusPollThread.Priority = ThreadPriority.Normal;
...@@ -1178,6 +1212,7 @@ namespace ModbusDemo ...@@ -1178,6 +1212,7 @@ namespace ModbusDemo
ModbusPollThread.Resume(); ModbusPollThread.Resume();
} }
totxt.Log(DateTime.Now.ToString() + " =>Open " + comPort.PortName + " sucessfully!"); totxt.Log(DateTime.Now.ToString() + " =>Open " + comPort.PortName + " sucessfully!");
await Subscribe();
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -1185,7 +1220,60 @@ namespace ModbusDemo ...@@ -1185,7 +1220,60 @@ namespace ModbusDemo
MessageBox.Show("Error: " + ex.Message); MessageBox.Show("Error: " + ex.Message);
return; return;
} }
}
private async void run()
{
comPort.PortName = "COM1";
comPort.BaudRate = 9600;
comPort.Parity = Parity.None;
comPort.StopBits = StopBits.One;
comPort.DataBits = 8;
try
{
comPort.Open();
isReconnect = true;
SetMqtt();
MQTT_thread = new MethodInvoker(Sendout);
MQTT_thread.BeginInvoke(null, null);
await Task.Run(async () => { await ConnectMqttServerAsync(); });
ModbusComm.Modbus = ModbusSerialMaster.CreateRtu(comPort);
ModbusComm.Modbus.Transport.Retries = 0;
ModbusComm.Modbus.Transport.ReadTimeout = 1000;
ModbusComm.Modbus.Transport.WriteTimeout = 1000;
ModbusComm.Modbus.Transport.WaitToRetryMilliseconds = 0;
//t_AutoControl = new Thread(T_AutoControl)
//{
// IsBackground = true
//};
//t_AutoControl.Start();
modbus_Timer.Enabled = true;
btOpenCOM.Enabled = false;
btCloseCOM.Enabled = true;
if (bCretaThead == false)
{
bCretaThead = true;
ModbusPollThread = new Thread(vModbusPoll);
ModbusPollThread.Start();
ModbusControlThread = new Thread(ModualControl.vControl_Poll);
ModbusControlThread.Start();
}
else
{
ModbusPollThread.Resume();
}
totxt.Log(DateTime.Now.ToString() + " =>Open " + comPort.PortName + " sucessfully!");
await Subscribe();
}
catch (Exception ex)
{
totxt.Log("Error: " + ex.Message);
MessageBox.Show("Error: " + ex.Message);
return;
}
} }
[Obsolete] [Obsolete]
private void btCloseCOM_Click(object sender, EventArgs e) private void btCloseCOM_Click(object sender, EventArgs e)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment