diff --git a/README.md b/README.md index b92a3c3e..71a02c41 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ | nanoFramework.AtomLite | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.AtomLite.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.AtomLite/) | | nanoFramework.AtomMatrix | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.AtomMatrix.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.AtomMatrix/) | | nanoFramework.Tough | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.Tough.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.Tough/) | +| nanoFramework.CoreInk | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.CoreInk.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.CoreInk/) | ## Usage @@ -31,6 +32,7 @@ These NuGet packages provide a support for M5Stack products: - [Atom Lite](https://docs.m5stack.com/en/core/atom_lite) - [Atom Matrix](https://docs.m5stack.com/en/core/atom_matrix) - [Tough](https://docs.m5stack.com/en/core/tough) +- [CoreInk](https://docs.m5stack.com/en/core/coreink) > Note 1: Before trying to add NuGet packages to your projects and/or before flashing the devices (see next section) using MS Visual Studio (VS), open VS > Tools > Options > NuGet Package Manager > Package Sources and make sure that it contains an entry pointing to , otherwise add it. > Note 2: When invoking VS > Project > Manage NuGet Packages make sure that in the Package source drop-down menu (right upper corner) "nuget.org" is selected. @@ -62,7 +64,7 @@ For the M5Core2, Tough and Fire: nanoff --target M5Core2 --update --serialport COM3 ``` -For the Atom Lite and Matrix: +For the Atom Lite, Matrix and CoreInk: ```shell nanoff --target ESP32_PICO --update --serialport COM3 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fef9c78f..3f670e3a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -89,7 +89,10 @@ steps: - template: azure-pipelines-templates/class-lib-package.yml@templates parameters: nugetPackageName: 'nanoFramework.Tough' - + +- template: azure-pipelines-templates/class-lib-package.yml@templates + parameters: + nugetPackageName: 'nanoFramework.CoreInk' - template: azure-pipelines-templates/class-lib-publish.yml@templates # create GitHub release from main branche diff --git a/nanoFramework.CoreInk.nuspec b/nanoFramework.CoreInk.nuspec new file mode 100644 index 00000000..ea6fc368 --- /dev/null +++ b/nanoFramework.CoreInk.nuspec @@ -0,0 +1,45 @@ + + + + nanoFramework.CoreInk + $version$ + nanoFramework.CoreInk + nanoframework + false + LICENSE.md + + + docs\README.md + false + https://github.com/nanoframework/nanoFramework.M5Stack + images\nf-logo.png + + Copyright (c) .NET Foundation and Contributors + This package includes the nanoFramework.CoreInk assembly for .NET nanoFramework C# projects. + nanoFramework C# csharp netmf netnf m5stack CoreInk + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nanoFramework.CoreInk/M5CoreInk.cs b/nanoFramework.CoreInk/M5CoreInk.cs new file mode 100644 index 00000000..31bfb27d --- /dev/null +++ b/nanoFramework.CoreInk/M5CoreInk.cs @@ -0,0 +1,256 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Iot.Device.Button; +using Iot.Device.Buzzer; +using Iot.Device.EPaper.Drivers.Jd796xx; +using Iot.Device.Rtc; +using nanoFramework.Hardware.Esp32; +using System; +using System.Device.Adc; +using System.Device.Gpio; +using System.Device.I2c; +using System.Device.Spi; + +namespace nanoFramework.M5Stack +{ + /// + /// M5 CoreInk board. + /// + public static class M5CoreInk + { + private readonly static I2cDevice _device; + private static SpiDevice _spi; + private static AdcController _adc; + private static Buzzer _buzzer; + private static GpioPin _led; + private static GpioButton _button; + private static GpioButton _left; + private static GpioButton _center; + private static GpioButton _right; + private static GpioButton _power; + private static GpioController _gpio; + private static Pcf8563 _rtc; + private static Gdew0154m09 _screen; + + private const int ScreenBusyPin = 4; + private const int ScreenResetPin = 0; + private const int ScreenDCPin = 15; + + #region properties + + /// + /// Gets the upper button. + /// + public static GpioButton RollerLeft + { + get + { + _left ??= new(37, GpioController, false, PinMode.Input); + + return _left; + } + } + + /// + /// Gets the upper button. + /// + public static GpioButton RollerRight + { + get + { + _right ??= new(39, GpioController, false, PinMode.Input); + + return _right; + } + } + + /// + /// Gets the upper button. + /// + public static GpioButton RollerButton + { + get + { + _center ??= new(38, GpioController, false, PinMode.Input); + + return _center; + } + } + + /// + /// Gets the upper button. + /// + public static GpioButton Button + { + get + { + _button ??= new(5, GpioController, false); + + return _button; + } + } + + /// + /// Gets the power button. + /// + public static GpioButton Power + { + get + { + _power ??= new(27, GpioController, false); + + return _power; + } + } + + /// + /// Gets the green led. + /// + public static GpioPin Led + { + get + { + _led ??= GpioController.OpenPin(10, PinMode.Output); + + return _led; + } + } + + /// + /// Gets the Buzzer. + /// + public static Buzzer Buzzer + { + get + { + // SetPinFunction already made in the static constructor + _buzzer ??= new(2); + + return _buzzer; + } + } + + /// + /// Gets the main . + /// + public static GpioController GpioController + { + get + { + _gpio ??= new(); + + return _gpio; + } + } + + /// + /// Gets the internal clock. + /// + public static Pcf8563 RTC + { + get + { + _rtc ??= new(_device); + + return _rtc; + } + } + + /// + /// Get the ePaper screen. + /// + public static Gdew0154m09 Screen + { + get + { + InitializeScreen(); + + return _screen; + } + } + + #endregion + + static M5CoreInk() + { + Configuration.SetPinFunction(2, DeviceFunction.PWM1); + Configuration.SetPinFunction(18, DeviceFunction.SPI1_CLOCK); + Configuration.SetPinFunction(23, DeviceFunction.SPI1_MOSI); + + // RTC settings + Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA); + Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK); + I2cConnectionSettings settings = new(1, Pcf8563.DefaultI2cAddress); + _device = I2cDevice.Create(settings); + } + + /// + /// Gets an ADC channel. + /// + /// The GPIO pin number. + /// An AdcChannel + public static AdcChannel GetAdcGpio(int gpioNumber) + { + _adc ??= new(); + + switch (gpioNumber) + { + case 35: + Configuration.SetPinFunction(35, DeviceFunction.ADC1_CH7); + return _adc.OpenChannel(7); + case 36: + Configuration.SetPinFunction(36, DeviceFunction.ADC1_CH0); + return _adc.OpenChannel(0); + case 2: + Configuration.SetPinFunction(2, DeviceFunction.ADC1_CH12); + return _adc.OpenChannel(12); + case 12: + Configuration.SetPinFunction(12, DeviceFunction.ADC1_CH15); + return _adc.OpenChannel(15); + case 15: + Configuration.SetPinFunction(15, DeviceFunction.ADC1_CH13); + return _adc.OpenChannel(13); + case 25: + Configuration.SetPinFunction(25, DeviceFunction.ADC1_CH18); + return _adc.OpenChannel(18); + case 26: + Configuration.SetPinFunction(26, DeviceFunction.ADC1_CH19); + return _adc.OpenChannel(19); + case 13: + Configuration.SetPinFunction(13, DeviceFunction.ADC1_CH14); + return _adc.OpenChannel(14); + case 0: + Configuration.SetPinFunction(0, DeviceFunction.ADC1_CH11); + return _adc.OpenChannel(11); + case 34: + Configuration.SetPinFunction(34, DeviceFunction.ADC1_CH6); + return _adc.OpenChannel(6); + default: + throw new ArgumentException(nameof(gpioNumber)); + } + } + + /// + /// Initialize the eInk screen. + /// + /// An instance of the driver. + private static void InitializeScreen() + { + if (_screen == null) + { + var spiConnectionSettings = new SpiConnectionSettings(busId: 1, chipSelectLine: 9) + { + ClockFrequency = Gdew0154m09.SpiClockFrequency, + Mode = Gdew0154m09.SpiMode, + ChipSelectLineActiveState = PinValue.Low, + Configuration = SpiBusConfiguration.HalfDuplex, + DataFlow = DataFlow.MsbFirst, + }; + + _spi = new SpiDevice(spiConnectionSettings); + _screen = new Gdew0154m09(_spi, ScreenResetPin, ScreenBusyPin, ScreenDCPin, _gpio); + } + } + } +} diff --git a/nanoFramework.CoreInk/Properties/AssemblyInfo.cs b/nanoFramework.CoreInk/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..83edea41 --- /dev/null +++ b/nanoFramework.CoreInk/Properties/AssemblyInfo.cs @@ -0,0 +1,14 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("nanoFramework.CoreInk")] +[assembly: AssemblyCompany("nanoFramework Contributors")] +[assembly: AssemblyCopyright("Copyright(c).NET Foundation and Contributors")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] diff --git a/nanoFramework.CoreInk/README.md b/nanoFramework.CoreInk/README.md new file mode 100644 index 00000000..3c66c0c6 --- /dev/null +++ b/nanoFramework.CoreInk/README.md @@ -0,0 +1,43 @@ +![nanoFramework logo](https://raw.githubusercontent.com/nanoframework/Home/main/resources/logo/nanoFramework-repo-logo.png) + +----- + +# Welcome to the .NET **nanoFramework** M5 CoreInk repository + +## Firmware + +The CoreInk can be flashed through `nanoff` flashing tool with the command line: + +```shell +nanoff --target ESP32_PICO --update --serialport COM3 +``` + +## Implementation + +The static class `M5CoreInk` provides pre-configured properties for ready-to-go use of the core. + +Here's a list of the current implementation + +| Component | Property name | Implemented | Tested | +|:-|---|---|---| +| Left wheel button1 | RollerLeft | :heavy_check_mark: | :heavy_check_mark: | +| Middle wheel button1 | RollerButton | :heavy_check_mark: | :heavy_check_mark: | +| Right wheel button1 | RollerRight | :heavy_check_mark: | :heavy_check_mark: | +| Button (top position) | Button | :heavy_check_mark: | :heavy_check_mark: | +| Power button | Power | :heavy_check_mark: | :x: | +| Green led | Led | :heavy_check_mark: | :heavy_check_mark: | +| Buzzer | Buzzer | :heavy_check_mark: | :x: | +| BM8563 | RTC | :heavy_check_mark: | :heavy_check_mark: | +| ADC/DAC pins | GetAdcGpio() | :heavy_check_mark: | :x: | +| Screen | :x: | :x: | :x: | +| EXT-PORT | :x: | :x: | :x: | + +## Notes + +1 The implementation define the buttons as `PinMode.Input` as defined in the [specifications](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/esp32_datasheet_en_v3.9.pdf) Table.26 + +```text +GPIO pins 34-39 are input-only. +These pins do not feature an output driver or internal pull-up/pull-down circuitry. +The pin names are: SENSOR_VP (GPIO36), SENSOR_CAPP (GPIO37), SENSOR_CAPN (GPIO38), SENSOR_VN (GPIO39), VDET_1 (GPIO34), VDET_2 (GPIO35). +``` \ No newline at end of file diff --git a/nanoFramework.CoreInk/key.snk b/nanoFramework.CoreInk/key.snk new file mode 100644 index 00000000..67c9bb0a Binary files /dev/null and b/nanoFramework.CoreInk/key.snk differ diff --git a/nanoFramework.CoreInk/nanoFramework.CoreInk.nfproj b/nanoFramework.CoreInk/nanoFramework.CoreInk.nfproj new file mode 100644 index 00000000..b3c82ecb --- /dev/null +++ b/nanoFramework.CoreInk/nanoFramework.CoreInk.nfproj @@ -0,0 +1,107 @@ + + + + + $(MSBuildExtensionsPath)\nanoFramework\v1.0\ + + + + Debug + AnyCPU + {11A8DD76-328B-46DF-9F39-F559912D0360};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + de7ee9f2-38a0-42b6-945d-6215199ef35f + Library + Properties + 512 + nanoFramework.M5Stack + nanoFramework.CoreInk + $(DefineConstants);COREINK + bin\$(Configuration)\nanoFramework.CoreInk.xml + v1.0 + true + true + + + + + + + + + + + + + + ..\packages\nanoFramework.Iot.Device.Button.1.2.631\lib\Iot.Device.Button.dll + + + ..\packages\nanoFramework.Iot.Device.Buzzer.1.2.656\lib\Iot.Device.Buzzer.dll + + + ..\packages\nanoFramework.Iot.Device.Common.NumberHelper.1.2.628\lib\Iot.Device.Common.NumberHelper.dll + + + ..\packages\nanoFramework.Iot.Device.ePaper.1.0.487\lib\Iot.Device.ePaper.dll + + + ..\packages\nanoFramework.Iot.Device.Rtc.1.2.656\lib\Iot.Device.Rtc.dll + + + ..\packages\nanoFramework.CoreLibrary.1.15.5\lib\mscorlib.dll + + + ..\packages\nanoFramework.Graphics.Core.1.2.21\lib\nanoFramework.Graphics.Core.dll + + + ..\packages\nanoFramework.Hardware.Esp32.1.6.19\lib\nanoFramework.Hardware.Esp32.dll + + + ..\packages\nanoFramework.Runtime.Events.1.11.18\lib\nanoFramework.Runtime.Events.dll + + + ..\packages\nanoFramework.System.Device.Adc.1.1.11\lib\System.Device.Adc.dll + + + ..\packages\nanoFramework.System.Device.Gpio.1.1.41\lib\System.Device.Gpio.dll + + + ..\packages\nanoFramework.System.Device.I2c.1.1.16\lib\System.Device.I2c.dll + + + ..\packages\nanoFramework.System.Device.Model.1.2.628\lib\System.Device.Model.dll + + + ..\packages\nanoFramework.System.Device.Pwm.1.1.10\lib\System.Device.Pwm.dll + + + ..\packages\nanoFramework.System.Device.Spi.1.3.52\lib\System.Device.Spi.dll + + + ..\packages\nanoFramework.System.Math.1.5.43\lib\System.Math.dll + + + ..\packages\nanoFramework.System.Threading.1.1.32\lib\System.Threading.dll + + + ..\packages\UnitsNet.nanoFramework.Frequency.5.59.0\lib\UnitsNet.Frequency.dll + + + ..\packages\UnitsNet.nanoFramework.Temperature.5.59.0\lib\UnitsNet.Temperature.dll + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/nanoFramework.CoreInk/packages.config b/nanoFramework.CoreInk/packages.config new file mode 100644 index 00000000..cbee0e4c --- /dev/null +++ b/nanoFramework.CoreInk/packages.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nanoFramework.CoreInk/packages.lock.json b/nanoFramework.CoreInk/packages.lock.json new file mode 100644 index 00000000..f0a12623 --- /dev/null +++ b/nanoFramework.CoreInk/packages.lock.json @@ -0,0 +1,127 @@ +{ + "version": 1, + "dependencies": { + ".NETnanoFramework,Version=v1.0": { + "nanoFramework.CoreLibrary": { + "type": "Direct", + "requested": "[1.15.5, 1.15.5]", + "resolved": "1.15.5", + "contentHash": "u2+GvAp1uxLrGdILACAZy+EVKOs28EQ52j8Lz7599egXZ3GBGejjnR2ofhjMQwzrJLlgtyrsx8nSLngDfJNsAg==" + }, + "nanoFramework.Graphics.Core": { + "type": "Direct", + "requested": "[1.2.21, 1.2.21]", + "resolved": "1.2.21", + "contentHash": "R6HEmaa1fVdwaQsAAh3xfP8WkElnMXq2HqLvDKe4cFP2XljJ+MLYfA//llKhjC5ZvaGp2ldx4orUBKLNyKtPDQ==" + }, + "nanoFramework.Hardware.Esp32": { + "type": "Direct", + "requested": "[1.6.19, 1.6.19]", + "resolved": "1.6.19", + "contentHash": "dvLEvudRQ/89GtX8i/flOwb81vCMVvI3PpQ+B07b/TUz4tAvpwA7iw6ye5224Z/8j3CQBhefiZtU/jv6K7HRyw==" + }, + "nanoFramework.Iot.Device.Button": { + "type": "Direct", + "requested": "[1.2.631, 1.2.631]", + "resolved": "1.2.631", + "contentHash": "UswUKk9sKD07uOyZZvUgC3KvuAxYTmQC28Fpo+a4ew6gU2+maZw8RvDx4Hbzsfq/wBQPApOhtQhMT5jT585guw==" + }, + "nanoFramework.Iot.Device.Buzzer": { + "type": "Direct", + "requested": "[1.2.656, 1.2.656]", + "resolved": "1.2.656", + "contentHash": "iLNlBzHiPgr0hhss+/pMAGWIxK8mM+pLOwaki0iXE0CRIakloTDySfpwjJlV0FAf9+dlkhxzm3oiT5+ZAWoa3g==" + }, + "nanoFramework.Iot.Device.Common.NumberHelper": { + "type": "Direct", + "requested": "[1.2.628, 1.2.628]", + "resolved": "1.2.628", + "contentHash": "n1Na6YBFFqNv32AU+rfmAYFObeqEtf5q5uTxjCT1x+ThWDbi8eespjp/4OvXoU7C+HldXz8/uS4UZ8lswXfOfg==" + }, + "nanoFramework.Iot.Device.ePaper": { + "type": "Direct", + "requested": "[1.0.487, 1.0.487]", + "resolved": "1.0.487", + "contentHash": "x20Pt6HFJFk8j8czvz2BilY2E5GE6Oa5h6ZFGNvCVPICnDFA8e0urneiG0LBZ3VuKUyXECAxbThGj2RS6tuVLQ==" + }, + "nanoFramework.Iot.Device.Rtc": { + "type": "Direct", + "requested": "[1.2.656, 1.2.656]", + "resolved": "1.2.656", + "contentHash": "W/sCNUrO1GBrrisMVfIiXQwdlLBeTdbAilyxwxNprVVXsbPHR0qw6oyo/pvJNh4LxIlC3MuPfoeky9Ac5miztw==" + }, + "nanoFramework.Runtime.Events": { + "type": "Direct", + "requested": "[1.11.18, 1.11.18]", + "resolved": "1.11.18", + "contentHash": "t0XpUkdyBBBv/0S4oGx3yUJG1iPYWc38odvZW8mVoioSxZOJrRkRHpNfwYxTxtP4LIEyyesOPEH42d05FHfHzA==" + }, + "nanoFramework.System.Device.Adc": { + "type": "Direct", + "requested": "[1.1.11, 1.1.11]", + "resolved": "1.1.11", + "contentHash": "BlFm2MR2Os6ab++EnW6RiZ4860F1ge48mSBbqsqVXnP5xvkfE03Hop4TyqTHWQbLFKcubCc5CMkH9xxuABR6UQ==" + }, + "nanoFramework.System.Device.Gpio": { + "type": "Direct", + "requested": "[1.1.41, 1.1.41]", + "resolved": "1.1.41", + "contentHash": "5QnpdfvjxOvka2S5IHSdKudWmkH+CDQ3TFFuXOGuNlgZJFsAx0/k5zuwgJYkxIyGbL8kdcjBWLyDNdihjA1pUg==" + }, + "nanoFramework.System.Device.I2c": { + "type": "Direct", + "requested": "[1.1.16, 1.1.16]", + "resolved": "1.1.16", + "contentHash": "33YPnlZVjFwx0mOhdKTOggx+TvbjTD3WZ6rkSB33ytF9fHoqfvS1AYr4+ScUHW4z2yE7vxVWBol5mI7iEg4Aiw==" + }, + "nanoFramework.System.Device.Model": { + "type": "Direct", + "requested": "[1.2.628, 1.2.628]", + "resolved": "1.2.628", + "contentHash": "39q4OScnVtMHlGdz9ZleiwllJtE+G6OZE0Xd/qn3gEvrR4XmLCwYZ+JdVxtDU7bK5JLrJA984NKeq+l5ZW0X4A==" + }, + "nanoFramework.System.Device.Pwm": { + "type": "Direct", + "requested": "[1.1.10, 1.1.10]", + "resolved": "1.1.10", + "contentHash": "vk/Dr8No2ec+eBwwufxDK0Rm6BRnOoevjaqEXbvpFz2BK3UPiC4OhUWH3Rwel34rywg1mXozAAY9ZwvN2gnxlA==" + }, + "nanoFramework.System.Device.Spi": { + "type": "Direct", + "requested": "[1.3.52, 1.3.52]", + "resolved": "1.3.52", + "contentHash": "chtkrJp424LMitA6Fw/QzzhIrYL9PdEaln+A7o5QR99VijDoOILdMvgeeVBnIpkicUH7aY9Vj+3F2TlIGQH/+g==" + }, + "nanoFramework.System.Math": { + "type": "Direct", + "requested": "[1.5.43, 1.5.43]", + "resolved": "1.5.43", + "contentHash": "JEOEGHoIpknJFwPjjz77sT5mej2PiT7JTv59jabzFf+d8XYy8Z4SH+NdX00Xc/yDS8LIPuWb7+C245XGUUx99A==" + }, + "nanoFramework.System.Threading": { + "type": "Direct", + "requested": "[1.1.32, 1.1.32]", + "resolved": "1.1.32", + "contentHash": "6o7Y4gH15FLuo2FWGLecABiCD57V5QMf5g/hEneV64VmhoXI8Bk7r6BDBPTfAePs738xbc1ECpA5dJmbSmtilg==" + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.143, 3.6.143]", + "resolved": "3.6.143", + "contentHash": "N24MtdLq4PmdJ2woTQd9515q0I1jeO/DlimYCB/GoRd510Fc9dk9H6YaN8MPPrVF8RHrIalCUfWbWvcoarYeoQ==" + }, + "UnitsNet.nanoFramework.Frequency": { + "type": "Direct", + "requested": "[5.59.0, 5.59.0]", + "resolved": "5.59.0", + "contentHash": "zqlqhLHCUL8B8i5N2s//k93cAJ4RLcQi46EaBBlqGJFHVvOequz+zO8HfnUHYQFBELNeLxkJNZWx/qczRdCAng==" + }, + "UnitsNet.nanoFramework.Temperature": { + "type": "Direct", + "requested": "[5.59.0, 5.59.0]", + "resolved": "5.59.0", + "contentHash": "LDXMzn1y0OSSvXA+A+4iPI+P9co5QmlP/4AQdqxlNOvIZHVAN7j98HPUVSXzK8OfeUpF8lhwn41LqHDeeFNZtQ==" + } + } + } +} \ No newline at end of file diff --git a/nanoFramework.M5Stack.sln b/nanoFramework.M5Stack.sln index 28c3a238..1526a985 100644 --- a/nanoFramework.M5Stack.sln +++ b/nanoFramework.M5Stack.sln @@ -1,182 +1,190 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32126.317 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5Core", "nanoFramework.M5Core\nanoFramework.M5Core.nfproj", "{2C78D035-DBDA-4C38-AB58-8ADC22D763C3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0A689EB3-86E0-448E-99F4-3D644EC3D8C5}" - ProjectSection(SolutionItems) = preProject - nanoFramework.AtomLite.nuspec = nanoFramework.AtomLite.nuspec - nanoFramework.AtomMatrix.nuspec = nanoFramework.AtomMatrix.nuspec - nanoFramework.M5Core.nuspec = nanoFramework.M5Core.nuspec - nanoFramework.M5Core2.nuspec = nanoFramework.M5Core2.nuspec - nanoFramework.M5StickC.nuspec = nanoFramework.M5StickC.nuspec - nanoFramework.M5StickCPlus.nuspec = nanoFramework.M5StickCPlus.nuspec - nanoFramework.Tough.nuspec = nanoFramework.Tough.nuspec - NuGet.Config = NuGet.Config - version.json = version.json - EndProjectSection -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5CoreTestApp", "Tests\M5CoreTestApp\M5CoreTestApp.nfproj", "{90A94170-2C6B-4B22-BAA5-8212AC22219B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5972CDE6-43B4-42F0-9276-6B70B7EF6437}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "M5StackCommon", "M5StackCommon\M5StackCommon.shproj", "{00E23322-2401-4087-ABAE-24F90C8A0422}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5StickC", "nanoFramework.M5StickC\nanoFramework.M5StickC.nfproj", "{33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5StickCPlus", "nanoFramework.M5StickCPlus\nanoFramework.M5StickCPlus.nfproj", "{3D7119D0-557F-480F-A1CB-3540C71101AB}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "nanoFramework.M5StickCommon", "nanoFramework.M5StickCommon\nanoFramework.M5StickCommon.shproj", "{1F49B255-573D-4D02-87DA-08C4A95744B0}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5StickTestApp", "Tests\M5StickTestApp\M5StickTestApp.nfproj", "{48E3FD52-1D13-422D-AF3F-B6AEA2C72800}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5Core2", "nanoFramework.M5Core2\nanoFramework.M5Core2.nfproj", "{08C2EFD2-2812-456E-9D27-606AE88B3C1B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared projects", "Shared projects", "{FFF3F871-7600-480E-B378-95AD0F9FC0F1}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "nanoFramework.M5StackCore", "nanoFramework.M5StackCore\nanoFramework.M5StackCore.shproj", "{E2A94F3C-EE7F-4075-A98A-A19CABE82C0F}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5Core2TestApp", "Tests\M5Core2TestApp\M5Core2TestApp.nfproj", "{20266750-53F3-46D5-8626-1438AC985033}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.AtomLite", "nanoFramework.AtomLite\nanoFramework.AtomLite.nfproj", "{C20734A9-C944-4B2A-9CEA-A9B3F855B132}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "AtomLiteTestApp", "Tests\AtomLiteTestApp\AtomLiteTestApp.nfproj", "{7533C164-9D3E-461B-BEED-888C91AC640B}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.AtomMatrix", "nanoFramework.AtomMatrix\nanoFramework.AtomMatrix.nfproj", "{C47BE27B-028D-493A-85DD-7D5C24EE6EB7}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "AtomMatrixTestApp", "Tests\AtomMatrixTestApp\AtomMatrixTestApp.nfproj", "{88F1D73A-1ADF-4444-A031-024E570945CC}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "AtomCommon", "AtomCommon\AtomCommon.shproj", "{79F09006-AB5D-4E3E-AD12-2EFBEE536CA9}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "FireTestApp", "Tests\FireTestApp\FireTestApp.nfproj", "{5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.Fire", "nanoFramework.Fire\nanoFramework.Fire.nfproj", "{2550D7FC-BBA7-4173-9071-8606DD600A2C}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.Tough", "nanoFramework.Tough\nanoFramework.Tough.nfproj", "{E867A53E-3849-4AD3-832E-92D126999074}" -EndProject -Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "ToughTestApp", "Tests\ToughTestApp\ToughTestApp.nfproj", "{F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.Build.0 = Release|Any CPU - {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.Deploy.0 = Release|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.Build.0 = Release|Any CPU - {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.Deploy.0 = Release|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.Build.0 = Release|Any CPU - {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.Deploy.0 = Release|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.Build.0 = Release|Any CPU - {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.Deploy.0 = Release|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.Build.0 = Release|Any CPU - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.Deploy.0 = Release|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.Build.0 = Release|Any CPU - {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.Deploy.0 = Release|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.Build.0 = Release|Any CPU - {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.Deploy.0 = Release|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.Build.0 = Release|Any CPU - {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.Deploy.0 = Release|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.Build.0 = Release|Any CPU - {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.Deploy.0 = Release|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.Build.0 = Release|Any CPU - {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.Deploy.0 = Release|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.Build.0 = Release|Any CPU - {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.Deploy.0 = Release|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.Build.0 = Release|Any CPU - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.Deploy.0 = Release|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.Build.0 = Release|Any CPU - {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.Deploy.0 = Release|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.Build.0 = Release|Any CPU - {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.Deploy.0 = Release|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.Build.0 = Release|Any CPU - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.Deploy.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {90A94170-2C6B-4B22-BAA5-8212AC22219B} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {00E23322-2401-4087-ABAE-24F90C8A0422} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} - {1F49B255-573D-4D02-87DA-08C4A95744B0} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} - {48E3FD52-1D13-422D-AF3F-B6AEA2C72800} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {E2A94F3C-EE7F-4075-A98A-A19CABE82C0F} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} - {20266750-53F3-46D5-8626-1438AC985033} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {7533C164-9D3E-461B-BEED-888C91AC640B} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {88F1D73A-1ADF-4444-A031-024E570945CC} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {79F09006-AB5D-4E3E-AD12-2EFBEE536CA9} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} - {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DD82D7FF-B798-48A4-8506-2FBA0001D32F} - EndGlobalSection - GlobalSection(SharedMSBuildProjectFiles) = preSolution - M5StackCommon\M5StackCommon.projitems*{00e23322-2401-4087-abae-24f90c8a0422}*SharedItemsImports = 13 - nanoFramework.M5StickCommon\nanoFramework.M5StickCommon.projitems*{1f49b255-573d-4d02-87da-08c4a95744b0}*SharedItemsImports = 13 - AtomCommon\AtomCommon.projitems*{79f09006-ab5d-4e3e-ad12-2efbee536ca9}*SharedItemsImports = 13 - nanoFramework.M5StackCore\nanoFramework.M5StackCore.projitems*{e2a94f3c-ee7f-4075-a98a-a19cabe82c0f}*SharedItemsImports = 13 - EndGlobalSection -EndGlobal +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32126.317 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5Core", "nanoFramework.M5Core\nanoFramework.M5Core.nfproj", "{2C78D035-DBDA-4C38-AB58-8ADC22D763C3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0A689EB3-86E0-448E-99F4-3D644EC3D8C5}" + ProjectSection(SolutionItems) = preProject + nanoFramework.AtomLite.nuspec = nanoFramework.AtomLite.nuspec + nanoFramework.AtomMatrix.nuspec = nanoFramework.AtomMatrix.nuspec + nanoFramework.M5Core.nuspec = nanoFramework.M5Core.nuspec + nanoFramework.M5Core2.nuspec = nanoFramework.M5Core2.nuspec + nanoFramework.M5StickC.nuspec = nanoFramework.M5StickC.nuspec + nanoFramework.M5StickCPlus.nuspec = nanoFramework.M5StickCPlus.nuspec + nanoFramework.Tough.nuspec = nanoFramework.Tough.nuspec + NuGet.Config = NuGet.Config + version.json = version.json + EndProjectSection +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5CoreTestApp", "Tests\M5CoreTestApp\M5CoreTestApp.nfproj", "{90A94170-2C6B-4B22-BAA5-8212AC22219B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5972CDE6-43B4-42F0-9276-6B70B7EF6437}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "M5StackCommon", "M5StackCommon\M5StackCommon.shproj", "{00E23322-2401-4087-ABAE-24F90C8A0422}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5StickC", "nanoFramework.M5StickC\nanoFramework.M5StickC.nfproj", "{33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5StickCPlus", "nanoFramework.M5StickCPlus\nanoFramework.M5StickCPlus.nfproj", "{3D7119D0-557F-480F-A1CB-3540C71101AB}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "nanoFramework.M5StickCommon", "nanoFramework.M5StickCommon\nanoFramework.M5StickCommon.shproj", "{1F49B255-573D-4D02-87DA-08C4A95744B0}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5StickTestApp", "Tests\M5StickTestApp\M5StickTestApp.nfproj", "{48E3FD52-1D13-422D-AF3F-B6AEA2C72800}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5Core2", "nanoFramework.M5Core2\nanoFramework.M5Core2.nfproj", "{08C2EFD2-2812-456E-9D27-606AE88B3C1B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared projects", "Shared projects", "{FFF3F871-7600-480E-B378-95AD0F9FC0F1}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "nanoFramework.M5StackCore", "nanoFramework.M5StackCore\nanoFramework.M5StackCore.shproj", "{E2A94F3C-EE7F-4075-A98A-A19CABE82C0F}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5Core2TestApp", "Tests\M5Core2TestApp\M5Core2TestApp.nfproj", "{20266750-53F3-46D5-8626-1438AC985033}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.AtomLite", "nanoFramework.AtomLite\nanoFramework.AtomLite.nfproj", "{C20734A9-C944-4B2A-9CEA-A9B3F855B132}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "AtomLiteTestApp", "Tests\AtomLiteTestApp\AtomLiteTestApp.nfproj", "{7533C164-9D3E-461B-BEED-888C91AC640B}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.AtomMatrix", "nanoFramework.AtomMatrix\nanoFramework.AtomMatrix.nfproj", "{C47BE27B-028D-493A-85DD-7D5C24EE6EB7}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "AtomMatrixTestApp", "Tests\AtomMatrixTestApp\AtomMatrixTestApp.nfproj", "{88F1D73A-1ADF-4444-A031-024E570945CC}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "AtomCommon", "AtomCommon\AtomCommon.shproj", "{79F09006-AB5D-4E3E-AD12-2EFBEE536CA9}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "FireTestApp", "Tests\FireTestApp\FireTestApp.nfproj", "{5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.Fire", "nanoFramework.Fire\nanoFramework.Fire.nfproj", "{2550D7FC-BBA7-4173-9071-8606DD600A2C}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.Tough", "nanoFramework.Tough\nanoFramework.Tough.nfproj", "{E867A53E-3849-4AD3-832E-92D126999074}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "ToughTestApp", "Tests\ToughTestApp\ToughTestApp.nfproj", "{F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}" +EndProject +Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.CoreInk", "nanoFramework.CoreInk\nanoFramework.CoreInk.nfproj", "{DE7EE9F2-38A0-42B6-945D-6215199EF35F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.Build.0 = Release|Any CPU + {2C78D035-DBDA-4C38-AB58-8ADC22D763C3}.Release|Any CPU.Deploy.0 = Release|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.Build.0 = Release|Any CPU + {90A94170-2C6B-4B22-BAA5-8212AC22219B}.Release|Any CPU.Deploy.0 = Release|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.Build.0 = Release|Any CPU + {33FD3FBA-95B3-4228-BC7B-9A6F6CED7E4B}.Release|Any CPU.Deploy.0 = Release|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.Build.0 = Release|Any CPU + {3D7119D0-557F-480F-A1CB-3540C71101AB}.Release|Any CPU.Deploy.0 = Release|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.Build.0 = Release|Any CPU + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800}.Release|Any CPU.Deploy.0 = Release|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.Build.0 = Release|Any CPU + {08C2EFD2-2812-456E-9D27-606AE88B3C1B}.Release|Any CPU.Deploy.0 = Release|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.Build.0 = Release|Any CPU + {20266750-53F3-46D5-8626-1438AC985033}.Release|Any CPU.Deploy.0 = Release|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.Build.0 = Release|Any CPU + {C20734A9-C944-4B2A-9CEA-A9B3F855B132}.Release|Any CPU.Deploy.0 = Release|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.Build.0 = Release|Any CPU + {7533C164-9D3E-461B-BEED-888C91AC640B}.Release|Any CPU.Deploy.0 = Release|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.Build.0 = Release|Any CPU + {C47BE27B-028D-493A-85DD-7D5C24EE6EB7}.Release|Any CPU.Deploy.0 = Release|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.Build.0 = Release|Any CPU + {88F1D73A-1ADF-4444-A031-024E570945CC}.Release|Any CPU.Deploy.0 = Release|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.Build.0 = Release|Any CPU + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF}.Release|Any CPU.Deploy.0 = Release|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.Build.0 = Release|Any CPU + {2550D7FC-BBA7-4173-9071-8606DD600A2C}.Release|Any CPU.Deploy.0 = Release|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.Build.0 = Release|Any CPU + {E867A53E-3849-4AD3-832E-92D126999074}.Release|Any CPU.Deploy.0 = Release|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.Build.0 = Release|Any CPU + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1}.Release|Any CPU.Deploy.0 = Release|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Release|Any CPU.Build.0 = Release|Any CPU + {DE7EE9F2-38A0-42B6-945D-6215199EF35F}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {90A94170-2C6B-4B22-BAA5-8212AC22219B} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {00E23322-2401-4087-ABAE-24F90C8A0422} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} + {1F49B255-573D-4D02-87DA-08C4A95744B0} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} + {48E3FD52-1D13-422D-AF3F-B6AEA2C72800} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {E2A94F3C-EE7F-4075-A98A-A19CABE82C0F} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} + {20266750-53F3-46D5-8626-1438AC985033} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {7533C164-9D3E-461B-BEED-888C91AC640B} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {88F1D73A-1ADF-4444-A031-024E570945CC} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {79F09006-AB5D-4E3E-AD12-2EFBEE536CA9} = {FFF3F871-7600-480E-B378-95AD0F9FC0F1} + {5FF00F7C-8ED8-4468-9959-497CE8C5B1AF} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + {F5BF3DA4-B92E-46C6-A135-37E6A7E002A1} = {5972CDE6-43B4-42F0-9276-6B70B7EF6437} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DD82D7FF-B798-48A4-8506-2FBA0001D32F} + EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + M5StackCommon\M5StackCommon.projitems*{00e23322-2401-4087-abae-24f90c8a0422}*SharedItemsImports = 13 + nanoFramework.M5StickCommon\nanoFramework.M5StickCommon.projitems*{1f49b255-573d-4d02-87da-08c4a95744b0}*SharedItemsImports = 13 + AtomCommon\AtomCommon.projitems*{79f09006-ab5d-4e3e-ad12-2efbee536ca9}*SharedItemsImports = 13 + nanoFramework.M5StackCore\nanoFramework.M5StackCore.projitems*{e2a94f3c-ee7f-4075-a98a-a19cabe82c0f}*SharedItemsImports = 13 + EndGlobalSection +EndGlobal