2 new instructions:

- upload (beta)
- info

RP2040 support (see .py)
bug fixes
This commit is contained in:
Sven Vogel 2021-08-08 14:50:24 +02:00
parent da6e4bbb08
commit 54ece7e1f3
80 changed files with 2574 additions and 412 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/Matrix App/bin/

View File

@ -0,0 +1,169 @@
from time import sleep
from machine import UART, Pin
import array, time
from machine import Pin
import rp2
# Configure the number of WS2812 LEDs.
NUM_LEDS = 256
PIN_NUM = 16
brightness = 0.2
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# Create the StateMachine with the ws2812 program, outputting on pin
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(PIN_NUM))
# Start the StateMachine, it will wait for data on its FIFO.
sm.active(1)
# Display a pattern on the LEDs via an array of LED RGB values.
global ar
global leds
global gif
global currentFrame
global delay
##########################################################################
def show():
for i in range(leds):
r = ar[i] >> 16
g = ar[i] >> 8 & 0xFF
b = ar[i] & 0xFF
r = r >> 1
g = g >> 1
b = b >> 1
ar[i] = r << 16 | g << 8 | b
sm.put(ar, 8)
leds = 256 # number of leds
uart = UART(0, 9600) # serial bluetooth
led = Pin(25, Pin.OUT) # builtin LED
ar = array.array("I", [0 for _ in range(NUM_LEDS)]) # color array
gif = [array.array("I", [0 for _ in range(leds)]) for _ in range(1)]
currentFrame = -1
# gurantees that only N-bytes are read from the UART
def readNBytes(n):
rawBytes = b''
bytesRead = 0
while True:
if uart.any():
rawBytes += uart.read(n - bytesRead)
bytesRead = len(rawBytes)
# not enough was read
if bytesRead < n:
continue
else:
return rawBytes
while True:
led.low()
if uart.any() != 0:
opcode = uart.read(1)
print("Opcode: ", opcode)
if opcode == b'\x00':
width = readNBytes(1)[0]
height = readNBytes(1)[0]
if width <= 32 and height <= 32:
leds = width * height
ar = array.array("I", [0 for _ in range(leds)])
show()
elif opcode == b'\x02':
rawBytes = readNBytes(leds * 3);
for i in range(leds):
ar[i] = rawBytes[i * 3 + 1] << 16 | rawBytes[i * 3] << 8 | rawBytes[i * 3 + 2]
show()
currentFrame = -1
elif opcode == b'\x03':
r = readNBytes(1)
g = readNBytes(1)
b = readNBytes(1)
for i in range(leds):
ar[i] = g[0] << 16 | r[0] << 8 | b[0]
show()
elif opcode == b'\x04':
uart.write([75])
# [width] [height] [frames] [delay] [rgb-frames]
elif opcode == b'\x05':
gifDim = readNBytes(5)
delay = (gifDim[3] << 8) | gifDim[4]
print("w ", gifDim[0], " h ", gifDim[1], " f ", gifDim[2], " d ", delay)
leds = gifDim[0] * gifDim[1]
gif = [array.array("I", [0 for _ in range(leds)]) for _ in range(gifDim[2])]
for f in range(gifDim[2]):
frame = readNBytes(leds * 3)
print("frame read: ", f)
for i in range(leds):
gif[f][i] = frame[i * 3 + 1] << 16 | frame[i * 3] << 8 | frame[i * 3 + 2]
#uart.write(bytearray([91])) # synchronize
currentFrame = 0
print("Everything read")
# [Synchro-byte] [feature-flags] [Controller-Id]
#
# feature-flags:
# [Bit 7] = Bluetooth (true)
# [Bit 6] = USB (false)
# [Bit 0] = Upload (true)
#
elif opcode == b'\x06':
uart.write(b'\x5B\x81')
uart.write("RP2040 Micro python")
led.high()
uart.write(bytearray([75]))
elif currentFrame != -1:
print("showing")
for i in range(leds):
ar[i] = gif[currentFrame][i]
show()
currentFrame += 1
if (currentFrame >= len(gif)):
currentFrame = 0
time.sleep(delay * 1e-3)

View File

@ -1,8 +1,12 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FColorWheel/@EntryIndexedValue">False</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FColorWheel/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrix/@EntryIndexedValue">False</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrix/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrixDesigner/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FSettings/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrix/@EntryIndexedValue">False</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrix/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FProperties_002FResources/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary> <s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/OrderByFullPath/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/ShowComments/@EntryValue">False</s:Boolean></wpf:ResourceDictionary>

View File

@ -3,8 +3,6 @@ namespace Matrix_App
{ {
public static class Defaults public static class Defaults
{ {
public const int PortNameUpdateInterval = 5000;
public const int MatrixStartWidth = 16; public const int MatrixStartWidth = 16;
public const int MatrixStartHeight = 16; public const int MatrixStartHeight = 16;
public const int MatrixStartFrames = 1; public const int MatrixStartFrames = 1;
@ -12,16 +10,11 @@ namespace Matrix_App
public const int MatrixLimitedWidth = 512; public const int MatrixLimitedWidth = 512;
public const int MatrixLimitedHeight = 512; public const int MatrixLimitedHeight = 512;
public const int BaudRate = 48000; public const int BaudRate = 9600;
public const int ReadTimeoutMs = 5500;
public const int WriteTimeoutMs = 5500;
/// <summary>
/// Total count of LEDs at start
/// </summary>
public static readonly int MATRIX_START_LED_COUNT = MatrixStartWidth * MatrixStartHeight * Bpp;
public const int ReadTimeoutMs = 20500;
public const int WriteTimeoutMs = 2500;
/// <summary> /// <summary>
/// Number of Bytes Per Pixel: 3 cause Red (1 byte) + Blue (1 Byte) + Green (1 byte) = 3 /// Number of Bytes Per Pixel: 3 cause Red (1 byte) + Blue (1 Byte) + Green (1 byte) = 3
/// </summary> /// </summary>
@ -30,7 +23,9 @@ namespace Matrix_App
public const int FilterPreviewWidth = 32; public const int FilterPreviewWidth = 32;
public const int FilterPreviewHeight = 32; public const int FilterPreviewHeight = 32;
public const int ArduinoSynchronizationByte = 91;
public const int ArduinoSuccessByte = 75; public const int ArduinoSuccessByte = 75;
public const int ArduinoErrorByte = 255;
public const int ArduinoCommandQueueSize = 2; public const int ArduinoCommandQueueSize = 2;
public const int ArduinoReceiveBufferSize = 1 + 1 + 1 + MatrixLimitedWidth * MatrixLimitedHeight; public const int ArduinoReceiveBufferSize = 1 + 1 + 1 + MatrixLimitedWidth * MatrixLimitedHeight;
@ -43,6 +38,9 @@ namespace Matrix_App
public const byte OpcodeScale = 0; public const byte OpcodeScale = 0;
public const byte OpcodeImage = 2; public const byte OpcodeImage = 2;
public const byte OpcodeFill = 3; public const byte OpcodeFill = 3;
public static readonly byte OPCODE_CONFIG = 4; public const byte OpcodePush = 5;
public const byte OpcodeInfo = 6;
// public static readonly byte OpcodeConfig = 4;
} }
} }

View File

@ -8,6 +8,7 @@
<ApplicationIcon>MatrixIcon.ico</ApplicationIcon> <ApplicationIcon>MatrixIcon.ico</ApplicationIcon>
<EnableNETAnalyzers>true</EnableNETAnalyzers> <EnableNETAnalyzers>true</EnableNETAnalyzers>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@ -17,6 +18,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Bluetooth" Version="1.0.0.2" />
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
<PackageReference Include="System.IO.Ports" Version="6.0.0-preview.5.21301.5" /> <PackageReference Include="System.IO.Ports" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.Management" Version="5.0.0" /> <PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup> </ItemGroup>
@ -40,6 +43,9 @@
<Compile Update="forms\SplashScreen.cs"> <Compile Update="forms\SplashScreen.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="forms\Settings.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,6 +1,5 @@
using Matrix_App.PregeneratedMods; using Matrix_App.PregeneratedMods;
using System; using System;
using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Reflection; using System.Reflection;
using System.Threading; using System.Threading;

View File

@ -31,7 +31,7 @@ namespace Matrix_App
int index = x + (y * Width); int index = x + (y * Width);
int col = colour.ToArgb(); int col = colour.ToArgb();
Bits[index] = col; Bits[index] = col & 0x00FFFFFF;
} }
public void SetImage(Bitmap image) public void SetImage(Bitmap image)

View File

@ -1,26 +1,23 @@
using System; using System;
using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO;
using System.IO.Ports; using System.IO.Ports;
using System.Security.Permissions; using System.Security.Permissions;
using System.Text;
using System.Threading; using System.Threading;
using static Matrix_App.Defaults; using static Matrix_App.Defaults;
namespace Matrix_App namespace Matrix_App.adds
{ {
public class PortCommandQueue public class PortCommandQueue
{ {
private const string ThreadDeliverName = "Arduino Port Deliver Thread"; private const string ThreadDeliverName = "Arduino Port Deliver Thread";
private Queue<byte[]> byteWriteQueue = new Queue<byte[]>(); private readonly Queue<byte[]> byteWriteQueue = new();
private readonly Queue<byte> statusByteQueue = new();
private Thread portDeliverThread; private readonly Thread portDeliverThread;
private SerialPort port; private readonly SerialPort tx;
private bool running; private bool running;
@ -28,12 +25,15 @@ namespace Matrix_App
private volatile bool isPortValid; private volatile bool isPortValid;
private readonly byte[] recived = new byte[ArduinoReceiveBufferSize]; private readonly byte[] received = new byte[ArduinoReceiveBufferSize];
private int mark; private int mark;
public PortCommandQueue(ref SerialPort port) private volatile bool synchronized;
private bool updateRealtime;
public PortCommandQueue(ref SerialPort tx)
{ {
this.port = port; this.tx = tx;
portDeliverThread = new Thread(ManageQueue) { Name = ThreadDeliverName }; portDeliverThread = new Thread(ManageQueue) { Name = ThreadDeliverName };
} }
@ -44,38 +44,66 @@ namespace Matrix_App
{ {
while (!kill) while (!kill)
{ {
if (byteWriteQueue.Count <= 0) continue; if (!isPortValid) continue;
if (byteWriteQueue.Count <= 0)
{
lock (byteWriteQueue)
{
Monitor.Wait(byteWriteQueue);
}
continue;
}
byte[] bytes; byte[] bytes;
int statusByte;
lock (byteWriteQueue) lock (byteWriteQueue)
{ {
bytes = byteWriteQueue.Dequeue(); bytes = byteWriteQueue.Dequeue();
statusByte = statusByteQueue.Dequeue();
} }
lock (port) lock (tx)
{ {
if (!isPortValid) continue; var success = false;
var tryCounter = 0;
port.Open(); do
port.Write(bytes, 0, bytes.Length);
int b;
mark = 0;
while((b = port.ReadByte()) != ArduinoSuccessByte)
{ {
recived[mark++] = (byte) b; try
} {
tx.Write(bytes, 0, bytes.Length);
port.Close(); var b = ArduinoErrorByte;
var errorFlag = false;
mark = 0;
while (!errorFlag && (b = tx.ReadByte()) != statusByte)
{
received[mark++] = (byte) b;
errorFlag = b == ArduinoErrorByte;
}
synchronized = b == ArduinoSynchronizationByte;
success = !errorFlag;
Debug.WriteLine("===================> Com Success !");
}
catch (Exception e)
{
Debug.WriteLine("=============================> ERROR <=================================");
Debug.WriteLine(e.Message);
}
tryCounter++;
} while (!success && tryCounter < 3);
} }
} }
} catch (ThreadInterruptedException) }
catch (ThreadInterruptedException)
{ {
Thread.CurrentThread.Interrupt(); Thread.CurrentThread.Interrupt();
} }
} }
[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)] [SecurityPermission(SecurityAction.Demand, ControlThread = true)]
public void Close() public void Close()
{ {
try try
@ -93,24 +121,34 @@ namespace Matrix_App
{ {
// omit // omit
} }
finally
{
if (tx.IsOpen)
{
tx.Close();
}
}
} }
public void EnqueueArduinoCommand(params byte[] bytes) private void EnqueueArduinoCommand(params byte[] bytes)
{ {
if (!updateRealtime && bytes[0] != ArduinoInstruction.OpcodeScale &&
bytes[0] != ArduinoInstruction.OpcodePush)
return;
if (!running) if (!running)
{ {
running = true; running = true;
portDeliverThread.Start(); portDeliverThread.Start();
} }
lock (byteWriteQueue) lock (byteWriteQueue)
{ {
if (byteWriteQueue.Count < ArduinoCommandQueueSize) Monitor.Pulse(byteWriteQueue);
if (byteWriteQueue.Count >= ArduinoCommandQueueSize) return;
lock (byteWriteQueue)
{ {
lock (byteWriteQueue) byteWriteQueue.Enqueue(bytes);
{
byteWriteQueue.Enqueue(bytes);
}
} }
} }
} }
@ -121,6 +159,7 @@ namespace Matrix_App
Buffer.BlockCopy(data, 0, wrapper, 1, data.Length); Buffer.BlockCopy(data, 0, wrapper, 1, data.Length);
wrapper[0] = opcode; wrapper[0] = opcode;
statusByteQueue.Enqueue(ArduinoSuccessByte);
EnqueueArduinoCommand(wrapper); EnqueueArduinoCommand(wrapper);
} }
@ -132,11 +171,11 @@ namespace Matrix_App
} }
} }
internal void WaitForLastDequeue() public static void WaitForLastDequeue()
{ {
int timeCount = 0; var timeCount = 0;
var wait = true;
bool wait = true;
while(wait) while(wait)
{ {
timeCount++; timeCount++;
@ -148,24 +187,66 @@ namespace Matrix_App
public byte[] GetLastData() public byte[] GetLastData()
{ {
return recived; return received;
} }
public void ValidatePort() public void ValidatePort()
{ {
isPortValid = true; try
{
if (!tx.IsOpen)
{
tx.Open();
isPortValid = true;
}
}
catch (Exception e)
{
isPortValid = false;
Debug.WriteLine("Failed opening port: " + e.Message);
}
} }
public void InvalidatePort() public void InvalidatePort()
{ {
isPortValid = false; isPortValid = false;
tx.Close();
} }
/// <summary>
/// Returns last location of written byte in the received buffer.
/// Call clears the mark. Any other call will return 0, unless the mark has been
/// altered by reading new data from the serial port.
/// </summary>
/// <returns></returns>
public int GetMark() public int GetMark()
{ {
int tmp = mark; var tmp = mark;
mark = 0; mark = 0;
return tmp; return tmp;
} }
public void EnqueueArduinoCommandSynchronized(byte[] bytes)
{
statusByteQueue.Enqueue(ArduinoSynchronizationByte);
EnqueueArduinoCommand(bytes);
while (!synchronized)
{
}
Debug.WriteLine("======================> Synchronized!");
synchronized = false;
}
public void SetRealtimeUpdates(bool @checked)
{
updateRealtime = @checked;
}
public bool GetRealtimeUpdates()
{
return updateRealtime;
}
} }
} }

View File

@ -16,8 +16,6 @@ namespace Matrix_App
private volatile bool working; private volatile bool working;
private readonly int capacity; private readonly int capacity;
private static readonly AutoResetEvent ResetEvent = new AutoResetEvent(false);
public ThreadQueue(string name, int capacity) public ThreadQueue(string name, int capacity)
{ {
@ -66,14 +64,9 @@ namespace Matrix_App
} }
else else
{ {
try lock (taskQueue)
{ {
ResetEvent.WaitOne(100); Monitor.Wait(taskQueue);
}
catch (ThreadInterruptedException)
{
Thread.CurrentThread.Interrupt();
return;
} }
} }
} }
@ -85,10 +78,11 @@ namespace Matrix_App
{ {
if (taskQueue.Count >= capacity) if (taskQueue.Count >= capacity)
return; return;
Monitor.Pulse(taskQueue);
working = true; working = true;
taskQueue.Enqueue(task); taskQueue.Enqueue(task);
ResetEvent.Set();
} }
} }
@ -99,8 +93,12 @@ namespace Matrix_App
public void Stop() public void Stop()
{ {
lock (taskQueue)
{
Monitor.Pulse(taskQueue);
}
running = false; running = false;
ResetEvent.Set();
thread.Interrupt(); thread.Interrupt();
thread.Join(100); thread.Join(100);

Binary file not shown.

View File

@ -8,6 +8,8 @@
".NETCoreApp,Version=v3.1": { ".NETCoreApp,Version=v3.1": {
"Matrix App/1.0.0": { "Matrix App/1.0.0": {
"dependencies": { "dependencies": {
"Bluetooth": "1.0.0.2",
"System.Drawing.Common": "5.0.2",
"System.IO.Ports": "6.0.0-preview.5.21301.5", "System.IO.Ports": "6.0.0-preview.5.21301.5",
"System.Management": "5.0.0" "System.Management": "5.0.0"
}, },
@ -15,7 +17,21 @@
"Matrix App.dll": {} "Matrix App.dll": {}
} }
}, },
"Bluetooth/1.0.0.2": {
"dependencies": {
"Microsoft.Windows.SDK.Contracts": "10.0.19041.1",
"System.Runtime.InteropServices.WindowsRuntime": "4.3.0",
"System.Runtime.WindowsRuntime": "4.7.0"
},
"runtime": {
"lib/netstandard2.0/Bluetooth.dll": {
"assemblyVersion": "1.0.0.2",
"fileVersion": "1.0.0.2"
}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {}, "Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": { "Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"dependencies": { "dependencies": {
"System.Security.AccessControl": "6.0.0-preview.5.21301.5", "System.Security.AccessControl": "6.0.0-preview.5.21301.5",
@ -36,6 +52,31 @@
} }
} }
}, },
"Microsoft.Win32.SystemEvents/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
"dependencies": {
"System.Runtime.WindowsRuntime": "4.7.0",
"System.Runtime.WindowsRuntime.UI.Xaml": "4.6.0"
}
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": { "runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"runtimeTargets": { "runtimeTargets": {
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": { "runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
@ -88,6 +129,31 @@
} }
} }
}, },
"System.Drawing.Common/5.0.2": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "5.0.0"
},
"runtime": {
"lib/netcoreapp3.0/System.Drawing.Common.dll": {
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
},
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
}
},
"System.IO.Ports/6.0.0-preview.5.21301.5": { "System.IO.Ports/6.0.0-preview.5.21301.5": {
"dependencies": { "dependencies": {
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5", "Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
@ -141,6 +207,28 @@
} }
} }
}, },
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.Runtime.WindowsRuntime/4.7.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
}
},
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.Runtime.WindowsRuntime": "4.7.0"
}
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": { "System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"dependencies": { "dependencies": {
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5" "System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
@ -190,6 +278,13 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Bluetooth/1.0.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dI5MtUEkDm2L81kHFeofWkpOvq7Yn2iNVl8dKa+DIeXhqHb9LrBSH7LpmaNOlZMLwQFDKageUpxV0w39GMeUag==",
"path": "bluetooth/1.0.0.2",
"hashPath": "bluetooth.1.0.0.2.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/5.0.0": { "Microsoft.NETCore.Platforms/5.0.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -197,6 +292,13 @@
"path": "microsoft.netcore.platforms/5.0.0", "path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
}, },
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": { "Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -204,6 +306,20 @@
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5", "path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
"hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512" "hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512"
}, },
"Microsoft.Win32.SystemEvents/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
"path": "microsoft.win32.systemevents/5.0.0",
"hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512"
},
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sgDwuoyubbLFNJR/BINbvfSNRiglF91D+Q0uEAkU4ZTO5Hgbnu8+gA4TCc65S56e1kK7gvR1+H4kphkDTr+9bw==",
"path": "microsoft.windows.sdk.contracts/10.0.19041.1",
"hashPath": "microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512"
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": { "runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -246,6 +362,13 @@
"path": "system.codedom/5.0.0", "path": "system.codedom/5.0.0",
"hashPath": "system.codedom.5.0.0.nupkg.sha512" "hashPath": "system.codedom.5.0.0.nupkg.sha512"
}, },
"System.Drawing.Common/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
"path": "system.drawing.common/5.0.2",
"hashPath": "system.drawing.common.5.0.2.nupkg.sha512"
},
"System.IO.Ports/6.0.0-preview.5.21301.5": { "System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -260,6 +383,34 @@
"path": "system.management/5.0.0", "path": "system.management/5.0.0",
"hashPath": "system.management.5.0.0.nupkg.sha512" "hashPath": "system.management.5.0.0.nupkg.sha512"
}, },
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-J4GUi3xZQLUBasNwZnjrffN8i5wpHrBtZoLG+OhRyGo/+YunMRWWtwoMDlUAIdmX0uRfpHIBDSV6zyr3yf00TA==",
"path": "system.runtime.interopservices.windowsruntime/4.3.0",
"hashPath": "system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512"
},
"System.Runtime.WindowsRuntime/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RQxUkf37fp7MSWbOfKRjUjyudyfZb2u79YY5i1s+d7vuD80A7kmr2YfefO0JprQUhanxSm8bhXigCVfX2kEh+w==",
"path": "system.runtime.windowsruntime/4.7.0",
"hashPath": "system.runtime.windowsruntime.4.7.0.nupkg.sha512"
},
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-r4tNw5v5kqRJ9HikWpcyNf3suGw7DjX93svj9iBjtdeLqL8jt9Z+7f+s4wrKZJr84u8IMsrIjt8K6jYvkRqMSg==",
"path": "system.runtime.windowsruntime.ui.xaml/4.6.0",
"hashPath": "system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512"
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": { "System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,

View File

@ -0,0 +1,278 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"Matrix App/1.0.0": {
"dependencies": {
"System.IO.Ports": "6.0.0-preview.5.21301.5",
"System.Management": "5.0.0"
},
"runtime": {
"Matrix App.dll": {}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"dependencies": {
"System.Security.AccessControl": "6.0.0-preview.5.21301.5",
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
},
"runtimeTargets": {
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
}
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"runtimeTargets": {
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.linux-arm64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"runtimeTargets": {
"runtimes/linux-arm64/native/libSystem.IO.Ports.Native.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.linux-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"runtimeTargets": {
"runtimes/linux-x64/native/libSystem.IO.Ports.Native.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"dependencies": {
"runtime.linux-arm.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
"runtime.linux-arm64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
"runtime.linux-x64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
"runtime.osx-x64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5"
}
},
"runtime.osx-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"runtimeTargets": {
"runtimes/osx-x64/native/libSystem.IO.Ports.Native.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"System.CodeDom/5.0.0": {
"runtime": {
"lib/netstandard2.0/System.CodeDom.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.IO.Ports/6.0.0-preview.5.21301.5": {
"dependencies": {
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
"runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5"
},
"runtime": {
"lib/netstandard2.0/System.IO.Ports.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
},
"runtimeTargets": {
"runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "linux",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
},
"runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "osx",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
},
"runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
}
},
"System.Management/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
"System.CodeDom": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Management.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.Management.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"dependencies": {
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
},
"runtime": {
"lib/netstandard2.0/System.Security.AccessControl.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
},
"runtimeTargets": {
"runtimes/win/lib/netstandard2.0/System.Security.AccessControl.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
}
},
"System.Security.Principal.Windows/6.0.0-preview.5.21301.5": {
"runtime": {
"lib/netstandard2.0/System.Security.Principal.Windows.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
},
"runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.30105"
}
}
}
}
},
"libraries": {
"Matrix App/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
"hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
"path": "runtime.linux-arm.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"runtime.linux-arm64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fN2ienMgX5Gl8rmmmTkCxEBeN+KMEwHkTIE+4bHIH0sgPZJqrGV7o7sjjivZlv95L64cF+a4UVlxGqiMVEN6Nw==",
"path": "runtime.linux-arm64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"runtime.linux-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wLbxixueLlN1bT3tHi4bnXhyp2tuyJ92TBBBwW01YS4isxkLr8o4f2AGw8YbsF4y2Fgx8RRQiipkG1EFrZ7AKg==",
"path": "runtime.linux-x64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9Int9JpQ3quVnY3nsUFmrcanozIrEMFAydF+v8KmDwh0CtPb2AZLyyRtNEC3Z1WmoF8qf+T7jWwuPlrfl338dw==",
"path": "runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"runtime.osx-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IhXEnQFgPxM/pUkEJkFBkr6XBkWFiuMGLlyl5BDG7LkJuGX4jAxJwL6n9Pue88ZyV45c0ajvuZOBnZJap+uIKA==",
"path": "runtime.osx-x64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"System.CodeDom/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==",
"path": "system.codedom/5.0.0",
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
},
"System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
"path": "system.io.ports/6.0.0-preview.5.21301.5",
"hashPath": "system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"System.Management/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
"path": "system.management/5.0.0",
"hashPath": "system.management.5.0.0.nupkg.sha512"
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
"path": "system.security.accesscontrol/6.0.0-preview.5.21301.5",
"hashPath": "system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512"
},
"System.Security.Principal.Windows/6.0.0-preview.5.21301.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ywwCqFAaRVbgqqORqYg8jdaX6NUEpzbuhxyUhAs+7mZ8AFAO4PzFYrZ5JPkYejXwougDldtbi0zOkk1lLzugLw==",
"path": "system.security.principal.windows/6.0.0-preview.5.21301.5",
"hashPath": "system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\SvenV\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\SvenV\\.nuget\\packages"
]
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
}
}
}

View File

@ -732,7 +732,6 @@ namespace Matrix_App
private void InitializeComponent() private void InitializeComponent()
{ {
components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
} }
} }
} }

View File

@ -1,5 +1,6 @@
using System.IO.Ports; using System.IO.Ports;
using System.Drawing; using System.Drawing;
using System.Windows.Forms;
namespace Matrix_App namespace Matrix_App
{ {
@ -35,7 +36,7 @@ namespace Matrix_App
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MatrixDesignerMain)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MatrixDesignerMain));
this.Ports = new System.Windows.Forms.ComboBox(); this.Ports = new System.Windows.Forms.Button();
this.Modus = new System.Windows.Forms.TabControl(); this.Modus = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage1 = new System.Windows.Forms.TabPage();
this.groupBox3 = new System.Windows.Forms.GroupBox(); this.groupBox3 = new System.Windows.Forms.GroupBox();
@ -82,6 +83,7 @@ namespace Matrix_App
this.DragDropButton = new System.Windows.Forms.Button(); this.DragDropButton = new System.Windows.Forms.Button();
matrixView = new Matrix_App.Matrix(); matrixView = new Matrix_App.Matrix();
this.panel3 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel();
this.PushButton = new Button();
this.Modus.SuspendLayout(); this.Modus.SuspendLayout();
this.tabPage1.SuspendLayout(); this.tabPage1.SuspendLayout();
this.groupBox3.SuspendLayout(); this.groupBox3.SuspendLayout();
@ -107,13 +109,20 @@ namespace Matrix_App
// //
// Ports // Ports
// //
this.Ports.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.Ports.Location = new System.Drawing.Point(62, 130); this.Ports.Location = new System.Drawing.Point(62, 130);
this.Ports.Name = "Ports"; this.Ports.Name = "Ports";
this.Ports.Size = new System.Drawing.Size(163, 23); this.Ports.Size = new System.Drawing.Size(163, 23);
this.Ports.TabIndex = 0; this.Ports.TabIndex = 0;
this.Ports.SelectedIndexChanged += new System.EventHandler(this.Ports_SelectedIndexChanged); this.Ports.Click += PortsOnClick;
// this.Ports.Text = "Settings";
//
// Push Button
//
this.PushButton.Location = new Point(3, 481 + 113 + 8);
this.PushButton.Size = new Size(216, 23 + 6);
this.PushButton.Text = "Push Animation";
this.PushButton.Click += PushButtonOnClick;
//
// Modus // Modus
// //
this.Modus.Controls.Add(this.tabPage1); this.Modus.Controls.Add(this.tabPage1);
@ -345,7 +354,7 @@ namespace Matrix_App
this.matrixHeight.Size = new System.Drawing.Size(163, 23); this.matrixHeight.Size = new System.Drawing.Size(163, 23);
this.matrixHeight.TabIndex = 1; this.matrixHeight.TabIndex = 1;
this.matrixHeight.Value = new decimal(new int[] { this.matrixHeight.Value = new decimal(new int[] {
Defaults.MatrixStartHeight, 16,
0, 0,
0, 0,
0}); 0});
@ -377,6 +386,7 @@ namespace Matrix_App
// Zeichnen // Zeichnen
// //
this.Zeichnen.BackColor = System.Drawing.Color.Transparent; this.Zeichnen.BackColor = System.Drawing.Color.Transparent;
this.Zeichnen.Controls.Add(this.PushButton);
this.Zeichnen.Controls.Add(this.groupBox2); this.Zeichnen.Controls.Add(this.groupBox2);
this.Zeichnen.Controls.Add(this.groupBox1); this.Zeichnen.Controls.Add(this.groupBox1);
this.Zeichnen.Controls.Add(this.Clear); this.Zeichnen.Controls.Add(this.Clear);
@ -550,6 +560,7 @@ namespace Matrix_App
this.fill.TabIndex = 7; this.fill.TabIndex = 7;
this.fill.Text = "Fill"; this.fill.Text = "Fill";
this.fill.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.fill.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.fill.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.fill.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.fill.UseVisualStyleBackColor = true; this.fill.UseVisualStyleBackColor = true;
this.fill.Click += new System.EventHandler(this.DrawFill_Click); this.fill.Click += new System.EventHandler(this.DrawFill_Click);
@ -559,7 +570,7 @@ namespace Matrix_App
this.ZeichnenFarbRad.BackColor = System.Drawing.SystemColors.Control; this.ZeichnenFarbRad.BackColor = System.Drawing.SystemColors.Control;
this.ZeichnenFarbRad.Location = new System.Drawing.Point(8, 12); this.ZeichnenFarbRad.Location = new System.Drawing.Point(8, 12);
this.ZeichnenFarbRad.Name = "ZeichnenFarbRad"; this.ZeichnenFarbRad.Name = "ZeichnenFarbRad";
this.ZeichnenFarbRad.Size = new System.Drawing.Size(209, 214); this.ZeichnenFarbRad.Size = new System.Drawing.Size(209, 209);
this.ZeichnenFarbRad.TabIndex = 0; this.ZeichnenFarbRad.TabIndex = 0;
// //
// pregeneratedMods // pregeneratedMods
@ -737,7 +748,7 @@ namespace Matrix_App
#endregion #endregion
private System.Windows.Forms.ComboBox Ports; private System.Windows.Forms.Button Ports;
private System.Windows.Forms.TabControl Modus; private System.Windows.Forms.TabControl Modus;
private System.Windows.Forms.TabPage tabPage1; private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage Zeichnen; private System.Windows.Forms.TabPage Zeichnen;
@ -784,6 +795,7 @@ namespace Matrix_App
private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label6;
private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Button PushButton;
} }
} }

View File

@ -2,53 +2,52 @@
#define DEBUG_ENABLED #define DEBUG_ENABLED
using System; using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Drawing; using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.IO.Ports;
using System.Timers;
using System.Drawing.Imaging; using System.Drawing.Imaging;
using System.IO; using System.IO;
using System.Management; using System.IO.Ports;
using System.Text.RegularExpressions; using System.Timers;
using System.Windows.Forms;
using Matrix_App.adds;
using Matrix_App.forms;
using Matrix_App.Properties;
using Matrix_App.Themes;
using static Matrix_App.Defaults; using static Matrix_App.Defaults;
using static Matrix_App.ArduinoInstruction; using static Matrix_App.ArduinoInstruction;
using static Matrix_App.Utils; using static Matrix_App.Utils;
using Matrix_App.Themes;
using Timer = System.Timers.Timer; using Timer = System.Timers.Timer;
namespace Matrix_App namespace Matrix_App
{ {
public partial class MatrixDesignerMain : Form public partial class MatrixDesignerMain : Form
{ {
private void PortsOnClick(object? sender, EventArgs e)
{
new Settings(ref commandQueue, ref port);
}
#region Private-Members #region Private-Members
/// <summary> /// <summary>
/// Port update Timer /// Port update Timer
/// Reloads available port names at consecutive rates /// Reloads available port names at consecutive rates
/// </summary> /// </summary>
private Timer? portNameUpdater;
private Timer? delay; private Timer? delay;
private static SerialPort _port = new SerialPort();
private uint portNumber;
private bool runningGif; private bool runningGif;
private readonly PortCommandQueue commandQueue = new PortCommandQueue(ref _port); private static SerialPort port = new();
private readonly Regex comRegex = new Regex(@"COM[\d]+");
private PortCommandQueue commandQueue = new(ref port);
/// <summary> /// <summary>
/// Gif like frame video buffer /// Gif like frame video buffer
/// </summary> /// </summary>
public static byte[][] gifBuffer = CreateImageRGB_NT(MatrixStartWidth, MatrixStartHeight, MatrixStartFrames); public static byte[][] gifBuffer = CreateImageRGB_NT(MatrixStartWidth, MatrixStartHeight, MatrixStartFrames);
public static readonly ThreadQueue IMAGE_DRAWER = new ThreadQueue("Matrix Image Drawer", 4); public static readonly ThreadQueue IMAGE_DRAWER = new("Matrix Image Drawer", 4);
#endregion #endregion
#region Setup #region Setup
@ -61,7 +60,7 @@ namespace Matrix_App
matrixView.Instance(this); matrixView.Instance(this);
// Generate filter access buttons // Generate filter access buttons
MatrixGifGenerator.GenerateBaseUi(pregeneratedModsBase, matrixView, this); MatrixGifGenerator.GenerateBaseUi(pregeneratedModsBase, matrixView, this);
Init(); Init();
// apply light-mode by default // apply light-mode by default
new LightMode().ApplyTheme(this); new LightMode().ApplyTheme(this);
@ -71,12 +70,6 @@ namespace Matrix_App
private void Init() private void Init()
{ {
// Create port name update timer
portNameUpdater = new Timer(PortNameUpdateInterval);
portNameUpdater.Elapsed += UpdatePortNames;
portNameUpdater.AutoReset = true;
portNameUpdater.Enabled = true;
// create gif playback timer // create gif playback timer
delay = new Timer((int) Delay.Value); delay = new Timer((int) Delay.Value);
delay.Elapsed += Timelineupdate; delay.Elapsed += Timelineupdate;
@ -86,42 +79,42 @@ namespace Matrix_App
ZeichnenFarbRad.handler = ColorWheel_Handler!; ZeichnenFarbRad.handler = ColorWheel_Handler!;
// setup port settings // setup port settings
_port.BaudRate = BaudRate; port.BaudRate = BaudRate;
_port.ReadTimeout = ReadTimeoutMs; port.ReadTimeout = ReadTimeoutMs;
_port.WriteTimeout = WriteTimeoutMs; port.WriteTimeout = WriteTimeoutMs;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
// setup matrix // setup matrix
AdjustMatrixTable(); AdjustMatrixTable();
// search for initial ports // search for initial ports
GatherPortNames(); //GatherPortNames();
HideEasterEgg(); HideEasterEgg();
} }
private void HideEasterEgg() private void HideEasterEgg()
{ {
if (((int) DateTime.Now.DayOfWeek) != 3) if (DateTime.Now.DayOfWeek != DayOfWeek.Wednesday)
return; return;
if (new Random().Next(0, 9) >= 1) if (new Random().Next(0, 9) >= 1)
return; return;
using (Bitmap wednesdayFrog = new Bitmap(Properties.Resources.Frosch)) using (Bitmap wednesdayFrog = new(Resources.Frosch))
{ {
matrixWidth.Value = wednesdayFrog.Width; matrixWidth.Value = wednesdayFrog.Width;
matrixHeight.Value = wednesdayFrog.Height; matrixHeight.Value = wednesdayFrog.Height;
ResizeGif(); ResizeGif();
for (var x = 0; x < wednesdayFrog.Width; x++) for (var x = 0; x < wednesdayFrog.Width; x++)
for (var y = 0; y < wednesdayFrog.Height; y++)
{ {
for (var y = 0; y < wednesdayFrog.Height; y++) var pixel = wednesdayFrog.GetPixel(x, y);
{
var pixel = wednesdayFrog.GetPixel(x, y);
matrixView.SetPixelNoRefresh(x, y, pixel); matrixView.SetPixelNoRefresh(x, y, pixel);
}
} }
} }
@ -133,164 +126,31 @@ namespace Matrix_App
#region UI-Methods #region UI-Methods
#region Port-ComboBox #region Port-ComboBox
/// <summary>
/// Updates the port names to newest available ports.
/// Called by <see cref="portNameUpdater"/>.
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void UpdatePortNames(object source, ElapsedEventArgs e)
{
if (Ports.InvokeRequired)
{
// invoke on the combo-boxes thread
Ports.Invoke(new Action(GatherPortNames));
}
else
{
// run on this thread
GatherPortNames();
}
}
/// <summary>
/// Gathers all available ports and sets them to the combobox <see cref="Ports"/>
/// </summary>
[SuppressMessage("ReSharper", "CoVariantArrayConversion", Justification = "Never got an exception, so seems to be just fine")]
private void GatherPortNames()
{
var ports = SerialPort.GetPortNames();
// save previously selected
var selected = this.Ports.SelectedItem;
// get device names from ports
var newPorts = GetDeviceNames(ports);
// add virtual port
newPorts.AddLast("Virtual-Unlimited (COM257)");
// search for new port
foreach (var newPort in newPorts)
{
// find any new port
var found = Ports.Items.Cast<object?>().Any(oldPort => (string) oldPort! == newPort);
// some port wasn't found, recreate list
if (!found)
{
commandQueue.InvalidatePort();
Ports.Items.Clear();
Ports.Items.AddRange(newPorts.ToArray()!);
// select previously selected port if port is still accessible
if (selected != null && Ports.Items.Contains(selected))
{
Ports.SelectedItem = selected;
} else
{
Ports.SelectedIndex = 0;
}
break;
}
}
}
private static LinkedList<string> GetDeviceNames(string[] ports)
{
ManagementClass processClass = new ManagementClass("Win32_PnPEntity");
ManagementObjectCollection devicePortNames = processClass.GetInstances();
var newPorts = new LinkedList<string>();
foreach (var currentPort in ports)
{
foreach (var o in devicePortNames)
{
var name = ((ManagementObject) o).GetPropertyValue("Name");
if (name == null || !name.ToString()!.Contains(currentPort))
continue;
newPorts.AddLast(name.ToString()!);
break;
}
}
return newPorts;
}
/// <summary>
/// Invoked when the selected port has changed.
/// Applies the new port settings.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Ports_SelectedIndexChanged(object sender, EventArgs e)
{
lock (_port)
{
if (_port.IsOpen)
{
_port.Close();
}
var item = (string)((ComboBox)sender).SelectedItem;
if (item != null)
{
// extract port
var matches = comRegex.Matches(item);
if(matches.Count > 0)
{
// only select valid port numbers (up to (including) 256)
portNumber = UInt32.Parse(matches[0].Value.Split('M')[1]);
if (portNumber <= 256)
{
// set valid port
_port.PortName = matches[0].Value;
commandQueue.ValidatePort();
} else if (portNumber == 257)
{
// virtual mode, increase limitations as no real arduino is connected
matrixWidth.Maximum = MatrixLimitedWidth;
matrixHeight.Maximum = MatrixLimitedHeight;
commandQueue.InvalidatePort();
} else
{
// no port selected reset settings
matrixWidth.Maximum = MatrixStartWidth;
matrixHeight.Maximum = MatrixStartHeight;
}
}
}
}
}
#endregion #endregion
#region Scale #region Scale
/// <summary> /// <summary>
/// Applies a new size to the gif and matrix /// Applies a new size to the gif and matrix
/// </summary> /// </summary>
private void AdjustMatrixTable() private void AdjustMatrixTable()
{ {
int width = (int)this.matrixWidth.Value; var width = (int) matrixWidth.Value;
int height = (int)this.matrixHeight.Value; var height = (int) matrixHeight.Value;
matrixView.resize(width, height); matrixView.resize(width, height);
ResizeGif(); ResizeGif();
// Delay.Minimum = Math.Min(Width.Value * Height.Value * 5, 500); // Delay.Minimum = Math.Min(Width.Value * Height.Value * 5, 500);
} }
private void Width_ValueChanged(object sender, EventArgs e) private void Width_ValueChanged(object sender, EventArgs e)
{ {
AdjustMatrixTable(); AdjustMatrixTable();
commandQueue.EnqueueArduinoCommand( commandQueue.EnqueueArduinoCommand(
OpcodeScale, // opcode OpcodeScale, // opcode
(byte)matrixWidth.Value, (byte) matrixWidth.Value,
(byte)matrixHeight.Value (byte) matrixHeight.Value
); );
} }
@ -298,9 +158,9 @@ namespace Matrix_App
{ {
AdjustMatrixTable(); AdjustMatrixTable();
commandQueue.EnqueueArduinoCommand( commandQueue.EnqueueArduinoCommand(
OpcodeScale, // opcode OpcodeScale, // opcode
(byte)matrixWidth.Value, (byte) matrixWidth.Value,
(byte)matrixHeight.Value (byte) matrixHeight.Value
); );
} }
@ -309,20 +169,25 @@ namespace Matrix_App
#region Edit/Draw #region Edit/Draw
#region TextBoxen #region TextBoxen
private void DrawTextBoxRed_KeyUp(object sender, KeyEventArgs e) private void DrawTextBoxRed_KeyUp(object sender, KeyEventArgs e)
{ {
if (int.TryParse(ZeichnenTextBoxRed.Text, out var value) && value < 256 && value >= 0) if (int.TryParse(ZeichnenTextBoxRed.Text, out var value) && value < 256 && value >= 0)
{ {
ZeichnenTrackBarRed.Value = value; ZeichnenTrackBarRed.Value = value;
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
else if (value >= 256) else if (value >= 256)
{ {
ZeichnenTrackBarRed.Value = 255; ZeichnenTrackBarRed.Value = 255;
ZeichnenTextBoxRed.Text = @"255"; ZeichnenTextBoxRed.Text = @"255";
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
private void DrawTextBoxGreen_KeyUp(object sender, KeyEventArgs e) private void DrawTextBoxGreen_KeyUp(object sender, KeyEventArgs e)
@ -330,16 +195,19 @@ namespace Matrix_App
if (int.TryParse(ZeichnenTextBoxGreen.Text, out var value) && value < 256 && value >= 0) if (int.TryParse(ZeichnenTextBoxGreen.Text, out var value) && value < 256 && value >= 0)
{ {
ZeichnenTrackBarGreen.Value = value; ZeichnenTrackBarGreen.Value = value;
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
else if (value >= 256) else if (value >= 256)
{ {
ZeichnenTrackBarGreen.Value = 255; ZeichnenTrackBarGreen.Value = 255;
ZeichnenTextBoxGreen.Text = @"255"; ZeichnenTextBoxGreen.Text = @"255";
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
private void DrawTextBoxBlue_KeyUp(object sender, KeyEventArgs e) private void DrawTextBoxBlue_KeyUp(object sender, KeyEventArgs e)
@ -347,44 +215,56 @@ namespace Matrix_App
if (int.TryParse(ZeichnenTextBoxBlue.Text, out var value) && value < 256 && value >= 0) if (int.TryParse(ZeichnenTextBoxBlue.Text, out var value) && value < 256 && value >= 0)
{ {
ZeichnenTrackBarBlue.Value = value; ZeichnenTrackBarBlue.Value = value;
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
else if (value >= 256) else if (value >= 256)
{ {
ZeichnenTrackBarBlue.Value = 255; ZeichnenTrackBarBlue.Value = 255;
ZeichnenTextBoxBlue.Text = @"255"; ZeichnenTextBoxBlue.Text = @"255";
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
} }
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
#endregion #endregion
#region TackBars #region TackBars
private void ZeichnenTrackBarRed_Scroll(object sender, EventArgs e) private void ZeichnenTrackBarRed_Scroll(object sender, EventArgs e)
{ {
ZeichnenTextBoxRed.Text = ZeichnenTrackBarRed.Value.ToString(); ZeichnenTextBoxRed.Text = ZeichnenTrackBarRed.Value.ToString();
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value)); (byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
private void ZeichnenTrackBarGreen_Scroll(object sender, EventArgs e) private void ZeichnenTrackBarGreen_Scroll(object sender, EventArgs e)
{ {
ZeichnenTextBoxGreen.Text = ZeichnenTrackBarGreen.Value.ToString(); ZeichnenTextBoxGreen.Text = ZeichnenTrackBarGreen.Value.ToString();
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value)); (byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
private void ZeichnenTrackBarBlue_Scroll(object sender, EventArgs e) private void ZeichnenTrackBarBlue_Scroll(object sender, EventArgs e)
{ {
ZeichnenTextBoxBlue.Text = ZeichnenTrackBarBlue.Value.ToString(); ZeichnenTextBoxBlue.Text = ZeichnenTrackBarBlue.Value.ToString();
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value); ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value)); (byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
#endregion #endregion
/// <summary> /// <summary>
/// Sets a new color to the edit tab /// Sets a new color to the edit tab
/// </summary> /// </summary>
/// <param name="color"></param> /// <param name="color"></param>
public void SetColor(Color color) public void SetColor(Color color)
@ -401,7 +281,7 @@ namespace Matrix_App
} }
/// <summary> /// <summary>
/// Updates trackbars and RGB-textboxes according to color wheel settings /// Updates trackbars and RGB-textboxes according to color wheel settings
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
@ -415,30 +295,32 @@ namespace Matrix_App
ZeichnenTextBoxGreen.Text = ZeichnenFarbRad.getGreen().ToString(); ZeichnenTextBoxGreen.Text = ZeichnenFarbRad.getGreen().ToString();
ZeichnenTextBoxBlue.Text = ZeichnenFarbRad.getBlue().ToString(); ZeichnenTextBoxBlue.Text = ZeichnenFarbRad.getBlue().ToString();
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value)); matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
} }
/// <summary> /// <summary>
/// Fills the entire Matrix with a color /// Fills the entire Matrix with a color
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void DrawFill_Click(object sender, EventArgs e) private void DrawFill_Click(object sender, EventArgs e)
{ {
var color = Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value); var color = Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(color); matrixView.SetPaintColor(color);
matrixView.Fill(color); matrixView.Fill(color);
commandQueue.EnqueueArduinoCommand( commandQueue.EnqueueArduinoCommand(
OpcodeFill, // Opcode OpcodeFill, // Opcode
(byte)ZeichnenTrackBarRed.Value, // Red (byte) ZeichnenTrackBarGreen.Value, // Red
(byte)ZeichnenTrackBarGreen.Value,// Green (byte) ZeichnenTrackBarRed.Value, // Green
(byte)ZeichnenTrackBarBlue.Value // Blue (byte) ZeichnenTrackBarBlue.Value // Blue
); );
} }
/// <summary> /// <summary>
/// Sets the entire Matrix to black /// Sets the entire Matrix to black
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
@ -447,25 +329,25 @@ namespace Matrix_App
matrixView.Fill(Color.Black); matrixView.Fill(Color.Black);
commandQueue.EnqueueArduinoCommand( commandQueue.EnqueueArduinoCommand(
OpcodeFill, // opcode OpcodeFill, // opcode
0, // red 0, // red
0, // green 0, // green
0 // blue 0 // blue
); );
} }
#endregion #endregion
#region Image-Drag-Drop #region Image-Drag-Drop
/// <summary> /// <summary>
/// Handles click event, opens a file dialog to choose and image file /// Handles click event, opens a file dialog to choose and image file
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void DragDrop_Click(object sender, EventArgs e) private void DragDrop_Click(object sender, EventArgs e)
{ {
using OpenFileDialog openFileDialog = new OpenFileDialog using OpenFileDialog openFileDialog = new()
{ {
InitialDirectory = "c:\\", InitialDirectory = "c:\\",
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*", Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
@ -482,8 +364,8 @@ namespace Matrix_App
} }
/// <summary> /// <summary>
/// Loads an image file froim disk and sets the matrix to it. /// Loads an image file froim disk and sets the matrix to it.
/// If the image is an gif, the gif buffer will be set to the gif, as well as the matrix itself. /// If the image is an gif, the gif buffer will be set to the gif, as well as the matrix itself.
/// </summary> /// </summary>
/// <param name="filePath"></param> /// <param name="filePath"></param>
private void LoadFromFile(string filePath) private void LoadFromFile(string filePath)
@ -496,9 +378,9 @@ namespace Matrix_App
var frames = Math.Min(gif.GetFrameCount(FrameDimension.Time), 120); var frames = Math.Min(gif.GetFrameCount(FrameDimension.Time), 120);
if (gif.GetFrameCount(FrameDimension.Time) > 120) if (gif.GetFrameCount(FrameDimension.Time) > 120)
{ MessageBox.Show(
MessageBox.Show(@"Das Gif ist zu Groß. Die Maximalgröße sind 120 Frames. Das Gif wird abgeschnitten sein, damit es in die Maximalgröße passt.", @"Gif to large"); @"Das Gif ist zu Groß. Die Maximalgröße sind 120 Frames. Das Gif wird abgeschnitten sein, damit es in die Maximalgröße passt.",
} @"Gif to large");
FrameCount.Value = frames; FrameCount.Value = frames;
Timeline.Maximum = frames - 1; Timeline.Maximum = frames - 1;
@ -515,44 +397,41 @@ namespace Matrix_App
// fetch each pixel and store // fetch each pixel and store
for (var x = 0; x < bitmap.Width; x++) for (var x = 0; x < bitmap.Width; x++)
for (var y = 0; y < bitmap.Height; y++)
{ {
for (var y = 0; y < bitmap.Height; y++) var pixel = bitmap.GetPixel(x, y);
{
var pixel = bitmap.GetPixel(x, y);
var index = x + y * bitmap.Width; var index = x + y * bitmap.Width;
matrixView.SetPixelNoRefresh(x, y, pixel); matrixView.SetPixelNoRefresh(x, y, pixel);
gifBuffer[i][index * 3 + 0] = pixel.R; gifBuffer[i][index * 3 + 0] = pixel.R;
gifBuffer[i][index * 3 + 1] = pixel.G; gifBuffer[i][index * 3 + 1] = pixel.G;
gifBuffer[i][index * 3 + 2] = pixel.B; gifBuffer[i][index * 3 + 2] = pixel.B;
}
} }
} }
matrixView.Refresh(); matrixView.Refresh();
Timeline.Value = 0; Timeline.Value = 0;
} }
else else
{ {
Bitmap bitmap = ResizeImage(new Bitmap(filePath), matrixView.matrixWidth(), matrixView.matrixHeight()); Bitmap bitmap = ResizeImage(new Bitmap(filePath), matrixView.matrixWidth(), matrixView.matrixHeight());
matrixView.SetImage(bitmap); matrixView.SetImage(bitmap);
for (int x = 0; x < bitmap.Width; x++) for (var x = 0; x < bitmap.Width; x++)
for (var y = 0; y < bitmap.Height; y++)
{ {
for (int y = 0; y < bitmap.Height; y++) var pixel = bitmap.GetPixel(x, y);
{
var pixel = bitmap.GetPixel(x, y);
int index = x + y * bitmap.Width; var index = x + y * bitmap.Width;
gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R; gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R;
gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G; gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G;
gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B; gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B;
}
} }
} }
WriteImage(gifBuffer[Timeline.Value]); WriteImage(gifBuffer[Timeline.Value]);
} }
@ -566,15 +445,15 @@ namespace Matrix_App
private void DragDrop_DragDrop(object sender, DragEventArgs e) private void DragDrop_DragDrop(object sender, DragEventArgs e)
{ {
string[] picturePath = (string[])e.Data.GetData(DataFormats.FileDrop); string[] picturePath = (string[]) e.Data.GetData(DataFormats.FileDrop);
LoadFromFile(picturePath[0]); LoadFromFile(picturePath[0]);
} }
#endregion #endregion
#region Timeline #region Timeline
public void ResetTimeline() public void ResetTimeline()
{ {
Timeline.Value = 1; Timeline.Value = 1;
@ -583,7 +462,7 @@ namespace Matrix_App
public int GetDelayTime() public int GetDelayTime()
{ {
return (int)Delay.Value; return (int) Delay.Value;
} }
private void FrameCount_ValueChanged(object sender, EventArgs e) private void FrameCount_ValueChanged(object sender, EventArgs e)
@ -597,16 +476,16 @@ namespace Matrix_App
else else
{ {
Timeline.Enabled = true; Timeline.Enabled = true;
Timeline.Maximum = (int)FrameCount.Value - 1; Timeline.Maximum = (int) FrameCount.Value - 1;
} }
} }
private void Timeline_ValueChanged(object sender, EventArgs e) private void Timeline_ValueChanged(object sender, EventArgs e)
{ {
var timeFrame = Timeline.Value; var timeFrame = Timeline.Value;
WriteImage(gifBuffer[timeFrame]); WriteImage(gifBuffer[timeFrame]);
lock (matrixView) lock (matrixView)
{ {
matrixView.SetImage(gifBuffer[timeFrame]); matrixView.SetImage(gifBuffer[timeFrame]);
@ -614,22 +493,22 @@ namespace Matrix_App
} }
/// <summary> /// <summary>
/// Stores the current matrix at the index noted by the timeline into the Gif /// Stores the current matrix at the index noted by the timeline into the Gif
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void Apply_Click(object sender, EventArgs e) private void Apply_Click(object sender, EventArgs e)
{ {
int width = matrixView.matrixWidth(); var width = matrixView.matrixWidth();
int height = matrixView.matrixHeight(); var height = matrixView.matrixHeight();
for (int y = 0; y < height; y++) for (var y = 0; y < height; y++)
{ {
int i = y * width; var i = y * width;
for (int x = 0; x < width; x++) for (var x = 0; x < width; x++)
{ {
int tmp = (i + x) * 3; var tmp = (i + x) * 3;
var color = matrixView.GetPixel(x, y); var color = matrixView.GetPixel(x, y);
@ -640,27 +519,21 @@ namespace Matrix_App
} }
} }
private void Timelineupdate(Object source, ElapsedEventArgs e) private void Timelineupdate(object source, ElapsedEventArgs e)
{ {
if (Timeline.InvokeRequired) if (Timeline.InvokeRequired)
{
// invoke on the combo-boxes thread // invoke on the combo-boxes thread
Timeline.Invoke(new Action(() => Timeline.Invoke(new Action(() =>
{ {
if (Timeline.Value < Timeline.Maximum) if (Timeline.Value < Timeline.Maximum)
{
Timeline.Value = Timeline.Value + 1; Timeline.Value = Timeline.Value + 1;
}
else else
{
Timeline.Value = 0; Timeline.Value = 0;
}
})); }));
}
} }
/// <summary> /// <summary>
/// Starts playing the timeline /// Starts playing the timeline
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
@ -674,19 +547,19 @@ namespace Matrix_App
Timeline.Value = 0; Timeline.Value = 0;
runningGif = true; runningGif = true;
if (delay != null) if (delay != null)
delay.Enabled = true; delay.Enabled = true;
Play.Image = new Bitmap(Properties.Resources.Stop); Play.Image = new Bitmap(Resources.Stop);
} }
else else
{ {
Play.Image = new Bitmap(Properties.Resources.Play); Play.Image = new Bitmap(Resources.Play);
Play.Text = @"Play"; Play.Text = @"Play";
runningGif = false; runningGif = false;
if (delay != null) if (delay != null)
delay.Enabled = false; delay.Enabled = false;
} }
} }
@ -695,27 +568,27 @@ namespace Matrix_App
private void Timeline_MouseDown(object sender, MouseEventArgs e) private void Timeline_MouseDown(object sender, MouseEventArgs e)
{ {
if (!runningGif) return; if (!runningGif) return;
Play.Image = new Bitmap(Properties.Resources.Play); Play.Image = new Bitmap(Resources.Play);
Play.Text = @"Play"; Play.Text = @"Play";
runningGif = false; runningGif = false;
if (delay != null) if (delay != null)
delay.Enabled = false; delay.Enabled = false;
} }
private void Delay_ValueChanged(object sender, EventArgs _) private void Delay_ValueChanged(object sender, EventArgs _)
{ {
if (delay != null) if (delay != null)
delay.Interval = (int) Delay.Value; delay.Interval = (int) Delay.Value;
} }
#endregion #endregion
#region Properties #region Properties
private void Save_Click(object sender, EventArgs e) private void Save_Click(object sender, EventArgs e)
{ {
SaveFileDialog save = new SaveFileDialog SaveFileDialog save = new()
{ {
InitialDirectory = "c:\\", InitialDirectory = "c:\\",
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*", Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
@ -727,20 +600,23 @@ namespace Matrix_App
{ {
string filePath = save.FileName; string filePath = save.FileName;
Bitmap[] gifBitmap = new Bitmap[gifBuffer.Length]; Bitmap[] gifBitmap = new Bitmap[gifBuffer.Length];
GifWriter writer = new GifWriter(File.Create(filePath)); GifWriter writer = new(File.Create(filePath));
for (var i = 0; i < FrameCount.Value; i++) for (var i = 0; i < FrameCount.Value; i++)
{ {
gifBitmap[i] = new Bitmap((int)matrixWidth.Value, (int)matrixHeight.Value); gifBitmap[i] = new Bitmap((int) matrixWidth.Value, (int) matrixHeight.Value);
for (var j = 0; j < gifBuffer[i].Length / 3; j++) for (var j = 0; j < gifBuffer[i].Length / 3; j++)
{ {
var y = j / (int) matrixWidth.Value; var y = j / (int) matrixWidth.Value;
var x = j % (int) matrixWidth.Value; var x = j % (int) matrixWidth.Value;
gifBitmap[i].SetPixel(x, y, Color.FromArgb(gifBuffer[i][j * 3], gifBuffer[i][j * 3 + 1], gifBuffer[i][j * 3 + 2])); gifBitmap[i].SetPixel(x, y,
Color.FromArgb(gifBuffer[i][j * 3], gifBuffer[i][j * 3 + 1], gifBuffer[i][j * 3 + 2]));
} }
writer.WriteFrame(gifBitmap[i], (int)Delay.Value);
writer.WriteFrame(gifBitmap[i], (int) Delay.Value);
} }
writer.Dispose(); writer.Dispose();
} }
} }
@ -748,7 +624,7 @@ namespace Matrix_App
private void ConfigButton_Click(object sender, EventArgs e) private void ConfigButton_Click(object sender, EventArgs e)
{ {
commandQueue.EnqueueArduinoCommand(4); commandQueue.EnqueueArduinoCommand(4);
commandQueue.WaitForLastDequeue(); PortCommandQueue.WaitForLastDequeue();
byte[] data = commandQueue.GetLastData(); byte[] data = commandQueue.GetLastData();
if (commandQueue.GetMark() > 0) if (commandQueue.GetMark() > 0)
@ -758,23 +634,21 @@ namespace Matrix_App
matrixWidth.Value = width; matrixWidth.Value = width;
matrixHeight.Value = height; matrixHeight.Value = height;
for (var y = 0; y < height; y++) for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
{ {
for (var x = 0; x < width; x++) var i0 = x * 3 + y * width * 3;
{
var i0 = x * 3 + y * width * 3;
var x1 = height - y - 1; var x1 = height - y - 1;
var y1 = width - x - 1; var y1 = width - x - 1;
var i1 = x1 * 3 + y1 * width * 3; var i1 = x1 * 3 + y1 * width * 3;
// degamma // degamma
gifBuffer[0][i0 + 0] = (byte) MathF.Sqrt(data[i1 + 0 + 2] / 258.0f * 65536.0f); gifBuffer[0][i0 + 0] = (byte) MathF.Sqrt(data[i1 + 0 + 2] / 258.0f * 65536.0f);
gifBuffer[0][i0 + 1] = (byte) MathF.Sqrt(data[i1 + 1 + 2] / 258.0f * 65536.0f); gifBuffer[0][i0 + 1] = (byte) MathF.Sqrt(data[i1 + 1 + 2] / 258.0f * 65536.0f);
gifBuffer[0][i0 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f); gifBuffer[0][i0 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f);
}
} }
Timeline.Value = 1; Timeline.Value = 1;
@ -794,16 +668,14 @@ namespace Matrix_App
} }
/// <summary> /// <summary>
/// Resizes the Gif image buffer /// Resizes the Gif image buffer
/// </summary> /// </summary>
private void ResizeGif() private void ResizeGif()
{ {
int frames = (int)FrameCount.Value; var frames = (int) FrameCount.Value;
gifBuffer = new byte[frames + 1][]; gifBuffer = new byte[frames + 1][];
for (int i = 0; i <= frames; i++) for (var i = 0; i <= frames; i++)
{
gifBuffer[i] = new byte[matrixView.matrixWidth() * matrixView.matrixHeight() * 3]; gifBuffer[i] = new byte[matrixView.matrixWidth() * matrixView.matrixHeight() * 3];
}
} }
#endregion #endregion
@ -834,32 +706,29 @@ namespace Matrix_App
var height = matrixView.matrixHeight(); var height = matrixView.matrixHeight();
for (var y = 0; y < height; y++) for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
{ {
for (var x = 0; x < width; x++) var i0 = x * 3 + y * width * 3;
{
var i0 = x * 3 + y * width * 3;
; var x1 = height - y - 1; ;
var y1 = width - x - 1; var x1 = height - y - 1;
var y1 = width - x - 1;
var i1 = x1 * 3 + y1 * width * 3; var i1 = x1 * 3 + y1 * width * 3;
gammaImage[i0 + 0] = rgbImageData[i1 + 0]; gammaImage[i0 + 0] = rgbImageData[i1 + 0];
gammaImage[i0 + 1] = rgbImageData[i1 + 1]; gammaImage[i0 + 1] = rgbImageData[i1 + 1];
gammaImage[i0 + 2] = rgbImageData[i1 + 2]; gammaImage[i0 + 2] = rgbImageData[i1 + 2];
}
} }
for (var i = 0; i < rgbImageData.Length; i++) for (var i = 0; i < rgbImageData.Length; i++)
{ gammaImage[i] = (byte) ((gammaImage[i] * gammaImage[i] * 258) >> 16);
gammaImage[i] = (byte) (gammaImage[i] * gammaImage[i] * 258 >> 16);
}
commandQueue.EnqueueArduinoCommand(OpcodeImage, gammaImage); commandQueue.EnqueueArduinoCommand(OpcodeImage, gammaImage);
} }
/// <summary> /// <summary>
/// Converts the matrix's pixel ARGB buffer to an 3-byte RGB tuple array and sends them to the arduino /// Converts the matrix's pixel ARGB buffer to an 3-byte RGB tuple array and sends them to the arduino
/// </summary> /// </summary>
public void EnqueuePixelSet() public void EnqueuePixelSet()
{ {
@ -869,14 +738,36 @@ namespace Matrix_App
for (var x = 0; x < pixels.Length; x++) for (var x = 0; x < pixels.Length; x++)
{ {
image[x * 3 + 0] = (byte) (pixels[x] >> 16 & 0xFF); image[x * 3 + 0] = (byte) ((pixels[x] >> 16) & 0xFF);
image[x * 3 + 1] = (byte) (pixels[x] >> 8 & 0xFF); image[x * 3 + 1] = (byte) ((pixels[x] >> 8) & 0xFF);
image[x * 3 + 2] = (byte) (pixels[x] >> 0 & 0xFF); image[x * 3 + 2] = (byte) ((pixels[x] >> 0) & 0xFF);
} }
WriteImage(image); WriteImage(image);
} }
#endregion #endregion
private void PushButtonOnClick(object? sender, EventArgs e)
{
var bytes = matrixWidth.Value * matrixHeight.Value * 3 * gifBuffer.Length + 5;
var data = new byte[(int) bytes];
data[0] = (byte) matrixWidth.Value;
data[1] = (byte) matrixHeight.Value;
data[2] = (byte) gifBuffer.Length;
data[3] = (byte) ((int) Delay.Value >> 8);
data[4] = (byte) ((int) Delay.Value & 0xFF);
for (var frame = 0; frame < gifBuffer.Length; frame++)
{
for (var pixel = 0; pixel < gifBuffer[0].Length; pixel++)
{
data[frame * gifBuffer[0].Length + pixel + 5] = (byte) (gifBuffer[frame][pixel] * gifBuffer[frame][pixel] * 258 >> 16);
}
}
commandQueue.EnqueueArduinoCommand(OpcodePush, data);
}
} }
} }

245
Matrix App/forms/Settings.Designer.cs generated Normal file
View File

@ -0,0 +1,245 @@
using System.ComponentModel;
namespace Matrix_App.forms
{
partial class Settings
{
/// <summary>
/// Required designer variable.
/// </summary>
private IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.UpdateRealtimeCheckbox = new System.Windows.Forms.CheckBox();
this.WritePortCombobox = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.BluetoothFlagLabel = new System.Windows.Forms.Label();
this.USBFlagLabel = new System.Windows.Forms.Label();
this.UploadFlagLabel = new System.Windows.Forms.Label();
this.Controller = new System.Windows.Forms.Label();
this.ControllerNameLabel = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(285, 28);
this.label1.TabIndex = 0;
this.label1.Text = "COM Settings";
//
// UpdateRealtimeCheckbox
//
this.UpdateRealtimeCheckbox.Location = new System.Drawing.Point(18, 40);
this.UpdateRealtimeCheckbox.Name = "UpdateRealtimeCheckbox";
this.UpdateRealtimeCheckbox.Size = new System.Drawing.Size(159, 26);
this.UpdateRealtimeCheckbox.TabIndex = 2;
this.UpdateRealtimeCheckbox.Text = "Realtime update";
this.UpdateRealtimeCheckbox.UseVisualStyleBackColor = true;
this.UpdateRealtimeCheckbox.CheckedChanged += new System.EventHandler(this.UpdateRealtimeCheckbox_CheckedChanged);
//
// WritePortCombobox
//
this.WritePortCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.WritePortCombobox.FormattingEnabled = true;
this.WritePortCombobox.Location = new System.Drawing.Point(6, 24);
this.WritePortCombobox.Name = "WritePortCombobox";
this.WritePortCombobox.Size = new System.Drawing.Size(430, 21);
this.WritePortCombobox.TabIndex = 5;
this.WritePortCombobox.SelectedIndexChanged += new System.EventHandler(this.WritePortCombobox_SelectedIndexChanged_1);
//
// label3
//
this.label3.Location = new System.Drawing.Point(442, 27);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(88, 17);
this.label3.TabIndex = 6;
this.label3.Text = "Serial Port";
this.label3.Click += new System.EventHandler(this.label3_Click);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.ControllerNameLabel);
this.groupBox1.Controls.Add(this.Controller);
this.groupBox1.Controls.Add(this.UploadFlagLabel);
this.groupBox1.Controls.Add(this.USBFlagLabel);
this.groupBox1.Controls.Add(this.BluetoothFlagLabel);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.WritePortCombobox);
this.groupBox1.Location = new System.Drawing.Point(12, 72);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(536, 211);
this.groupBox1.TabIndex = 8;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Serial Port";
//
// label5
//
this.label5.Location = new System.Drawing.Point(6, 102);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(129, 17);
this.label5.TabIndex = 10;
this.label5.Text = "USB";
this.label5.Click += new System.EventHandler(this.label5_Click);
//
// label4
//
this.label4.Location = new System.Drawing.Point(6, 85);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(129, 17);
this.label4.TabIndex = 9;
this.label4.Text = "Bluetooth";
//
// label2
//
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
this.label2.Location = new System.Drawing.Point(6, 60);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(127, 25);
this.label2.TabIndex = 8;
this.label2.Text = "Features";
this.label2.Click += new System.EventHandler(this.label2_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(6, 181);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(97, 24);
this.button1.TabIndex = 7;
this.button1.Text = "Auto detect";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label6
//
this.label6.Location = new System.Drawing.Point(6, 119);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(129, 17);
this.label6.TabIndex = 11;
this.label6.Text = "Upload";
//
// BluetoothFlagLabel
//
this.BluetoothFlagLabel.Location = new System.Drawing.Point(89, 85);
this.BluetoothFlagLabel.Name = "BluetoothFlagLabel";
this.BluetoothFlagLabel.Size = new System.Drawing.Size(129, 17);
this.BluetoothFlagLabel.TabIndex = 12;
this.BluetoothFlagLabel.Text = "-";
//
// USBFlagLabel
//
this.USBFlagLabel.Location = new System.Drawing.Point(89, 102);
this.USBFlagLabel.Name = "USBFlagLabel";
this.USBFlagLabel.Size = new System.Drawing.Size(129, 17);
this.USBFlagLabel.TabIndex = 13;
this.USBFlagLabel.Text = "-";
//
// UploadFlagLabel
//
this.UploadFlagLabel.Location = new System.Drawing.Point(89, 119);
this.UploadFlagLabel.Name = "UploadFlagLabel";
this.UploadFlagLabel.Size = new System.Drawing.Size(129, 17);
this.UploadFlagLabel.TabIndex = 14;
this.UploadFlagLabel.Text = "-";
//
// Controller
//
this.Controller.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
this.Controller.Location = new System.Drawing.Point(6, 150);
this.Controller.Name = "Controller";
this.Controller.Size = new System.Drawing.Size(129, 17);
this.Controller.TabIndex = 15;
this.Controller.Text = "Controller:";
//
// ControllerNameLabel
//
this.ControllerNameLabel.Location = new System.Drawing.Point(89, 150);
this.ControllerNameLabel.Name = "ControllerNameLabel";
this.ControllerNameLabel.Size = new System.Drawing.Size(129, 17);
this.ControllerNameLabel.TabIndex = 16;
this.ControllerNameLabel.Text = "-";
//
// Settings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(564, 295);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.UpdateRealtimeCheckbox);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Settings";
this.ShowInTaskbar = false;
this.Text = "Settings";
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.Label ControllerNameLabel;
private System.Windows.Forms.Label Controller;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label BluetoothFlagLabel;
private System.Windows.Forms.Label USBFlagLabel;
private System.Windows.Forms.Label UploadFlagLabel;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.CheckBox UpdateRealtimeCheckbox;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.ComboBox WritePortCombobox;
private System.Windows.Forms.Label label1;
#endregion
}
}

View File

@ -0,0 +1,250 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.IO.Ports;
using System.Linq;
using System.Management;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Matrix_App.adds;
namespace Matrix_App.forms
{
public partial class Settings : Form
{
private readonly SerialPort port;
private readonly PortCommandQueue queue;
private readonly Regex comRegex = new Regex(@"COM([\d]+)");
public Settings(ref PortCommandQueue queue, ref SerialPort port)
{
InitializeComponent();
this.queue = queue;
this.port = port;
GatherPortNames(WritePortCombobox, port.PortName);
UpdateRealtimeCheckbox.Checked = queue.GetRealtimeUpdates();
Show();
}
private void UpdateRealtimeCheckbox_CheckedChanged(object sender, EventArgs e)
{
queue.SetRealtimeUpdates(UpdateRealtimeCheckbox.Checked);
}
private bool disableValidation;
/// <summary>
/// Gathers all available ports and sets them to the combobox
/// </summary>
[SuppressMessage("ReSharper", "CoVariantArrayConversion", Justification = "Never got an exception, so seems to be just fine")]
private void GatherPortNames(ComboBox portBox, string initialCom)
{
disableValidation = true;
var ports = SerialPort.GetPortNames();
// save previously selected
var selected = portBox.SelectedItem ?? initialCom;
if (!port.IsOpen)
{
selected = "None";
}
// get device names from ports
var newPorts = GetDeviceNames(ports);
// add virtual port
newPorts.AddLast("None");
// search for new port
foreach (var newPort in newPorts)
{
// find any new port
var found = portBox.Items.Cast<object?>().Any(oldPort => (string) oldPort! == newPort);
// some port wasn't found, recreate list
if (!found)
{
portBox.Items.Clear();
portBox.Items.AddRange(newPorts.ToArray()!);
break;
}
}
portBox.SelectedItem = portBox.Items.Count - 1;
foreach (var item in portBox.Items)
{
if (item == null)
continue;
if (!((string) item).Contains((string) selected))
continue;
portBox.SelectedItem = item;
GetPortInformation();
disableValidation = false;
return;
}
queue.InvalidatePort();
}
private static LinkedList<string> GetDeviceNames(IEnumerable<string> ports)
{
ManagementClass processClass = new ManagementClass("Win32_PnPEntity");
ManagementObjectCollection devicePortNames = processClass.GetInstances();
var newPorts = new LinkedList<string>();
foreach (var currentPort in ports)
{
foreach (var o in devicePortNames)
{
var name = ((ManagementObject) o).GetPropertyValue("Name");
if (name == null || !name.ToString()!.Contains(currentPort))
continue;
newPorts.AddLast(name.ToString()!);
break;
}
}
return newPorts;
}
private void ValidatePortSelection(ComboBox box, SerialPort port)
{
if (disableValidation)
return;
lock (port)
{
if (port.IsOpen)
{
port.Close();
}
var item = (string) box.SelectedItem;
{
// extract port
var matches = comRegex.Matches(item);
if(matches.Count > 0)
{
// set valid port
port.PortName = matches[0].Value;
queue.ValidatePort();
GetPortInformation();
}
else
{
BluetoothFlagLabel.Text = @"-";
USBFlagLabel.Text = @"-";
UploadFlagLabel.Text = @"-";
ControllerNameLabel.Text = @"-";
}
}
}
}
private void GetPortInformation()
{
if (port.IsOpen)
{
try
{
if (port.IsOpen)
{
port.Write(new byte[]{0x06}, 0, 1);
var @byte = port.ReadByte();
var flags = port.ReadByte();
var name = port.ReadTo("\x4B");
BluetoothFlagLabel.Text = (flags & 0b10000000) == 0 ? "false" : "true";
USBFlagLabel.Text = (flags & 0b01000000) == 0 ? "false" : "true";
UploadFlagLabel.Text = (flags & 0b00000001) == 0 ? "false" : "true";
ControllerNameLabel.Text = name;
}
}
catch (Exception e)
{
Debug.WriteLine("ERROR! " + e.Message);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
foreach (var item in WritePortCombobox.Items)
{
if (item == null || (string) item == "None")
continue;
var number = comRegex.Match(item as string).Groups[1].ToString();
var portNumber = UInt32.Parse(number);
var testPort = new SerialPort {PortName = "COM" + portNumber, ReadTimeout = 500, WriteTimeout = 500};
try
{
testPort.Open();
testPort.Write(new byte[] {0x06}, 0, 1);
var answer = testPort.ReadByte();
testPort.DiscardInBuffer();
testPort.DiscardOutBuffer();
if (answer == 91)
{
WritePortCombobox.SelectedIndex = WritePortCombobox.Items.Count - 1;
WritePortCombobox.SelectedItem = item;
break;
}
}
catch (Exception)
{
// ignored
}
finally
{
testPort.Close();
testPort.Dispose();
}
}
}
private void label3_Click(object sender, EventArgs e)
{
throw new System.NotImplementedException();
}
private void WritePortCombobox_SelectedIndexChanged_1(object sender, EventArgs e)
{
ValidatePortSelection(WritePortCombobox, port);
}
private void label2_Click(object sender, EventArgs e)
{
throw new System.NotImplementedException();
}
private void label5_Click(object sender, EventArgs e)
{
throw new System.NotImplementedException();
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1 +1 @@
2fd371e536027e5b611b0b4082d7a8540ace9153 ee08f3fd4fec0961f4d332058a40061343b3301b

View File

@ -36,3 +36,48 @@ F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matri
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.exe
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.deps.json
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.json
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.dev.json
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.pdb
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.Registry.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.CodeDom.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.IO.Ports.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Management.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.AccessControl.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.Principal.Windows.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux\lib\netstandard2.0\System.IO.Ports.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx\lib\netstandard2.0\System.IO.Ports.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.IO.Ports.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Management.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.AccessControl.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csprojAssemblyReference.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.ColorWheel.resources
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Matrix.resources
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.MatrixDesignerMain.resources
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Properties.Resources.resources
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.GenerateResource.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.GeneratedMSBuildEditorConfig.editorconfig
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfoInputs.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfo.cs
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CoreCompileInputs.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CopyComplete
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Drawing.Common.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.forms.Settings.resources
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Bluetooth.dll

View File

@ -1 +1 @@
515eead76ebf0b414116e9f97a694849e0a06bf3 ba5d749f524a96f4bc8a665369065c925956c5b6

View File

@ -1,17 +1,17 @@
{ {
"format": 1, "format": 1,
"restore": { "restore": {
"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {} "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {}
}, },
"projects": { "projects": {
"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": { "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj", "projectUniqueName": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"projectName": "Matrix App", "projectName": "Matrix App",
"projectPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj", "projectPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\", "packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\", "outputPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -40,6 +40,14 @@
"netcoreapp3.1": { "netcoreapp3.1": {
"targetAlias": "netcoreapp3.1", "targetAlias": "netcoreapp3.1",
"dependencies": { "dependencies": {
"Bluetooth": {
"target": "Package",
"version": "[1.0.0.2, )"
},
"System.Drawing.Common": {
"target": "Package",
"version": "[5.0.2, )"
},
"System.IO.Ports": { "System.IO.Ports": {
"target": "Package", "target": "Package",
"version": "[6.0.0-preview.5.21301.5, )" "version": "[6.0.0-preview.5.21301.5, )"

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]

View File

@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Matrix App")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Matrix App")]
[assembly: System.Reflection.AssemblyTitleAttribute("Matrix App")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View File

@ -0,0 +1 @@
39de9d24d938d695442768dc93361a4c97b58647

View File

@ -0,0 +1,8 @@
is_global = true
build_property.TargetFramework = netcoreapp3.1
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.PublishSingleFile =
build_property.IncludeAllContentForSelfExtract =
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows

View File

@ -0,0 +1 @@
3fc6bc78589ef3eb4111eb99db02236b755b7630

View File

@ -0,0 +1,38 @@
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.exe
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.deps.json
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.runtimeconfig.json
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.runtimeconfig.dev.json
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.pdb
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Microsoft.Win32.Registry.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.CodeDom.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.IO.Ports.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Management.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Security.AccessControl.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Security.Principal.Windows.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux\lib\netstandard2.0\System.IO.Ports.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\osx\lib\netstandard2.0\System.IO.Ports.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.IO.Ports.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Management.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.AccessControl.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csprojAssemblyReference.cache
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.ColorWheel.resources
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.Matrix.resources
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.MatrixDesignerMain.resources
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.Properties.Resources.resources
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.GenerateResource.cache
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.GeneratedMSBuildEditorConfig.editorconfig
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.AssemblyInfoInputs.cache
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.AssemblyInfo.cs
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.CoreCompileInputs.cache
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.CopyComplete
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.dll
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.pdb
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.genruntimeconfig.cache

Binary file not shown.

View File

@ -0,0 +1 @@
515eead76ebf0b414116e9f97a694849e0a06bf3

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,20 @@
"version": 3, "version": 3,
"targets": { "targets": {
".NETCoreApp,Version=v3.1": { ".NETCoreApp,Version=v3.1": {
"Bluetooth/1.0.0.2": {
"type": "package",
"dependencies": {
"Microsoft.Windows.SDK.Contracts": "10.0.19041.1",
"System.Runtime.InteropServices.WindowsRuntime": "4.3.0",
"System.Runtime.WindowsRuntime": "4.7.0"
},
"compile": {
"lib/netstandard2.0/Bluetooth.dll": {}
},
"runtime": {
"lib/netstandard2.0/Bluetooth.dll": {}
}
},
"Microsoft.NETCore.Platforms/5.0.0": { "Microsoft.NETCore.Platforms/5.0.0": {
"type": "package", "type": "package",
"compile": { "compile": {
@ -11,6 +25,15 @@
"lib/netstandard1.0/_._": {} "lib/netstandard1.0/_._": {}
} }
}, },
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": { "Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@ -30,6 +53,122 @@
} }
} }
}, },
"Microsoft.Win32.SystemEvents/5.0.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
},
"compile": {
"ref/netstandard2.0/_._": {}
},
"runtime": {
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
"type": "package",
"dependencies": {
"System.Runtime.WindowsRuntime": "4.6.0",
"System.Runtime.WindowsRuntime.UI.Xaml": "4.6.0"
},
"compile": {
"ref/netstandard2.0/Windows.AI.MachineLearning.MachineLearningContract.winmd": {},
"ref/netstandard2.0/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivatedEventsContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsPhoneContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsVoipContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Calls.LockScreenCallContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.FullTrustAppContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Search.Core.SearchCoreContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Search.SearchContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.SocialInfo.SocialInfoContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.StartupTaskContract.winmd": {},
"ref/netstandard2.0/Windows.ApplicationModel.Wallet.WalletContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Custom.CustomDeviceContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.DevicesLowLevelContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Portable.PortableDeviceContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Printers.Extensions.ExtensionsContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Printers.PrintersContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Scanners.ScannerDeviceContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardEmulatorContract.winmd": {},
"ref/netstandard2.0/Windows.Devices.Sms.LegacySmsApiContract.winmd": {},
"ref/netstandard2.0/Windows.Embedded.DeviceLockdown.DeviceLockdownContract.winmd": {},
"ref/netstandard2.0/Windows.Foundation.FoundationContract.winmd": {},
"ref/netstandard2.0/Windows.Foundation.UniversalApiContract.winmd": {},
"ref/netstandard2.0/Windows.Gaming.Input.GamingInputPreviewContract.winmd": {},
"ref/netstandard2.0/Windows.Gaming.Preview.GamesEnumerationContract.winmd": {},
"ref/netstandard2.0/Windows.Gaming.UI.GameChatOverlayContract.winmd": {},
"ref/netstandard2.0/Windows.Gaming.UI.GamingUIProviderContract.winmd": {},
"ref/netstandard2.0/Windows.Gaming.XboxLive.StorageApiContract.winmd": {},
"ref/netstandard2.0/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.winmd": {},
"ref/netstandard2.0/Windows.Graphics.Printing3D.Printing3DContract.winmd": {},
"ref/netstandard2.0/Windows.Management.Deployment.Preview.DeploymentPreviewContract.winmd": {},
"ref/netstandard2.0/Windows.Management.Workplace.WorkplaceSettingsContract.winmd": {},
"ref/netstandard2.0/Windows.Media.AppBroadcasting.AppBroadcastingContract.winmd": {},
"ref/netstandard2.0/Windows.Media.AppRecording.AppRecordingContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Capture.AppBroadcastContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureMetadataContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Capture.CameraCaptureUIContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Capture.GameBarContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Devices.CallControlContract.winmd": {},
"ref/netstandard2.0/Windows.Media.MediaControlContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Playlists.PlaylistsContract.winmd": {},
"ref/netstandard2.0/Windows.Media.Protection.ProtectionRenewalContract.winmd": {},
"ref/netstandard2.0/Windows.Networking.Connectivity.WwanContract.winmd": {},
"ref/netstandard2.0/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.winmd": {},
"ref/netstandard2.0/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.WinMD": {},
"ref/netstandard2.0/Windows.Networking.Sockets.ControlChannelTriggerContract.winmd": {},
"ref/netstandard2.0/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd": {},
"ref/netstandard2.0/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.winmd": {},
"ref/netstandard2.0/Windows.Phone.PhoneContract.winmd": {},
"ref/netstandard2.0/Windows.Phone.StartScreen.DualSimTileContract.WinMD": {},
"ref/netstandard2.0/Windows.Security.EnterpriseData.EnterpriseDataContract.winmd": {},
"ref/netstandard2.0/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.winmd": {},
"ref/netstandard2.0/Windows.Security.Isolation.Isolatedwindowsenvironmentcontract.winmd": {},
"ref/netstandard2.0/Windows.Services.Maps.GuidanceContract.winmd": {},
"ref/netstandard2.0/Windows.Services.Maps.LocalSearchContract.winmd": {},
"ref/netstandard2.0/Windows.Services.Store.StoreContract.winmd": {},
"ref/netstandard2.0/Windows.Services.TargetedContent.TargetedContentContract.winmd": {},
"ref/netstandard2.0/Windows.Storage.Provider.CloudFilesContract.winmd": {},
"ref/netstandard2.0/Windows.System.Profile.ProfileHardwareTokenContract.winmd": {},
"ref/netstandard2.0/Windows.System.Profile.ProfileRetailInfoContract.winmd": {},
"ref/netstandard2.0/Windows.System.Profile.ProfileSharedModeContract.winmd": {},
"ref/netstandard2.0/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.winmd": {},
"ref/netstandard2.0/Windows.System.SystemManagementContract.winmd": {},
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileContract.winmd": {},
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileLockScreenContract.winmd": {},
"ref/netstandard2.0/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.winmd": {},
"ref/netstandard2.0/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.winmd": {},
"ref/netstandard2.0/Windows.UI.Core.CoreWindowDialogsContract.winmd": {},
"ref/netstandard2.0/Windows.UI.Shell.SecurityAppManagerContract.winmd": {},
"ref/netstandard2.0/Windows.UI.ViewManagement.ViewManagementViewScalingContract.winmd": {},
"ref/netstandard2.0/Windows.UI.WebUI.Core.WebUICommandBarContract.winmd": {},
"ref/netstandard2.0/Windows.UI.Xaml.Core.Direct.XamlDirectContract.winmd": {},
"ref/netstandard2.0/Windows.UI.Xaml.Hosting.HostingContract.winmd": {},
"ref/netstandard2.0/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.winmd": {},
"ref/netstandard2.0/Windows.WinMD": {}
},
"build": {
"build/_._": {}
}
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": { "runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"runtimeTargets": { "runtimeTargets": {
@ -84,6 +223,28 @@
"lib/netstandard2.0/System.CodeDom.dll": {} "lib/netstandard2.0/System.CodeDom.dll": {}
} }
}, },
"System.Drawing.Common/5.0.2": {
"type": "package",
"dependencies": {
"Microsoft.Win32.SystemEvents": "5.0.0"
},
"compile": {
"ref/netcoreapp3.0/System.Drawing.Common.dll": {}
},
"runtime": {
"lib/netcoreapp3.0/System.Drawing.Common.dll": {}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"assetType": "runtime",
"rid": "unix"
},
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"System.IO.Ports/6.0.0-preview.5.21301.5": { "System.IO.Ports/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@ -131,6 +292,65 @@
} }
} }
}, },
"System.Runtime/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
},
"compile": {
"ref/netstandard1.5/System.Runtime.dll": {}
}
},
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
"type": "package",
"dependencies": {
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.dll": {}
},
"runtime": {
"lib/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.dll": {}
}
},
"System.Runtime.WindowsRuntime/4.7.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.0"
},
"compile": {
"ref/netstandard2.0/System.Runtime.WindowsRuntime.dll": {}
},
"runtime": {
"lib/netstandard2.0/System.Runtime.WindowsRuntime.dll": {}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "3.0.0",
"System.Runtime.WindowsRuntime": "4.6.0"
},
"compile": {
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {}
},
"runtime": {
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": { "System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@ -171,6 +391,18 @@
} }
}, },
"libraries": { "libraries": {
"Bluetooth/1.0.0.2": {
"sha512": "dI5MtUEkDm2L81kHFeofWkpOvq7Yn2iNVl8dKa+DIeXhqHb9LrBSH7LpmaNOlZMLwQFDKageUpxV0w39GMeUag==",
"type": "package",
"path": "bluetooth/1.0.0.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"bluetooth.1.0.0.2.nupkg.sha512",
"bluetooth.nuspec",
"lib/netstandard2.0/Bluetooth.dll"
]
},
"Microsoft.NETCore.Platforms/5.0.0": { "Microsoft.NETCore.Platforms/5.0.0": {
"sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", "sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"type": "package", "type": "package",
@ -189,6 +421,21 @@
"version.txt" "version.txt"
] ]
}, },
"Microsoft.NETCore.Targets/1.1.0": {
"sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"type": "package",
"path": "microsoft.netcore.targets/1.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/netstandard1.0/_._",
"microsoft.netcore.targets.1.1.0.nupkg.sha512",
"microsoft.netcore.targets.nuspec",
"runtime.json"
]
},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": { "Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"sha512": "qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==", "sha512": "qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
"type": "package", "type": "package",
@ -215,6 +462,220 @@
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml" "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml"
] ]
}, },
"Microsoft.Win32.SystemEvents/5.0.0": {
"sha512": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
"type": "package",
"path": "microsoft.win32.systemevents/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/Microsoft.Win32.SystemEvents.dll",
"lib/net461/Microsoft.Win32.SystemEvents.xml",
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll",
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.xml",
"microsoft.win32.systemevents.5.0.0.nupkg.sha512",
"microsoft.win32.systemevents.nuspec",
"ref/net461/Microsoft.Win32.SystemEvents.dll",
"ref/net461/Microsoft.Win32.SystemEvents.xml",
"ref/netstandard2.0/Microsoft.Win32.SystemEvents.dll",
"ref/netstandard2.0/Microsoft.Win32.SystemEvents.xml",
"runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll",
"runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.xml",
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll",
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.xml",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
"sha512": "sgDwuoyubbLFNJR/BINbvfSNRiglF91D+Q0uEAkU4ZTO5Hgbnu8+gA4TCc65S56e1kK7gvR1+H4kphkDTr+9bw==",
"type": "package",
"path": "microsoft.windows.sdk.contracts/10.0.19041.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"build/Microsoft.Windows.SDK.Contracts.props",
"build/Microsoft.Windows.SDK.Contracts.targets",
"c/Catalogs/cat353be8f91891a6a5761b9ac157fa2ff1.cat",
"c/Catalogs/cat4ec14c5368b7642563c070cd168960a8.cat",
"c/Catalogs/cate59830bab4961666e8d8c2af1e5fa771.cat",
"c/Catalogs/catf105a73f98cfc88c7b64d8f7b39a474c.cat",
"microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512",
"microsoft.windows.sdk.contracts.nuspec",
"ref/netstandard2.0/Windows.AI.MachineLearning.MachineLearningContract.winmd",
"ref/netstandard2.0/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivatedEventsContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsPhoneContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsVoipContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Calls.LockScreenCallContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.FullTrustAppContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Search.Core.SearchCoreContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Search.SearchContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.SocialInfo.SocialInfoContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.StartupTaskContract.winmd",
"ref/netstandard2.0/Windows.ApplicationModel.Wallet.WalletContract.winmd",
"ref/netstandard2.0/Windows.Devices.Custom.CustomDeviceContract.winmd",
"ref/netstandard2.0/Windows.Devices.DevicesLowLevelContract.winmd",
"ref/netstandard2.0/Windows.Devices.Portable.PortableDeviceContract.winmd",
"ref/netstandard2.0/Windows.Devices.Printers.Extensions.ExtensionsContract.winmd",
"ref/netstandard2.0/Windows.Devices.Printers.PrintersContract.winmd",
"ref/netstandard2.0/Windows.Devices.Scanners.ScannerDeviceContract.winmd",
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.winmd",
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardEmulatorContract.winmd",
"ref/netstandard2.0/Windows.Devices.Sms.LegacySmsApiContract.winmd",
"ref/netstandard2.0/Windows.Embedded.DeviceLockdown.DeviceLockdownContract.winmd",
"ref/netstandard2.0/Windows.Foundation.FoundationContract.winmd",
"ref/netstandard2.0/Windows.Foundation.UniversalApiContract.winmd",
"ref/netstandard2.0/Windows.Gaming.Input.GamingInputPreviewContract.winmd",
"ref/netstandard2.0/Windows.Gaming.Preview.GamesEnumerationContract.winmd",
"ref/netstandard2.0/Windows.Gaming.UI.GameChatOverlayContract.winmd",
"ref/netstandard2.0/Windows.Gaming.UI.GamingUIProviderContract.winmd",
"ref/netstandard2.0/Windows.Gaming.XboxLive.StorageApiContract.winmd",
"ref/netstandard2.0/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.winmd",
"ref/netstandard2.0/Windows.Graphics.Printing3D.Printing3DContract.winmd",
"ref/netstandard2.0/Windows.Management.Deployment.Preview.DeploymentPreviewContract.winmd",
"ref/netstandard2.0/Windows.Management.Workplace.WorkplaceSettingsContract.winmd",
"ref/netstandard2.0/Windows.Media.AppBroadcasting.AppBroadcastingContract.winmd",
"ref/netstandard2.0/Windows.Media.AppRecording.AppRecordingContract.winmd",
"ref/netstandard2.0/Windows.Media.Capture.AppBroadcastContract.winmd",
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureContract.winmd",
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureMetadataContract.winmd",
"ref/netstandard2.0/Windows.Media.Capture.CameraCaptureUIContract.winmd",
"ref/netstandard2.0/Windows.Media.Capture.GameBarContract.winmd",
"ref/netstandard2.0/Windows.Media.Devices.CallControlContract.winmd",
"ref/netstandard2.0/Windows.Media.MediaControlContract.winmd",
"ref/netstandard2.0/Windows.Media.Playlists.PlaylistsContract.winmd",
"ref/netstandard2.0/Windows.Media.Protection.ProtectionRenewalContract.winmd",
"ref/netstandard2.0/Windows.Networking.Connectivity.WwanContract.winmd",
"ref/netstandard2.0/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.winmd",
"ref/netstandard2.0/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.WinMD",
"ref/netstandard2.0/Windows.Networking.Sockets.ControlChannelTriggerContract.winmd",
"ref/netstandard2.0/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd",
"ref/netstandard2.0/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.winmd",
"ref/netstandard2.0/Windows.Phone.PhoneContract.winmd",
"ref/netstandard2.0/Windows.Phone.StartScreen.DualSimTileContract.WinMD",
"ref/netstandard2.0/Windows.Security.EnterpriseData.EnterpriseDataContract.winmd",
"ref/netstandard2.0/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.winmd",
"ref/netstandard2.0/Windows.Security.Isolation.Isolatedwindowsenvironmentcontract.winmd",
"ref/netstandard2.0/Windows.Services.Maps.GuidanceContract.winmd",
"ref/netstandard2.0/Windows.Services.Maps.LocalSearchContract.winmd",
"ref/netstandard2.0/Windows.Services.Store.StoreContract.winmd",
"ref/netstandard2.0/Windows.Services.TargetedContent.TargetedContentContract.winmd",
"ref/netstandard2.0/Windows.Storage.Provider.CloudFilesContract.winmd",
"ref/netstandard2.0/Windows.System.Profile.ProfileHardwareTokenContract.winmd",
"ref/netstandard2.0/Windows.System.Profile.ProfileRetailInfoContract.winmd",
"ref/netstandard2.0/Windows.System.Profile.ProfileSharedModeContract.winmd",
"ref/netstandard2.0/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.winmd",
"ref/netstandard2.0/Windows.System.SystemManagementContract.winmd",
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileContract.winmd",
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileLockScreenContract.winmd",
"ref/netstandard2.0/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.winmd",
"ref/netstandard2.0/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.winmd",
"ref/netstandard2.0/Windows.UI.Core.CoreWindowDialogsContract.winmd",
"ref/netstandard2.0/Windows.UI.Shell.SecurityAppManagerContract.winmd",
"ref/netstandard2.0/Windows.UI.ViewManagement.ViewManagementViewScalingContract.winmd",
"ref/netstandard2.0/Windows.UI.WebUI.Core.WebUICommandBarContract.winmd",
"ref/netstandard2.0/Windows.UI.Xaml.Core.Direct.XamlDirectContract.winmd",
"ref/netstandard2.0/Windows.UI.Xaml.Hosting.HostingContract.winmd",
"ref/netstandard2.0/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.winmd",
"ref/netstandard2.0/Windows.WinMD",
"ref/netstandard2.0/en/Windows.AI.MachineLearning.MachineLearningContract.xml",
"ref/netstandard2.0/en/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ActivatedEventsContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.CallsPhoneContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.CallsVoipContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.LockScreenCallContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.FullTrustAppContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Search.Core.SearchCoreContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Search.SearchContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.SocialInfo.SocialInfoContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.StartupTaskContract.xml",
"ref/netstandard2.0/en/Windows.ApplicationModel.Wallet.WalletContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Custom.CustomDeviceContract.xml",
"ref/netstandard2.0/en/Windows.Devices.DevicesLowLevelContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Portable.PortableDeviceContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Printers.Extensions.ExtensionsContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Printers.PrintersContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Scanners.ScannerDeviceContract.xml",
"ref/netstandard2.0/en/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.xml",
"ref/netstandard2.0/en/Windows.Devices.SmartCards.SmartCardEmulatorContract.xml",
"ref/netstandard2.0/en/Windows.Devices.Sms.LegacySmsApiContract.xml",
"ref/netstandard2.0/en/Windows.Foundation.FoundationContract.xml",
"ref/netstandard2.0/en/Windows.Foundation.UniversalApiContract.xml",
"ref/netstandard2.0/en/Windows.Gaming.Input.GamingInputPreviewContract.xml",
"ref/netstandard2.0/en/Windows.Gaming.Preview.GamesEnumerationContract.xml",
"ref/netstandard2.0/en/Windows.Gaming.UI.GameChatOverlayContract.xml",
"ref/netstandard2.0/en/Windows.Gaming.UI.GamingUIProviderContract.xml",
"ref/netstandard2.0/en/Windows.Gaming.XboxLive.StorageApiContract.xml",
"ref/netstandard2.0/en/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.xml",
"ref/netstandard2.0/en/Windows.Graphics.Printing3D.Printing3DContract.xml",
"ref/netstandard2.0/en/Windows.Management.Deployment.Preview.DeploymentPreviewContract.xml",
"ref/netstandard2.0/en/Windows.Management.Workplace.WorkplaceSettingsContract.xml",
"ref/netstandard2.0/en/Windows.Media.AppBroadcasting.AppBroadcastingContract.xml",
"ref/netstandard2.0/en/Windows.Media.AppRecording.AppRecordingContract.xml",
"ref/netstandard2.0/en/Windows.Media.Capture.AppBroadcastContract.xml",
"ref/netstandard2.0/en/Windows.Media.Capture.AppCaptureContract.xml",
"ref/netstandard2.0/en/Windows.Media.Capture.AppCaptureMetadataContract.xml",
"ref/netstandard2.0/en/Windows.Media.Capture.CameraCaptureUIContract.xml",
"ref/netstandard2.0/en/Windows.Media.Capture.GameBarContract.xml",
"ref/netstandard2.0/en/Windows.Media.Devices.CallControlContract.xml",
"ref/netstandard2.0/en/Windows.Media.MediaControlContract.xml",
"ref/netstandard2.0/en/Windows.Media.Playlists.PlaylistsContract.xml",
"ref/netstandard2.0/en/Windows.Media.Protection.ProtectionRenewalContract.xml",
"ref/netstandard2.0/en/Windows.Networking.Connectivity.WwanContract.xml",
"ref/netstandard2.0/en/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.xml",
"ref/netstandard2.0/en/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.xml",
"ref/netstandard2.0/en/Windows.Networking.Sockets.ControlChannelTriggerContract.xml",
"ref/netstandard2.0/en/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.xml",
"ref/netstandard2.0/en/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.xml",
"ref/netstandard2.0/en/Windows.Phone.PhoneContract.xml",
"ref/netstandard2.0/en/Windows.Phone.StartScreen.DualSimTileContract.xml",
"ref/netstandard2.0/en/Windows.Security.EnterpriseData.EnterpriseDataContract.xml",
"ref/netstandard2.0/en/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.xml",
"ref/netstandard2.0/en/Windows.Services.Maps.GuidanceContract.xml",
"ref/netstandard2.0/en/Windows.Services.Maps.LocalSearchContract.xml",
"ref/netstandard2.0/en/Windows.Services.Store.StoreContract.xml",
"ref/netstandard2.0/en/Windows.Services.TargetedContent.TargetedContentContract.xml",
"ref/netstandard2.0/en/Windows.Storage.Provider.CloudFilesContract.xml",
"ref/netstandard2.0/en/Windows.System.Profile.ProfileHardwareTokenContract.xml",
"ref/netstandard2.0/en/Windows.System.Profile.ProfileRetailInfoContract.xml",
"ref/netstandard2.0/en/Windows.System.Profile.ProfileSharedModeContract.xml",
"ref/netstandard2.0/en/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.xml",
"ref/netstandard2.0/en/Windows.System.SystemManagementContract.xml",
"ref/netstandard2.0/en/Windows.System.UserProfile.UserProfileContract.xml",
"ref/netstandard2.0/en/Windows.System.UserProfile.UserProfileLockScreenContract.xml",
"ref/netstandard2.0/en/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.xml",
"ref/netstandard2.0/en/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.xml",
"ref/netstandard2.0/en/Windows.UI.Core.CoreWindowDialogsContract.xml",
"ref/netstandard2.0/en/Windows.UI.Shell.SecurityAppManagerContract.xml",
"ref/netstandard2.0/en/Windows.UI.ViewManagement.ViewManagementViewScalingContract.xml",
"ref/netstandard2.0/en/Windows.UI.WebUI.Core.WebUICommandBarContract.xml",
"ref/netstandard2.0/en/Windows.UI.Xaml.Core.Direct.XamlDirectContract.xml",
"ref/netstandard2.0/en/Windows.UI.Xaml.Hosting.HostingContract.xml",
"ref/netstandard2.0/en/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.xml"
]
},
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": { "runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
"sha512": "VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==", "sha512": "VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
"type": "package", "type": "package",
@ -313,6 +774,48 @@
"version.txt" "version.txt"
] ]
}, },
"System.Drawing.Common/5.0.2": {
"sha512": "rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
"type": "package",
"path": "system.drawing.common/5.0.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net461/System.Drawing.Common.dll",
"lib/netcoreapp3.0/System.Drawing.Common.dll",
"lib/netcoreapp3.0/System.Drawing.Common.xml",
"lib/netstandard2.0/System.Drawing.Common.dll",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net461/System.Drawing.Common.dll",
"ref/netcoreapp3.0/System.Drawing.Common.dll",
"ref/netcoreapp3.0/System.Drawing.Common.xml",
"ref/netstandard2.0/System.Drawing.Common.dll",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"runtimes/unix/lib/netcoreapp2.0/System.Drawing.Common.dll",
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll",
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.xml",
"runtimes/win/lib/netcoreapp2.0/System.Drawing.Common.dll",
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll",
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.xml",
"system.drawing.common.5.0.2.nupkg.sha512",
"system.drawing.common.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.IO.Ports/6.0.0-preview.5.21301.5": { "System.IO.Ports/6.0.0-preview.5.21301.5": {
"sha512": "9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==", "sha512": "9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
"type": "package", "type": "package",
@ -368,6 +871,299 @@
"version.txt" "version.txt"
] ]
}, },
"System.Runtime/4.3.0": {
"sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"type": "package",
"path": "system.runtime/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/net462/System.Runtime.dll",
"lib/portable-net45+win8+wp80+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/net462/System.Runtime.dll",
"ref/netcore50/System.Runtime.dll",
"ref/netcore50/System.Runtime.xml",
"ref/netcore50/de/System.Runtime.xml",
"ref/netcore50/es/System.Runtime.xml",
"ref/netcore50/fr/System.Runtime.xml",
"ref/netcore50/it/System.Runtime.xml",
"ref/netcore50/ja/System.Runtime.xml",
"ref/netcore50/ko/System.Runtime.xml",
"ref/netcore50/ru/System.Runtime.xml",
"ref/netcore50/zh-hans/System.Runtime.xml",
"ref/netcore50/zh-hant/System.Runtime.xml",
"ref/netstandard1.0/System.Runtime.dll",
"ref/netstandard1.0/System.Runtime.xml",
"ref/netstandard1.0/de/System.Runtime.xml",
"ref/netstandard1.0/es/System.Runtime.xml",
"ref/netstandard1.0/fr/System.Runtime.xml",
"ref/netstandard1.0/it/System.Runtime.xml",
"ref/netstandard1.0/ja/System.Runtime.xml",
"ref/netstandard1.0/ko/System.Runtime.xml",
"ref/netstandard1.0/ru/System.Runtime.xml",
"ref/netstandard1.0/zh-hans/System.Runtime.xml",
"ref/netstandard1.0/zh-hant/System.Runtime.xml",
"ref/netstandard1.2/System.Runtime.dll",
"ref/netstandard1.2/System.Runtime.xml",
"ref/netstandard1.2/de/System.Runtime.xml",
"ref/netstandard1.2/es/System.Runtime.xml",
"ref/netstandard1.2/fr/System.Runtime.xml",
"ref/netstandard1.2/it/System.Runtime.xml",
"ref/netstandard1.2/ja/System.Runtime.xml",
"ref/netstandard1.2/ko/System.Runtime.xml",
"ref/netstandard1.2/ru/System.Runtime.xml",
"ref/netstandard1.2/zh-hans/System.Runtime.xml",
"ref/netstandard1.2/zh-hant/System.Runtime.xml",
"ref/netstandard1.3/System.Runtime.dll",
"ref/netstandard1.3/System.Runtime.xml",
"ref/netstandard1.3/de/System.Runtime.xml",
"ref/netstandard1.3/es/System.Runtime.xml",
"ref/netstandard1.3/fr/System.Runtime.xml",
"ref/netstandard1.3/it/System.Runtime.xml",
"ref/netstandard1.3/ja/System.Runtime.xml",
"ref/netstandard1.3/ko/System.Runtime.xml",
"ref/netstandard1.3/ru/System.Runtime.xml",
"ref/netstandard1.3/zh-hans/System.Runtime.xml",
"ref/netstandard1.3/zh-hant/System.Runtime.xml",
"ref/netstandard1.5/System.Runtime.dll",
"ref/netstandard1.5/System.Runtime.xml",
"ref/netstandard1.5/de/System.Runtime.xml",
"ref/netstandard1.5/es/System.Runtime.xml",
"ref/netstandard1.5/fr/System.Runtime.xml",
"ref/netstandard1.5/it/System.Runtime.xml",
"ref/netstandard1.5/ja/System.Runtime.xml",
"ref/netstandard1.5/ko/System.Runtime.xml",
"ref/netstandard1.5/ru/System.Runtime.xml",
"ref/netstandard1.5/zh-hans/System.Runtime.xml",
"ref/netstandard1.5/zh-hant/System.Runtime.xml",
"ref/portable-net45+win8+wp80+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.runtime.4.3.0.nupkg.sha512",
"system.runtime.nuspec"
]
},
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
"sha512": "J4GUi3xZQLUBasNwZnjrffN8i5wpHrBtZoLG+OhRyGo/+YunMRWWtwoMDlUAIdmX0uRfpHIBDSV6zyr3yf00TA==",
"type": "package",
"path": "system.runtime.interopservices.windowsruntime/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
"lib/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.dll",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios1/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
"ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/de/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/es/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/fr/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/it/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/ja/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/ko/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/ru/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/zh-hans/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcore50/zh-hant/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.dll",
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/de/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/es/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/fr/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/it/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/ja/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/ko/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/ru/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/zh-hans/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netstandard1.0/zh-hant/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"runtimes/aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
"system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512",
"system.runtime.interopservices.windowsruntime.nuspec"
]
},
"System.Runtime.WindowsRuntime/4.7.0": {
"sha512": "RQxUkf37fp7MSWbOfKRjUjyudyfZb2u79YY5i1s+d7vuD80A7kmr2YfefO0JprQUhanxSm8bhXigCVfX2kEh+w==",
"type": "package",
"path": "system.runtime.windowsruntime/4.7.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"build/net45/System.Runtime.WindowsRuntime.targets",
"build/net451/System.Runtime.WindowsRuntime.targets",
"build/net461/System.Runtime.WindowsRuntime.targets",
"buildTransitive/net45/System.Runtime.WindowsRuntime.targets",
"buildTransitive/net451/System.Runtime.WindowsRuntime.targets",
"buildTransitive/net461/System.Runtime.WindowsRuntime.targets",
"lib/net45/_._",
"lib/netstandard1.0/System.Runtime.WindowsRuntime.dll",
"lib/netstandard1.0/System.Runtime.WindowsRuntime.xml",
"lib/netstandard1.2/System.Runtime.WindowsRuntime.dll",
"lib/netstandard1.2/System.Runtime.WindowsRuntime.xml",
"lib/netstandard2.0/System.Runtime.WindowsRuntime.dll",
"lib/netstandard2.0/System.Runtime.WindowsRuntime.xml",
"lib/portable-win8+wp8+wpa81/_._",
"lib/uap10.0.16299/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"ref/net45/_._",
"ref/netcore50/System.Runtime.WindowsRuntime.dll",
"ref/netcore50/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/de/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/es/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/fr/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/it/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/ja/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/ko/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/ru/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/zh-hans/System.Runtime.WindowsRuntime.xml",
"ref/netcore50/zh-hant/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/System.Runtime.WindowsRuntime.dll",
"ref/netstandard1.0/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/de/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/es/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/fr/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/it/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/ja/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/ko/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/ru/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/zh-hans/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.0/zh-hant/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/System.Runtime.WindowsRuntime.dll",
"ref/netstandard1.2/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/de/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/es/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/fr/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/it/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/ja/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/ko/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/ru/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/zh-hans/System.Runtime.WindowsRuntime.xml",
"ref/netstandard1.2/zh-hant/System.Runtime.WindowsRuntime.xml",
"ref/netstandard2.0/System.Runtime.WindowsRuntime.dll",
"ref/netstandard2.0/System.Runtime.WindowsRuntime.xml",
"ref/portable-win8+wp8+wpa81/_._",
"ref/uap10.0.16299/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"runtimes/win-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll",
"runtimes/win-aot/lib/uap10.0.16299/_._",
"runtimes/win/lib/netcore50/System.Runtime.WindowsRuntime.dll",
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.dll",
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.xml",
"runtimes/win/lib/uap10.0.16299/_._",
"system.runtime.windowsruntime.4.7.0.nupkg.sha512",
"system.runtime.windowsruntime.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
"sha512": "r4tNw5v5kqRJ9HikWpcyNf3suGw7DjX93svj9iBjtdeLqL8jt9Z+7f+s4wrKZJr84u8IMsrIjt8K6jYvkRqMSg==",
"type": "package",
"path": "system.runtime.windowsruntime.ui.xaml/4.6.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"build/net45/System.Runtime.WindowsRuntime.UI.Xaml.targets",
"build/net461/System.Runtime.WindowsRuntime.UI.Xaml.targets",
"lib/net45/_._",
"lib/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"lib/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"lib/portable-win8+wpa81/_._",
"lib/uap10.0.16299/_._",
"lib/win8/_._",
"lib/wpa81/_._",
"ref/net45/_._",
"ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/de/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/es/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/fr/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/it/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/ja/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/ko/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/ru/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/zh-hans/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netcore50/zh-hant/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"ref/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/de/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/es/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/fr/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/it/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/ja/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/ko/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/ru/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/zh-hans/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard1.1/zh-hant/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"ref/portable-win8+wpa81/_._",
"ref/uap10.0.16299/_._",
"ref/win8/_._",
"ref/wpa81/_._",
"runtimes/win-aot/lib/uap10.0.16299/_._",
"runtimes/win/lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
"runtimes/win/lib/uap10.0.16299/_._",
"system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512",
"system.runtime.windowsruntime.ui.xaml.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Security.AccessControl/6.0.0-preview.5.21301.5": { "System.Security.AccessControl/6.0.0-preview.5.21301.5": {
"sha512": "EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==", "sha512": "EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
"type": "package", "type": "package",
@ -431,6 +1227,8 @@
}, },
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": [ ".NETCoreApp,Version=v3.1": [
"Bluetooth >= 1.0.0.2",
"System.Drawing.Common >= 5.0.2",
"System.IO.Ports >= 6.0.0-preview.5.21301.5", "System.IO.Ports >= 6.0.0-preview.5.21301.5",
"System.Management >= 5.0.0" "System.Management >= 5.0.0"
] ]
@ -441,11 +1239,11 @@
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj", "projectUniqueName": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"projectName": "Matrix App", "projectName": "Matrix App",
"projectPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj", "projectPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\", "packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\", "outputPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -474,6 +1272,14 @@
"netcoreapp3.1": { "netcoreapp3.1": {
"targetAlias": "netcoreapp3.1", "targetAlias": "netcoreapp3.1",
"dependencies": { "dependencies": {
"Bluetooth": {
"target": "Package",
"version": "[1.0.0.2, )"
},
"System.Drawing.Common": {
"target": "Package",
"version": "[5.0.2, )"
},
"System.IO.Ports": { "System.IO.Ports": {
"target": "Package", "target": "Package",
"version": "[6.0.0-preview.5.21301.5, )" "version": "[6.0.0-preview.5.21301.5, )"

View File

@ -1,19 +1,28 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "in5PmRkmB8RpF6FzDZSVW/AkI1iTzIqwg3iCCVYnwoId7ig1EsQtej3lqZkrG6LgW4VgvDBp38hFmkELxxuwhA==", "dgSpecHash": "wc6bBI6cy21hG6HJS/seE/8+GBfvWeoemFz2j+L6V5u50CqFyU/VAe0ginIL6UBGNSS6nvjGaVEFS3N6mCCqPw==",
"success": true, "success": true,
"projectFilePath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj", "projectFilePath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"C:\\Users\\SvenV\\.nuget\\packages\\bluetooth\\1.0.0.2\\bluetooth.1.0.0.2.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.registry\\6.0.0-preview.5.21301.5\\microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.registry\\6.0.0-preview.5.21301.5\\microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.windows.sdk.contracts\\10.0.19041.1\\microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.drawing.common\\5.0.2\\system.drawing.common.5.0.2.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.io.ports\\6.0.0-preview.5.21301.5\\system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\system.io.ports\\6.0.0-preview.5.21301.5\\system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.interopservices.windowsruntime\\4.3.0\\system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.windowsruntime\\4.7.0\\system.runtime.windowsruntime.4.7.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.windowsruntime.ui.xaml\\4.6.0\\system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.accesscontrol\\6.0.0-preview.5.21301.5\\system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\system.security.accesscontrol\\6.0.0-preview.5.21301.5\\system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.principal.windows\\6.0.0-preview.5.21301.5\\system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512", "C:\\Users\\SvenV\\.nuget\\packages\\system.security.principal.windows\\6.0.0-preview.5.21301.5\\system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512",
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.app.host.win-x64\\3.1.15\\microsoft.netcore.app.host.win-x64.3.1.15.nupkg.sha512" "C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.app.host.win-x64\\3.1.15\\microsoft.netcore.app.host.win-x64.3.1.15.nupkg.sha512"

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","projectName":"Matrix App","projectPath":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","outputPath":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netcoreapp3.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","dependencies":{"System.IO.Ports":{"target":"Package","version":"[6.0.0-preview.5.21301.5, )"},"System.Management":{"target":"Package","version":"[5.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.NETCore.App.Host.win-x64","version":"[3.1.15, 3.1.15]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App.WindowsForms":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","projectName":"Matrix App","projectPath":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","outputPath":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netcoreapp3.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","dependencies":{"Bluetooth":{"target":"Package","version":"[1.0.0.2, )"},"System.Drawing.Common":{"target":"Package","version":"[5.0.2, )"},"System.IO.Ports":{"target":"Package","version":"[6.0.0-preview.5.21301.5, )"},"System.Management":{"target":"Package","version":"[5.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.NETCore.App.Host.win-x64","version":"[3.1.15, 3.1.15]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App.WindowsForms":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"}}

View File

@ -1 +1 @@
16249002820000000 16280999400000000