Commit 15f33fa8 顾剑亮

update

1 个父辈 8dcc919c
此文件类型无法预览
......@@ -12,12 +12,18 @@ namespace Asa.IOModule
public class AIOBOX
{
/// <summary>
/// 自动读取DI委托
/// 自动读取DIO委托
/// </summary>
/// <param name="box">AIOBOX</param>
/// <param name="sta">所有DI状态</param>
/// <param name="sta"></param>
public delegate void DIO_Changed(AIOBOX box, Box_Sta[] sta);
/// <summary>
/// 自动读取AIO委托
/// </summary>
/// <param name="box">AIOBOX</param>
/// <param name="val"></param>
public delegate void AIO_Changed(AIOBOX box, int[] val);
/// <summary>
/// 自动读取DI事件触发
/// </summary>
public event DIO_Changed DI_Changed_Event;
......@@ -25,6 +31,11 @@ namespace Asa.IOModule
/// 自动读取DO事件触发
/// </summary>
public event DIO_Changed DO_Changed_Event;
/// <summary>
/// 自动读取AI事件触发
/// </summary>
public event AIO_Changed AI_Changed_Event;
private Socket _client; //客户端
private bool _loop;
......@@ -69,7 +80,7 @@ namespace Asa.IOModule
/// <summary>
/// 输入主动上传
/// </summary>
public bool Upload { set; get; } = true;
public bool Upload { set; get; } = false;
/// <summary>
/// 是否连接
......@@ -565,7 +576,6 @@ namespace Asa.IOModule
}
Array.Copy(staDO, 0, _stateDO, 0, staDO.Length);
DO_Changed_Event?.Invoke(this, staDO);
//System.Threading.Tasks.Task.Run(() => DO_Changed_Event?.Invoke(this, staDO));
}
else if (cmd[7] == 2) //ReadDI
......@@ -599,9 +609,52 @@ namespace Asa.IOModule
//System.Threading.Tasks.Task.Run(() => DO_Changed_Event?.Invoke(this, staDO));
}
}
else if (cmd[7] == 15) //WriteDO Multiple
else if (cmd[7] == 4) //ReadAI
{
//没有返回具体数值,只有寄存器个数,需要主动读取
if (_valueAI.Length * 2 == count)
{
_valueAI[0] = cmd[9] * 256 + cmd[10];
_valueAI[1] = cmd[11] * 256 + cmd[12];
_valueAI[2] = cmd[13] * 256 + cmd[14];
_valueAI[3] = cmd[15] * 256 + cmd[16];
}
int[] valAI = new int[_valueAI.Length];
for (int i = 0; i < count; i++)
{
valAI[idx++] = cmd[9 + i * 2] * 256 + cmd[9 + i * 2 + 1];
}
Array.Copy(valAI, 0, _valueAI, 0, valAI.Length);
AI_Changed_Event?.Invoke(this, valAI);
//try
//{
// if (countInput * 2 == buff[8])
// {
// _valueAI[0] = buff[9] * 256 + buff[10];
// _valueAI[1] = buff[11] * 256 + buff[12];
// _valueAI[2] = buff[13] * 256 + buff[14];
// _valueAI[3] = buff[15] * 256 + buff[16];
// }
// if (_log != null)
// {
// if (_logType == LogType.All)
// _log.OutData("Read All AI");
// }
//}
//catch (Exception ex)
//{
// if (_log != null)
// _log.OutError(ex.Message);
//}
}
}
catch (Exception ex)
......
......@@ -11,7 +11,7 @@
<AssemblyName>Asa.IOModule.AIOBOX</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<Deterministic>false</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
......
......@@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.4.0.8")]
[assembly: AssemblyFileVersion("2.4.0.8")]
[assembly: AssemblyVersion("2.4.*")]
//[assembly: AssemblyVersion("2.4.0.8")]
//[assembly: AssemblyFileVersion("2.4.0.8")]
......@@ -11,10 +11,17 @@
</member>
<member name="T:Asa.IOModule.AIOBOX.DIO_Changed">
<summary>
自动读取DI委托
自动读取DIO委托
</summary>
<param name="box">AIOBOX</param>
<param name="sta">所有DI状态</param>
<param name="sta"></param>
</member>
<member name="T:Asa.IOModule.AIOBOX.AIO_Changed">
<summary>
自动读取AIO委托
</summary>
<param name="box">AIOBOX</param>
<param name="val"></param>
</member>
<member name="E:Asa.IOModule.AIOBOX.DI_Changed_Event">
<summary>
......@@ -26,6 +33,11 @@
自动读取DO事件触发
</summary>
</member>
<member name="E:Asa.IOModule.AIOBOX.AI_Changed_Event">
<summary>
自动读取AI事件触发
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.#ctor(System.String)">
<summary>
零点IO模块操作类
......
......@@ -14,3 +14,4 @@ C:\Neotel\Program\AIOBOX\AIOBOX\obj\Debug\AIOBOX.csproj.CoreCompileInputs.cache
C:\Neotel\Program\AIOBOX\AIOBOX\obj\Debug\AIOBOX.csproj.CopyComplete
C:\Neotel\Program\AIOBOX\AIOBOX\obj\Debug\Asa.IOModule.AIOBOX.dll
C:\Neotel\Program\AIOBOX\AIOBOX\obj\Debug\Asa.IOModule.AIOBOX.pdb
C:\Neotel\Program\AIOBOX\AIOBOX\obj\Debug\AIOBOX.csprojAssemblyReference.cache
......@@ -552,7 +552,7 @@ namespace Asa.IOModule
if (_logType == LogType.All)
_log.OutData("Receive ", buff);
}
if (buff.Length < 7)
if (buff.Length < 8)
continue;
if (buff[7] == 1)
......
9428b515b65d7e804ec8e058ca7770707ab7571d
1e58d69b3aacc09af3835a9118a926b9ef6e0c3a
......@@ -4,3 +4,10 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AIOBOX\AIOBOX_old\bin\Debug\Asa
D:\OneDrive - 上海挚锦科技有限公司\SMD\AIOBOX\AIOBOX_old\obj\Debug\AIOBOX_old.csproj.CoreCompileInputs.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AIOBOX\AIOBOX_old\obj\Debug\Asa.IOModule.AIOBOX.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AIOBOX\AIOBOX_old\obj\Debug\Asa.IOModule.AIOBOX.pdb
C:\Neotel\Program\AIOBOX\AIOBOX_old\bin\Debug\Asa.IOModule.AIOBOX.xml
C:\Neotel\Program\AIOBOX\AIOBOX_old\bin\Debug\Asa.IOModule.AIOBOX.dll
C:\Neotel\Program\AIOBOX\AIOBOX_old\bin\Debug\Asa.IOModule.AIOBOX.pdb
C:\Neotel\Program\AIOBOX\AIOBOX_old\obj\Debug\AIOBOX_old.csprojAssemblyReference.cache
C:\Neotel\Program\AIOBOX\AIOBOX_old\obj\Debug\AIOBOX_old.csproj.CoreCompileInputs.cache
C:\Neotel\Program\AIOBOX\AIOBOX_old\obj\Debug\Asa.IOModule.AIOBOX.dll
C:\Neotel\Program\AIOBOX\AIOBOX_old\obj\Debug\Asa.IOModule.AIOBOX.pdb
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!