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
<PackageReference Include="nanoFramework.System.Device.Model" Version="1.2.586" />
paket add nanoFramework.System.Device.Model --version 1.2.586
#r "nuget: nanoFramework.System.Device.Model, 1.2.586"
// 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
)在SetPowerMode
和ReadPowerMode
上使用,它们将被合并为单个模型属性
- 如果使用相同的名称(如
- 它们可以放置在无返回值且接受一个参数的方法上(该参数不必须是按引用传递的)
- 不允许在同一个接口上存在多个同名的写入器或读取器
[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是兼容的。 |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
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 |