将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using HslCommunication;
|
||||
using XP.Hardware.PLC.Configs;
|
||||
|
||||
namespace XP.Hardware.Plc.Abstractions
|
||||
{
|
||||
public interface IPlcClient : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// 连接状态
|
||||
/// </summary>
|
||||
bool IsConnected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用配置连接PLC
|
||||
/// </summary>
|
||||
/// <param name="config">PLC配置</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> ConnectAsync(PlcConfig config);
|
||||
|
||||
/// <summary>
|
||||
/// 断开连接
|
||||
/// </summary>
|
||||
void Disconnect();
|
||||
|
||||
/// <summary>
|
||||
/// 读取任意类型数据
|
||||
/// </summary>
|
||||
/// <typeparam name="T">期望的数据类型</typeparam>
|
||||
/// <param name="address">地址 (如 "DB1.0.5" 或 "DB1.0" for byte)</param>
|
||||
/// <returns></returns>
|
||||
Task<T> ReadAsync<T>(string address);
|
||||
|
||||
/// <summary>
|
||||
/// 写入任意类型数据
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型</typeparam>
|
||||
/// <param name="address">地址</param>
|
||||
/// <param name="value">值</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> WriteAsync<T>(string address, T value);
|
||||
|
||||
/// <summary>
|
||||
/// 按指定长度读取字符串 | Read string with specified length
|
||||
/// </summary>
|
||||
/// <param name="address">地址 | Address</param>
|
||||
/// <param name="length">字符串长度(字节数)| String length in bytes</param>
|
||||
/// <returns>读取的字符串 | Read string</returns>
|
||||
Task<string> ReadStringAsync(string address, ushort length);
|
||||
|
||||
/// <summary>
|
||||
/// 按指定长度写入字符串 | Write string with specified length
|
||||
/// </summary>
|
||||
/// <param name="address">地址 | Address</param>
|
||||
/// <param name="value">字符串值 | String value</param>
|
||||
/// <param name="length">字符串长度(字节数)| String length in bytes</param>
|
||||
/// <returns>是否成功 | Whether succeeded</returns>
|
||||
Task<bool> WriteStringAsync(string address, string value, ushort length);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 批量读取字节数据 (对应旧代码中的 ReadDatas)
|
||||
/// </summary>
|
||||
/// <param name="dbBlock">数据块</param>
|
||||
/// <param name="startAddress">起始地址</param>
|
||||
/// <param name="length">读取长度(字节)</param>
|
||||
/// <returns></returns>
|
||||
Task<byte[]> ReadBytesAsync(string dbBlock, int startAddress, int length);
|
||||
|
||||
/// <summary>
|
||||
/// 写入字节数据
|
||||
/// </summary>
|
||||
/// <param name="dbBlock">数据块</param>
|
||||
/// <param name="startAddress">起始地址</param>
|
||||
/// <param name="data">数据</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> WriteBytesAsync(string dbBlock, int startAddress, byte[] data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user