Browse Source

FxSerial驱动添加

mssql保留异常堆栈信息
pull/22/head
Kevin 7 years ago
parent
commit
92d4024e34
  1. 1
      .gitignore
  2. BIN
      SCADA/Program/.vs/DataExchange/v15/.suo
  3. BIN
      SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide
  4. BIN
      SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide-shm
  5. BIN
      SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide-wal
  6. 44
      SCADA/Program/DataExchange.sln
  7. 82
      SCADA/Program/DataHelper/MssqlFactory.cs
  8. 1405
      SCADA/Program/MelsecDriver/FxSerialReader.cs
  9. 61
      SCADA/Program/MelsecDriver/MelsecDriver.csproj
  10. 36
      SCADA/Program/MelsecDriver/Properties/AssemblyInfo.cs

1
.gitignore

@ -8,3 +8,4 @@ Desktop.ini
!*.dll
!*.bak
/.vs
/SCADA/Program/packages/Newtonsoft.Json.11.0.2

BIN
SCADA/Program/.vs/DataExchange/v15/.suo

Binary file not shown.

BIN
SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide

Binary file not shown.

BIN
SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide-shm

Binary file not shown.

BIN
SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide-wal

Binary file not shown.

44
SCADA/Program/DataExchange.sln

@ -39,6 +39,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ABPLCDriver", "ABPLCReader\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DDEDriver", "DDEDriver\DDEDriver.csproj", "{14938033-7870-477D-925C-A447933A44E7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MelsecDriver", "MelsecDriver\MelsecDriver.csproj", "{AE7D9641-3F7D-4282-B752-2FA14619CFBF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HslCommunication_Net45", "..\..\..\HslCommunication\HslCommunication_Net45\HslCommunication_Net45.csproj", "{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -359,6 +363,46 @@ Global
{14938033-7870-477D-925C-A447933A44E7}.Release|x64.ActiveCfg = Release|x86
{14938033-7870-477D-925C-A447933A44E7}.Release|x86.ActiveCfg = Release|x86
{14938033-7870-477D-925C-A447933A44E7}.Release|x86.Build.0 = Release|x86
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Itanium.ActiveCfg = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Itanium.Build.0 = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|x64.ActiveCfg = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|x64.Build.0 = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|x86.ActiveCfg = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Debug|x86.Build.0 = Debug|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Any CPU.Build.0 = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Itanium.ActiveCfg = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Itanium.Build.0 = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|x64.ActiveCfg = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|x64.Build.0 = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|x86.ActiveCfg = Release|Any CPU
{AE7D9641-3F7D-4282-B752-2FA14619CFBF}.Release|x86.Build.0 = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Itanium.ActiveCfg = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Itanium.Build.0 = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|x64.ActiveCfg = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|x64.Build.0 = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|x86.ActiveCfg = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Debug|x86.Build.0 = Debug|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Any CPU.Build.0 = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Itanium.ActiveCfg = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Itanium.Build.0 = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|x64.ActiveCfg = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|x64.Build.0 = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|x86.ActiveCfg = Release|Any CPU
{7F8029DA-1B94-4B1D-B91F-5B21DBF2F3A2}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

82
SCADA/Program/DataHelper/MssqlFactory.cs

@ -12,6 +12,11 @@ namespace DatabaseLib
DataHelper.AddErrorLog(new Exception(message));
}
public void CallException(Exception e)
{
DataHelper.AddErrorLog(e);
}
public bool ConnectionTest()
{
//创建连接对象
@ -30,7 +35,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(e.Message);
CallException(e);
}
}
//mySqlConnection is a SqlConnection object
@ -77,7 +82,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(SQL + " " + e.Message);
CallException(new Exception(SQL + " " + e.Message, e));
}
}
return ds;
@ -104,7 +109,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(SQL + " " + e.Message);
CallException(new Exception(SQL + " " + e.Message, e));
}
}
return ds;
@ -135,7 +140,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(SQLs + " " + e.Message);
CallException(new Exception(SQLs + " " + e.Message, e));
}
}
return ds;
@ -162,7 +167,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(SQL + " " + e.Message);
CallException(new Exception(SQL + " " + e.Message, e));
}
}
return dt;
@ -198,7 +203,7 @@ namespace DatabaseLib
{
if (sqlT != null)
sqlT.Rollback();
CallException(SQL + " " + e.Message);
CallException(new Exception(SQL + " " + e.Message, e));
return -1;
}
return res;
@ -235,7 +240,7 @@ namespace DatabaseLib
{
if (sqlT != null)
sqlT.Rollback();
CallException(SQLs + " " + e.Message);
CallException(new Exception(SQLs + " " + e.Message, e));
res = -1;
}
return res;
@ -278,7 +283,7 @@ namespace DatabaseLib
{
if (sqlT != null)
sqlT.Rollback();
CallException(SQLs + " " + e.Message);
CallException(new Exception(SQLs + " " + e.Message, e));
res = -1;
}
return res;
@ -308,7 +313,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(SQL + " " + e.Message);
CallException(new Exception(SQL + " " + e.Message, e));
}
}
@ -345,7 +350,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(sSQL + " " + e.Message);
CallException(new Exception(sSQL + " " + e.Message, e));
return null;
}
}
@ -379,7 +384,7 @@ namespace DatabaseLib
{
if (sqlT != null)
sqlT.Rollback();
CallException(sSQL + " " + e.Message);
CallException(new Exception(sSQL + " " + e.Message, e));
return null;
}
}
@ -423,7 +428,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return -1;
}
}
@ -450,7 +455,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return false;
}
}
@ -489,7 +494,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -518,7 +523,7 @@ namespace DatabaseLib
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -555,7 +560,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -586,7 +591,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -624,7 +629,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -662,7 +667,7 @@ namespace DatabaseLib
}
catch (Exception e)
{
CallException(ProName + " " + e.Message);
CallException(new Exception(ProName + " " + e.Message, e));
return null;
}
}
@ -701,7 +706,44 @@ namespace DatabaseLib
if (sqlT != null)
sqlT.Rollback();
m_Conn.Close();
CallException(e.Message);
CallException(e);
return false;
}
}
}
public bool BulkCopy(DataTable reader, string tableName, string command = null, SqlBulkCopyOptions options = SqlBulkCopyOptions.Default)
{
using (SqlConnection m_Conn = new SqlConnection(DataHelper.ConnectString))
{
SqlTransaction sqlT = null;
try
{
if (m_Conn.State == ConnectionState.Closed)
m_Conn.Open();
sqlT = m_Conn.BeginTransaction();
if (!string.IsNullOrEmpty(command))
{
SqlCommand cmd = new SqlCommand(command, m_Conn);
cmd.Transaction = sqlT;
cmd.ExecuteNonQuery();
}
SqlBulkCopy copy = new SqlBulkCopy(m_Conn, options, sqlT);
copy.DestinationTableName = tableName;
copy.BulkCopyTimeout = 100000;
//copy.BatchSize = _capacity;
copy.WriteToServer(reader);//如果写入失败,考虑不能无限增加线程数
//Clear();
sqlT.Commit();
m_Conn.Close();
return true;
}
catch (Exception e)
{
if (sqlT != null)
sqlT.Rollback();
m_Conn.Close();
CallException(e);
return false;
}
}

1405
SCADA/Program/MelsecDriver/FxSerialReader.cs

File diff suppressed because it is too large

61
SCADA/Program/MelsecDriver/MelsecDriver.csproj

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{AE7D9641-3F7D-4282-B752-2FA14619CFBF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MelsecDriver</RootNamespace>
<AssemblyName>MelsecDriver</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="FxSerialReader.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\HslCommunication\HslCommunication_Net45\HslCommunication_Net45.csproj">
<Project>{7f8029da-1b94-4b1d-b91f-5b21dbf2f3a2}</Project>
<Name>HslCommunication_Net45</Name>
</ProjectReference>
<ProjectReference Include="..\DataService\DataService.csproj">
<Project>{8965E389-6466-4B30-BD43-83C909044637}</Project>
<Name>DataService</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

36
SCADA/Program/MelsecDriver/Properties/AssemblyInfo.cs

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MelsecDriver")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MelsecDriver")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ae7d9641-3f7d-4282-b752-2fa14619cfbf")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Loading…
Cancel
Save