Dreamine.PLC.Mitsubishi.MC
1.0.1
Dreamine.PLC.Mitsubishi.MC 산업 자동화 및 I/O 기능을 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
FakeMitsubishiMcTransport.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.PLC.Abstractions.Results;
2
3
namespace
Dreamine.PLC.Mitsubishi.MC.Transport
;
4
13
public
sealed
class
FakeMitsubishiMcTransport
:
IMitsubishiMcTransport
14
{
23
private
readonly Queue<byte[]>
_responses
=
new
();
32
private
readonly List<byte[]>
_sentFrames
=
new
();
33
42
public
bool
IsConnected
{
get
;
private
set
; }
43
52
public
IReadOnlyList<byte[]>
SentFrames
=>
_sentFrames
;
53
77
public
void
EnqueueResponse
(
byte
[] responseFrame)
78
{
79
ArgumentNullException.ThrowIfNull(responseFrame);
80
81
_responses
.Enqueue(responseFrame);
82
}
83
134
public
Task<PlcResult>
ConnectAsync
(
135
string
host,
136
int
port,
137
int
timeoutMs,
138
CancellationToken cancellationToken =
default
)
139
{
140
cancellationToken.ThrowIfCancellationRequested();
141
142
IsConnected
=
true
;
143
144
return
Task.FromResult(PlcResult.Success());
145
}
146
176
public
Task<PlcResult>
DisconnectAsync
(CancellationToken cancellationToken =
default
)
177
{
178
cancellationToken.ThrowIfCancellationRequested();
179
180
IsConnected
=
false
;
181
182
return
Task.FromResult(PlcResult.Success());
183
}
184
242
public
Task<PlcResult<byte[]>>
SendAndReceiveAsync
(
243
IReadOnlyList<byte> requestFrame,
244
int
receiveTimeoutMs,
245
int
retryCount,
246
CancellationToken cancellationToken =
default
)
247
{
248
ArgumentNullException.ThrowIfNull(requestFrame);
249
250
cancellationToken.ThrowIfCancellationRequested();
251
252
if
(!
IsConnected
)
253
{
254
return
Task.FromResult(
255
PlcResult<
byte
[]>.Failure(
"The fake Mitsubishi MC transport is not connected."
));
256
}
257
258
if
(requestFrame.Count == 0)
259
{
260
return
Task.FromResult(
261
PlcResult<
byte
[]>.Failure(
"The request frame must not be empty."
));
262
}
263
264
_sentFrames
.Add(requestFrame as
byte
[] ?? requestFrame.ToArray());
265
266
if
(
_responses
.Count == 0)
267
{
268
return
Task.FromResult(
269
PlcResult<
byte
[]>.Failure(
"No fake Mitsubishi MC response frame was queued."
));
270
}
271
272
return
Task.FromResult(
273
PlcResult<
byte
[]>.Success(
_responses
.Dequeue()));
274
}
275
291
public
ValueTask
DisposeAsync
()
292
{
293
IsConnected
=
false
;
294
_responses
.Clear();
295
_sentFrames
.Clear();
296
297
return
ValueTask.CompletedTask;
298
}
299
}
Dreamine.PLC.Mitsubishi.MC.Transport
Definition
FakeMitsubishiMcTransport.cs:3
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport
Definition
FakeMitsubishiMcTransport.cs:14
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.SendAndReceiveAsync
Task< PlcResult< byte[]> > SendAndReceiveAsync(IReadOnlyList< byte > requestFrame, int receiveTimeoutMs, int retryCount, CancellationToken cancellationToken=default)
Definition
FakeMitsubishiMcTransport.cs:242
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.SentFrames
IReadOnlyList< byte[]> SentFrames
Definition
FakeMitsubishiMcTransport.cs:52
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.DisposeAsync
ValueTask DisposeAsync()
Definition
FakeMitsubishiMcTransport.cs:291
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.EnqueueResponse
void EnqueueResponse(byte[] responseFrame)
Definition
FakeMitsubishiMcTransport.cs:77
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.IsConnected
bool IsConnected
Definition
FakeMitsubishiMcTransport.cs:42
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.DisconnectAsync
Task< PlcResult > DisconnectAsync(CancellationToken cancellationToken=default)
Definition
FakeMitsubishiMcTransport.cs:176
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport.ConnectAsync
Task< PlcResult > ConnectAsync(string host, int port, int timeoutMs, CancellationToken cancellationToken=default)
Definition
FakeMitsubishiMcTransport.cs:134
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport._responses
readonly Queue< byte[]> _responses
Definition
FakeMitsubishiMcTransport.cs:23
Dreamine.PLC.Mitsubishi.MC.Transport.FakeMitsubishiMcTransport._sentFrames
readonly List< byte[]> _sentFrames
Definition
FakeMitsubishiMcTransport.cs:32
Dreamine.PLC.Mitsubishi.MC.Transport.IMitsubishiMcTransport
Definition
IMitsubishiMcTransport.cs:14
Transport
FakeMitsubishiMcTransport.cs
다음에 의해 생성됨 :
1.17.0