Skip to main content

Interface IPlatformOS

Provides an abstraction for OS services such as configuration so that Meadow can operate on different OS's and platforms.

Assembly: Meadow.Contracts.dll
View Source
Declaration
public interface IPlatformOS : IPowerController

Properties

OSVersion

OS version.

View Source
Declaration
string OSVersion { get; }

OSBuildDate

OS build date and time.

View Source
Declaration
string OSBuildDate { get; }

RuntimeVersion

.NET Runtime version install on the device.

View Source
Declaration
string RuntimeVersion { get; }

RebootOnUnhandledException

Should the system reboot on an exception?

View Source
Declaration
bool RebootOnUnhandledException { get; }

InitializationTimeout

Number of seconds allowed for the system to initialize.

View Source
Declaration
uint InitializationTimeout { get; }

AutomaticallyStartNetwork

Should a WiFi connection be made on startup.

View Source
Declaration
bool AutomaticallyStartNetwork { get; }

SelectedNetwork

Which network is selected in meadow.config.yaml.

View Source
Declaration
IPlatformOS.NetworkConnectionType SelectedNetwork { get; }

SdStorageSupported

Should SD card support be enabled on this platform?

View Source
Declaration
bool SdStorageSupported { get; }

ReservedPins

Names of any pins that should be reserved for OS use.

View Source
Declaration
string ReservedPins { get; }

NtpServers

Gets a list of NTP servers used for time synchronization

View Source
Declaration
string[] NtpServers { get; }

LaunchArguments

The command line arguments provided when the Meadow application was launched

View Source
Declaration
string[]? LaunchArguments { get; }

NtpClient

Gets the OS INtpClient instance

View Source
Declaration
INtpClient NtpClient { get; }

FileSystem

FileSystemInfo property

View Source
Declaration
IPlatformOS.FileSystemInfo FileSystem { get; }

Methods

GetConfigurationValue<T>(ConfigurationValues)

Get a configuration value, as specified in meadow.config.yaml, from the OS.

View Source
Declaration
T GetConfigurationValue<T>(IPlatformOS.ConfigurationValues item) where T : struct
Returns

<T>: Value for the specified item.

Parameters
TypeNameDescription
Meadow.IPlatformOS.ConfigurationValuesitemItem to retrieve.
Type Parameters
NameDescription
TType of the object being retrieved.

SetConfigurationValue<T>(ConfigurationValues, T)

Send a configuration value to the OS.

View Source
Declaration
void SetConfigurationValue<T>(IPlatformOS.ConfigurationValues item, T value) where T : struct
Parameters
TypeNameDescription
Meadow.IPlatformOS.ConfigurationValuesitemItem to set.
<T>valueValue of item.
Type Parameters
NameDescription
TType of the object being set.

GetPublicKeyInPemFormat()

Retrieves the device's public key in PEM format

View Source
Declaration
string? GetPublicKeyInPemFormat()
Returns

System.String: A public key, including header and footer, or null if none is found### RsaDecrypt(byte[], string) Performs RSA decryption of a value using the Meadow device certificate.

View Source
Declaration
byte[] RsaDecrypt(byte[] encryptedValue, string privateKeyPem)
Returns

System.Byte[]: The decrypted value

Parameters
TypeNameDescription
System.Byte[]encryptedValueThe value to decrypt
System.StringprivateKeyPemThe private key to use for decryption (in PEM format)

AesDecrypt(byte[], byte[], byte[])

Performs AES decryption of a value using the Meadow device certificate.

View Source
Declaration
byte[] AesDecrypt(byte[] encryptedValue, byte[] key, byte[] iv)
Returns

System.Byte[]: The decrypted value

Parameters
TypeNameDescription
System.Byte[]encryptedValueThe value to decrypt
System.Byte[]keyThe key used for encrypting the buffer
System.Byte[]ivThe initialization vector to use for decryption

Initialize(DeviceCapabilities, string[]?)

Initializes platform-specific OS features

View Source
Declaration
void Initialize(DeviceCapabilities capabilities, string[]? args)
Parameters
TypeNameDescription
Meadow.DeviceCapabilitiescapabilities
System.String[]argsThe command line arguments provided when the Meadow application was launched

GetCpuTemperature()

Gets the current CPU temperature

View Source
Declaration
Temperature GetCpuTemperature()
Returns

Meadow.Units.Temperature

GetPrimaryDiskSpaceInUse()

Gets the amount of storage space in use on the primary storage device

View Source
Declaration
DigitalStorage GetPrimaryDiskSpaceInUse()
Returns

Meadow.Units.DigitalStorage

GetSerialPortNames()

Gets a list of currently available serial ports

View Source
Declaration
SerialPortName[] GetSerialPortNames()
Returns

Meadow.Hardware.SerialPortName[]

GetSerialPortName(string)

Finds a platform serial port name by either friendly or system name

View Source
Declaration
SerialPortName? GetSerialPortName(string portName)
Returns

Meadow.Hardware.SerialPortName

Parameters
TypeName
System.StringportName

SetClock(DateTime)

Sets the platform OS clock

View Source
Declaration
void SetClock(DateTime dateTime)
Parameters
TypeName
System.DateTimedateTime

GetProcessorUtilization()

Retrieves the current usage (as a percentage in the range of 0-100) for each processor/core

View Source
Declaration
int[] GetProcessorUtilization()
Returns

System.Int32[]

SetServerCertificateValidationMode(ServerCertificateValidationMode)

Sets the server certificate validation mode for SSL/TLS protocols

View Source
Declaration
void SetServerCertificateValidationMode(ServerCertificateValidationMode authmode)
Parameters
TypeNameDescription
Meadow.ServerCertificateValidationModeauthmodeThe validation mode to be set: None for no validation, Optional for facultative validation,
Required for mandatory validation
Exceptions

System.ArgumentException
Thrown when an invalid validation mode is provided System.Exception
Thrown when there is an error setting the validation mode

GetMemoryAllocationInfo()

Retrieves memory allocation statistics from the OS

View Source
Declaration
AllocationInfo GetMemoryAllocationInfo()
Returns

Meadow.AllocationInfo