Fix
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>net6.0</TargetFrameworks>
|
||||||
|
<LangVersion>10.0</LangVersion>
|
||||||
|
<AssemblyName>Modbus.Net.BigEndian3412</AssemblyName>
|
||||||
|
<RootNamespace>Modbus.Net.BigEndian3412</RootNamespace>
|
||||||
|
<PackageId>Modbus.Net.BigEndian3412</PackageId>
|
||||||
|
<Version>1.4.1</Version>
|
||||||
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
|
<Company>Hangzhou Delian Science Technology Co.,Ltd.</Company>
|
||||||
|
<Product>Modbus.Net.Modbus</Product>
|
||||||
|
<Description>Modbus.Net Modbus Implementation</Description>
|
||||||
|
<Copyright>Copyright 2023 Hangzhou Delian Science Technology Co.,Ltd.</Copyright>
|
||||||
|
<PackageProjectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net/Modbus.Net.BigEndian3412</PackageProjectUrl>
|
||||||
|
<RepositoryUrl>https://github.com/parallelbgls/Modbus.Net</RepositoryUrl>
|
||||||
|
<RepositoryType>git</RepositoryType>
|
||||||
|
<PackageTags>hardware communicate protocol modbus Delian</PackageTags>
|
||||||
|
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
|
||||||
|
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||||
|
<IncludeSymbols>True</IncludeSymbols>
|
||||||
|
<IncludeSource>True</IncludeSource>
|
||||||
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
|
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Modbus.Net\Modbus.Net.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="README.md" Pack="true" PackagePath=""/>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Modbus.Net
|
||||||
|
{
|
||||||
|
public partial class Endian
|
||||||
|
{
|
||||||
|
public const int BigEndian3412 = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BigEndian3412ValueHelper : BigEndianLsbValueHelper
|
||||||
|
{
|
||||||
|
private static BigEndian3412ValueHelper _bigEndian3412Instance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造器
|
||||||
|
/// </summary>
|
||||||
|
protected BigEndian3412ValueHelper()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 覆写的实例获取
|
||||||
|
/// </summary>
|
||||||
|
protected override ValueHelper _Instance => _bigEndian3412Instance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否为大端
|
||||||
|
/// </summary>
|
||||||
|
protected new bool LittleEndian => false;
|
||||||
|
|
||||||
|
protected new bool LittleEndianBit => false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 覆盖的获取实例的方法
|
||||||
|
/// </summary>
|
||||||
|
public new static BigEndian3412ValueHelper Instance
|
||||||
|
=> _bigEndian3412Instance ?? (_bigEndian3412Instance = new BigEndian3412ValueHelper());
|
||||||
|
|
||||||
|
public override float GetFloat(byte[] data, ref int pos)
|
||||||
|
{
|
||||||
|
Array.Reverse(data, pos, 4);
|
||||||
|
byte temp;
|
||||||
|
temp = data[pos]; data[pos] = data[pos+2]; data[pos+2] = temp;
|
||||||
|
temp = data[pos+1]; data[pos+1] = data[pos+3]; data[pos+3] = temp;
|
||||||
|
var t = BitConverter.ToSingle(data, pos);
|
||||||
|
temp = data[pos]; data[pos] = data[pos+2]; data[pos+2] = temp;
|
||||||
|
temp = data[pos+1]; data[pos+1] = data[pos+3]; data[pos+3] = temp;
|
||||||
|
Array.Reverse(data, pos, 4);
|
||||||
|
pos += 4;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
Modbus.Net/Modbus.Net.BigEndian3412/README.md
Normal file
5
Modbus.Net/Modbus.Net.BigEndian3412/README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Modbus.Net.BigEndian3412
|
||||||
|
===================
|
||||||
|
Self defined EndianHelper implementation of Modbus.Net
|
||||||
|
|
||||||
|
Doc has been moved to wiki.
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
Modbus.Net.Modbus
|
Modbus.Net.Modbus
|
||||||
===================
|
===================
|
||||||
[](https://www.nuget.org/packages/Modbus.Net.Modbus.NA200H/)
|
|
||||||
|
|
||||||
NA200H Implementation of Modbus.Net
|
NA200H Implementation of Modbus.Net
|
||||||
|
|
||||||
Doc has been moved to wiki.
|
Doc has been moved to wiki.
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<Product>Modbus.Net.Modbus</Product>
|
<Product>Modbus.Net.Modbus</Product>
|
||||||
<Description>Modbus.Net Modbus Implementation</Description>
|
<Description>Modbus.Net Modbus Implementation</Description>
|
||||||
<Copyright>Copyright 2023 Hangzhou Delian Science Technology Co.,Ltd.</Copyright>
|
<Copyright>Copyright 2023 Hangzhou Delian Science Technology Co.,Ltd.</Copyright>
|
||||||
<PackageProjectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net/Modbus.Net.Modbus.NA200H</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net/Modbus.Net.Modbus.SelfDefinedSample</PackageProjectUrl>
|
||||||
<RepositoryUrl>https://github.com/parallelbgls/Modbus.Net</RepositoryUrl>
|
<RepositoryUrl>https://github.com/parallelbgls/Modbus.Net</RepositoryUrl>
|
||||||
<RepositoryType>git</RepositoryType>
|
<RepositoryType>git</RepositoryType>
|
||||||
<PackageTags>hardware communicate protocol modbus Delian</PackageTags>
|
<PackageTags>hardware communicate protocol modbus Delian</PackageTags>
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
Modbus.Net.Modbus
|
Modbus.Net.Modbus
|
||||||
===================
|
===================
|
||||||
[](https://www.nuget.org/packages/Modbus.Net.Modbus.SelfDefinedSample/)
|
|
||||||
|
|
||||||
Self defined function get time and set time implementation of Modbus.Net
|
Self defined function get time and set time implementation of Modbus.Net
|
||||||
|
|
||||||
Doc has been moved to wiki.
|
Doc has been moved to wiki.
|
||||||
@@ -36,6 +36,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.Modbus.SelfDefin
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "h-opc", "..\h-opc\h-opc\h-opc.csproj", "{DC6425E4-1409-488D-A014-4DCC909CF542}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "h-opc", "..\h-opc\h-opc\h-opc.csproj", "{DC6425E4-1409-488D-A014-4DCC909CF542}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.BigEndian3412", "Modbus.Net.BigEndian3412\Modbus.Net.BigEndian3412.csproj", "{D48D4F79-1DA2-4C91-A9EE-FDCAEC09E808}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -90,6 +92,10 @@ Global
|
|||||||
{DC6425E4-1409-488D-A014-4DCC909CF542}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{DC6425E4-1409-488D-A014-4DCC909CF542}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{DC6425E4-1409-488D-A014-4DCC909CF542}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{DC6425E4-1409-488D-A014-4DCC909CF542}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{DC6425E4-1409-488D-A014-4DCC909CF542}.Release|Any CPU.Build.0 = Release|Any CPU
|
{DC6425E4-1409-488D-A014-4DCC909CF542}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D48D4F79-1DA2-4C91-A9EE-FDCAEC09E808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D48D4F79-1DA2-4C91-A9EE-FDCAEC09E808}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D48D4F79-1DA2-4C91-A9EE-FDCAEC09E808}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D48D4F79-1DA2-4C91-A9EE-FDCAEC09E808}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -55,20 +55,32 @@ namespace Modbus.Net
|
|||||||
|
|
||||||
public static Endian Parse(string value)
|
public static Endian Parse(string value)
|
||||||
{
|
{
|
||||||
if (typeof(Endian).GetField(value) != null)
|
var Assemblies = AssemblyHelper.GetAllLibraryAssemblies();
|
||||||
|
foreach (var assembly in Assemblies)
|
||||||
{
|
{
|
||||||
return (int)typeof(Endian).GetField(value).GetValue(null);
|
if (assembly.GetType("Modbus.Net.Endian")?.GetField(value) != null)
|
||||||
|
{
|
||||||
|
return (int)assembly.GetType("Modbus.Net.Endian").GetField(value).GetValue(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
throw new NotSupportedException("Endian name " + value + " is not supported.");
|
throw new NotSupportedException("Endian name " + value + " is not supported.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
foreach (var field in typeof(Endian).GetFields())
|
var Assemblies = AssemblyHelper.GetAllLibraryAssemblies();
|
||||||
|
foreach (var assembly in Assemblies)
|
||||||
{
|
{
|
||||||
if ((int)field.GetValue(null) == Value)
|
var endianType = assembly.GetType("Modbus.Net.Endian");
|
||||||
|
if (endianType != null)
|
||||||
{
|
{
|
||||||
return field.Name;
|
foreach (var field in endianType.GetFields())
|
||||||
|
{
|
||||||
|
if ((int)field.GetValue(null) == Value)
|
||||||
|
{
|
||||||
|
return field.Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user