IDataTransfer.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace MECF.Framework.RT.Core.IoProviders.Common.Net
  6. {
  7. /// <summary>
  8. /// 用于PLC通讯及ModBus自定义数据类型的读写操作
  9. /// </summary>
  10. /// <remarks>
  11. /// 主要应用于设备实现设备类的自定义的数据类型读写,以此达到简化代码的操作,但是有一个前提,该数据处于连续的数据区块
  12. /// </remarks>
  13. /// <example>
  14. /// 此处举例读取三菱的自定义的数据,先实现接口,然后再读写操作
  15. /// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="IDataTransfer Example" title="DataMy示例" />
  16. /// 接下来就可以实现数据的读取了
  17. /// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="ReadCustomerExample" title="ReadCustomer示例" />
  18. /// </example>
  19. public interface IDataTransfer
  20. {
  21. /// <summary>
  22. /// 读取的数据长度,对于西门子,等同于字节数,对于三菱和Modbus为字节数的一半
  23. /// </summary>
  24. ushort ReadCount { get; }
  25. /// <summary>
  26. /// 从字节数组进行解析实际的对象
  27. /// </summary>
  28. /// <param name="Content">从远程读取的数据源</param>
  29. void ParseSource(byte[] Content);
  30. /// <summary>
  31. /// 将对象生成字符源,写入PLC中
  32. /// </summary>
  33. /// <returns>准备写入到远程的数据</returns>
  34. byte[] ToSource();
  35. }
  36. }