mirror of
https://github.com/DarthAffe/OBD.NET.git
synced 2025-12-12 16:58:30 +00:00
This commit is contained in:
parent
d2c2b8456f
commit
6728f6413d
@ -222,22 +222,27 @@ namespace OBD.NET.Devices
|
||||
while (!commandCancellationToken.IsCancellationRequested)
|
||||
{
|
||||
currentCommand = null;
|
||||
if(commandQueue.TryTake(out currentCommand, Timeout.Infinite, commandCancellationToken.Token))
|
||||
try
|
||||
{
|
||||
Logger?.WriteLine("Writing Command: '" + currentCommand.CommandText.Replace('\r', '\'') + "'", OBDLogLevel.Verbose);
|
||||
|
||||
if (Connection.IsAsync)
|
||||
if (commandQueue.TryTake(out currentCommand, Timeout.Infinite, commandCancellationToken.Token))
|
||||
{
|
||||
await Connection.WriteAsync(Encoding.ASCII.GetBytes(currentCommand.CommandText));
|
||||
}
|
||||
else
|
||||
{
|
||||
Connection.Write(Encoding.ASCII.GetBytes(currentCommand.CommandText));
|
||||
Logger?.WriteLine("Writing Command: '" + currentCommand.CommandText.Replace('\r', '\'') + "'", OBDLogLevel.Verbose);
|
||||
|
||||
if (Connection.IsAsync)
|
||||
{
|
||||
await Connection.WriteAsync(Encoding.ASCII.GetBytes(currentCommand.CommandText));
|
||||
}
|
||||
else
|
||||
{
|
||||
Connection.Write(Encoding.ASCII.GetBytes(currentCommand.CommandText));
|
||||
|
||||
}
|
||||
//wait for command to finish
|
||||
commandFinishedEvent.WaitOne();
|
||||
}
|
||||
//wait for command to finish
|
||||
commandFinishedEvent.WaitOne();
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{/*ignore, because it is thrown when the cancellation token is canceled*/}
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,6 +251,7 @@ namespace OBD.NET.Devices
|
||||
/// </summary>
|
||||
public virtual void Dispose()
|
||||
{
|
||||
commandQueue.CompleteAdding();
|
||||
commandCancellationToken?.Cancel();
|
||||
commandWorkerTask?.Wait();
|
||||
Connection?.Dispose();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user