| | |
| | | #endregion |
| | | |
| | | #region ReadCustomer |
| | | /// <summary> |
| | | /// 读取自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。 |
| | | /// </summary> |
| | | /// <typeparam name="T">自定义的数据类型泛型。</typeparam> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <returns>成功返回自定义类型数据,失败抛出异常。</returns> |
| | | public override T ReadCustomer<T>(string address) |
| | | { |
| | | try |
| | |
| | | #endregion |
| | | |
| | | #region WriteCustomer |
| | | /// <summary> |
| | | /// 写入自定义类型的数据,该类型必须继承自IDataTransfer接口。 |
| | | /// </summary> |
| | | /// <typeparam name="T">自定义的数据类型泛型。</typeparam> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <param name="value">要写入数据。</param> |
| | | /// <returns>如果写入成功则返回true,失败则抛出异常。</returns> |
| | | public override bool WriteCustomer<T>(string address, [NotNull] T value) |
| | | { |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | |
| | | { |
| | | object? writeValueItem = propertyInfos[j].GetValue(value); |
| | | object? readValueItem = propertyInfos[j].GetValue(readValue); |
| | | if (writeValueItem.Equals(readValueItem)) |
| | | if (writeValueItem?.Equals(readValueItem) ?? false) |
| | | { |
| | | stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue))); |
| | | } |