Commit 7176757f authored by leon.huang's avatar leon.huang

modify level parse

parent 02a4bc27
...@@ -7,6 +7,7 @@ using System.Collections; ...@@ -7,6 +7,7 @@ using System.Collections;
using MQTTnet; using MQTTnet;
using MQTTnet.Client; using MQTTnet.Client;
using Newtonsoft.Json; using Newtonsoft.Json;
using ModbusDemo.Modular;
namespace ModbusDemo.Common namespace ModbusDemo.Common
{ {
public static class ModualAlarm public static class ModualAlarm
...@@ -55,5 +56,137 @@ namespace ModbusDemo.Common ...@@ -55,5 +56,137 @@ namespace ModbusDemo.Common
.Build(); .Build();
await mqttClient.PublishAsync(message); await mqttClient.PublishAsync(message);
} }
public static void vSet_Modual_Alarm(byte byModbusID,ushort usAlarmCodde,bool bSetAlarm,byte byCommFailTimes,params string[] strChannalList)
{
for (int i = 0; i < ModualPoll.byX14pNumber;i++)
{
if (byModbusID == ModualPoll.cx14P.byModbusID[i])
{
for (int j = 0; j < strChannalList.Count(); j++)
{
for (int k = 0; k < 8; k++)
{
string strChannel = "d" + i.ToString();
if (strChannalList[k] == strChannel)
{
if (bSetAlarm == true)
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx14P.sX14PAlarmStruct[i].usCommFailTimes[k] += byCommFailTimes;
}
ModualPoll.cx14P.sX14PAlarmStruct[i].usNowAlarmCode[k] |= usAlarmCodde;
}
else
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx14P.sX14PAlarmStruct[i].usCommFailTimes[k] = 0;
}
ModualPoll.cx14P.sX14PAlarmStruct[i].usNowAlarmCode[k] &= usAlarmCodde;
}
}
}
}
}
}
for (int i = 0; i < ModualPoll.byX18xNumber; i++)
{
if (byModbusID == ModualPoll.cx18x.byModbusID[i])
{
for (int j = 0; j < strChannalList.Count(); j++)
{
for (int k = 0; k < 8; k++)
{
string strChannel = "d" + i.ToString();
if (strChannalList[k] == strChannel)
{
if (bSetAlarm == true)
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx18x.sX18xAlarmstruct[i].usCommFailTimes[k] += byCommFailTimes;
}
ModualPoll.cx18x.sX18xAlarmstruct[i].usNowAlarmCode[k] |= usAlarmCodde;
}
else
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx18x.sX18xAlarmstruct[i].usCommFailTimes[k] = 0;
}
ModualPoll.cx18x.sX18xAlarmstruct[i].usNowAlarmCode[k] &= usAlarmCodde;
}
}
}
}
}
}
for (int i = 0; i < ModualPoll.byX78cNumber; i++)
{
if (byModbusID == ModualPoll.cx78c.byModbusID[i])
{
for (int j = 0; j < strChannalList.Count(); j++)
{
for (int k = 0; k < 16; k++)
{
string strChannel = "d" + i.ToString();
if (strChannalList[k] == strChannel)
{
if (bSetAlarm == true)
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx78c.sX78cAlarmStruct[i].usCommFailTimes[k] += byCommFailTimes;
}
ModualPoll.cx78c.sX78cAlarmStruct[i].usNowAlarmCode[k] |= usAlarmCodde;
}
else
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx78c.sX78cAlarmStruct[i].usCommFailTimes[k] = 0;
}
ModualPoll.cx78c.sX78cAlarmStruct[i].usNowAlarmCode[k] &= usAlarmCodde;
}
}
}
}
}
}
for (int i = 0; i < ModualPoll.byX66cNumber; i++)
{
if (byModbusID == ModualPoll.cx66c.byModbusID[i])
{
for (int j = 0; j < strChannalList.Count(); j++)
{
for (int k = 0; k < ModualPoll.byX66cRelayRegNumber; k++)
{
string strChannel = "d" + i.ToString();
if (strChannalList[k] == strChannel)
{
if (bSetAlarm == true)
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx66c.sX66cAlarmStruct[i].usCommFailTimes[k] += byCommFailTimes;
}
ModualPoll.cx66c.sX66cAlarmStruct[i].usNowAlarmCode[k] |= usAlarmCodde;
}
else
{
if ((usAlarmCodde & (ushort)eAlarmCode.ChannelCommunError) == (ushort)eAlarmCode.ChannelCommunError)
{
ModualPoll.cx66c.sX66cAlarmStruct[i].usCommFailTimes[k] = 0;
}
ModualPoll.cx66c.sX66cAlarmStruct[i].usNowAlarmCode[k] &= usAlarmCodde;
}
}
}
}
}
}
}
} }
} }
This diff is collapsed.
This diff is collapsed.
...@@ -152,7 +152,7 @@ namespace ModbusDemo ...@@ -152,7 +152,7 @@ namespace ModbusDemo
var message = new MqttApplicationMessageBuilder() var message = new MqttApplicationMessageBuilder()
.WithTopic(mqttBackTopic) .WithTopic(mqttBackTopic)
.WithPayload(mqttData_Back) .WithPayload(mqttData_Back)
.WithAtMostOnceQoS() .WithAtLeastOnceQoS()
.WithRetainFlag(false) .WithRetainFlag(false)
.Build(); .Build();
await mqttClient.PublishAsync(message); await mqttClient.PublishAsync(message);
...@@ -168,7 +168,6 @@ namespace ModbusDemo ...@@ -168,7 +168,6 @@ namespace ModbusDemo
.WithRetainFlag(false) .WithRetainFlag(false)
.Build(); .Build();
await mqttClient.PublishAsync(message); await mqttClient.PublishAsync(message);
totxt.Log("我在247,执行了Back");
} }
private async Task Subscribe() private async Task Subscribe()
{ {
...@@ -383,7 +382,7 @@ namespace ModbusDemo ...@@ -383,7 +382,7 @@ namespace ModbusDemo
private void Sendout() private void Sendout()
{ {
Control.CheckForIllegalCrossThreadCalls = false; Control.CheckForIllegalCrossThreadCalls = false;
MQTTTimer.Interval = 60000;//120500 MQTTTimer.Interval = 20000;//120500
MQTTTimer.Enabled = true; MQTTTimer.Enabled = true;
MQTTTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); MQTTTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
MQTTTimer.Start(); 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