Compare commits

..

No commits in common. "master" and "v3.5.7-RC6" have entirely different histories.

91 changed files with 458 additions and 2693 deletions

1
.gitignore vendored
View File

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

View File

@ -1,169 +0,0 @@
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

@ -153,30 +153,18 @@ void config() {
}
}
void upload() {
return;
}
void info() {
Serial.write((uint8_t) 91);
Serial.write((uint8_t) 0b01000000);
Serial.write("ATmega328P Arduino");
}
FNPTR_t opcodeTable[] = {
scale, // opcode 0x00
single, // opcode 0x01
image, // opcode 0x02
fill, // opcode 0x03
config, // opcode 0x04
upload,
info
config // opcode 0x04
};
void setup() {
ledCount = STD_LED_MAX_COUNT;
Serial.begin(9600);
Serial.begin(48000);
FastLED.addLeds<LED_TYPE, DATA_PIN, GRB>(leds, ledCount);
FastLED.setCorrection(TypicalLEDStrip);
@ -202,7 +190,7 @@ void loop() {
Serial.println(opcode);
#endif
if (opcode <= 6) {
if (opcode <= 4) {
opcodeTable[opcode]();
Serial.write(75);
}

View File

@ -1,12 +1,8 @@
<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_002FMatrix/@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_002Fforms_002FMatrixDesigner/@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_002FProperties_002FResources/@EntryIndexedValue">False</s:Boolean>
<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>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>

View File

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

View File

@ -8,7 +8,6 @@
<ApplicationIcon>MatrixIcon.ico</ApplicationIcon>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@ -18,8 +17,6 @@
</PropertyGroup>
<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.Management" Version="5.0.0" />
</ItemGroup>
@ -43,9 +40,6 @@
<Compile Update="forms\SplashScreen.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="forms\Settings.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
<ItemGroup>

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 241 KiB

View File

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

View File

@ -1,23 +1,26 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Ports;
using System.Security.Permissions;
using System.Text;
using System.Threading;
using static Matrix_App.Defaults;
namespace Matrix_App.adds
namespace Matrix_App
{
public class PortCommandQueue
{
private const string ThreadDeliverName = "Arduino Port Deliver Thread";
private readonly Queue<byte[]> byteWriteQueue = new();
private readonly Queue<byte> statusByteQueue = new();
private Queue<byte[]> byteWriteQueue = new Queue<byte[]>();
private readonly Thread portDeliverThread;
private Thread portDeliverThread;
private readonly SerialPort tx;
private SerialPort port;
private bool running;
@ -25,15 +28,12 @@ namespace Matrix_App.adds
private volatile bool isPortValid;
private readonly byte[] received = new byte[ArduinoReceiveBufferSize];
private readonly byte[] recived = new byte[ArduinoReceiveBufferSize];
private int mark;
private volatile bool synchronized;
private bool updateRealtime;
public PortCommandQueue(ref SerialPort tx)
public PortCommandQueue(ref SerialPort port)
{
this.tx = tx;
this.port = port;
portDeliverThread = new Thread(ManageQueue) { Name = ThreadDeliverName };
}
@ -44,66 +44,38 @@ namespace Matrix_App.adds
{
while (!kill)
{
if (!isPortValid) continue;
if (byteWriteQueue.Count <= 0)
{
lock (byteWriteQueue)
{
Monitor.Wait(byteWriteQueue);
}
continue;
}
if (byteWriteQueue.Count <= 0) continue;
byte[] bytes;
int statusByte;
lock (byteWriteQueue)
{
bytes = byteWriteQueue.Dequeue();
statusByte = statusByteQueue.Dequeue();
}
lock (tx)
lock (port)
{
var success = false;
var tryCounter = 0;
if (!isPortValid) continue;
do
port.Open();
port.Write(bytes, 0, bytes.Length);
int b;
mark = 0;
while((b = port.ReadByte()) != ArduinoSuccessByte)
{
try
{
tx.Write(bytes, 0, bytes.Length);
recived[mark++] = (byte) b;
}
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);
port.Close();
}
}
}
catch (ThreadInterruptedException)
} catch (ThreadInterruptedException)
{
Thread.CurrentThread.Interrupt();
}
}
}
[SecurityPermission(SecurityAction.Demand, ControlThread = true)]
[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]
public void Close()
{
try
@ -121,34 +93,24 @@ namespace Matrix_App.adds
{
// omit
}
finally
{
if (tx.IsOpen)
{
tx.Close();
}
}
}
private void EnqueueArduinoCommand(params byte[] bytes)
public void EnqueueArduinoCommand(params byte[] bytes)
{
if (!updateRealtime && bytes[0] != ArduinoInstruction.OpcodeScale &&
bytes[0] != ArduinoInstruction.OpcodePush)
return;
if (!running)
{
running = true;
portDeliverThread.Start();
}
lock (byteWriteQueue)
{
Monitor.Pulse(byteWriteQueue);
if (byteWriteQueue.Count >= ArduinoCommandQueueSize) return;
lock (byteWriteQueue)
if (byteWriteQueue.Count < ArduinoCommandQueueSize)
{
byteWriteQueue.Enqueue(bytes);
lock (byteWriteQueue)
{
byteWriteQueue.Enqueue(bytes);
}
}
}
}
@ -159,7 +121,6 @@ namespace Matrix_App.adds
Buffer.BlockCopy(data, 0, wrapper, 1, data.Length);
wrapper[0] = opcode;
statusByteQueue.Enqueue(ArduinoSuccessByte);
EnqueueArduinoCommand(wrapper);
}
@ -171,11 +132,11 @@ namespace Matrix_App.adds
}
}
public static void WaitForLastDequeue()
internal void WaitForLastDequeue()
{
var timeCount = 0;
var wait = true;
int timeCount = 0;
bool wait = true;
while(wait)
{
timeCount++;
@ -187,66 +148,24 @@ namespace Matrix_App.adds
public byte[] GetLastData()
{
return received;
return recived;
}
public void ValidatePort()
{
try
{
if (!tx.IsOpen)
{
tx.Open();
isPortValid = true;
}
}
catch (Exception e)
{
isPortValid = false;
Debug.WriteLine("Failed opening port: " + e.Message);
}
isPortValid = true;
}
public void InvalidatePort()
{
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()
{
var tmp = mark;
int tmp = mark;
mark = 0;
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,6 +16,8 @@ namespace Matrix_App
private volatile bool working;
private readonly int capacity;
private static readonly AutoResetEvent ResetEvent = new AutoResetEvent(false);
public ThreadQueue(string name, int capacity)
{
@ -64,9 +66,14 @@ namespace Matrix_App
}
else
{
lock (taskQueue)
try
{
Monitor.Wait(taskQueue);
ResetEvent.WaitOne(100);
}
catch (ThreadInterruptedException)
{
Thread.CurrentThread.Interrupt();
return;
}
}
}
@ -78,11 +85,10 @@ namespace Matrix_App
{
if (taskQueue.Count >= capacity)
return;
Monitor.Pulse(taskQueue);
working = true;
taskQueue.Enqueue(task);
ResetEvent.Set();
}
}
@ -93,12 +99,8 @@ namespace Matrix_App
public void Stop()
{
lock (taskQueue)
{
Monitor.Pulse(taskQueue);
}
running = false;
ResetEvent.Set();
thread.Interrupt();
thread.Join(100);

View File

@ -8,8 +8,6 @@
".NETCoreApp,Version=v3.1": {
"Matrix App/1.0.0": {
"dependencies": {
"Bluetooth": "1.0.0.2",
"System.Drawing.Common": "5.0.2",
"System.IO.Ports": "6.0.0-preview.5.21301.5",
"System.Management": "5.0.0"
},
@ -17,21 +15,7 @@
"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.Targets/1.1.0": {},
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
"dependencies": {
"System.Security.AccessControl": "6.0.0-preview.5.21301.5",
@ -52,31 +36,6 @@
}
}
},
"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": {
"runtimeTargets": {
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
@ -129,31 +88,6 @@
}
}
},
"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": {
"dependencies": {
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
@ -207,28 +141,6 @@
}
}
},
"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": {
"dependencies": {
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
@ -278,13 +190,6 @@
"serviceable": false,
"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": {
"type": "package",
"serviceable": true,
@ -292,13 +197,6 @@
"path": "microsoft.netcore.platforms/5.0.0",
"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": {
"type": "package",
"serviceable": true,
@ -306,20 +204,6 @@
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
"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": {
"type": "package",
"serviceable": true,
@ -362,13 +246,6 @@
"path": "system.codedom/5.0.0",
"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": {
"type": "package",
"serviceable": true,
@ -383,34 +260,6 @@
"path": "system.management/5.0.0",
"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": {
"type": "package",
"serviceable": true,

View File

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

View File

@ -1,278 +0,0 @@
{
"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"
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -2,52 +2,53 @@
#define DEBUG_ENABLED
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.IO.Ports;
using System.Timers;
using System.Windows.Forms;
using Matrix_App.adds;
using Matrix_App.forms;
using Matrix_App.Properties;
using Matrix_App.Themes;
using System.Drawing.Imaging;
using System.IO;
using System.Management;
using System.Text.RegularExpressions;
using static Matrix_App.Defaults;
using static Matrix_App.ArduinoInstruction;
using static Matrix_App.Utils;
using Matrix_App.Themes;
using Timer = System.Timers.Timer;
namespace Matrix_App
{
public partial class MatrixDesignerMain : Form
{
private void PortsOnClick(object? sender, EventArgs e)
{
new Settings(ref commandQueue, ref port);
}
#region Private-Members
/// <summary>
/// Port update Timer
/// Reloads available port names at consecutive rates
/// Port update Timer
/// Reloads available port names at consecutive rates
/// </summary>
private Timer? portNameUpdater;
private Timer? delay;
private static SerialPort _port = new SerialPort();
private uint portNumber;
private bool runningGif;
private static SerialPort port = new();
private PortCommandQueue commandQueue = new(ref port);
private readonly PortCommandQueue commandQueue = new PortCommandQueue(ref _port);
private readonly Regex comRegex = new Regex(@"COM[\d]+");
/// <summary>
/// Gif like frame video buffer
/// Gif like frame video buffer
/// </summary>
public static byte[][] gifBuffer = CreateImageRGB_NT(MatrixStartWidth, MatrixStartHeight, MatrixStartFrames);
public static readonly ThreadQueue IMAGE_DRAWER = new("Matrix Image Drawer", 4);
public static readonly ThreadQueue IMAGE_DRAWER = new ThreadQueue("Matrix Image Drawer", 4);
#endregion
#region Setup
@ -60,7 +61,7 @@ namespace Matrix_App
matrixView.Instance(this);
// Generate filter access buttons
MatrixGifGenerator.GenerateBaseUi(pregeneratedModsBase, matrixView, this);
Init();
// apply light-mode by default
new LightMode().ApplyTheme(this);
@ -70,6 +71,12 @@ namespace Matrix_App
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
delay = new Timer((int) Delay.Value);
delay.Elapsed += Timelineupdate;
@ -79,42 +86,42 @@ namespace Matrix_App
ZeichnenFarbRad.handler = ColorWheel_Handler!;
// setup port settings
port.BaudRate = BaudRate;
port.ReadTimeout = ReadTimeoutMs;
port.WriteTimeout = WriteTimeoutMs;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
_port.BaudRate = BaudRate;
_port.ReadTimeout = ReadTimeoutMs;
_port.WriteTimeout = WriteTimeoutMs;
// setup matrix
AdjustMatrixTable();
// search for initial ports
//GatherPortNames();
GatherPortNames();
HideEasterEgg();
}
private void HideEasterEgg()
{
if (DateTime.Now.DayOfWeek != DayOfWeek.Wednesday)
if (((int) DateTime.Now.DayOfWeek) != 3)
return;
if (new Random().Next(0, 9) >= 1)
return;
using (Bitmap wednesdayFrog = new(Resources.Frosch))
using (Bitmap wednesdayFrog = new Bitmap(Properties.Resources.Frosch))
{
matrixWidth.Value = wednesdayFrog.Width;
matrixHeight.Value = wednesdayFrog.Height;
ResizeGif();
for (var x = 0; x < wednesdayFrog.Width; x++)
for (var y = 0; y < wednesdayFrog.Height; y++)
{
var pixel = wednesdayFrog.GetPixel(x, y);
for (var y = 0; y < wednesdayFrog.Height; y++)
{
var pixel = wednesdayFrog.GetPixel(x, y);
matrixView.SetPixelNoRefresh(x, y, pixel);
matrixView.SetPixelNoRefresh(x, y, pixel);
}
}
}
@ -126,31 +133,164 @@ namespace Matrix_App
#region UI-Methods
#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
#region Scale
/// <summary>
/// Applies a new size to the gif and matrix
/// Applies a new size to the gif and matrix
/// </summary>
private void AdjustMatrixTable()
{
var width = (int) matrixWidth.Value;
var height = (int) matrixHeight.Value;
int width = (int)this.matrixWidth.Value;
int height = (int)this.matrixHeight.Value;
matrixView.resize(width, height);
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)
{
AdjustMatrixTable();
commandQueue.EnqueueArduinoCommand(
OpcodeScale, // opcode
(byte) matrixWidth.Value,
(byte) matrixHeight.Value
OpcodeScale, // opcode
(byte)matrixWidth.Value,
(byte)matrixHeight.Value
);
}
@ -158,9 +298,9 @@ namespace Matrix_App
{
AdjustMatrixTable();
commandQueue.EnqueueArduinoCommand(
OpcodeScale, // opcode
(byte) matrixWidth.Value,
(byte) matrixHeight.Value
OpcodeScale, // opcode
(byte)matrixWidth.Value,
(byte)matrixHeight.Value
);
}
@ -169,25 +309,20 @@ namespace Matrix_App
#region Edit/Draw
#region TextBoxen
private void DrawTextBoxRed_KeyUp(object sender, KeyEventArgs e)
{
if (int.TryParse(ZeichnenTextBoxRed.Text, out var value) && value < 256 && value >= 0)
{
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)
{
ZeichnenTrackBarRed.Value = 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)
@ -195,19 +330,16 @@ namespace Matrix_App
if (int.TryParse(ZeichnenTextBoxGreen.Text, out var value) && value < 256 && value >= 0)
{
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)
{
ZeichnenTrackBarGreen.Value = 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)
@ -215,56 +347,44 @@ namespace Matrix_App
if (int.TryParse(ZeichnenTextBoxBlue.Text, out var value) && value < 256 && value >= 0)
{
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)
{
ZeichnenTrackBarBlue.Value = 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
#region TackBars
private void ZeichnenTrackBarRed_Scroll(object sender, EventArgs e)
{
ZeichnenTextBoxRed.Text = ZeichnenTrackBarRed.Value.ToString();
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
}
private void ZeichnenTrackBarGreen_Scroll(object sender, EventArgs e)
{
ZeichnenTextBoxGreen.Text = ZeichnenTrackBarGreen.Value.ToString();
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
}
private void ZeichnenTrackBarBlue_Scroll(object sender, EventArgs e)
{
ZeichnenTextBoxBlue.Text = ZeichnenTrackBarBlue.Value.ToString();
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
(byte) ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
ZeichnenTrackBarBlue.Value));
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
}
#endregion
/// <summary>
/// Sets a new color to the edit tab
/// Sets a new color to the edit tab
/// </summary>
/// <param name="color"></param>
public void SetColor(Color color)
@ -281,7 +401,7 @@ namespace Matrix_App
}
/// <summary>
/// Updates trackbars and RGB-textboxes according to color wheel settings
/// Updates trackbars and RGB-textboxes according to color wheel settings
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@ -295,32 +415,30 @@ namespace Matrix_App
ZeichnenTextBoxGreen.Text = ZeichnenFarbRad.getGreen().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>
/// Fills the entire Matrix with a color
/// Fills the entire Matrix with a color
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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.Fill(color);
commandQueue.EnqueueArduinoCommand(
OpcodeFill, // Opcode
(byte) ZeichnenTrackBarRed.Value, // Red
(byte) ZeichnenTrackBarGreen.Value, // Green
(byte) ZeichnenTrackBarBlue.Value // Blue
);
OpcodeFill, // Opcode
(byte)ZeichnenTrackBarRed.Value, // Red
(byte)ZeichnenTrackBarGreen.Value,// Green
(byte)ZeichnenTrackBarBlue.Value // Blue
);
}
/// <summary>
/// Sets the entire Matrix to black
/// Sets the entire Matrix to black
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@ -329,25 +447,25 @@ namespace Matrix_App
matrixView.Fill(Color.Black);
commandQueue.EnqueueArduinoCommand(
OpcodeFill, // opcode
0, // red
0, // green
0 // blue
OpcodeFill, // opcode
0, // red
0, // green
0 // blue
);
}
#endregion
#region Image-Drag-Drop
/// <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>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DragDrop_Click(object sender, EventArgs e)
{
using OpenFileDialog openFileDialog = new()
using OpenFileDialog openFileDialog = new OpenFileDialog
{
InitialDirectory = "c:\\",
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
@ -364,8 +482,8 @@ namespace Matrix_App
}
/// <summary>
/// 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.
/// 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.
/// </summary>
/// <param name="filePath"></param>
private void LoadFromFile(string filePath)
@ -378,9 +496,9 @@ namespace Matrix_App
var frames = Math.Min(gif.GetFrameCount(FrameDimension.Time), 120);
if (gif.GetFrameCount(FrameDimension.Time) > 120)
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");
{
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");
}
FrameCount.Value = frames;
Timeline.Maximum = frames - 1;
@ -397,41 +515,44 @@ namespace Matrix_App
// fetch each pixel and store
for (var x = 0; x < bitmap.Width; x++)
for (var y = 0; y < bitmap.Height; y++)
{
var pixel = bitmap.GetPixel(x, y);
for (var y = 0; y < bitmap.Height; 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 + 1] = pixel.G;
gifBuffer[i][index * 3 + 2] = pixel.B;
gifBuffer[i][index * 3 + 0] = pixel.R;
gifBuffer[i][index * 3 + 1] = pixel.G;
gifBuffer[i][index * 3 + 2] = pixel.B;
}
}
}
matrixView.Refresh();
Timeline.Value = 0;
}
else
{
Bitmap bitmap = ResizeImage(new Bitmap(filePath), matrixView.matrixWidth(), matrixView.matrixHeight());
matrixView.SetImage(bitmap);
for (var x = 0; x < bitmap.Width; x++)
for (var y = 0; y < bitmap.Height; y++)
for (int x = 0; x < bitmap.Width; x++)
{
var pixel = bitmap.GetPixel(x, y);
for (int y = 0; y < bitmap.Height; y++)
{
var pixel = bitmap.GetPixel(x, y);
var index = x + y * bitmap.Width;
int index = x + y * bitmap.Width;
gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R;
gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G;
gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B;
gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R;
gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G;
gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B;
}
}
}
WriteImage(gifBuffer[Timeline.Value]);
}
@ -445,15 +566,15 @@ namespace Matrix_App
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]);
}
#endregion
#region Timeline
public void ResetTimeline()
{
Timeline.Value = 1;
@ -462,7 +583,7 @@ namespace Matrix_App
public int GetDelayTime()
{
return (int) Delay.Value;
return (int)Delay.Value;
}
private void FrameCount_ValueChanged(object sender, EventArgs e)
@ -476,16 +597,16 @@ namespace Matrix_App
else
{
Timeline.Enabled = true;
Timeline.Maximum = (int) FrameCount.Value - 1;
Timeline.Maximum = (int)FrameCount.Value - 1;
}
}
private void Timeline_ValueChanged(object sender, EventArgs e)
{
var timeFrame = Timeline.Value;
WriteImage(gifBuffer[timeFrame]);
lock (matrixView)
{
matrixView.SetImage(gifBuffer[timeFrame]);
@ -493,22 +614,22 @@ namespace Matrix_App
}
/// <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>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Apply_Click(object sender, EventArgs e)
{
var width = matrixView.matrixWidth();
var height = matrixView.matrixHeight();
int width = matrixView.matrixWidth();
int height = matrixView.matrixHeight();
for (var y = 0; y < height; y++)
for (int y = 0; y < height; y++)
{
var i = y * width;
int i = y * width;
for (var x = 0; x < width; x++)
for (int x = 0; x < width; x++)
{
var tmp = (i + x) * 3;
int tmp = (i + x) * 3;
var color = matrixView.GetPixel(x, y);
@ -519,21 +640,27 @@ namespace Matrix_App
}
}
private void Timelineupdate(object source, ElapsedEventArgs e)
private void Timelineupdate(Object source, ElapsedEventArgs e)
{
if (Timeline.InvokeRequired)
{
// invoke on the combo-boxes thread
Timeline.Invoke(new Action(() =>
{
if (Timeline.Value < Timeline.Maximum)
{
Timeline.Value = Timeline.Value + 1;
}
else
{
Timeline.Value = 0;
}
}));
}
}
/// <summary>
/// Starts playing the timeline
/// Starts playing the timeline
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@ -547,19 +674,19 @@ namespace Matrix_App
Timeline.Value = 0;
runningGif = true;
if (delay != null)
delay.Enabled = true;
Play.Image = new Bitmap(Resources.Stop);
Play.Image = new Bitmap(Properties.Resources.Stop);
}
else
{
Play.Image = new Bitmap(Resources.Play);
Play.Image = new Bitmap(Properties.Resources.Play);
Play.Text = @"Play";
runningGif = false;
if (delay != null)
if (delay != null)
delay.Enabled = false;
}
}
@ -568,27 +695,27 @@ namespace Matrix_App
private void Timeline_MouseDown(object sender, MouseEventArgs e)
{
if (!runningGif) return;
Play.Image = new Bitmap(Resources.Play);
Play.Image = new Bitmap(Properties.Resources.Play);
Play.Text = @"Play";
runningGif = false;
if (delay != null)
if (delay != null)
delay.Enabled = false;
}
private void Delay_ValueChanged(object sender, EventArgs _)
{
if (delay != null)
if (delay != null)
delay.Interval = (int) Delay.Value;
}
#endregion
#region Properties
private void Save_Click(object sender, EventArgs e)
{
SaveFileDialog save = new()
SaveFileDialog save = new SaveFileDialog
{
InitialDirectory = "c:\\",
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
@ -600,23 +727,20 @@ namespace Matrix_App
{
string filePath = save.FileName;
Bitmap[] gifBitmap = new Bitmap[gifBuffer.Length];
GifWriter writer = new(File.Create(filePath));
GifWriter writer = new GifWriter(File.Create(filePath));
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++)
{
var y = 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();
}
}
@ -624,7 +748,7 @@ namespace Matrix_App
private void ConfigButton_Click(object sender, EventArgs e)
{
commandQueue.EnqueueArduinoCommand(4);
PortCommandQueue.WaitForLastDequeue();
commandQueue.WaitForLastDequeue();
byte[] data = commandQueue.GetLastData();
if (commandQueue.GetMark() > 0)
@ -634,21 +758,23 @@ namespace Matrix_App
matrixWidth.Value = width;
matrixHeight.Value = height;
for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
{
var i0 = x * 3 + y * width * 3;
for (var x = 0; x < width; x++)
{
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;
// degamma
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 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f);
var i1 = x1 * 3 + y1 * width * 3;
// degamma
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 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f);
}
}
Timeline.Value = 1;
@ -668,14 +794,16 @@ namespace Matrix_App
}
/// <summary>
/// Resizes the Gif image buffer
/// Resizes the Gif image buffer
/// </summary>
private void ResizeGif()
{
var frames = (int) FrameCount.Value;
int frames = (int)FrameCount.Value;
gifBuffer = new byte[frames + 1][];
for (var i = 0; i <= frames; i++)
for (int i = 0; i <= frames; i++)
{
gifBuffer[i] = new byte[matrixView.matrixWidth() * matrixView.matrixHeight() * 3];
}
}
#endregion
@ -706,29 +834,32 @@ namespace Matrix_App
var height = matrixView.matrixHeight();
for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
{
var i0 = x * 3 + y * width * 3;
for (var x = 0; x < width; x++)
{
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;
gammaImage[i0 + 0] = rgbImageData[i1 + 0];
gammaImage[i0 + 1] = rgbImageData[i1 + 1];
gammaImage[i0 + 2] = rgbImageData[i1 + 2];
var i1 = x1 * 3 + y1 * width * 3;
gammaImage[i0 + 0] = rgbImageData[i1 + 0];
gammaImage[i0 + 1] = rgbImageData[i1 + 1];
gammaImage[i0 + 2] = rgbImageData[i1 + 2];
}
}
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);
}
/// <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>
public void EnqueuePixelSet()
{
@ -738,36 +869,14 @@ namespace Matrix_App
for (var x = 0; x < pixels.Length; x++)
{
image[x * 3 + 0] = (byte) ((pixels[x] >> 16) & 0xFF);
image[x * 3 + 1] = (byte) ((pixels[x] >> 8) & 0xFF);
image[x * 3 + 2] = (byte) ((pixels[x] >> 0) & 0xFF);
image[x * 3 + 0] = (byte) (pixels[x] >> 16 & 0xFF);
image[x * 3 + 1] = (byte) (pixels[x] >> 8 & 0xFF);
image[x * 3 + 2] = (byte) (pixels[x] >> 0 & 0xFF);
}
WriteImage(image);
}
#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);
}
}
}
}

View File

@ -1,242 +0,0 @@
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";
//
// 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";
//
// 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";
//
// 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

@ -1,235 +0,0 @@
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 WritePortCombobox_SelectedIndexChanged_1(object sender, EventArgs e)
{
ValidatePortSelection(WritePortCombobox, port);
}
}
}

View File

@ -1,120 +0,0 @@
<?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,16 +1,8 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = netcoreapp3.1
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Matrix_App
build_property.ProjectDir = D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\
build_property.PublishSingleFile =
build_property.IncludeAllContentForSelfExtract =
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows

View File

@ -1 +1 @@
bd3d19471e6c626a1da4aa8e547d2cb2725a3ba5
2fd371e536027e5b611b0b4082d7a8540ace9153

View File

@ -36,93 +36,3 @@ 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.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
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
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.exe
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.deps.json
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.json
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.dev.json
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.pdb
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Bluetooth.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.Registry.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.CodeDom.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Drawing.Common.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.IO.Ports.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Management.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.AccessControl.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.Principal.Windows.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux\lib\netstandard2.0\System.IO.Ports.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx\lib\netstandard2.0\System.IO.Ports.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.IO.Ports.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Management.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.AccessControl.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.AssemblyReference.cache
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.ColorWheel.resources
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Matrix.resources
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.MatrixDesignerMain.resources
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.forms.Settings.resources
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Properties.Resources.resources
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.GenerateResource.cache
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.GeneratedMSBuildEditorConfig.editorconfig
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfoInputs.cache
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfo.cs
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CoreCompileInputs.cache
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CopyComplete
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
D:\Content\Workspace\Matrix App Projekt\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache

View File

@ -1 +1 @@
38158c969a128413e81b0f37c3234f11d11f99d5
515eead76ebf0b414116e9f97a694849e0a06bf3

View File

@ -1,25 +1,27 @@
{
"format": 1,
"restore": {
"D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {}
"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {}
},
"projects": {
"D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {
"F:\\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",
"restore": {
"projectUniqueName": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"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": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"packagesPath": "C:\\Users\\Besitzer\\.nuget\\packages\\",
"outputPath": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectPath": "F:\\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\\",
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Besitzer\\AppData\\Roaming\\NuGet\\NuGet.Config"
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@ -38,14 +40,6 @@
"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, )"
@ -66,21 +60,9 @@
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[3.1.10, 3.1.10]"
},
{
"name": "Microsoft.NETCore.App.Host.win-x64",
"version": "[3.1.21, 3.1.21]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[3.1.0, 3.1.0]"
},
{
"name": "Microsoft.WindowsDesktop.App.Ref",
"version": "[3.1.0, 3.1.0]"
"version": "[3.1.15, 3.1.15]"
}
],
"frameworkReferences": {
@ -91,7 +73,7 @@
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Users\\Besitzer\\.dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
}
}
}

View File

@ -5,11 +5,14 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Besitzer\.nuget\packages\</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\SvenV\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.0</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Besitzer\.nuget\packages\" />
<SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

View File

@ -1,2 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

View File

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

View File

@ -1,22 +0,0 @@
//------------------------------------------------------------------------------
// <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

@ -1 +0,0 @@
39de9d24d938d695442768dc93361a4c97b58647

View File

@ -1,8 +0,0 @@
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

@ -1 +0,0 @@
3fc6bc78589ef3eb4111eb99db02236b755b7630

View File

@ -1,38 +0,0 @@
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

View File

@ -1 +0,0 @@
515eead76ebf0b414116e9f97a694849e0a06bf3

View File

@ -2,20 +2,6 @@
"version": 3,
"targets": {
".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": {
"type": "package",
"compile": {
@ -25,15 +11,6 @@
"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": {
"type": "package",
"dependencies": {
@ -53,122 +30,6 @@
}
}
},
"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": {
"type": "package",
"runtimeTargets": {
@ -223,28 +84,6 @@
"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": {
"type": "package",
"dependencies": {
@ -292,65 +131,6 @@
}
}
},
"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": {
"type": "package",
"dependencies": {
@ -391,18 +171,6 @@
}
},
"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": {
"sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"type": "package",
@ -421,21 +189,6 @@
"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": {
"sha512": "qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
"type": "package",
@ -462,220 +215,6 @@
"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": {
"sha512": "VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
"type": "package",
@ -774,48 +313,6 @@
"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": {
"sha512": "9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
"type": "package",
@ -871,299 +368,6 @@
"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": {
"sha512": "EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
"type": "package",
@ -1227,31 +431,31 @@
},
"projectFileDependencyGroups": {
".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.Management >= 5.0.0"
]
},
"packageFolders": {
"C:\\Users\\Besitzer\\.nuget\\packages\\": {}
"C:\\Users\\SvenV\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"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": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"packagesPath": "C:\\Users\\Besitzer\\.nuget\\packages\\",
"outputPath": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectPath": "F:\\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\\",
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Besitzer\\AppData\\Roaming\\NuGet\\NuGet.Config"
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@ -1270,14 +474,6 @@
"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, )"
@ -1298,21 +494,9 @@
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[3.1.10, 3.1.10]"
},
{
"name": "Microsoft.NETCore.App.Host.win-x64",
"version": "[3.1.21, 3.1.21]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[3.1.0, 3.1.0]"
},
{
"name": "Microsoft.WindowsDesktop.App.Ref",
"version": "[3.1.0, 3.1.0]"
"version": "[3.1.15, 3.1.15]"
}
],
"frameworkReferences": {
@ -1323,7 +507,7 @@
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Users\\Besitzer\\.dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
}
}
}

View File

@ -1,34 +1,22 @@
{
"version": 2,
"dgSpecHash": "ZY47OzaF5x3SqAy6iYbMHwGuxV3QUxNzyRJ18XhXfzPiTpb5xoUIoBiBgOcNOLzpqKd9J/1GsESYkwcHo/FQEQ==",
"dgSpecHash": "in5PmRkmB8RpF6FzDZSVW/AkI1iTzIqwg3iCCVYnwoId7ig1EsQtej3lqZkrG6LgW4VgvDBp38hFmkELxxuwhA==",
"success": true,
"projectFilePath": "D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"projectFilePath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
"expectedPackageFiles": [
"C:\\Users\\Besitzer\\.nuget\\packages\\bluetooth\\1.0.0.2\\bluetooth.1.0.0.2.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.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\\Besitzer\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.windows.sdk.contracts\\10.0.19041.1\\microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512",
"C:\\Users\\Besitzer\\.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\\Besitzer\\.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\\Besitzer\\.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\\Besitzer\\.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\\Besitzer\\.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\\Besitzer\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\system.drawing.common\\5.0.2\\system.drawing.common.5.0.2.nupkg.sha512",
"C:\\Users\\Besitzer\\.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\\Besitzer\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\system.runtime.interopservices.windowsruntime\\4.3.0\\system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\system.runtime.windowsruntime\\4.7.0\\system.runtime.windowsruntime.4.7.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\system.runtime.windowsruntime.ui.xaml\\4.6.0\\system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.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\\Besitzer\\.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\\Besitzer\\.nuget\\packages\\microsoft.netcore.app.ref\\3.1.0\\microsoft.netcore.app.ref.3.1.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\3.1.0\\microsoft.windowsdesktop.app.ref.3.1.0.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\3.1.10\\microsoft.aspnetcore.app.ref.3.1.10.nupkg.sha512",
"C:\\Users\\Besitzer\\.nuget\\packages\\microsoft.netcore.app.host.win-x64\\3.1.21\\microsoft.netcore.app.host.win-x64.3.1.21.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.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\\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-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.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.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.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\\microsoft.netcore.app.host.win-x64\\3.1.15\\microsoft.netcore.app.host.win-x64.3.1.15.nupkg.sha512"
],
"logs": []
}

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","projectName":"Matrix App","projectPath":"D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","outputPath":"D:\\Content\\Workspace\\Matrix App Projekt\\Matrix_App_V3.5.3\\Matrix App\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netcoreapp3.1"],"sources":{"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.AspNetCore.App.Ref","version":"[3.1.10, 3.1.10]"},{"name":"Microsoft.NETCore.App.Host.win-x64","version":"[3.1.21, 3.1.21]"},{"name":"Microsoft.NETCore.App.Ref","version":"[3.1.0, 3.1.0]"},{"name":"Microsoft.WindowsDesktop.App.Ref","version":"[3.1.0, 3.1.0]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App.WindowsForms":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Users\\Besitzer\\.dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"}}
"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"}}

View File

@ -1 +1 @@
16382845800000000
16249002820000000

View File

@ -1,17 +1,7 @@
<p align="center">
<img src="https://git.montehaselino.de/servostar/PainterlyUNO/raw/branch/master/Matrix%20App/MatrixIconHighres.png" />
</p>
# PainterlyUNO
A small C# application for creating and editing images, which then can be uploaded to an microcontroller which manages an matrix of LEDs.
![splashscreen](https://git.montehaselino.de/servostar/PainterlyUNO/raw/branch/master/Matrix%20App/Resources/Splashcreen.png)
# Quick note
This repo is under no active watch or development.
> This project is currently (still) in alpha status
> This project is currently in alpha status
> This project was originally developed by german tongues, so forgive us, if you stumble upon something you miss to understand
Features