Releases: smdn/Smdn.Net.SkStackIP
Releases · smdn/Smdn.Net.SkStackIP
Smdn.Net.SkStackIP version 1.5.2
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
index e890ee7..88d40c4 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
@@ -1,510 +1,510 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.5.1)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.5.2)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.5.1.0
-// InformationalVersion: 1.5.1+4e659267f00877b910ce282f3bebfb7dcb3e61a9
+// AssemblyVersion: 1.5.2.0
+// InformationalVersion: 1.5.2+e20e0c7c296fb514b9b1ed1a62fa9dbb6ecce93f
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
public IEnumerable<int> EnumerateScanDurationFactors() {}
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public SkStackEventNumber PanaSessionState { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, int channelNumber, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, Physi...Smdn.Net.SkStackIP version 1.5.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-06-21 update assembly version
- 2025-06-21 add missing null state attribute
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
index f8132cb..e890ee7 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net8.0.apilist.cs
@@ -1,509 +1,510 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.5.0)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.5.1)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.5.0.0
-// InformationalVersion: 1.5.0+631c22046275c09f042cc7f5d6d1e8d6af6500d7
+// AssemblyVersion: 1.5.1.0
+// InformationalVersion: 1.5.1+4e659267f00877b910ce282f3bebfb7dcb3e61a9
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
public IEnumerable<int> EnumerateScanDurationFactors() {}
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public SkStackEventNumber PanaSessionState { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, int channelNumber, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, int channelNumber, int pan...Smdn.Net.SkStackIP version 1.5.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-06-21 expose SkStackClient.ThrowIfPanaSessionNotEstablished and mark ThrowIfPanaSessionIsNotEstablished obsolete
- 2025-06-21 expose SkStackClient.ThrowIfPanaSessionAlreadyEstablished
- 2025-06-21 update assembly version
- 2025-06-21 introduce SkStackPanaSessionStateException and its derivatives
- 2025-06-18 add SkStackClient.PanaSessionState
- 2025-06-06 add CompatibilitySuppressions.xml
- 2025-06-06 fix typo and replace to more better word
- 2025-04-21 fix typo in comment
- 2024-12-12 drop target framework net6.0
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
deleted file mode 100644
index 8058356..0000000
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
+++ /dev/null
@@ -1,482 +0,0 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.4.0)
-// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.4.0.0
-// InformationalVersion: 1.4.0+0042217f1f00329fae1eb89b19f6739d41ff5b21
-// TargetFramework: .NETCoreApp,Version=v6.0
-// Configuration: Release
-// Referenced assemblies:
-// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
-// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
-// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
-// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
-// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
-// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-#nullable enable annotations
-
-using System;
-using System.Buffers;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics.CodeAnalysis;
-using System.IO;
-using System.IO.Pipelines;
-using System.Net;
-using System.Net.NetworkInformation;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.Extensions.Logging;
-using Polly;
-using Smdn.Net.SkStackIP;
-using Smdn.Net.SkStackIP.Protocol;
-
-namespace Smdn.Net.SkStackIP {
- public enum SkStackERXUDPDataFormat : int {
- Binary = 0,
- HexAsciiText = 1,
- }
-
- public enum SkStackErrorCode : int {
- ER01 = 1,
- ER02 = 2,
- ER03 = 3,
- ER04 = 4,
- ER05 = 5,
- ER06 = 6,
- ER07 = 7,
- ER08 = 8,
- ER09 = 9,
- ER10 = 10,
- Undefined = 0,
- }
-
- public enum SkStackEventNumber : byte {
- ActiveScanCompleted = 34,
- BeaconReceived = 32,
- EchoRequestReceived = 5,
- EnergyDetectScanCompleted = 31,
- NeighborAdvertisementReceived = 2,
- NeighborSolicitationReceived = 1,
- PanaSessionEstablishmentCompleted = 37,
- PanaSessionEstablishmentError = 36,
- PanaSessionExpired = 41,
- PanaSessionTerminationCompleted = 39,
- PanaSessionTerminationRequestReceived = 38,
- PanaSessionTerminationTimedOut = 40,
- TransmissionTimeControlLimitationActivated = 50,
- TransmissionTimeControlLimitationDeactivated = 51,
- UdpSendCompleted = 33,
- Undefined = 0,
- WakeupSignalReceived = 192,
- }
-
- public enum SkStackResponseStatus : int {
- Fail = -1,
- Ok = 1,
- Undetermined = 0,
- }
-
- public enum SkStackUdpEncryption : byte {
- EncryptIfAble = 2,
- ForceEncrypt = 1,
- ForcePlainText = 0,
- }
-
- public enum SkStackUdpPortHandle : byte {
- Handle1 = 1,
- Handle2 = 2,
- Handle3 = 3,
- Handle4 = 4,
- Handle5 = 5,
- Handle6 = 6,
- None = 0,
- }
-
- public abstract class SkStackActiveScanOptions : ICloneable {
- public static SkStackActiveScanOptions Default { get; }
- public static SkStackActiveScanOptions Null { get; }
- public static SkStackActiveScanOptions ScanUntilFind { get; }
-
- public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, PhysicalAddress paaMacAddress) {}
- public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, Predicate<SkStackPanDescription>? paaSelector = null) {}
- public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
- public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
- public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
- public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
-
- protected SkStackActiveScanOptions() {}
-
- public abstract SkStackActiveScanOptions Clone();
- public IEnumerable<int> EnumerateScanDurationFactors() {}
- object ICloneable.Clone() {}
- }
-
- public class SkStackClient : IDisposable {
- public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
- public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
- public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
-
- public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
- public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
- public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
- public event EventHandler<SkStackEventArgs>? Slept;
- public event EventHandler<SkStackEventArgs>? WokeUp;
-
- public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
- public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
-
- public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
- [MemberNotNullWhen(true, "PanaSessionPeerAddress")]
- public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
- protected ILogger? Logger { get; }
- public IPAddress? PanaSessionPeerAddress { get; }
- public TimeSpan ReceiveResponseDelay { get; set; }
- public TimeSpan ReceiveUdpPollingInterval { get; set; }
- public ISynchronizeInvoke? SynchronizingObject { get; set; }
-
- public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
- public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
- public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
- public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
- public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
- public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBI...Smdn.Devices.BP35XX version 2.2.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-06-06 update assembly version
- 2025-06-06 add CompatibilitySuppressions.xml
- 2025-06-06 add BP35A1Options.Configure
- 2025-06-06 introduce BP35A1Options for renaming and mark BP35A1Configurations obsolete
- 2025-06-06 seal non-public class
- 2025-06-06 fix typo and replace to more better word
- 2025-04-21 fix typo in comment
- 2024-12-12 drop target framework net6.0
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
deleted file mode 100644
index d8acbb6..0000000
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.1.0)
-// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 2.1.0.0
-// InformationalVersion: 2.1.0+fc01bab8c6330c41db1ce6309f8f5f79b42b2785
-// TargetFramework: .NETCoreApp,Version=v6.0
-// Configuration: Release
-// Referenced assemblies:
-// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
-// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
-// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
-// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
-// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
-// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-#nullable enable annotations
-
-using System;
-using System.IO;
-using System.Net;
-using System.Net.NetworkInformation;
-using System.Threading;
-using System.Threading.Tasks;
-using Smdn.Devices.BP35XX;
-using Smdn.Net.SkStackIP;
-
-namespace Smdn.Devices.BP35XX {
- public interface IBP35SerialPortStreamFactory : IDisposable {
- Stream CreateSerialPortStream(string? serialPortName);
- }
-
- public enum BP35UartBaudRate : byte {
- Baud115200 = 0,
- Baud19200 = 4,
- Baud2400 = 1,
- Baud38400 = 5,
- Baud4800 = 2,
- Baud57600 = 6,
- Baud9600 = 3,
- }
-
- public enum BP35UartCharacterInterval : byte {
- Microseconds100 = 16,
- Microseconds200 = 32,
- Microseconds300 = 48,
- Microseconds400 = 64,
- Microseconds50 = 80,
- None = 0,
- }
-
- public enum BP35UartFlowControl : byte {
- Disabled = 0,
- Enabled = 128,
- }
-
- public enum BP35UdpReceiveDataFormat : byte {
- Binary = 0,
- HexAscii = 1,
- }
-
- public class BP35A1 : BP35Base {
- public static ValueTask<BP35A1> CreateAsync(BP35A1Configurations configurations, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
- public static ValueTask<BP35A1> CreateAsync(string? serialPortName, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
- }
-
- public sealed class BP35A1Configurations {
- public BP35A1Configurations() {}
-
- public BP35UartBaudRate BaudRate { get; set; }
- public string? SerialPortName { get; set; }
- public bool TryLoadFlashMemory { get; set; }
- public bool UseFlowControl { get; set; }
- }
-
- public abstract class BP35Base : SkStackClient {
- public IPAddress LinkLocalAddress { get; }
- public PhysicalAddress MacAddress { get; }
- public string RohmPassword { get; }
- public string RohmUserId { get; }
- public string SkStackAppVersion { get; }
- public Version SkStackVersion { get; }
-
- public async ValueTask<BP35UartConfigurations> GetUartOptionsAsync(CancellationToken cancellationToken = default) {}
- public async ValueTask<BP35UdpReceiveDataFormat> GetUdpDataFormatAsync(CancellationToken cancellationToken = default) {}
- public ValueTask SetUartOptionsAsync(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval = BP35UartCharacterInterval.None, BP35UartFlowControl flowControl = BP35UartFlowControl.Disabled, CancellationToken cancellationToken = default) {}
- public ValueTask SetUartOptionsAsync(BP35UartConfigurations uartConfigurations, CancellationToken cancellationToken = default) {}
- public ValueTask SetUdpDataFormatAsync(BP35UdpReceiveDataFormat format, CancellationToken cancellationToken = default) {}
- }
-
- public class BP35SerialPortException : IOException {
- public BP35SerialPortException() {}
- public BP35SerialPortException(string message) {}
- public BP35SerialPortException(string message, Exception? innerException = null) {}
- }
-
- public readonly struct BP35UartConfigurations {
- public BP35UartConfigurations(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval, BP35UartFlowControl flowControl) {}
-
- public BP35UartBaudRate BaudRate { get; }
- public BP35UartCharacterInterval CharacterInterval { get; }
- public BP35UartFlowControl FlowControl { get; }
-
- public void Deconstruct(out BP35UartBaudRate baudRate, out BP35UartCharacterInterval characterInterval, out BP35UartFlowControl flowControl) {}
- }
-}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
index 5031fcc..485dfe4 100644
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
@@ -1,109 +1,118 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.1.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.2.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 2.1.0.0
-// InformationalVersion: 2.1.0+fc01bab8c6330c41db1ce6309f8f5f79b42b2785
+// AssemblyVersion: 2.2.0.0
+// InformationalVersion: 2.2.0+be87e7d6640b81d5e5e0c22af1c2491d40cd8c28
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Devices.BP35XX;
using Smdn.Net.SkStackIP;
namespace Smdn.Devices.BP35XX {
public interface IBP35SerialPortStreamFactory : IDisposable {
Stream CreateSerialPortStream(string? serialPortName);
}
public enum BP35UartBaudRate : byte {
Baud115200 = 0,
Baud19200 = 4,
Baud2400 = 1,
Baud38400 = 5,
Baud4800 = 2,
Baud57600 = 6,
Baud9600 = 3,
}
public enum BP35UartCharacterInterval : byte {
Microseconds100 = 16,
Microseconds200 = 32,
Microseconds300 = 48,
Microseconds400 = 64,
Microseconds50 = 80,
None = 0,
}
public enum BP35UartFlowControl : byte {
Disabled = 0,
Enabled = 128,
}
public enum BP35UdpReceiveDataFormat : byte {
Binary = 0,
HexAscii = 1,
}
public class BP35A1 : BP35Base {
+ [Obsolete("Use BP35A1Options instead.")]
public static ValueTask<BP35A1> CreateAsync(BP35A1Configurations configurations, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
+ public static ValueTask<BP35A1> CreateAsync(BP35A1Options options, IServiceProvider? serviceProvi...Smdn.Devices.BP35XX version 2.1.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
index 804d164..d8acbb6 100644
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
@@ -1,103 +1,109 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.0.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.1.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 2.0.0.0
-// InformationalVersion: 2.0.0+ef185af5c73268aab02d6909202fffce4560122b
+// AssemblyVersion: 2.1.0.0
+// InformationalVersion: 2.1.0+fc01bab8c6330c41db1ce6309f8f5f79b42b2785
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Devices.BP35XX;
using Smdn.Net.SkStackIP;
namespace Smdn.Devices.BP35XX {
public interface IBP35SerialPortStreamFactory : IDisposable {
Stream CreateSerialPortStream(string? serialPortName);
}
public enum BP35UartBaudRate : byte {
Baud115200 = 0,
Baud19200 = 4,
Baud2400 = 1,
Baud38400 = 5,
Baud4800 = 2,
Baud57600 = 6,
Baud9600 = 3,
}
public enum BP35UartCharacterInterval : byte {
Microseconds100 = 16,
Microseconds200 = 32,
Microseconds300 = 48,
Microseconds400 = 64,
Microseconds50 = 80,
None = 0,
}
public enum BP35UartFlowControl : byte {
Disabled = 0,
Enabled = 128,
}
public enum BP35UdpReceiveDataFormat : byte {
Binary = 0,
HexAscii = 1,
}
public class BP35A1 : BP35Base {
public static ValueTask<BP35A1> CreateAsync(BP35A1Configurations configurations, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
public static ValueTask<BP35A1> CreateAsync(string? serialPortName, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
}
public sealed class BP35A1Configurations {
public BP35A1Configurations() {}
public BP35UartBaudRate BaudRate { get; set; }
public string? SerialPortName { get; set; }
public bool TryLoadFlashMemory { get; set; }
public bool UseFlowControl { get; set; }
}
public abstract class BP35Base : SkStackClient {
public IPAddress LinkLocalAddress { get; }
public PhysicalAddress MacAddress { get; }
public string RohmPassword { get; }
public string RohmUserId { get; }
public string SkStackAppVersion { get; }
public Version SkStackVersion { get; }
public async ValueTask<BP35UartConfigurations> GetUartOptionsAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<BP35UdpReceiveDataFormat> GetUdpDataFormatAsync(CancellationToken cancellationToken = default) {}
public ValueTask SetUartOptionsAsync(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval = BP35UartCharacterInterval.None, BP35UartFlowControl flowControl = BP35UartFlowControl.Disabled, CancellationToken cancellationToken = default) {}
public ValueTask SetUartOptionsAsync(BP35UartConfigurations uartConfigurations, CancellationToken cancellationToken = default) {}
public ValueTask SetUdpDataFormatAsync(BP35UdpReceiveDataFormat format, CancellationToken cancellationToken = default) {}
}
+ public class BP35SerialPortException : IOException {
+ public BP35SerialPortException() {}
+ public BP35SerialPortException(string message) {}
+ public BP35SerialPortException(string message, Exception? innerException = null) {}
+ }
+
public readonly struct BP35UartConfigurations {
public BP35UartConfigurations(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval, BP35UartFlowControl flowControl) {}
public BP35UartBaudRate BaudRate { get; }
public BP35UartCharacterInterval CharacterInterval { get; }
public BP35UartFlowControl FlowControl { get; }
public void Deconstruct(out BP35UartBaudRate baudRate, out BP35UartCharacterInterval characterInterval, out BP35UartFlowControl flowControl) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
index f383021..5031fcc 100644
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
@@ -1,103 +1,109 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.0.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.1.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 2.0.0.0
-// InformationalVersion: 2.0.0+ef185af5c73268aab02d6909202fffce4560122b
+// AssemblyVersion: 2.1.0.0
+// InformationalVersion: 2.1.0+fc01bab8c6330c41db1ce6309f8f5f79b42b2785
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Devices.BP35XX;
using Smdn.Net.SkStackIP;
namespace Smdn.Devices.BP35XX {
public interface IBP35SerialPortStreamFactory : IDisposable {
Stream CreateSerialPortStream(string? serialPortName);
}
public enum BP35UartBaudRate : byte {
Baud115200 = 0,
Baud19200 = 4,
Baud2400 = 1,
Baud38400 = 5,
Baud4800 = 2,
Baud57600 = 6,
Baud9600 = 3,
}
public enum BP35UartCharacterInterval : byte {
Microseconds100 = 16,
Microseconds200 = 32,
Microseconds300 = 48,
Microseconds400 = 64,
Microseconds50 = 80,
None = 0,
}
public enum BP35UartFlowControl : byte {
Disabled = 0,
Enabled = 128,
}
public enum BP35UdpReceiveDataFormat : byte {
Binary = 0,
HexAscii = 1,
}
public class BP35A1 : BP35Base {
public static ValueTask<BP35A1> CreateAsync(BP35A1Configurations configurations, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
public static ValueTask<BP35A1> CreateAsync(string? serialPortName, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
}
public sealed class BP35A1Configurations {
public BP35A1Configurations() {}
public BP35UartBaudRate BaudRate { get; set; }
public string? SerialPortName { get; set; }
public bool TryLoadFlashMemory { get; set; }
public bool UseFlowControl { get; set; }
}
public abstract class BP35Base : SkStackClient {
public IPAddress LinkLocalAddress { get; }
public ...Smdn.Net.SkStackIP version 1.4.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-11-02 update assembly version
- 2024-11-02 add SkStackActiveScanOptions.EnumerateScanDurationFactors
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
index 06cb9af..8058356 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
@@ -1,481 +1,482 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.3.0)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.4.0)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.3.0.0
-// InformationalVersion: 1.3.0+7931ab6db93341f49b92e060d48f76286ce36ded
+// AssemblyVersion: 1.4.0.0
+// InformationalVersion: 1.4.0+0042217f1f00329fae1eb89b19f6739d41ff5b21
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
+ public IEnumerable<int> EnumerateScanDurationFactors() {}
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, int channelNumber, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<S...Smdn.Net.SkStackIP version 1.3.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-09-23 update assembly version
- 2024-09-23 add functionality to SkStackActiveScanOptions to specify the channel mask when performing active scan
- 2024-09-23 add SkStackChannel.CreateMask
- 2024-07-04 reduce duplicate codes
- 2024-07-04 add overloads of SkStackActiveScanOptions.Create that accepts the Func<IEnumerable<int>> for generating scan durations
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
index 908f8e6..06cb9af 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
@@ -1,476 +1,481 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.2.0)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.3.0)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.2.0.0
-// InformationalVersion: 1.2.0+0e506f4265dfd6eb80e5f98b4486e10a5cda9d99
+// AssemblyVersion: 1.3.0.0
+// InformationalVersion: 1.3.0+7931ab6db93341f49b92e060d48f76286ce36ded
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
+ public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, PhysicalAddress paaMacAddress) {}
+ public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, Predicate<SkStackPanDescription>? paaSelector = null) {}
+ public static SkStackActiveScanOptions Create(Func<IEnumerable<int>> scanDurationGeneratorFunc, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
+ public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, uint channelMask, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<S...Smdn.Devices.BP35XX version 2.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-09-06 update assembly version
- 2024-09-06 fix type accesssibility
- 2024-09-06 add support for using flow control with BP35A1
- 2024-09-06 make IBP35SerialPortStreamFactory disposable
- 2024-09-06 add CompatibilitySuppressions.xml for removing IBP35Configurations
- 2024-09-05 rename file to follow the type name changing
- 2024-09-05 remove IBP35Configurations
- 2024-07-04 send SKRESET on initialization
- 2024-04-07 enable configuring package validation
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
index b86796d..804d164 100644
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
@@ -1,110 +1,103 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-1.0.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.0.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0+e4163ada5b034b45c5cc0dac179b412cf54198cd
+// AssemblyVersion: 2.0.0.0
+// InformationalVersion: 2.0.0+ef185af5c73268aab02d6909202fffce4560122b
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Devices.BP35XX;
using Smdn.Net.SkStackIP;
namespace Smdn.Devices.BP35XX {
- public interface IBP35Configurations {
- BP35UartBaudRate BaudRate { get; }
- SkStackERXUDPDataFormat ERXUDPDataFormat { get; }
- string? SerialPortName { get; }
- bool TryLoadFlashMemory { get; }
- }
-
- public interface IBP35SerialPortStreamFactory {
- Stream CreateSerialPortStream(IBP35Configurations configurations);
+ public interface IBP35SerialPortStreamFactory : IDisposable {
+ Stream CreateSerialPortStream(string? serialPortName);
}
public enum BP35UartBaudRate : byte {
Baud115200 = 0,
Baud19200 = 4,
Baud2400 = 1,
Baud38400 = 5,
Baud4800 = 2,
Baud57600 = 6,
Baud9600 = 3,
}
public enum BP35UartCharacterInterval : byte {
Microseconds100 = 16,
Microseconds200 = 32,
Microseconds300 = 48,
Microseconds400 = 64,
Microseconds50 = 80,
None = 0,
}
public enum BP35UartFlowControl : byte {
Disabled = 0,
Enabled = 128,
}
public enum BP35UdpReceiveDataFormat : byte {
Binary = 0,
HexAscii = 1,
}
public class BP35A1 : BP35Base {
public static ValueTask<BP35A1> CreateAsync(BP35A1Configurations configurations, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
public static ValueTask<BP35A1> CreateAsync(string? serialPortName, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
}
- public sealed class BP35A1Configurations : IBP35Configurations {
+ public sealed class BP35A1Configurations {
public BP35A1Configurations() {}
public BP35UartBaudRate BaudRate { get; set; }
public string? SerialPortName { get; set; }
- SkStackERXUDPDataFormat IBP35Configurations.ERXUDPDataFormat { get; }
public bool TryLoadFlashMemory { get; set; }
+ public bool UseFlowControl { get; set; }
}
public abstract class BP35Base : SkStackClient {
public IPAddress LinkLocalAddress { get; }
public PhysicalAddress MacAddress { get; }
public string RohmPassword { get; }
public string RohmUserId { get; }
public string SkStackAppVersion { get; }
public Version SkStackVersion { get; }
public async ValueTask<BP35UartConfigurations> GetUartOptionsAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<BP35UdpReceiveDataFormat> GetUdpDataFormatAsync(CancellationToken cancellationToken = default) {}
public ValueTask SetUartOptionsAsync(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval = BP35UartCharacterInterval.None, BP35UartFlowControl flowControl = BP35UartFlowControl.Disabled, CancellationToken cancellationToken = default) {}
public ValueTask SetUartOptionsAsync(BP35UartConfigurations uartConfigurations, CancellationToken cancellationToken = default) {}
public ValueTask SetUdpDataFormatAsync(BP35UdpReceiveDataFormat format, CancellationToken cancellationToken = default) {}
}
public readonly struct BP35UartConfigurations {
public BP35UartConfigurations(BP35UartBaudRate baudRate, BP35UartCharacterInterval characterInterval, BP35UartFlowControl flowControl) {}
public BP35UartBaudRate BaudRate { get; }
public BP35UartCharacterInterval CharacterInterval { get; }
public BP35UartFlowControl FlowControl { get; }
public void Deconstruct(out BP35UartBaudRate baudRate, out BP35UartCharacterInterval characterInterval, out BP35UartFlowControl flowControl) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
index d0204eb..f383021 100644
--- a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
@@ -1,110 +1,103 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-1.0.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.0.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0+e4163ada5b034b45c5cc0dac179b412cf54198cd
+// AssemblyVersion: 2.0.0.0
+// InformationalVersion: 2.0.0+ef185af5c73268aab02d6909202fffce4560122b
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// Smdn.Net.SkStackIP, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Devices.BP35XX;
using Smdn.Net.SkStackIP;
namespace Smdn.Devices.BP35XX {
- public interface IBP35Configurations {
- BP35UartBaudRate BaudRate { get; }
- SkStackERXUDPDataFormat ERXUDPDataFormat { get; }
- string? SerialPortName { get; }
- bool TryLoadFlashMemory { get; }
- }
-
- public interface IBP35SerialPortStreamFactory {
- Stream CreateSerialPortStream(IBP35Configurations configurations);
+ public interface IBP35SerialPortStreamFactory : IDisposable {
+ Stream CreateSerialPortStream...Smdn.Net.SkStackIP version 1.2.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-06-30 update assembly version
- 2024-06-30 fix XML document comments
- 2024-06-30 add an overload for AuthenticateAsPanaClientAsync which accepts route-B credentials via the Action<IBufferWriter<byte>> instead of ReadOnlyMemory<byte>
- 2024-06-30 add an overload for ActiveScanAsync which accepts route-B credentials via the Action<IBufferWriter<byte>> instead of ReadOnlyMemory<byte>
- 2024-06-29 use Action<IBufferWriter<byte>> internally instead of ReadOnlyMemory<byte> to prepare to add overloads which accepts Action<IBufferWriter<byte>>
- 2024-06-29 fix warning restoration
- 2024-06-29 add overloads for SendSKSETPWDAsync and SendSKSETRBIDAsync which accepts Action<IBufferWriter<byte>> instead of ReadOnlyMemory<byte>
- 2024-06-29 split methods for SKSETPWD and SKSETRBID into individual files
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
index 953f626..908f8e6 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
@@ -1,469 +1,476 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.1.0)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.2.0)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.1.0.0
-// InformationalVersion: 1.1.0+b1231cf0cca65506f3356620e16e3ecd4cb811c1
+// AssemblyVersion: 1.2.0.0
+// InformationalVersion: 1.2.0+0e506f4265dfd6eb80e5f98b4486e10a5cda9d99
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
+ public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
+ public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
+ public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
+ public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
+ public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(Action<IBufferWriter<byte>> writeRBID, Action<IBufferWriter<byte>> writePassword, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rb...Smdn.Net.SkStackIP version 1.1.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
index 5aa7f5f..953f626 100644
--- a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net6.0.apilist.cs
@@ -1,466 +1,469 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.0.1)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.1.0)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.0.1.0
-// InformationalVersion: 1.0.1+9921b5b514d8c63424e1f61532f990c217aa53e9
+// AssemblyVersion: 1.1.0.0
+// InformationalVersion: 1.1.0+b1231cf0cca65506f3356620e16e3ecd4cb811c1
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
// Smdn.Fundamental.ControlPicture, Version=3.0.0.1, Culture=neutral
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.Pipelines;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Polly;
using Smdn.Net.SkStackIP;
using Smdn.Net.SkStackIP.Protocol;
namespace Smdn.Net.SkStackIP {
public enum SkStackERXUDPDataFormat : int {
Binary = 0,
HexAsciiText = 1,
}
public enum SkStackErrorCode : int {
ER01 = 1,
ER02 = 2,
ER03 = 3,
ER04 = 4,
ER05 = 5,
ER06 = 6,
ER07 = 7,
ER08 = 8,
ER09 = 9,
ER10 = 10,
Undefined = 0,
}
public enum SkStackEventNumber : byte {
ActiveScanCompleted = 34,
BeaconReceived = 32,
EchoRequestReceived = 5,
EnergyDetectScanCompleted = 31,
NeighborAdvertisementReceived = 2,
NeighborSolicitationReceived = 1,
PanaSessionEstablishmentCompleted = 37,
PanaSessionEstablishmentError = 36,
PanaSessionExpired = 41,
PanaSessionTerminationCompleted = 39,
PanaSessionTerminationRequestReceived = 38,
PanaSessionTerminationTimedOut = 40,
TransmissionTimeControlLimitationActivated = 50,
TransmissionTimeControlLimitationDeactivated = 51,
UdpSendCompleted = 33,
Undefined = 0,
WakeupSignalReceived = 192,
}
public enum SkStackResponseStatus : int {
Fail = -1,
Ok = 1,
Undetermined = 0,
}
public enum SkStackUdpEncryption : byte {
EncryptIfAble = 2,
ForceEncrypt = 1,
ForcePlainText = 0,
}
public enum SkStackUdpPortHandle : byte {
Handle1 = 1,
Handle2 = 2,
Handle3 = 3,
Handle4 = 4,
Handle5 = 5,
Handle6 = 6,
None = 0,
}
public abstract class SkStackActiveScanOptions : ICloneable {
public static SkStackActiveScanOptions Default { get; }
public static SkStackActiveScanOptions Null { get; }
public static SkStackActiveScanOptions ScanUntilFind { get; }
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, PhysicalAddress paaMacAddress) {}
public static SkStackActiveScanOptions Create(IEnumerable<int> scanDurationGenerator, Predicate<SkStackPanDescription>? paaSelector = null) {}
protected SkStackActiveScanOptions() {}
public abstract SkStackActiveScanOptions Clone();
object ICloneable.Clone() {}
}
public class SkStackClient : IDisposable {
public static readonly TimeSpan SKSCANDefaultDuration; // = "00:00:00.0480000"
public static readonly TimeSpan SKSCANMaxDuration; // = "00:02:37.2960000"
public static readonly TimeSpan SKSCANMinDuration; // = "00:00:00.0192000"
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionEstablished;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionExpired;
public event EventHandler<SkStackPanaSessionEventArgs>? PanaSessionTerminated;
public event EventHandler<SkStackEventArgs>? Slept;
public event EventHandler<SkStackEventArgs>? WokeUp;
public SkStackClient(PipeWriter sender, PipeReader receiver, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackClient(Stream stream, bool leaveStreamOpen = true, SkStackERXUDPDataFormat erxudpDataFormat = SkStackERXUDPDataFormat.Binary, ILogger? logger = null) {}
public SkStackERXUDPDataFormat ERXUDPDataFormat { get; protected set; }
[MemberNotNullWhen(true, "PanaSessionPeerAddress")]
public bool IsPanaSessionAlive { [MemberNotNullWhen(true, "PanaSessionPeerAddress")] get; }
protected ILogger? Logger { get; }
public IPAddress? PanaSessionPeerAddress { get; }
public TimeSpan ReceiveResponseDelay { get; set; }
public TimeSpan ReceiveUdpPollingInterval { get; set; }
public ISynchronizeInvoke? SynchronizingObject { get; set; }
public ValueTask<IReadOnlyList<SkStackPanDescription>> ActiveScanAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, IPAddress paaAddress, int channelNumber, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, SkStackChannel channel, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, PhysicalAddress paaMacAddress, int channelNumber, int panId, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackActiveScanOptions? scanOptions = null, CancellationToken cancellationToken = default) {}
public ValueTask<SkStackPanaSessionInfo> AuthenticateAsPanaClientAsync(ReadOnlyMemory<byte> rbid, ReadOnlyMemory<byte> password, SkStackPanDescription pan, CancellationToken cancellationToken = default) {}
public async ValueTask<IPAddress> ConvertToIPv6LinkLocalAddressAsync(PhysicalAddress macAddress, CancellationToken cancellationToken = default) {}
public ValueTask DisableFlashMemoryAutoLoadAsync(CancellationToken cancellationToken = default) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
public ValueTask EnableFlashMemoryAutoLoadAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<IReadOnlyList<IPAddress>> GetAvailableAddressListAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<IReadOnlyList<SkStackUdpPort>> GetListeningUdpPortListAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<IReadOnlyDictionary<IPAddress, PhysicalAddress>> GetNeighborCacheListAsync(CancellationToken cancellationToken = default) {}
public async ValueTask<IReadOnlyList<SkStackUdpPortHandle>> GetUnusedUdpPortHandleListAsync(CancellationToken cancellationToken = default) {}
public async ValueTask LoadFlashMemoryAsync(CancellationToken can...