Releases: smdn/Smdn.Net.SkStackIP
Releases · smdn/Smdn.Net.SkStackIP
Smdn.Net.SkStackIP version 1.6.0
Immutable
release. Only release title and notes can be modified.
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-12-23 update assembly version
- 2025-12-23 add target framework net10.0
- 2025-07-08 remove redundant properties that have the same as default values
- 2025-07-06 suppress warnings
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net10.0.apilist.cs b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net10.0.apilist.cs
new file mode 100644
index 0000000..38789b3
--- /dev/null
+++ b/doc/api-list/Smdn.Net.SkStackIP/Smdn.Net.SkStackIP-net10.0.apilist.cs
@@ -0,0 +1,514 @@
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.6.0)
+// Name: Smdn.Net.SkStackIP
+// AssemblyVersion: 1.6.0.0
+// InformationalVersion: 1.6.0+d432bef22ed781972661adfad84b0e1d3651e9e3
+// TargetFramework: .NETCoreApp,Version=v10.0
+// Configuration: Release
+// Metadata: IsTrimmable=True
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.SkStackIP
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=d432bef22ed781972661adfad84b0e1d3651e9e3
+// 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=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Threading, Version=10.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> pa...Smdn.Devices.BP35XX version 2.3.0
Immutable
release. Only release title and notes can be modified.
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-12-23 update assembly version
- 2025-12-23 add target framework net10.0
- 2025-07-08 remove redundant properties that have the same as default values
- 2025-07-06 suppress warnings
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net10.0.apilist.cs b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net10.0.apilist.cs
new file mode 100644
index 0000000..5f027b7
--- /dev/null
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net10.0.apilist.cs
@@ -0,0 +1,122 @@
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.3.0)
+// Name: Smdn.Devices.BP35XX
+// AssemblyVersion: 2.3.0.0
+// InformationalVersion: 2.3.0+d432bef22ed781972661adfad84b0e1d3651e9e3
+// TargetFramework: .NETCoreApp,Version=v10.0
+// Configuration: Release
+// Metadata: IsTrimmable=True
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.SkStackIP
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=d432bef22ed781972661adfad84b0e1d3651e9e3
+// 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=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.IO.Ports, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=10.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? serviceProvider = null, CancellationToken cancellationToken = default) {}
+ public static ValueTask<BP35A1> CreateAsync(string? serialPortName, IServiceProvider? serviceProvider = null, CancellationToken cancellationToken = default) {}
+ }
+
+ [Obsolete("Use BP35A1Options instead.")]
+ public sealed class BP35A1Configurations : BP35A1Options {
+ public BP35A1Configurations() {}
+ }
+
+ public class BP35A1Options {
+ public BP35A1Options() {}
+
+ public BP35UartBaudRate BaudRate { get; set; }
+ public string? SerialPortName { get; set; }
+ public bool TryLoadFlashMemory { get; set; }
+ public bool UseFlowControl { get; set; }
+
+ public BP35A1Options Configure(BP35A1Options baseOptions) {}
+ }
+
+ 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.7.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.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 4c75d7e..875f406 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,118 +1,122 @@
-// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.2.0)
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-2.3.0)
// Name: Smdn.Devices.BP35XX
-// AssemblyVersion: 2.2.0.0
-// InformationalVersion: 2.2.0+be87e7d6640b81d5e5e0c22af1c2491d40cd8c28
+// AssemblyVersion: 2.3.0.0
+// InformationalVersion: 2.3.0+d432bef22ed781972661adfad84b0e1d3651e9e3
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
+// Metadata: IsTrimmable=True
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.SkStackIP
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=d432bef22ed781972661adfad84b0e1d3651e9e3
// 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."...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...