nanoFramework.System.Device.Model 1.2.586

前缀已保留
dotnet add package nanoFramework.System.Device.Model --version 1.2.586                
NuGet\Install-Package nanoFramework.System.Device.Model -Version 1.2.586                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="nanoFramework.System.Device.Model" Version="1.2.586" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中,以引用包。
paket add nanoFramework.System.Device.Model --version 1.2.586                
#r "nuget: nanoFramework.System.Device.Model, 1.2.586"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将它复制到交互式工具或脚本的源代码中,以引用包。
// Install nanoFramework.System.Device.Model as a Cake Addin
#addin nuget:?package=nanoFramework.System.Device.Model&version=1.2.586

// Install nanoFramework.System.Device.Model as a Cake Tool
#tool nuget:?package=nanoFramework.System.Device.Model&version=1.2.586                

System.Device.Model - 设备绑定的属性

此库是试验性的,未来可能发生变化,也可能移动到不同的包中。请避免直接依赖它。

此库提供了一组属性,可以用来注释设备。

它们可以用于

  • Azure 插拔式实现
  • 提供关于传感器的额外元数据(例如,我们可以生成一些 README 文件的部分或添加额外的检查)

模型表示与语言无关的设备描述。属性表示从 C# 类型到模型的 C# 映射。

InterfaceAttribute

应将遥测属性放在所有生成遥测或公开命令的类上

    [Interface("LPS25H - Piezoresistive pressure and thermometer sensor")]
    public class Lps25h : IDisposable
  • 如果类是从用 [Interface(...)] 属性注释的类派生的
    • 类将继承基础类(或类)的所有注释
    • 如果类提供了额外的遥测/命令/属性,则应为其本身添加另一个 InterfaceAttribute
    • 如果类不提供任何额外的注释,则不应有额外的接口
  • InterfaceAttribute 必须提供显示名称

TelemetryAttribute

每个产生遥测的方法或属性都应该带有[遥测]属性。对于提供遥测名称的属性是可选的,因为可以从属性名称中推断出来。

遥测可以放置在:

  • 属性
  • 返回值但不接受任何参数的方法
  • 返回bool类型并接受一个out参数的方法
    • 多个out参数目前不适用,但正在考虑中
        [Telemetry]
        public Temperature Temperature => Temperature.FromDegreesCelsius(42.5f + ReadInt16(Register.Temperature) / 480f);

        [Telemetry("Humidity")]
        public bool TryReadHumidity(out RelativeHumidity humidity) => TryReadHumidityCore(out humidity);

        [Telemetry("Pressure")]
        public Pressure ReadPressure() { /*...*/ }
  • 如果遥测没有生成类型化单元(即Vector3),则应提供额外的displayName
  • 可选参数被视为不存在
  • 不允许在相同的Interface上有多个同名Telemetry属性

PropertyAttribute

属性应该放置在表示设备或改变其功能的功能属性或方法上。它们应该只在调用之间不更改值的对象上使用(除非已经写入或已在设备上执行了命令)。特别是从设备读取(遥测)不应更改属性的状态。

用法类似于遥测,但有一些添加

  • 它们可以是可写的
    • 如果使用相同的名称(如PowerMode)在SetPowerModeReadPowerMode上使用,它们将被合并为单个模型属性
  • 它们可以放置在无返回值且接受一个参数的方法上(该参数不必须是按引用传递的)
  • 不允许在同一个接口上存在多个同名的写入器或读取器
[Property]
public Sampling HumiditySampling { get { /*...*/ } set { /* ... */ } }

[Property("PowerMode")]
public void SetPowerMode(Bme680PowerMode powerMode) { /*...*/ }
[Property("PowerMode")]
public Bme680PowerMode ReadPowerMode() { /*...*/ }

ComponentAttribute

组件代表指向其他(实例)接口的引用。它们只能在属性上放置,属性的返回类型或其祖先类应具有Interface属性。

[Component]
public SenseHatTemperatureAndHumidity TemperatureAndHumidity { get; private set; }

// ...
public class SenseHatTemperatureAndHumidity : Hts221.Hts221 { /* ... */ }
// ...
[Interface("HTS221 - Capacitive digital sensor for relative humidity and temperature")]
public class Hts221 : IDisposable { /* ... */ }

CommandAttribute

命令可以是可以在设备上执行的操作,并且只能放置在方法上。

[Command]
public void PlayTone(double frequency, int duraton) { /* ... */ }
[Command]
protected override void SetDefaultConfiguration() { /* ... */ }

类型序列化

只能序列化简单类型

  • 枚举(无Flags属性)
    • 不允许枚举范围之外的值(例如,位组合)
  • UnitsNet单元
  • 基本C#类型
  • System.Numerics.Vector2, System.Numerics.Vector3, System.Numerics.Vector4
  • System.Drawing.Color
产品 兼容和附加计算的目标框架版本。
.NET Framework net是兼容的。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于目标框架.NET Standard的信息。

NuGet包 (44)

显示依赖于nanoFramework.System.Device.Model的前5个NuGet包

下载
nanoFramework.Iot.Device.Mpu6886

此包包括用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Mpu6886。

nanoFramework.Iot.Device.Buzzer

此包包括用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Buzzer。

nanoFramework.Iot.Device.Bmm150

本包包含适用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Bmm150。

nanoFramework.Iot.Device.Bmxx80

本包包含适用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Bmxx80。

nanoFramework.Iot.Device.Bmp180

本包包含适用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Bmp180。

GitHub仓库 (2)

显示依赖nanoFramework.System.Device.Model的GitHub热门仓库前两个

仓库 星星
nanoframework/Samples
🍬 包含nanoFramework团队用于测试、概念验证和其他探索性努力的代码示例
nanoframework/nanoFramework.IoT.Device
📦 此仓库包含各种传感器、芯片、显示器、帽子和驱动程序的.NET nanoFramework实现
版本 下载 最后更新
1.2.586 2,529 7/12/2024
1.2.418 12,981 11/9/2023
1.2.415 1,376 11/8/2023
1.2.414 111 11/8/2023
1.2.325 16,814 5/24/2023
1.2.295 6,592 5/3/2023
1.2.216 42,643 1/6/2023
1.2.158 27,394 11/13/2022
1.2.141 15,017 10/25/2022
1.2.82 59,574 9/14/2022
1.1.113.2032 143,693 6/23/2022
1.1.1 162,017 4/14/2022
1.0.288 18,511 3/29/2022
1.0.288-preview.113 204 3/25/2022
1.0.288-preview.99 237 3/18/2022
1.0.288-preview.97 163 3/17/2022
1.0.288-preview.92 250 3/14/2022
1.0.288-preview.64 450 2/18/2022
1.0.288-preview.20 546 1/27/2022
1.0.259 4,630 12/9/2021
1.0.176 2,963 9/22/2021
1.0.160 1,553 9/6/2021