Dreamine.IO.Fastech.Ethernet 1.0.1
Dreamine.IO.Fastech.Ethernet 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
FastechAnalogOutputChannel.cs
이 파일의 문서화 페이지로 가기
1using Dreamine.IO.Abstractions.Channels;
2using Dreamine.IO.Abstractions.Models;
3using Dreamine.IO.Abstractions.Results;
5
7
16public sealed class FastechAnalogOutputChannel : IAnalogOutputChannel
17{
27
52 internal FastechAnalogOutputChannel(FastechEthernetIoController controller)
53 {
54 _controller = controller ?? throw new ArgumentNullException(nameof(controller));
55 }
56
89 public async Task<IoResult<double>> ReadAsync(AnalogIoPoint point, CancellationToken cancellationToken = default)
90 {
91 var result = await _controller.ReadAnalogOutputsAsync([point], cancellationToken).ConfigureAwait(false);
92
93 if (!result.IsSuccess || result.Value is null)
94 {
95 return IoResult<double>.Failure(result.Message ?? "Failed to read the analog output.", result.ErrorCode);
96 }
97
98 return result.Value.Length == 1
99 ? IoResult<double>.Success(result.Value[0])
100 : IoResult<double>.Failure("The analog output response did not contain exactly one value.");
101 }
102
143 public Task<IoResult> WriteAsync(AnalogIoPoint point, double value, CancellationToken cancellationToken = default)
144 {
145 return WriteAsync(new Dictionary<AnalogIoPoint, double> { [point] = value }, cancellationToken);
146 }
147
180 public Task<IoResult> WriteAsync(IReadOnlyDictionary<AnalogIoPoint, double> values, CancellationToken cancellationToken = default)
181 {
182 return _controller.WriteAnalogOutputsAsync(values, cancellationToken);
183 }
184}
Task< IoResult > WriteAsync(IReadOnlyDictionary< AnalogIoPoint, double > values, CancellationToken cancellationToken=default)
async Task< IoResult< double > > ReadAsync(AnalogIoPoint point, CancellationToken cancellationToken=default)
Task< IoResult > WriteAsync(AnalogIoPoint point, double value, CancellationToken cancellationToken=default)