Releases: smdn/Smdn.Net.SkStackIP
Releases · smdn/Smdn.Net.SkStackIP
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...
Smdn.Net.SkStackIP version 1.0.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-04-07 update assembly version
- 2024-04-07 separate the examples directory by package
- 2024-04-06 update documentation
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 2c1c882..5aa7f5f 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,466 @@
-// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.0.0)
+// Smdn.Net.SkStackIP.dll (Smdn.Net.SkStackIP-1.0.1)
// Name: Smdn.Net.SkStackIP
-// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0+655c155832ea35fece55fe3cd2467b473922319c
+// AssemblyVersion: 1.0.1.0
+// InformationalVersion: 1.0.1+9921b5b514d8c63424e1f61532f990c217aa53e9
// 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 cancellationToken = default) {}
public async ValueTask<SkStackUdpPort> PrepareUdpPortAsync(int port, CancellationToke...
Smdn.Devices.BP35XX version 1.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-04-07 add 'Getting started' section for README.md
- 2024-04-06 update documentation
- 2024-04-06 import Smdn.Devices.BP35XX
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
new file mode 100644
index 0000000..b86796d
--- /dev/null
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net6.0.apilist.cs
@@ -0,0 +1,110 @@
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-1.0.0)
+// Name: Smdn.Devices.BP35XX
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0+e4163ada5b034b45c5cc0dac179b412cf54198cd
+// 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 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 BP35A1Configurations() {}
+
+ public BP35UartBaudRate BaudRate { get; set; }
+ public string? SerialPortName { get; set; }
+ SkStackERXUDPDataFormat IBP35Configurations.ERXUDPDataFormat { get; }
+ public bool TryLoadFlashMemory { 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
new file mode 100644
index 0000000..d0204eb
--- /dev/null
+++ b/doc/api-list/Smdn.Devices.BP35XX/Smdn.Devices.BP35XX-net8.0.apilist.cs
@@ -0,0 +1,110 @@
+// Smdn.Devices.BP35XX.dll (Smdn.Devices.BP35XX-1.0.0)
+// Name: Smdn.Devices.BP35XX
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0+e4163ada5b034b45c5cc0dac179b412cf54198cd
+// 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 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 BP35A1Configurations() {}
+
+ public BP35UartBaudRate BaudRate { get; set; }
+ public string? SerialPortName { get; set; }
+ SkStackERXUDPDataFormat IBP35Configurations.ERXUDPDataFormat { get; }
+ public bool TryLoadFlashMemory { 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; }
+
+ ...
Smdn.Net.SkStackIP version 1.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-02-12 add package tags
- 2024-02-12 update assembly version
- 2024-02-12 add and update package description/readme
- 2024-01-02 delete unnecessary warning suppression
- 2024-01-02 implemenet non-deferred exception throwing
- 2024-01-02 delete unusing member
- 2024-01-02 validate that the iargument is valid ASCII or not for the SKSETPWD and SKSETRBID command
- 2024-01-02 delete unnecessary type cast
- 2024-01-02 use IUtf8SpanParsable.Parse if available
- 2024-01-02 improve not to use Encoding for formatting
- 2024-01-02 refactor
- 2024-01-02 use UTF-8 string literals instead
- 2024-01-01 delete dead codes
- 2024-01-01 change SkStackTokenParser.ExpectSequence to accept ReadOnlySpan<byte> instead of ReadOnlyMemory<byte>, and use UTF-8 literal instead
- 2024-01-01 change SkStackTokenParser.[Try]ExpectToken to accept ReadOnlySpan<byte> instead of ReadOnlyMemory<byte>
- 2024-01-01 refactor and delete unneccessary overloads
- 2024-01-01 improve SkStackEventParser to be able to accept ReadOnlySpan<byte> as an expecting token instead of ReadOnlyMemory<byte>
- 2024-01-01 add target framework net8.0
- 2024-01-01 suppress warning CA1859
- 2024-01-01 fix warning IDE0055: Fix formatting
- 2024-01-01 fix parameter name
- 2024-01-01 fix warning IDE0031: Null check can be simplified
- 2024-01-01 fix warning SA1402: File may only contain a single type
- 2024-01-01 fix warning IDE1006: Naming rule violation
- 2023-11-19 add SkStackClient.ReceiveResponseDelay
- 2023-11-19 compliant the naming rules
- 2023-11-19 make method internal
- 2023-11-19 add SkStackClient.ReceiveUdpPollingInterval
- 2023-11-19 remove outdated comment
- 2023-11-19 fix not to call PipeReader.AdvanceTo() twice for consumed or examined buffers
- 2023-11-18 reduce package dependency of Smdn.Fundamental.Buffer
- 2023-11-18 improve logging to mask passed password when sending SKSETPWD command
- 2023-11-18 introduce ISkStackCommandLineWriter and simplify writing command line arguments
- 2023-11-18 introduce SkStackCommandLineWriter and replace DuplicateBufferWriter with it
- 2023-11-17 expose ILogger to the child classes
- 2023-11-17 improve logging to use logger scope
- 2023-11-16 fix file name
- 2023-11-16 add SkStackUdpSendResultIndeterminateException and throw it instead to clarify the situation
- 2023-11-16 beautify
- 2023-11-16 fix to wrap exceptions occured while parsing into SkStackUnexpectedResponseException
- 2023-10-13 improve exception message string
- 2023-10-13 bump Polly.Core up to 8.0.0
- 2023-08-17 add third-party notices
- 2023-08-17 use NullResilienceStrategy instead
- 2023-08-14 disable CS8629 for release build
- 2023-08-14 improve resiliency of SendUdpEchonetLiteAsync by using ResilienceStrategy
- 2023-07-11 fix SendSKSENDTOAsync to handle EVENT 21 properly and return the final result as a method return value
- 2023-07-09 refactor
- 2023-07-09 improve XML comment docs
- 2023-07-09 change AuthenticateAsPanaClientAsync to accept byte sequence instead of char
- 2023-07-07 change AuthenticateAsPanaClientAsync() to throw if supplied PAA address is not supported
- 2023-07-07 improve naming
- 2023-07-07 improve AuthenticateAsPanaClientAsync() to return established session info
- 2023-07-02 add overloads that accept MAC address for the destination PAA as well as IP address
- 2023-07-02 use decimal for representing RSSI values instead of double
- 2023-07-02 delete unnecessary using directives
- 2023-07-02 remove instantiation specifying serial ports and reduce dependency on System.IO.Ports
- 2023-07-02 imporve TerminatePanaSessionAsync
- 2023-07-02 add Async suffix
- 2023-07-02 add MemberNotNullWhenAttribute to SkStackClient.IsPanaSessionAlive
- 2023-06-27 add shorthands for flash memory functions
- 2023-06-25 add shorthands for ECHONET Lite functions
- 2023-06-25 [add SkS...