Commit 432ed26a authored by leon.huang's avatar leon.huang

Modify Modbus and Pool abstruct

parent ee7b5c46
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Name>Database1</Name>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{214ece0a-ae66-4aad-a2ba-5c06fa5d5d97}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider</DSP>
<OutputType>Database</OutputType>
<RootPath>
</RootPath>
<RootNamespace>Database1</RootNamespace>
<AssemblyName>Database1</AssemblyName>
<ModelCollation>1033, CI</ModelCollation>
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
<DeployToDatabase>True</DeployToDatabase>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetLanguage>CS</TargetLanguage>
<AppDesignerFolder>Properties</AppDesignerFolder>
<SqlServerVerification>False</SqlServerVerification>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseSet>True</TargetDatabaseSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
</Project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2042
# Visual Studio Version 16
VisualStudioVersion = 16.0.28803.452
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModbusDemo", "ModbusDemo\ModbusDemo.csproj", "{7D83EE1F-F3D9-4592-A0ED-A0D92DCF91AB}"
EndProject
......
......@@ -8,12 +8,11 @@ using System.Windows.Forms;
namespace ModbusDemo.windows
{
class Totxt
public class Totxt
{
private string logFile;
private StreamWriter writer;
private FileStream fileStream = null;
public Totxt(string fileName)
{
logFile = fileName;
......@@ -22,7 +21,6 @@ namespace ModbusDemo.windows
public void Log(string info)
{
try
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(logFile);
......@@ -59,7 +57,6 @@ namespace ModbusDemo.windows
fileStream.Dispose();
}
}
}
public void CreateDirectory(string infoPath)
......
This diff is collapsed.
......@@ -4,6 +4,10 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using MQTTnet;
using MQTTnet.Client;
using Newtonsoft.Json;
namespace ModbusDemo
{
class startAddress
......@@ -24,8 +28,8 @@ namespace ModbusDemo
public int d5 { get; set; }
public int d6 { get; set; }
public int d7 { get; set; }
public string ts { get; set; }
public WTDR18X(string addr, double d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7, string ts)
public UInt64 ts { get; set; }
public WTDR18X(string addr, double d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7, UInt64 ts)
{
this.addr = addr;
this.d0 = d0;
......@@ -46,8 +50,8 @@ namespace ModbusDemo
public int d1 { get; set; }
public int d2 { get; set; }
public int d3 { get; set; }
public string ts { get; set; }
public WTDR14P(string addr, double d0, int d1, int d2, int d3, string ts)
public UInt64 ts { get; set; }
public WTDR14P(string addr, double d0, int d1, int d2, int d3, UInt64 ts)
{
this.addr = addr;
this.d0 = d0;
......@@ -66,9 +70,9 @@ namespace ModbusDemo
public int d3 { get; set; }
public int d4 { get; set; }
public int d5 { get; set; }
public string ts { get; set; }
public UInt64 ts { get; set; }
public WTDR66C(string addr, int d0, int d1, int d2, int d3, int d4, int d5, string ts)
public WTDR66C(string addr, int d0, int d1, int d2, int d3, int d4, int d5, UInt64 ts)
{
this.addr = addr;
this.d0 = d0;
......@@ -220,4 +224,47 @@ namespace ModbusDemo
return op;
}
}
public class pcDeviceAlarm
{
public const ushort usChannelNumber = 8;
private const string sAlarmTopic = "Witium/WTDS78X/20193261/Alarm";
public Hashtable hMqtttAlarmMap = new Hashtable();
public bool bErrorHasSend = false;
private string sAlarmJson;
private string sAlarmJsonPackage;
//private IMqttClient mqttClient = null;
public enum eAlarmCode : sbyte
{
ChannelNoError = 0,
ChannelCommunError = 1,
ChannelCollectDataError = 2,
ChannelDataRespError = 4,
ChannelDataChangeError = 8
}
public void vSetAlarmList(ushort usAddress, ushort[] usChannel, eAlarmCode[] usChannelAlarmcode)
{
ushort i = 0;
hMqtttAlarmMap.Add("addr", usAddress.ToString());
string sAlarm = "alm";
foreach (ushort usdata in usChannelAlarmcode)
{
hMqtttAlarmMap.Add(sAlarm + i, usChannelAlarmcode[i]);
i++;
}
hMqtttAlarmMap.Add("ts", Form1.GetTimeStamp());
sAlarmJson = JsonConvert.SerializeObject(hMqtttAlarmMap);
}
public async Task vPublishAlarmPackageJson(IMqttClient mqttClient)
{
sAlarmJson = "[" + sAlarmJson + "]";
var message = new MqttApplicationMessageBuilder()
.WithTopic(sAlarmTopic)
.WithPayload(sAlarmJson)
.WithAtMostOnceQoS()
.WithRetainFlag(false)
.Build();
await mqttClient.PublishAsync(message);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SSDTUnitTestPath Condition="'$(SSDTUnitTestPath)' == ''">$(VsInstallRoot)\Common7\IDE\Extensions\Microsoft\SQLDB</SSDTUnitTestPath>
</PropertyGroup>
<PropertyGroup>
<SSDTPath Condition="'$(SSDTPath)' == ''">$(VsInstallRoot)\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130</SSDTPath>
</PropertyGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
......@@ -59,15 +68,15 @@
<Reference Include="log4net">
<HintPath>Lib\log4net.dll</HintPath>
</Reference>
<Reference Include="MQTTnet, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MQTTnet-CP.2.7.5\lib\net452\MQTTnet.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
<Reference Include="MQTTnet, Version=2.8.5.0, Culture=neutral, PublicKeyToken=b69712f52770c0a7, processorArchitecture=MSIL">
<HintPath>..\packages\MQTTnet.2.8.5\lib\net452\MQTTnet.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="nmodbuspc">
<HintPath>Lib\nmodbuspc.dll</HintPath>
<Reference Include="nmodbuspc, Version=1.12.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\nmodbuspc.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
......@@ -81,7 +90,10 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="application\PoolModbusSet.cs" />
<Compile Include="application\ModbusToPool.cs" />
<Compile Include="application\Pond.cs" />
<Compile Include="MessageFormat\ModbusComm.cs" />
<Compile Include="Modular\414P.cs" />
<Compile Include="Modular\478C.cs" />
<Compile Include="Modular\418X.cs" />
......@@ -148,7 +160,33 @@
<Content Include="picture\nut_128px_1101797_easyicon.net.ico" />
<None Include="Resources\logo.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup />
<ItemGroup Condition="$(VisualStudioVersion) == '15.0'">
<Reference Include="Microsoft.Data.Tools.Schema.Sql, Version=13.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>$(SSDTPath)\Microsoft.Data.Tools.Schema.Sql.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Data.Tools.Schema.Sql.UnitTesting, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>$(SSDTUnitTestPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Data.Tools.Schema.Sql.UnitTestingAdapter, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>$(SSDTUnitTestPath)\Microsoft.Data.Tools.Schema.Sql.UnitTestingAdapter.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<SsdtUnitTestVersion>3.1</SsdtUnitTestVersion>
</PropertyGroup>
<Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' == ''" />
<PropertyGroup>
<SsdtUnitTestVersion>3.1</SsdtUnitTestVersion>
</PropertyGroup>
<Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' == ''" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
......
......@@ -8,6 +8,7 @@ namespace ModbusDemo
{
class _414P
{
//铂电阻+2路开关
const int MAX_AN_CH_NUM = 4;
ushort[] typeData = new ushort[MAX_AN_CH_NUM];//当前量程读数
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ModbusDemo.windows;
using ModbusDemo;
using ModbusDemo.MessageFormat;
namespace ModbusDemo.application
{
class ModbusToPool
{
public class pcModbusOperationPumb
{
public byte byModbusID;
public ushort[] usRegAddList;
public bool[] bGetStatus;
public bool[] bSetStatus;
public bool[] bOpenStatus;
public bool bCommunicationStatus;
public pcModbusOperationPumb(byte byInitModbusID, ushort[] usInitRegAddressInit, bool[] bInitOPen)
{
this.byModbusID = byInitModbusID;
for (int i = 0; i < usInitRegAddressInit.Length; i++)
{
this.usRegAddList[i] = usInitRegAddressInit[i];
this.bOpenStatus[i] = bInitOPen[i];
}
}
public void vGet_Module_Channel_Status()
{
ModbusComm.Modbus_ReadCoilsTask(out this.bGetStatus, this.byModbusID, this.usRegAddList[0], (ushort)this.usRegAddList.Length, out this.bCommunicationStatus);
}
public void vSet_Module_Channel_Status()
{
ModbusComm.Modbus_WriteMultipleCoils(this.byModbusID, this.usRegAddList[0], this.bSetStatus, out this.bCommunicationStatus);
}
}
public class pcReadPumbOtherData
{
public byte byModbusID;
public ushort[] usRegAddList;
public ushort[] usReadData;
public bool bCommunicationStatus;
public pcReadPumbOtherData(byte byInitModbusID, ushort[] usInitRegAddressInit)
{
this.byModbusID = byInitModbusID;
for (int i = 0; i < usInitRegAddressInit.Length; i++)
{
this.usRegAddList[i] = usInitRegAddressInit[i];
}
}
public void vRead_Pumb_Data()
{
ModbusComm.Modbus_ReadHoldingRegistersTask(out this.usReadData, this.byModbusID, this.usRegAddList[0], (ushort)this.usRegAddList.Length, out this.bCommunicationStatus);
}
}
public class pcPoolTemperature
{
public byte byModbusID;
public ushort usTemperRegAddress;
public ushort usTypeRegAddress;
public ushort[] usReadData;
public ushort[] usReadType;
public bool bCommunicationStatus;
public pcPoolTemperature(byte byInitModbusID, ushort usDataRegAddress, ushort usTypeAddress)
{
this.byModbusID = byInitModbusID;
this.usTemperRegAddress = usDataRegAddress;
this.usTypeRegAddress = usTypeAddress;
}
public void vRead_Pumb_Data()
{
ModbusComm.Modbus_ReadHoldingRegistersTask(out this.usReadData, this.byModbusID, this.usTemperRegAddress, 1, out this.bCommunicationStatus);
}
public void vRead_Pumb_Type()
{
ModbusComm.Modbus_ReadHoldingRegistersTask(out this.usReadType, this.byModbusID, this.usTypeRegAddress, 1, out this.bCommunicationStatus);
}
}
public class pcPoolLevel
{
public byte byModbusID;
public ushort[] usTemperRegAddress;
public ushort[] usTypeRegAddress;
public ushort[] usReadData;
public ushort[] usReadType;
public bool bCommunicationStatus;
public pcPoolLevel(byte byInitModbusID, ushort[] usDataRegAddress, ushort[] usDataTypeRegAddress)
{
this.byModbusID = byInitModbusID;
for (int i = 0; i < usDataRegAddress.Length; i++)
{
this.usTemperRegAddress[i] = usDataRegAddress[i];
this.usTypeRegAddress[i] = usDataTypeRegAddress[i];
}
}
public void vRead_Level_Data()
{
ModbusComm.Modbus_ReadHoldingRegistersTask(out this.usReadData, this.byModbusID, this.usTemperRegAddress[0], (ushort)this.usTemperRegAddress.Length, out this.bCommunicationStatus);
}
public void vRead_Level_Type()
{
ModbusComm.Modbus_ReadHoldingRegistersTask(out this.usReadType, this.byModbusID, this.usTypeRegAddress[0], (ushort)this.usTypeRegAddress.Length, out this.bCommunicationStatus);
}
}
}
}
......@@ -7,50 +7,235 @@ using System.Windows.Forms;
using ModbusDemo;
namespace ModbusDemo.application
{
class Pond
{
private string Sname;//池子的名称
private bool state;
private double Dlevel;//池子的液位
private double Lowwaterlevel;//液位最低水位
private double Peaklevel;//液位最高水位
private string Agitator;//搅拌器
private ushort current;//电流
private ushort Voltage;//电压
public string Sname1 { get => Sname; set => Sname = value; }
public bool State { get => state; set => state = value; }
public double Dlevel1 { get => Dlevel; set => Dlevel = value; }
public double Lowwaterlevel1 { get => Lowwaterlevel; set => Lowwaterlevel = value; }
public double Peaklevel1 { get => Peaklevel; set => Peaklevel = value; }
public ushort Voltage1 { get => Voltage; set => Voltage = value; }
public ushort Current { get => current; set => current = value; }
public string Agitator1 { get => Agitator; set => Agitator = value; }
//public class Agitator : ModbusAttribute //搅拌器
//{
// public bool state;
// public ushort[] current;//电流
// public ushort[] Voltage;//电压
//}
//public class pump : ModbusAttribute//泵
//{
// public bool state;
// public ushort[] current;//电流
// public ushort[] Voltage;//电压
//}
// public class Pond
// {
//private string Sname;//池子的名称
//private bool state;
//private double Dlevel;//池子的液位
//private double Lowwaterlevel;//液位最低水位
//private double Peaklevel;//液位最高水位
//private string Agitator;//搅拌器
//private ushort current;//电流
//private ushort Voltage;//电压
//private float vs;
//public class Level : ModbusAttribute //液位属性
//{
// public ushort[] level;//液位
// public ushort[] passageway; //液位通道
// public double[] Lowwaterlevel; // 液位最低水位
// public double[] Peaklevel; // 液位最高水位
//}
//public class ModbusAttribute //modbus属性
//public string Sname1 { get => Sname; set => Sname = value; }
//public bool State { get => state; set => state = value; }
//public double Dlevel1 { get => Dlevel; set => Dlevel = value; }
//public double Lowwaterlevel1 { get => Lowwaterlevel; set => Lowwaterlevel = value; }
//public double Peaklevel1 { get => Peaklevel; set => Peaklevel = value; }
//public ushort Voltage1 { get => Voltage; set => Voltage = value; }
//public ushort Current { get => current; set => current = value; }
//public string Agitator1 { get => Agitator; set => Agitator = value; }
//public float Vs { get => vs; set => vs = value; }
//public class Agitator : ModbusAttribute //搅拌器
//{
// public bool state;
// public ushort[] current;//电流
// public ushort[] Voltage;//电压
//}
//public class pump : ModbusAttribute//泵
//{
// public bool state;
// public ushort[] current;//电流
// public ushort[] Voltage;//电压
//}
//public class Level : ModbusAttribute //液位属性
//{
// public ushort[] level;//液位
// public ushort[] passageway; //液位通道
// public double[] Lowwaterlevel; // 液位最低水位
// public double[] Peaklevel; // 液位最高水位
//}
//public class ModbusAttribute //modbus属性
//{
// public byte[] SlaveAddress;
// public ushort[] RegisterAddress;
//}
//public class pcPool
//{
// public byte[] SlaveAddress;
// public ushort[] RegisterAddress;
// public pePondName ePondName;
// private double dPondCurentTemper1;
// private double dPondCurrentLevel1;
// public double dMaxlevel;//液位最低水位
// public double dMinlevel;//液位最高水位
// public double dMaxTemper;
// public double dMinTemper;
// public pcPump[] cPump;
// public pcAgitator[] cAgitator;
// public double dPondCurentTemper { get => dPondCurentTemper1; }
// public double dPondCurrentLevel { get => dPondCurrentLevel1; }
// public pcPool(pePondName eInitPondName)
// {
// this.ePondName = eInitPondName;
// }
//}
public class pcPump
{
public double dPumpCurrent;
public double dPumpVoltage;
public bool bPumpStatus;
public bool bPumpHasOpen;
public void vOpen_Pump()
{
}
public void vClose_Pump()
{
}
public void vGet_Pump_Status()
{
}
}
public class pcTemperatureData
{
public double Temperature;
}
public class pcLevelHigh
{
}
public class pcSensorModule
{
public double dCalculateData;
public peSensorType eSensorType;
public ushort[] usCollectData;
public ushort[] usGetCurrentType;
public byte bDataCollectModualID;
public ushort[] usDataRegAddress;
public ushort usTypeRegAddress;
//public bool ReadDataStatus;
public int uReadModbusStatus;
public pcSensorModule(peSensorType eInitSensorType,byte bInitModbusID, ushort[] usInitRegAddress,ushort usInitTypedefAddress)
{
this.eSensorType = eInitSensorType;
this.bDataCollectModualID = bInitModbusID;
this.usTypeRegAddress = usInitTypedefAddress;
for (ushort i = 0; i < usInitRegAddress.Length; i++)
{
this.usDataRegAddress[i] = usInitRegAddress[i];
}
}
public void vGet_CollectData()
{
//Form1.Modbus_ReadHoldingRegistersTask(out this.usCollectData, this.bDataCollectModualID, this.usDataRegAddress[0], ((ushort)this.usDataRegAddress.Length), out this.uReadModbusStatus);
}
public void vGet_Sensor_Type()
{
//Form1.Modbus_ReadHoldingRegistersTask(out this.usGetCurrentType, this.bDataCollectModualID, this.usTypeRegAddress, 1, out this.uReadModbusStatus);
}
public void vGetCalculate_Send_Data()
{
if (this.eSensorType == peSensorType.X14p)
{
//this.dCalculateData =
}
else if (this.eSensorType == peSensorType.X78C)
{
//this.dCalculateData =
}
}
}
public class pcControlModule
{
public peControlName eControlMachineName;
public bool bMachineStatus;
public bool[] bMachineOpenSatus;
public bool[] bGetChannelStatus;
public bool[] bSetChannelStatus;
public byte bControlModualID;
public ushort[] usRegNumberlist;
public ulong[] ulControlChannel;
public int uReadModbusStatus;
public pcControlModule(peControlName eInitMachineName,byte bInitModbusID, ushort[] usInitRegAddress,bool[] bDefineMachineOpenStatus)
{
this.eControlMachineName = eInitMachineName;
this.bControlModualID = bInitModbusID;
for (ushort i = 0; i < usInitRegAddress.Length; i++)
{
this.usRegNumberlist[i] = usInitRegAddress[i];
this.bMachineOpenSatus[i] = bDefineMachineOpenStatus[i];
}
}
public void vOpen_Machine()
{
}
public void vClose_Machine()
{
}
public void vGet_Machine_Modual_Channel_Status()
{
//Form1.Modbus_ReadCoilsTask(out this.bGetChannelStatus, this.bControlModualID,this.usRegNumberlist[0],(ushort)this.usRegNumberlist.Length, out this.uReadModbusStatus);
}
public void vSet_Machinae_Modual_Channel_Status()
{
//Form1.Modbus_WriteSingleCoil(out this.bGetChannelStatus[0], this.bControlModualID, this.usRegNumberlist[0], bSetChannelStatus[0], out this.uReadModbusStatus);
}
}
public enum peSensorType : sbyte
{
Idle = 0,
X14p,
X78C
}
public enum pePondName : sbyte
{
Idel = 0,
EastTransitPool,
WestTransitPool,
GritBasinPool,
OctagonalPool,
SlurryPool,
SeparateRoom,
FermentationPool,
DischargePool
}
public enum peControlName : sbyte
{
Idle = 0,
NorthSouthWater,
Pump0Machine = 10,
Pump1Machine,
Pump2Machine,
Pump3Machine,
Pump4Machine,
Pump5Machine,
Pump6Machine,
Pump7Machine,
Pump8Machine,
Pump9Machine,
Stir0Machine = 100,
Stir1Machine,
Stir2Machine,
Stir3Machine,
Stir4Machine,
Stir5Machine,
Stir6Machine,
Stir7Machine,
Stir8Machine,
Stir9Machine,
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ModbusDemo.application
{
public struct psTemperData
{
public byte byModbusID;
public ushort usTemperRegAddress;
public ushort usTypeRegAddress;
public psTemperData(byte bySetModbusID, ushort usSetTempRegAddress, ushort usSetRegAddress)
{
this.byModbusID = bySetModbusID;
this.usTemperRegAddress = usSetTempRegAddress;
this.usTypeRegAddress = usSetRegAddress;
}
}
public struct psBumpData
{
public byte byModbusID;
public ushort[] usRegAddList;
public bool[] bOpenStatus;
public psBumpData(byte byInitModbusID, ushort[] usInitRegAddressInit, bool[] bInitOPen)
{
this.byModbusID = byInitModbusID;
this.usRegAddList = usInitRegAddressInit;
this.bOpenStatus = bInitOPen;
}
}
public struct psLevel
{
public byte byModbusID;
public ushort[] usDataAddressList;
public ushort[] usTypeAddressList;
public psLevel(byte byInitModbusID, ushort[] usDataRegAddress, ushort[] usDataTypeRegAddress)
{
this.byModbusID = byInitModbusID;
this.usDataAddressList = usDataRegAddress;
this.usTypeAddressList = usDataTypeRegAddress;
}
}
//public struct psPumbPeration
//{
// byte byInitModbusID, ushort[] usInitRegAddressInit, bool[] bInitOPen
//}
static class pcPoolInit
{
private static psTemperData sTemper = new psTemperData(1, 2, 3);
private static ModbusToPool.pcPoolTemperature cPoolTemperature = new ModbusToPool.pcPoolTemperature(sTemper.byModbusID, sTemper.usTemperRegAddress, sTemper.usTypeRegAddress);
public static double Get_Current_temper()
{
cPoolTemperature.vRead_Pumb_Data();
cPoolTemperature.vRead_Pumb_Type();
return cPoolTemperature.usReadData[0];
}
public const sbyte PoolBumpNumber = 4;
static ushort[] Data = { 12, 4 };
static bool[] Regdat = { true, false };
private static psBumpData psBumpData = new psBumpData(1, Data, Regdat);
public static ModbusToPool.pcModbusOperationPumb[] cPumb = new ModbusToPool.pcModbusOperationPumb[PoolBumpNumber] { new ModbusToPool.pcModbusOperationPumb(psBumpData.byModbusID, psBumpData.usRegAddList, psBumpData.bOpenStatus),
new ModbusToPool.pcModbusOperationPumb(psBumpData.byModbusID, psBumpData.usRegAddList, psBumpData.bOpenStatus) ,
new ModbusToPool.pcModbusOperationPumb( psBumpData.byModbusID, psBumpData.usRegAddList, psBumpData.bOpenStatus) ,
new ModbusToPool.pcModbusOperationPumb( psBumpData.byModbusID, psBumpData.usRegAddList, psBumpData.bOpenStatus)
};
//public static void vBumpSetting()
//{
// cPumb[0].vGet_Module_Channel_Status();
//}
}
public class pcAgitator
{
private double[] dBumpCurrent;
public double dBumpVoltage;
public bool bBumpStatus;
public bool bAgitatorHasOpen;
public double[] DBumpCurrent = new double[pcPoolInit.PoolBumpNumber] { pcPoolInit.cPumb[0].byModbusID, pcPoolInit.cPumb[0].byModbusID , pcPoolInit.cPumb[0].byModbusID , pcPoolInit.cPumb[0].byModbusID };
public void vOpen_Agitator()
{
}
public void vClose_Agitator()
{
}
public void vGet_Agitator_Status()
{
}
}
public class pcPoolConfig
{
public class pcPool
{
public pePondName ePondName;
public double dMaxlevel;//液位最低水位
public double dMinlevel;//液位最高水位
public double dMaxTemper;
public double dMinTemper;
public pcPump[] cPump;
public pcAgitator[] cAgitator;
public double dPondCurrentLevel;
public double dPondCurentTemper { get => pcPoolInit.Get_Current_temper(); }
public pcPool(pePondName eInitPondName)
{
this.ePondName = eInitPondName;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net452" />
<package id="MQTTnet" version="2.8.5" targetFramework="net452" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net452" />
<package id="NModbus4" version="2.1.0" targetFramework="net452" />
</packages>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
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