Smdn.Net.EchonetLite.RouteB.SkStackIP 2.0.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Smdn.Net.EchonetLite.RouteB.SkStackIP --version 2.0.0
                    
NuGet\Install-Package Smdn.Net.EchonetLite.RouteB.SkStackIP -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Smdn.Net.EchonetLite.RouteB.SkStackIP" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Smdn.Net.EchonetLite.RouteB.SkStackIP" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Smdn.Net.EchonetLite.RouteB.SkStackIP" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Smdn.Net.EchonetLite.RouteB.SkStackIP --version 2.0.0
                    
#r "nuget: Smdn.Net.EchonetLite.RouteB.SkStackIP, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Smdn.Net.EchonetLite.RouteB.SkStackIP&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Smdn.Net.EchonetLite.RouteB.SkStackIP&version=2.0.0
                    
Install as a Cake Tool

Smdn.Net.EchonetLite.RouteB.SkStackIP 2.0.0

Skyley NetworksのSKSTACK IPを使用して、 スマート電力量メータとの情報伝達手段である「Bルート」を介したECHONET Lite規格の通信を扱うためのAPIを提供します。 ECHONET Lite規格における下位通信層に相当する実装であるSkStackUdpRouteBHandlerクラスをはじめとするAPIを提供します。

Contributing

This project welcomes contributions, feedbacks and suggestions. You can contribute to this project by submitting Issues or Pull Requests on the GitHub repository.

API List

List of APIs exposed by assembly Smdn.Net.EchonetLite.RouteB.SkStackIP-2.0.0 (net8.0)

// Smdn.Net.EchonetLite.RouteB.SkStackIP.dll (Smdn.Net.EchonetLite.RouteB.SkStackIP-2.0.0)
//   Name: Smdn.Net.EchonetLite.RouteB.SkStackIP
//   AssemblyVersion: 2.0.0.0
//   InformationalVersion: 2.0.0+b8918b93e150de00661851f24d5e87d139805913
//   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
//     Microsoft.Extensions.Options, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
//     Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
//     Polly.Extensions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
//     Smdn.Extensions.Polly.KeyedRegistry, Version=1.2.0.0, Culture=neutral
//     Smdn.Net.EchonetLite.Primitives, Version=2.0.0.0, Culture=neutral
//     Smdn.Net.EchonetLite.RouteB.Primitives, Version=2.1.0.0, Culture=neutral
//     Smdn.Net.SkStackIP, Version=1.2.0.0, Culture=neutral
//     System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
//     System.ComponentModel, 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.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Polly;
using Polly.DependencyInjection;
using Polly.Registry;
using Polly.Registry.KeyedRegistry;
using Smdn.Net.EchonetLite.RouteB.Credentials;
using Smdn.Net.EchonetLite.RouteB.DependencyInjection;
using Smdn.Net.EchonetLite.RouteB.Transport;
using Smdn.Net.EchonetLite.RouteB.Transport.SkStackIP;
using Smdn.Net.SkStackIP;

namespace Smdn.Net.EchonetLite.RouteB.DependencyInjection {
  public static class SkStackRouteBHandlerFactoryBuilderExtensions {
    public static TSkStackRouteBHandlerFactoryBuilder PostConfigureClient<TSkStackRouteBHandlerFactoryBuilder, TServiceKey>(this TSkStackRouteBHandlerFactoryBuilder builder, Action<SkStackClient> postConfigureClient) where TSkStackRouteBHandlerFactoryBuilder : SkStackRouteBHandlerFactoryBuilder<TServiceKey> {}
  }

  public abstract class SkStackRouteBHandlerFactoryBuilder<TServiceKey> {
    internal protected SkStackRouteBHandlerFactoryBuilder(IServiceCollection services, TServiceKey serviceKey, Func<TServiceKey, string?> selectOptionsNameForServiceKey) {}

    public TServiceKey ServiceKey { get; }
    public IServiceCollection Services { get; }

    protected abstract SkStackRouteBHandlerFactory Build(IServiceProvider serviceProvider, SkStackRouteBSessionOptions sessionOptions, Action<SkStackClient>? postConfigureClient);
    public SkStackRouteBHandlerFactory Build(IServiceProvider serviceProvider) {}
    protected TOption GetOption<TOption>(IServiceProvider serviceProvider) {}
  }

  public static class SkStackRouteBServiceBuilderExtensions {
    public static IRouteBServiceBuilder<TServiceKey> AddResiliencePipelineSkStackHandlerAuthenticate<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey>>> configure) {}
    public static IRouteBServiceBuilder<TServiceKey> AddResiliencePipelineSkStackHandlerSendFrame<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey>>> configure) {}
    public static IRouteBServiceBuilder<TServiceKey> AddSkStackHandler<TServiceKey, THandlerFactoryBuilder>(this IRouteBServiceBuilder<TServiceKey> builder, Action<SkStackRouteBSessionOptions> configureSessionOptions, Func<IServiceCollection, TServiceKey, Func<TServiceKey, string?>, THandlerFactoryBuilder> createHandlerFactoryBuilder) where THandlerFactoryBuilder : SkStackRouteBHandlerFactoryBuilder<TServiceKey> {}
  }
}

namespace Smdn.Net.EchonetLite.RouteB.Transport.SkStackIP {
  public abstract class SkStackRouteBHandler : RouteBEchonetLiteHandler {
    public static class ResiliencePipelineKeys {
      public static readonly string Authenticate = "SkStackRouteBHandler.resiliencePipelineAuthenticate";
      public static readonly string Send = "SkStackRouteBHandler.resiliencePipelineSend";
    }

    public readonly struct ResiliencePipelineKeyPair<TServiceKey> :
      IEquatable<ResiliencePipelineKeyPair<TServiceKey>>,
      IResiliencePipelineKeyPair<TServiceKey, string>
    {
      [CompilerGenerated]
      public static bool operator == (SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey> left, SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey> right) {}
      [CompilerGenerated]
      public static bool operator != (SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey> left, SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey> right) {}

      public ResiliencePipelineKeyPair(TServiceKey serviceKey, string pipelineKey) {}

      public string PipelineKey { get; }
      public TServiceKey ServiceKey { get; }

      [CompilerGenerated]
      public bool Equals(SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey> other) {}
      [CompilerGenerated]
      public override bool Equals(object obj) {}
      [CompilerGenerated]
      public override int GetHashCode() {}
      public override string ToString() {}
    }

    public static readonly ResiliencePropertyKey<SkStackRouteBHandler?> ResiliencePropertyKeyForInstance; // = "SkStackRouteBHandler.ResiliencePropertyKeyForInstance"

    protected SkStackClient Client { get; }
    public override IPAddress? LocalAddress { get; }
    public override IPAddress? PeerAddress { get; }
    protected SkStackRouteBSessionOptions SessionOptions { get; }

    protected override async ValueTask ConnectAsyncCore(IRouteBCredential credential, CancellationToken cancellationToken) {}
    protected override async ValueTask DisconnectAsyncCore(CancellationToken cancellationToken) {}
    protected override void Dispose(bool disposing) {}
    protected override async ValueTask DisposeAsyncCore() {}
    protected override ValueTask<IPAddress> ReceiveAsyncCore(IBufferWriter<byte> buffer, CancellationToken cancellationToken) {}
    protected override ValueTask SendAsyncCore(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken) {}
    protected override ValueTask SendToAsyncCore(IPAddress remoteAddress, ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken) {}
    [MemberNotNull("client")]
    protected override void ThrowIfDisposed() {}
  }

  public abstract class SkStackRouteBHandlerFactory : IRouteBEchonetLiteHandlerFactory {
    protected SkStackRouteBHandlerFactory(IServiceProvider serviceProvider, object? routeBServiceKey, SkStackRouteBSessionOptions sessionOptions, Action<SkStackClient>? postConfigureClient) {}

    protected Action<SkStackClient>? PostConfigureClient { get; }
    public object? RouteBServiceKey { get; }
    public IServiceProvider ServiceProvider { get; }
    protected SkStackRouteBSessionOptions SessionOptions { get; }

    public ValueTask<RouteBEchonetLiteHandler> CreateAsync(CancellationToken cancellationToken) {}
    protected abstract ValueTask<RouteBEchonetLiteHandler> CreateAsyncCore(CancellationToken cancellationToken);
  }

  public static class SkStackRouteBHandlerServiceCollectionExtensions {
    public static IServiceCollection AddResiliencePipelineForAuthentication(this IServiceCollection services, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<string>> configure) {}
    public static IServiceCollection AddResiliencePipelineForAuthentication<TServiceKey>(this IServiceCollection services, TServiceKey serviceKey, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey>>> configure) {}
    public static IServiceCollection AddResiliencePipelineForSendingFrame(this IServiceCollection services, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<string>> configure) {}
    public static IServiceCollection AddResiliencePipelineForSendingFrame<TServiceKey>(this IServiceCollection services, TServiceKey serviceKey, Action<ResiliencePipelineBuilder, AddResiliencePipelineContext<SkStackRouteBHandler.ResiliencePipelineKeyPair<TServiceKey>>> configure) {}
  }

  public static class SkStackRouteBHandlerServiceProviderExtensions {
    public static ResiliencePipelineProvider<string>? GetResiliencePipelineProviderForSkStackRouteBHandler(this IServiceProvider serviceProvider, object? serviceKey) {}
  }

  public sealed class SkStackRouteBSessionOptions : ICloneable {
    public SkStackRouteBSessionOptions() {}

    public SkStackActiveScanOptions? ActiveScanOptions { get; set; }
    public SkStackChannel? Channel { get; set; }
    public IPAddress? PaaAddress { get; set; }
    public PhysicalAddress? PaaMacAddress { get; set; }
    public int? PanId { get; set; }

    public SkStackRouteBSessionOptions Clone() {}
    public SkStackRouteBSessionOptions Configure(SkStackRouteBSessionOptions baseOptions) {}
    object ICloneable.Clone() {}
  }

  public class SkStackTcpRouteBHandler : SkStackRouteBHandler {
    public SkStackTcpRouteBHandler(SkStackClient client, SkStackRouteBSessionOptions sessionOptions, bool shouldDisposeClient, ILogger? logger, IServiceProvider? serviceProvider, object? routeBServiceKey) {}
  }

  public class SkStackUdpRouteBHandler : SkStackRouteBHandler {
    public SkStackUdpRouteBHandler(SkStackClient client, SkStackRouteBSessionOptions sessionOptions, bool shouldDisposeClient, ILogger? logger, IServiceProvider? serviceProvider, object? routeBServiceKey) {}
  }
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.5.0.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Smdn.Net.EchonetLite.RouteB.SkStackIP:

Package Downloads
Smdn.Net.EchonetLite.RouteB.BP35XX

BP35A1など、Skyley Networksの[SKSTACK IP](https://www.skyley.com/wiki/?SKSTACK+IP+for+HAN)を搭載する[ROHM Wi-SUNモジュール](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules)を使用して、スマート電力量メータとの情報伝達手段である「Bルート」を介したECHONET Lite規格の通信を扱うためのAPIを提供します。 ECHONET Lite規格における下位通信層に相当する実装を作成するファクトリクラス`BP35A1RouteBHandlerFactory`をはじめとするAPIを提供します。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.1 143 6/23/2025
2.0.0 226 6/14/2025
2.0.0-preview3 147 10/16/2024
2.0.0-preview2 95 6/30/2024
2.0.0-preview1 104 4/5/2024