Commit 02a4bc27 authored by leon.huang's avatar leon.huang

add map reflect add

parent 0bbb9e7b
This diff is collapsed.
......@@ -71,8 +71,8 @@ namespace ModbusDemo.Modular
public static modual.pcx78C cx78c = new modual.pcx78C(byX78cIdlist);
#if DEBUG_TEST
public const byte byX66cNumber = 3;
public static byte[] byX66cIdlist = {16,31,35};
public const byte byX66cNumber = 5;
public static byte[] byX66cIdlist = {16,31,35,39,90};
#else
public const byte byX66cNumber = 32;
public static byte[] byX66cIdlist = {4,5,7,8,9,10,14,15,19,22,23,24,26,30,32,36,37,38,40,41,42,43,44,46,47,48,49,50,51,52,54,57};
......
......@@ -21,6 +21,14 @@ namespace ModbusDemo.Modular
Normal = 0,
Null,
}
public enum eModualType : byte
{
IDLE = 0,
WTDR14P,
WTDR18X,
WTDR78C,
WTDR66C,
}
public struct psxModualAlarm
{
public bool bDataNotFirstIncreaseOrDecrease;
......
......@@ -41,7 +41,7 @@ namespace ModbusDemo
public Form1()
{
InitializeComponent();
m_bgw0.WorkerSupportsCancellation = true;
m_bgw0.WorkerSupportsCancellation = false;
m_bgw0.DoWork += m_bgw0_DoWork;
}
private void Form1_Load(object sender, EventArgs e)
......@@ -77,6 +77,8 @@ namespace ModbusDemo
public const string mqttSn = "66666666";
public const string mqttSubscribeControlTopic = "Witium/WTDS78X/" + mqttSn + "/Ctrl";
public const string mqttBackTopic = "Witium/WTDS78X/" + mqttSn + "/Back";
public const string mqttCfgTopic = "Witium/WTDS78X/" + mqttSn + "/Config";
public const string mqttCfgResTopic = "Witium/WTDS78X/" + mqttSn + "/CfgRes";
public const string mqttTopic = "Witium/WTDS78X/" + mqttSn + "/Data";
public const string sAlarmTopic = "Witium/WTDS78X/" + mqttSn + "/Alarm";
string mqttData;//数据
......@@ -156,6 +158,18 @@ namespace ModbusDemo
await mqttClient.PublishAsync(message);
totxt.Log("我在247,执行了Back");
}
private async Task vCfgResponseBack(string data)
{
var message = new MqttApplicationMessageBuilder()
.WithTopic(mqttCfgResTopic)
.WithPayload(data)
.WithAtMostOnceQoS()
.WithRetainFlag(false)
.Build();
await mqttClient.PublishAsync(message);
totxt.Log("我在247,执行了Back");
}
private async Task Subscribe()
{
if (!mqttClient.IsConnected)
......@@ -171,11 +185,17 @@ namespace ModbusDemo
.Build()
);
await mqttClient.SubscribeAsync(new TopicFilterBuilder()
.WithTopic(mqttCfgTopic)
.WithAtMostOnceQoS()
.Build()
);
Invoke((new Action(() =>
{
Console.WriteLine("已订阅[{topic}]主题{Environment.NewLine}");
txtReceiveMessage.AppendText($"已订阅[{mqttSubscribeControlTopic}]主题{Environment.NewLine}");
txtReceiveMessage.AppendText($"已订阅[{mqttCfgTopic}]主题{Environment.NewLine}");
//totxt.Log($"已订阅[{mqttSubscribeTopic}]主题{Environment.NewLine}");
//txtReceiveMessage.AppendText($"已订阅[{Data}]主题{Environment.NewLine}");
......@@ -325,6 +345,11 @@ namespace ModbusDemo
ModualControl.vGetaWay_Receive_Control(stConvertString, out mqttData_Back);
await vControlResponseBack();
}
else if (e.ApplicationMessage.Topic == mqttCfgTopic)
{
ModualControl.vPoolLevelParse(stConvertString, out mqttData_Back);
await vCfgResponseBack(mqttData_Back);
}
})));
Invoke((new Action(() =>
{
......@@ -358,7 +383,7 @@ namespace ModbusDemo
private void Sendout()
{
Control.CheckForIllegalCrossThreadCalls = false;
MQTTTimer.Interval = 20000;//120500
MQTTTimer.Interval = 60000;//120500
MQTTTimer.Enabled = true;
MQTTTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
MQTTTimer.Start();
......
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