Compare commits
2 Commits
v1.1.0-pre
...
v1.1.0-pre
Author | SHA1 | Date | |
---|---|---|---|
582412f4dc | |||
3231f4822f |
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace Nefarius.Peripherals.SerialPort;
|
namespace Nefarius.Peripherals.SerialPort;
|
||||||
|
|
||||||
@ -22,4 +23,14 @@ public class CommPortException : ApplicationException
|
|||||||
public CommPortException(Exception e) : base("Receive Thread Exception", e)
|
public CommPortException(Exception e) : base("Receive Thread Exception", e)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CommPortException(string message, int error) : base(message)
|
||||||
|
{
|
||||||
|
Win32Error = error;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Win32 error that caused the exception.
|
||||||
|
/// </summary>
|
||||||
|
public int Win32Error { get; } = Marshal.GetLastWin32Error();
|
||||||
}
|
}
|
@ -27,7 +27,9 @@
|
|||||||
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.123">
|
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.123">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="61.0.15-preview" />
|
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="61.0.15-preview">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
<PackageReference Include="System.Memory" Version="4.5.5" />
|
<PackageReference Include="System.Memory" Version="4.5.5" />
|
||||||
<PackageReference Include="MinVer" Version="5.0.0">
|
<PackageReference Include="MinVer" Version="5.0.0">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
@ -70,8 +70,12 @@ public partial class SerialPort : IDisposable
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hPort = PInvoke.CreateFile(PortName,
|
_hPort = PInvoke.CreateFile(PortName,
|
||||||
(uint)(FILE_ACCESS_RIGHTS.FILE_GENERIC_READ | FILE_ACCESS_RIGHTS.FILE_GENERIC_WRITE), 0,
|
(uint)(FILE_ACCESS_RIGHTS.FILE_GENERIC_READ | FILE_ACCESS_RIGHTS.FILE_GENERIC_WRITE),
|
||||||
null, FILE_CREATION_DISPOSITION.OPEN_EXISTING, FILE_FLAGS_AND_ATTRIBUTES.FILE_FLAG_OVERLAPPED, null);
|
0,
|
||||||
|
null,
|
||||||
|
FILE_CREATION_DISPOSITION.OPEN_EXISTING, FILE_FLAGS_AND_ATTRIBUTES.FILE_FLAG_OVERLAPPED,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
if (_hPort.IsInvalid)
|
if (_hPort.IsInvalid)
|
||||||
{
|
{
|
||||||
@ -80,7 +84,7 @@ public partial class SerialPort : IDisposable
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new CommPortException("Port Open Failure");
|
throw new CommPortException("Port Open Failure", Marshal.GetLastWin32Error());
|
||||||
}
|
}
|
||||||
|
|
||||||
_online = true;
|
_online = true;
|
||||||
|
Reference in New Issue
Block a user