2 new instructions:
- upload (beta) - info RP2040 support (see .py) bug fixes
This commit is contained in:
parent
da6e4bbb08
commit
54ece7e1f3
|
@ -0,0 +1 @@
|
||||||
|
/Matrix App/bin/
|
|
@ -0,0 +1,169 @@
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
from machine import UART, Pin
|
||||||
|
|
||||||
|
import array, time
|
||||||
|
from machine import Pin
|
||||||
|
import rp2
|
||||||
|
|
||||||
|
# Configure the number of WS2812 LEDs.
|
||||||
|
NUM_LEDS = 256
|
||||||
|
PIN_NUM = 16
|
||||||
|
brightness = 0.2
|
||||||
|
|
||||||
|
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
|
||||||
|
def ws2812():
|
||||||
|
T1 = 2
|
||||||
|
T2 = 5
|
||||||
|
T3 = 3
|
||||||
|
wrap_target()
|
||||||
|
label("bitloop")
|
||||||
|
out(x, 1) .side(0) [T3 - 1]
|
||||||
|
jmp(not_x, "do_zero") .side(1) [T1 - 1]
|
||||||
|
jmp("bitloop") .side(1) [T2 - 1]
|
||||||
|
label("do_zero")
|
||||||
|
nop() .side(0) [T2 - 1]
|
||||||
|
wrap()
|
||||||
|
|
||||||
|
# Create the StateMachine with the ws2812 program, outputting on pin
|
||||||
|
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(PIN_NUM))
|
||||||
|
|
||||||
|
# Start the StateMachine, it will wait for data on its FIFO.
|
||||||
|
sm.active(1)
|
||||||
|
|
||||||
|
# Display a pattern on the LEDs via an array of LED RGB values.
|
||||||
|
global ar
|
||||||
|
global leds
|
||||||
|
global gif
|
||||||
|
global currentFrame
|
||||||
|
global delay
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
def show():
|
||||||
|
for i in range(leds):
|
||||||
|
r = ar[i] >> 16
|
||||||
|
g = ar[i] >> 8 & 0xFF
|
||||||
|
b = ar[i] & 0xFF
|
||||||
|
|
||||||
|
r = r >> 1
|
||||||
|
g = g >> 1
|
||||||
|
b = b >> 1
|
||||||
|
|
||||||
|
ar[i] = r << 16 | g << 8 | b
|
||||||
|
|
||||||
|
sm.put(ar, 8)
|
||||||
|
|
||||||
|
leds = 256 # number of leds
|
||||||
|
uart = UART(0, 9600) # serial bluetooth
|
||||||
|
led = Pin(25, Pin.OUT) # builtin LED
|
||||||
|
ar = array.array("I", [0 for _ in range(NUM_LEDS)]) # color array
|
||||||
|
gif = [array.array("I", [0 for _ in range(leds)]) for _ in range(1)]
|
||||||
|
currentFrame = -1
|
||||||
|
|
||||||
|
# gurantees that only N-bytes are read from the UART
|
||||||
|
def readNBytes(n):
|
||||||
|
rawBytes = b''
|
||||||
|
bytesRead = 0
|
||||||
|
while True:
|
||||||
|
if uart.any():
|
||||||
|
rawBytes += uart.read(n - bytesRead)
|
||||||
|
|
||||||
|
bytesRead = len(rawBytes)
|
||||||
|
|
||||||
|
# not enough was read
|
||||||
|
if bytesRead < n:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
return rawBytes
|
||||||
|
|
||||||
|
while True:
|
||||||
|
led.low()
|
||||||
|
if uart.any() != 0:
|
||||||
|
opcode = uart.read(1)
|
||||||
|
|
||||||
|
print("Opcode: ", opcode)
|
||||||
|
|
||||||
|
if opcode == b'\x00':
|
||||||
|
width = readNBytes(1)[0]
|
||||||
|
height = readNBytes(1)[0]
|
||||||
|
|
||||||
|
if width <= 32 and height <= 32:
|
||||||
|
leds = width * height
|
||||||
|
|
||||||
|
ar = array.array("I", [0 for _ in range(leds)])
|
||||||
|
show()
|
||||||
|
|
||||||
|
elif opcode == b'\x02':
|
||||||
|
rawBytes = readNBytes(leds * 3);
|
||||||
|
|
||||||
|
for i in range(leds):
|
||||||
|
ar[i] = rawBytes[i * 3 + 1] << 16 | rawBytes[i * 3] << 8 | rawBytes[i * 3 + 2]
|
||||||
|
|
||||||
|
show()
|
||||||
|
|
||||||
|
currentFrame = -1
|
||||||
|
|
||||||
|
elif opcode == b'\x03':
|
||||||
|
r = readNBytes(1)
|
||||||
|
g = readNBytes(1)
|
||||||
|
b = readNBytes(1)
|
||||||
|
|
||||||
|
for i in range(leds):
|
||||||
|
ar[i] = g[0] << 16 | r[0] << 8 | b[0]
|
||||||
|
|
||||||
|
show()
|
||||||
|
|
||||||
|
elif opcode == b'\x04':
|
||||||
|
|
||||||
|
uart.write([75])
|
||||||
|
|
||||||
|
# [width] [height] [frames] [delay] [rgb-frames]
|
||||||
|
elif opcode == b'\x05':
|
||||||
|
gifDim = readNBytes(5)
|
||||||
|
|
||||||
|
delay = (gifDim[3] << 8) | gifDim[4]
|
||||||
|
|
||||||
|
print("w ", gifDim[0], " h ", gifDim[1], " f ", gifDim[2], " d ", delay)
|
||||||
|
|
||||||
|
leds = gifDim[0] * gifDim[1]
|
||||||
|
gif = [array.array("I", [0 for _ in range(leds)]) for _ in range(gifDim[2])]
|
||||||
|
|
||||||
|
for f in range(gifDim[2]):
|
||||||
|
frame = readNBytes(leds * 3)
|
||||||
|
print("frame read: ", f)
|
||||||
|
for i in range(leds):
|
||||||
|
gif[f][i] = frame[i * 3 + 1] << 16 | frame[i * 3] << 8 | frame[i * 3 + 2]
|
||||||
|
#uart.write(bytearray([91])) # synchronize
|
||||||
|
|
||||||
|
currentFrame = 0
|
||||||
|
|
||||||
|
print("Everything read")
|
||||||
|
|
||||||
|
# [Synchro-byte] [feature-flags] [Controller-Id]
|
||||||
|
#
|
||||||
|
# feature-flags:
|
||||||
|
# [Bit 7] = Bluetooth (true)
|
||||||
|
# [Bit 6] = USB (false)
|
||||||
|
# [Bit 0] = Upload (true)
|
||||||
|
#
|
||||||
|
elif opcode == b'\x06':
|
||||||
|
uart.write(b'\x5B\x81')
|
||||||
|
uart.write("RP2040 Micro python")
|
||||||
|
|
||||||
|
led.high()
|
||||||
|
uart.write(bytearray([75]))
|
||||||
|
|
||||||
|
elif currentFrame != -1:
|
||||||
|
print("showing")
|
||||||
|
for i in range(leds):
|
||||||
|
ar[i] = gif[currentFrame][i]
|
||||||
|
|
||||||
|
show()
|
||||||
|
currentFrame += 1
|
||||||
|
|
||||||
|
if (currentFrame >= len(gif)):
|
||||||
|
currentFrame = 0
|
||||||
|
|
||||||
|
time.sleep(delay * 1e-3)
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FColorWheel/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FColorWheel/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrix/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrix/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FMatrixDesigner/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002Fforms_002FSettings/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrix/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrix/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FMatrixDesigner/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Matrix_0020App_002FProperties_002FResources/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/OrderByFullPath/@EntryValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/ShowComments/@EntryValue">False</s:Boolean></wpf:ResourceDictionary>
|
|
@ -3,8 +3,6 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
public static class Defaults
|
public static class Defaults
|
||||||
{
|
{
|
||||||
public const int PortNameUpdateInterval = 5000;
|
|
||||||
|
|
||||||
public const int MatrixStartWidth = 16;
|
public const int MatrixStartWidth = 16;
|
||||||
public const int MatrixStartHeight = 16;
|
public const int MatrixStartHeight = 16;
|
||||||
public const int MatrixStartFrames = 1;
|
public const int MatrixStartFrames = 1;
|
||||||
|
@ -12,16 +10,11 @@ namespace Matrix_App
|
||||||
public const int MatrixLimitedWidth = 512;
|
public const int MatrixLimitedWidth = 512;
|
||||||
public const int MatrixLimitedHeight = 512;
|
public const int MatrixLimitedHeight = 512;
|
||||||
|
|
||||||
public const int BaudRate = 48000;
|
public const int BaudRate = 9600;
|
||||||
|
|
||||||
public const int ReadTimeoutMs = 5500;
|
|
||||||
public const int WriteTimeoutMs = 5500;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Total count of LEDs at start
|
|
||||||
/// </summary>
|
|
||||||
public static readonly int MATRIX_START_LED_COUNT = MatrixStartWidth * MatrixStartHeight * Bpp;
|
|
||||||
|
|
||||||
|
public const int ReadTimeoutMs = 20500;
|
||||||
|
public const int WriteTimeoutMs = 2500;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Number of Bytes Per Pixel: 3 cause Red (1 byte) + Blue (1 Byte) + Green (1 byte) = 3
|
/// Number of Bytes Per Pixel: 3 cause Red (1 byte) + Blue (1 Byte) + Green (1 byte) = 3
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -30,7 +23,9 @@ namespace Matrix_App
|
||||||
public const int FilterPreviewWidth = 32;
|
public const int FilterPreviewWidth = 32;
|
||||||
public const int FilterPreviewHeight = 32;
|
public const int FilterPreviewHeight = 32;
|
||||||
|
|
||||||
|
public const int ArduinoSynchronizationByte = 91;
|
||||||
public const int ArduinoSuccessByte = 75;
|
public const int ArduinoSuccessByte = 75;
|
||||||
|
public const int ArduinoErrorByte = 255;
|
||||||
|
|
||||||
public const int ArduinoCommandQueueSize = 2;
|
public const int ArduinoCommandQueueSize = 2;
|
||||||
public const int ArduinoReceiveBufferSize = 1 + 1 + 1 + MatrixLimitedWidth * MatrixLimitedHeight;
|
public const int ArduinoReceiveBufferSize = 1 + 1 + 1 + MatrixLimitedWidth * MatrixLimitedHeight;
|
||||||
|
@ -43,6 +38,9 @@ namespace Matrix_App
|
||||||
public const byte OpcodeScale = 0;
|
public const byte OpcodeScale = 0;
|
||||||
public const byte OpcodeImage = 2;
|
public const byte OpcodeImage = 2;
|
||||||
public const byte OpcodeFill = 3;
|
public const byte OpcodeFill = 3;
|
||||||
public static readonly byte OPCODE_CONFIG = 4;
|
public const byte OpcodePush = 5;
|
||||||
|
|
||||||
|
public const byte OpcodeInfo = 6;
|
||||||
|
// public static readonly byte OpcodeConfig = 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -8,6 +8,7 @@
|
||||||
<ApplicationIcon>MatrixIcon.ico</ApplicationIcon>
|
<ApplicationIcon>MatrixIcon.ico</ApplicationIcon>
|
||||||
<EnableNETAnalyzers>true</EnableNETAnalyzers>
|
<EnableNETAnalyzers>true</EnableNETAnalyzers>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
@ -17,6 +18,8 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Bluetooth" Version="1.0.0.2" />
|
||||||
|
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
|
||||||
<PackageReference Include="System.IO.Ports" Version="6.0.0-preview.5.21301.5" />
|
<PackageReference Include="System.IO.Ports" Version="6.0.0-preview.5.21301.5" />
|
||||||
<PackageReference Include="System.Management" Version="5.0.0" />
|
<PackageReference Include="System.Management" Version="5.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -40,6 +43,9 @@
|
||||||
<Compile Update="forms\SplashScreen.cs">
|
<Compile Update="forms\SplashScreen.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Update="forms\Settings.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using Matrix_App.PregeneratedMods;
|
using Matrix_App.PregeneratedMods;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace Matrix_App
|
||||||
int index = x + (y * Width);
|
int index = x + (y * Width);
|
||||||
int col = colour.ToArgb();
|
int col = colour.ToArgb();
|
||||||
|
|
||||||
Bits[index] = col;
|
Bits[index] = col & 0x00FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetImage(Bitmap image)
|
public void SetImage(Bitmap image)
|
||||||
|
|
|
@ -1,26 +1,23 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
using System.Security.Permissions;
|
using System.Security.Permissions;
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
using static Matrix_App.Defaults;
|
using static Matrix_App.Defaults;
|
||||||
|
|
||||||
namespace Matrix_App
|
namespace Matrix_App.adds
|
||||||
{
|
{
|
||||||
public class PortCommandQueue
|
public class PortCommandQueue
|
||||||
{
|
{
|
||||||
private const string ThreadDeliverName = "Arduino Port Deliver Thread";
|
private const string ThreadDeliverName = "Arduino Port Deliver Thread";
|
||||||
|
|
||||||
private Queue<byte[]> byteWriteQueue = new Queue<byte[]>();
|
private readonly Queue<byte[]> byteWriteQueue = new();
|
||||||
|
private readonly Queue<byte> statusByteQueue = new();
|
||||||
|
|
||||||
private Thread portDeliverThread;
|
private readonly Thread portDeliverThread;
|
||||||
|
|
||||||
private SerialPort port;
|
private readonly SerialPort tx;
|
||||||
|
|
||||||
private bool running;
|
private bool running;
|
||||||
|
|
||||||
|
@ -28,12 +25,15 @@ namespace Matrix_App
|
||||||
|
|
||||||
private volatile bool isPortValid;
|
private volatile bool isPortValid;
|
||||||
|
|
||||||
private readonly byte[] recived = new byte[ArduinoReceiveBufferSize];
|
private readonly byte[] received = new byte[ArduinoReceiveBufferSize];
|
||||||
private int mark;
|
private int mark;
|
||||||
|
|
||||||
public PortCommandQueue(ref SerialPort port)
|
private volatile bool synchronized;
|
||||||
|
private bool updateRealtime;
|
||||||
|
|
||||||
|
public PortCommandQueue(ref SerialPort tx)
|
||||||
{
|
{
|
||||||
this.port = port;
|
this.tx = tx;
|
||||||
|
|
||||||
portDeliverThread = new Thread(ManageQueue) { Name = ThreadDeliverName };
|
portDeliverThread = new Thread(ManageQueue) { Name = ThreadDeliverName };
|
||||||
}
|
}
|
||||||
|
@ -44,38 +44,66 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
while (!kill)
|
while (!kill)
|
||||||
{
|
{
|
||||||
if (byteWriteQueue.Count <= 0) continue;
|
if (!isPortValid) continue;
|
||||||
|
if (byteWriteQueue.Count <= 0)
|
||||||
|
{
|
||||||
|
lock (byteWriteQueue)
|
||||||
|
{
|
||||||
|
Monitor.Wait(byteWriteQueue);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
byte[] bytes;
|
byte[] bytes;
|
||||||
|
int statusByte;
|
||||||
lock (byteWriteQueue)
|
lock (byteWriteQueue)
|
||||||
{
|
{
|
||||||
bytes = byteWriteQueue.Dequeue();
|
bytes = byteWriteQueue.Dequeue();
|
||||||
|
statusByte = statusByteQueue.Dequeue();
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (port)
|
lock (tx)
|
||||||
{
|
{
|
||||||
if (!isPortValid) continue;
|
var success = false;
|
||||||
|
var tryCounter = 0;
|
||||||
|
|
||||||
port.Open();
|
do
|
||||||
port.Write(bytes, 0, bytes.Length);
|
|
||||||
|
|
||||||
int b;
|
|
||||||
mark = 0;
|
|
||||||
while((b = port.ReadByte()) != ArduinoSuccessByte)
|
|
||||||
{
|
{
|
||||||
recived[mark++] = (byte) b;
|
try
|
||||||
}
|
{
|
||||||
|
tx.Write(bytes, 0, bytes.Length);
|
||||||
|
|
||||||
port.Close();
|
var b = ArduinoErrorByte;
|
||||||
|
var errorFlag = false;
|
||||||
|
mark = 0;
|
||||||
|
while (!errorFlag && (b = tx.ReadByte()) != statusByte)
|
||||||
|
{
|
||||||
|
received[mark++] = (byte) b;
|
||||||
|
|
||||||
|
errorFlag = b == ArduinoErrorByte;
|
||||||
|
}
|
||||||
|
synchronized = b == ArduinoSynchronizationByte;
|
||||||
|
success = !errorFlag;
|
||||||
|
Debug.WriteLine("===================> Com Success !");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.WriteLine("=============================> ERROR <=================================");
|
||||||
|
Debug.WriteLine(e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
tryCounter++;
|
||||||
|
} while (!success && tryCounter < 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (ThreadInterruptedException)
|
}
|
||||||
|
catch (ThreadInterruptedException)
|
||||||
{
|
{
|
||||||
Thread.CurrentThread.Interrupt();
|
Thread.CurrentThread.Interrupt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]
|
[SecurityPermission(SecurityAction.Demand, ControlThread = true)]
|
||||||
public void Close()
|
public void Close()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -93,24 +121,34 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
// omit
|
// omit
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (tx.IsOpen)
|
||||||
|
{
|
||||||
|
tx.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EnqueueArduinoCommand(params byte[] bytes)
|
private void EnqueueArduinoCommand(params byte[] bytes)
|
||||||
{
|
{
|
||||||
|
if (!updateRealtime && bytes[0] != ArduinoInstruction.OpcodeScale &&
|
||||||
|
bytes[0] != ArduinoInstruction.OpcodePush)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!running)
|
if (!running)
|
||||||
{
|
{
|
||||||
running = true;
|
running = true;
|
||||||
portDeliverThread.Start();
|
portDeliverThread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (byteWriteQueue)
|
lock (byteWriteQueue)
|
||||||
{
|
{
|
||||||
if (byteWriteQueue.Count < ArduinoCommandQueueSize)
|
Monitor.Pulse(byteWriteQueue);
|
||||||
|
if (byteWriteQueue.Count >= ArduinoCommandQueueSize) return;
|
||||||
|
lock (byteWriteQueue)
|
||||||
{
|
{
|
||||||
lock (byteWriteQueue)
|
byteWriteQueue.Enqueue(bytes);
|
||||||
{
|
|
||||||
byteWriteQueue.Enqueue(bytes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,6 +159,7 @@ namespace Matrix_App
|
||||||
Buffer.BlockCopy(data, 0, wrapper, 1, data.Length);
|
Buffer.BlockCopy(data, 0, wrapper, 1, data.Length);
|
||||||
wrapper[0] = opcode;
|
wrapper[0] = opcode;
|
||||||
|
|
||||||
|
statusByteQueue.Enqueue(ArduinoSuccessByte);
|
||||||
EnqueueArduinoCommand(wrapper);
|
EnqueueArduinoCommand(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,11 +171,11 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void WaitForLastDequeue()
|
public static void WaitForLastDequeue()
|
||||||
{
|
{
|
||||||
int timeCount = 0;
|
var timeCount = 0;
|
||||||
|
var wait = true;
|
||||||
|
|
||||||
bool wait = true;
|
|
||||||
while(wait)
|
while(wait)
|
||||||
{
|
{
|
||||||
timeCount++;
|
timeCount++;
|
||||||
|
@ -148,24 +187,66 @@ namespace Matrix_App
|
||||||
|
|
||||||
public byte[] GetLastData()
|
public byte[] GetLastData()
|
||||||
{
|
{
|
||||||
return recived;
|
return received;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ValidatePort()
|
public void ValidatePort()
|
||||||
{
|
{
|
||||||
isPortValid = true;
|
try
|
||||||
|
{
|
||||||
|
if (!tx.IsOpen)
|
||||||
|
{
|
||||||
|
tx.Open();
|
||||||
|
isPortValid = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
isPortValid = false;
|
||||||
|
|
||||||
|
Debug.WriteLine("Failed opening port: " + e.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InvalidatePort()
|
public void InvalidatePort()
|
||||||
{
|
{
|
||||||
isPortValid = false;
|
isPortValid = false;
|
||||||
|
tx.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns last location of written byte in the received buffer.
|
||||||
|
/// Call clears the mark. Any other call will return 0, unless the mark has been
|
||||||
|
/// altered by reading new data from the serial port.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
public int GetMark()
|
public int GetMark()
|
||||||
{
|
{
|
||||||
int tmp = mark;
|
var tmp = mark;
|
||||||
mark = 0;
|
mark = 0;
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void EnqueueArduinoCommandSynchronized(byte[] bytes)
|
||||||
|
{
|
||||||
|
statusByteQueue.Enqueue(ArduinoSynchronizationByte);
|
||||||
|
EnqueueArduinoCommand(bytes);
|
||||||
|
|
||||||
|
while (!synchronized)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
Debug.WriteLine("======================> Synchronized!");
|
||||||
|
synchronized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetRealtimeUpdates(bool @checked)
|
||||||
|
{
|
||||||
|
updateRealtime = @checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetRealtimeUpdates()
|
||||||
|
{
|
||||||
|
return updateRealtime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,6 @@ namespace Matrix_App
|
||||||
private volatile bool working;
|
private volatile bool working;
|
||||||
|
|
||||||
private readonly int capacity;
|
private readonly int capacity;
|
||||||
|
|
||||||
private static readonly AutoResetEvent ResetEvent = new AutoResetEvent(false);
|
|
||||||
|
|
||||||
public ThreadQueue(string name, int capacity)
|
public ThreadQueue(string name, int capacity)
|
||||||
{
|
{
|
||||||
|
@ -66,14 +64,9 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
lock (taskQueue)
|
||||||
{
|
{
|
||||||
ResetEvent.WaitOne(100);
|
Monitor.Wait(taskQueue);
|
||||||
}
|
|
||||||
catch (ThreadInterruptedException)
|
|
||||||
{
|
|
||||||
Thread.CurrentThread.Interrupt();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,10 +78,11 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
if (taskQueue.Count >= capacity)
|
if (taskQueue.Count >= capacity)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Monitor.Pulse(taskQueue);
|
||||||
|
|
||||||
working = true;
|
working = true;
|
||||||
taskQueue.Enqueue(task);
|
taskQueue.Enqueue(task);
|
||||||
ResetEvent.Set();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,8 +93,12 @@ namespace Matrix_App
|
||||||
|
|
||||||
public void Stop()
|
public void Stop()
|
||||||
{
|
{
|
||||||
|
lock (taskQueue)
|
||||||
|
{
|
||||||
|
Monitor.Pulse(taskQueue);
|
||||||
|
}
|
||||||
|
|
||||||
running = false;
|
running = false;
|
||||||
ResetEvent.Set();
|
|
||||||
|
|
||||||
thread.Interrupt();
|
thread.Interrupt();
|
||||||
thread.Join(100);
|
thread.Join(100);
|
||||||
|
|
Binary file not shown.
|
@ -8,6 +8,8 @@
|
||||||
".NETCoreApp,Version=v3.1": {
|
".NETCoreApp,Version=v3.1": {
|
||||||
"Matrix App/1.0.0": {
|
"Matrix App/1.0.0": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"Bluetooth": "1.0.0.2",
|
||||||
|
"System.Drawing.Common": "5.0.2",
|
||||||
"System.IO.Ports": "6.0.0-preview.5.21301.5",
|
"System.IO.Ports": "6.0.0-preview.5.21301.5",
|
||||||
"System.Management": "5.0.0"
|
"System.Management": "5.0.0"
|
||||||
},
|
},
|
||||||
|
@ -15,7 +17,21 @@
|
||||||
"Matrix App.dll": {}
|
"Matrix App.dll": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Bluetooth/1.0.0.2": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Windows.SDK.Contracts": "10.0.19041.1",
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime": "4.3.0",
|
||||||
|
"System.Runtime.WindowsRuntime": "4.7.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Bluetooth.dll": {
|
||||||
|
"assemblyVersion": "1.0.0.2",
|
||||||
|
"fileVersion": "1.0.0.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {},
|
"Microsoft.NETCore.Platforms/5.0.0": {},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {},
|
||||||
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"System.Security.AccessControl": "6.0.0-preview.5.21301.5",
|
"System.Security.AccessControl": "6.0.0-preview.5.21301.5",
|
||||||
|
@ -36,6 +52,31 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {
|
||||||
|
"assemblyVersion": "5.0.0.0",
|
||||||
|
"fileVersion": "5.0.20.51904"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "5.0.0.0",
|
||||||
|
"fileVersion": "5.0.20.51904"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Runtime.WindowsRuntime": "4.7.0",
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml": "4.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"runtimeTargets": {
|
"runtimeTargets": {
|
||||||
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
|
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
|
||||||
|
@ -88,6 +129,31 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"System.Drawing.Common/5.0.2": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.SystemEvents": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||||
|
"assemblyVersion": "5.0.0.2",
|
||||||
|
"fileVersion": "5.0.421.11614"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||||
|
"rid": "unix",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "5.0.0.2",
|
||||||
|
"fileVersion": "5.0.421.11614"
|
||||||
|
},
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "5.0.0.2",
|
||||||
|
"fileVersion": "5.0.421.11614"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
|
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
|
||||||
|
@ -141,6 +207,28 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||||
|
"Microsoft.NETCore.Targets": "1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Runtime": "4.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime/4.7.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||||
|
"System.Runtime.WindowsRuntime": "4.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
|
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
|
||||||
|
@ -190,6 +278,13 @@
|
||||||
"serviceable": false,
|
"serviceable": false,
|
||||||
"sha512": ""
|
"sha512": ""
|
||||||
},
|
},
|
||||||
|
"Bluetooth/1.0.0.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-dI5MtUEkDm2L81kHFeofWkpOvq7Yn2iNVl8dKa+DIeXhqHb9LrBSH7LpmaNOlZMLwQFDKageUpxV0w39GMeUag==",
|
||||||
|
"path": "bluetooth/1.0.0.2",
|
||||||
|
"hashPath": "bluetooth.1.0.0.2.nupkg.sha512"
|
||||||
|
},
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {
|
"Microsoft.NETCore.Platforms/5.0.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
@ -197,6 +292,13 @@
|
||||||
"path": "microsoft.netcore.platforms/5.0.0",
|
"path": "microsoft.netcore.platforms/5.0.0",
|
||||||
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
|
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
|
||||||
},
|
},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
|
||||||
|
"path": "microsoft.netcore.targets/1.1.0",
|
||||||
|
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
|
||||||
|
},
|
||||||
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
@ -204,6 +306,20 @@
|
||||||
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
|
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
|
||||||
"hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512"
|
"hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
},
|
},
|
||||||
|
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
|
||||||
|
"path": "microsoft.win32.systemevents/5.0.0",
|
||||||
|
"hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-sgDwuoyubbLFNJR/BINbvfSNRiglF91D+Q0uEAkU4ZTO5Hgbnu8+gA4TCc65S56e1kK7gvR1+H4kphkDTr+9bw==",
|
||||||
|
"path": "microsoft.windows.sdk.contracts/10.0.19041.1",
|
||||||
|
"hashPath": "microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512"
|
||||||
|
},
|
||||||
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
@ -246,6 +362,13 @@
|
||||||
"path": "system.codedom/5.0.0",
|
"path": "system.codedom/5.0.0",
|
||||||
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
|
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
|
||||||
},
|
},
|
||||||
|
"System.Drawing.Common/5.0.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
|
||||||
|
"path": "system.drawing.common/5.0.2",
|
||||||
|
"hashPath": "system.drawing.common.5.0.2.nupkg.sha512"
|
||||||
|
},
|
||||||
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
@ -260,6 +383,34 @@
|
||||||
"path": "system.management/5.0.0",
|
"path": "system.management/5.0.0",
|
||||||
"hashPath": "system.management.5.0.0.nupkg.sha512"
|
"hashPath": "system.management.5.0.0.nupkg.sha512"
|
||||||
},
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||||
|
"path": "system.runtime/4.3.0",
|
||||||
|
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-J4GUi3xZQLUBasNwZnjrffN8i5wpHrBtZoLG+OhRyGo/+YunMRWWtwoMDlUAIdmX0uRfpHIBDSV6zyr3yf00TA==",
|
||||||
|
"path": "system.runtime.interopservices.windowsruntime/4.3.0",
|
||||||
|
"hashPath": "system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-RQxUkf37fp7MSWbOfKRjUjyudyfZb2u79YY5i1s+d7vuD80A7kmr2YfefO0JprQUhanxSm8bhXigCVfX2kEh+w==",
|
||||||
|
"path": "system.runtime.windowsruntime/4.7.0",
|
||||||
|
"hashPath": "system.runtime.windowsruntime.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-r4tNw5v5kqRJ9HikWpcyNf3suGw7DjX93svj9iBjtdeLqL8jt9Z+7f+s4wrKZJr84u8IMsrIjt8K6jYvkRqMSg==",
|
||||||
|
"path": "system.runtime.windowsruntime.ui.xaml/4.6.0",
|
||||||
|
"hashPath": "system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512"
|
||||||
|
},
|
||||||
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,278 @@
|
||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v3.1",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v3.1": {
|
||||||
|
"Matrix App/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.IO.Ports": "6.0.0-preview.5.21301.5",
|
||||||
|
"System.Management": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"Matrix App.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/5.0.0": {},
|
||||||
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Security.AccessControl": "6.0.0-preview.5.21301.5",
|
||||||
|
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/linux-arm/native/libSystem.IO.Ports.Native.so": {
|
||||||
|
"rid": "linux-arm",
|
||||||
|
"assetType": "native",
|
||||||
|
"fileVersion": "0.0.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime.linux-arm64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/linux-arm64/native/libSystem.IO.Ports.Native.so": {
|
||||||
|
"rid": "linux-arm64",
|
||||||
|
"assetType": "native",
|
||||||
|
"fileVersion": "0.0.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime.linux-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/linux-x64/native/libSystem.IO.Ports.Native.so": {
|
||||||
|
"rid": "linux-x64",
|
||||||
|
"assetType": "native",
|
||||||
|
"fileVersion": "0.0.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"runtime.linux-arm.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
|
||||||
|
"runtime.linux-arm64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
|
||||||
|
"runtime.linux-x64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5",
|
||||||
|
"runtime.osx-x64.runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime.osx-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/osx-x64/native/libSystem.IO.Ports.Native.dylib": {
|
||||||
|
"rid": "osx-x64",
|
||||||
|
"assetType": "native",
|
||||||
|
"fileVersion": "0.0.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.CodeDom/5.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.CodeDom.dll": {
|
||||||
|
"assemblyVersion": "5.0.0.0",
|
||||||
|
"fileVersion": "5.0.20.51904"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
|
||||||
|
"runtime.native.System.IO.Ports": "6.0.0-preview.5.21301.5"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.IO.Ports.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": {
|
||||||
|
"rid": "linux",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
},
|
||||||
|
"runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": {
|
||||||
|
"rid": "osx",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
},
|
||||||
|
"runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Management/5.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||||
|
"Microsoft.Win32.Registry": "6.0.0-preview.5.21301.5",
|
||||||
|
"System.CodeDom": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.Management.dll": {
|
||||||
|
"assemblyVersion": "4.0.0.0",
|
||||||
|
"fileVersion": "5.0.20.51904"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/System.Management.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "4.0.0.0",
|
||||||
|
"fileVersion": "5.0.20.51904"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Security.Principal.Windows": "6.0.0-preview.5.21301.5"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.Security.AccessControl.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netstandard2.0/System.Security.AccessControl.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/6.0.0-preview.5.21301.5": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.Security.Principal.Windows.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
|
||||||
|
"rid": "unix",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
},
|
||||||
|
"runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.21.30105"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"Matrix App/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
|
||||||
|
"path": "microsoft.netcore.platforms/5.0.0",
|
||||||
|
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
|
||||||
|
"path": "microsoft.win32.registry/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
|
||||||
|
"path": "runtime.linux-arm.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"runtime.linux-arm64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-fN2ienMgX5Gl8rmmmTkCxEBeN+KMEwHkTIE+4bHIH0sgPZJqrGV7o7sjjivZlv95L64cF+a4UVlxGqiMVEN6Nw==",
|
||||||
|
"path": "runtime.linux-arm64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"runtime.linux-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-wLbxixueLlN1bT3tHi4bnXhyp2tuyJ92TBBBwW01YS4isxkLr8o4f2AGw8YbsF4y2Fgx8RRQiipkG1EFrZ7AKg==",
|
||||||
|
"path": "runtime.linux-x64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-9Int9JpQ3quVnY3nsUFmrcanozIrEMFAydF+v8KmDwh0CtPb2AZLyyRtNEC3Z1WmoF8qf+T7jWwuPlrfl338dw==",
|
||||||
|
"path": "runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"runtime.osx-x64.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-IhXEnQFgPxM/pUkEJkFBkr6XBkWFiuMGLlyl5BDG7LkJuGX4jAxJwL6n9Pue88ZyV45c0ajvuZOBnZJap+uIKA==",
|
||||||
|
"path": "runtime.osx-x64.runtime.native.system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.CodeDom/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==",
|
||||||
|
"path": "system.codedom/5.0.0",
|
||||||
|
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
|
||||||
|
"path": "system.io.ports/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Management/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
|
||||||
|
"path": "system.management/5.0.0",
|
||||||
|
"hashPath": "system.management.5.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
|
||||||
|
"path": "system.security.accesscontrol/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/6.0.0-preview.5.21301.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ywwCqFAaRVbgqqORqYg8jdaX6NUEpzbuhxyUhAs+7mZ8AFAO4PzFYrZ5JPkYejXwougDldtbi0zOkk1lLzugLw==",
|
||||||
|
"path": "system.security.principal.windows/6.0.0-preview.5.21301.5",
|
||||||
|
"hashPath": "system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"additionalProbingPaths": [
|
||||||
|
"C:\\Users\\SvenV\\.dotnet\\store\\|arch|\\|tfm|",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "netcoreapp3.1",
|
||||||
|
"framework": {
|
||||||
|
"name": "Microsoft.WindowsDesktop.App",
|
||||||
|
"version": "3.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -732,7 +732,6 @@ namespace Matrix_App
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
components = new System.ComponentModel.Container();
|
components = new System.ComponentModel.Container();
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace Matrix_App
|
namespace Matrix_App
|
||||||
{
|
{
|
||||||
|
@ -35,7 +36,7 @@ namespace Matrix_App
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MatrixDesignerMain));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MatrixDesignerMain));
|
||||||
this.Ports = new System.Windows.Forms.ComboBox();
|
this.Ports = new System.Windows.Forms.Button();
|
||||||
this.Modus = new System.Windows.Forms.TabControl();
|
this.Modus = new System.Windows.Forms.TabControl();
|
||||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
|
@ -82,6 +83,7 @@ namespace Matrix_App
|
||||||
this.DragDropButton = new System.Windows.Forms.Button();
|
this.DragDropButton = new System.Windows.Forms.Button();
|
||||||
matrixView = new Matrix_App.Matrix();
|
matrixView = new Matrix_App.Matrix();
|
||||||
this.panel3 = new System.Windows.Forms.Panel();
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.PushButton = new Button();
|
||||||
this.Modus.SuspendLayout();
|
this.Modus.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
this.groupBox3.SuspendLayout();
|
this.groupBox3.SuspendLayout();
|
||||||
|
@ -107,13 +109,20 @@ namespace Matrix_App
|
||||||
//
|
//
|
||||||
// Ports
|
// Ports
|
||||||
//
|
//
|
||||||
this.Ports.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.Ports.Location = new System.Drawing.Point(62, 130);
|
this.Ports.Location = new System.Drawing.Point(62, 130);
|
||||||
this.Ports.Name = "Ports";
|
this.Ports.Name = "Ports";
|
||||||
this.Ports.Size = new System.Drawing.Size(163, 23);
|
this.Ports.Size = new System.Drawing.Size(163, 23);
|
||||||
this.Ports.TabIndex = 0;
|
this.Ports.TabIndex = 0;
|
||||||
this.Ports.SelectedIndexChanged += new System.EventHandler(this.Ports_SelectedIndexChanged);
|
this.Ports.Click += PortsOnClick;
|
||||||
//
|
this.Ports.Text = "Settings";
|
||||||
|
//
|
||||||
|
// Push Button
|
||||||
|
//
|
||||||
|
this.PushButton.Location = new Point(3, 481 + 113 + 8);
|
||||||
|
this.PushButton.Size = new Size(216, 23 + 6);
|
||||||
|
this.PushButton.Text = "Push Animation";
|
||||||
|
this.PushButton.Click += PushButtonOnClick;
|
||||||
|
//
|
||||||
// Modus
|
// Modus
|
||||||
//
|
//
|
||||||
this.Modus.Controls.Add(this.tabPage1);
|
this.Modus.Controls.Add(this.tabPage1);
|
||||||
|
@ -345,7 +354,7 @@ namespace Matrix_App
|
||||||
this.matrixHeight.Size = new System.Drawing.Size(163, 23);
|
this.matrixHeight.Size = new System.Drawing.Size(163, 23);
|
||||||
this.matrixHeight.TabIndex = 1;
|
this.matrixHeight.TabIndex = 1;
|
||||||
this.matrixHeight.Value = new decimal(new int[] {
|
this.matrixHeight.Value = new decimal(new int[] {
|
||||||
Defaults.MatrixStartHeight,
|
16,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
@ -377,6 +386,7 @@ namespace Matrix_App
|
||||||
// Zeichnen
|
// Zeichnen
|
||||||
//
|
//
|
||||||
this.Zeichnen.BackColor = System.Drawing.Color.Transparent;
|
this.Zeichnen.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.Zeichnen.Controls.Add(this.PushButton);
|
||||||
this.Zeichnen.Controls.Add(this.groupBox2);
|
this.Zeichnen.Controls.Add(this.groupBox2);
|
||||||
this.Zeichnen.Controls.Add(this.groupBox1);
|
this.Zeichnen.Controls.Add(this.groupBox1);
|
||||||
this.Zeichnen.Controls.Add(this.Clear);
|
this.Zeichnen.Controls.Add(this.Clear);
|
||||||
|
@ -550,6 +560,7 @@ namespace Matrix_App
|
||||||
this.fill.TabIndex = 7;
|
this.fill.TabIndex = 7;
|
||||||
this.fill.Text = "Fill";
|
this.fill.Text = "Fill";
|
||||||
this.fill.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
this.fill.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||||
|
|
||||||
this.fill.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
|
this.fill.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
|
||||||
this.fill.UseVisualStyleBackColor = true;
|
this.fill.UseVisualStyleBackColor = true;
|
||||||
this.fill.Click += new System.EventHandler(this.DrawFill_Click);
|
this.fill.Click += new System.EventHandler(this.DrawFill_Click);
|
||||||
|
@ -559,7 +570,7 @@ namespace Matrix_App
|
||||||
this.ZeichnenFarbRad.BackColor = System.Drawing.SystemColors.Control;
|
this.ZeichnenFarbRad.BackColor = System.Drawing.SystemColors.Control;
|
||||||
this.ZeichnenFarbRad.Location = new System.Drawing.Point(8, 12);
|
this.ZeichnenFarbRad.Location = new System.Drawing.Point(8, 12);
|
||||||
this.ZeichnenFarbRad.Name = "ZeichnenFarbRad";
|
this.ZeichnenFarbRad.Name = "ZeichnenFarbRad";
|
||||||
this.ZeichnenFarbRad.Size = new System.Drawing.Size(209, 214);
|
this.ZeichnenFarbRad.Size = new System.Drawing.Size(209, 209);
|
||||||
this.ZeichnenFarbRad.TabIndex = 0;
|
this.ZeichnenFarbRad.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// pregeneratedMods
|
// pregeneratedMods
|
||||||
|
@ -737,7 +748,7 @@ namespace Matrix_App
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
private System.Windows.Forms.ComboBox Ports;
|
private System.Windows.Forms.Button Ports;
|
||||||
private System.Windows.Forms.TabControl Modus;
|
private System.Windows.Forms.TabControl Modus;
|
||||||
private System.Windows.Forms.TabPage tabPage1;
|
private System.Windows.Forms.TabPage tabPage1;
|
||||||
private System.Windows.Forms.TabPage Zeichnen;
|
private System.Windows.Forms.TabPage Zeichnen;
|
||||||
|
@ -784,6 +795,7 @@ namespace Matrix_App
|
||||||
private System.Windows.Forms.Label label7;
|
private System.Windows.Forms.Label label7;
|
||||||
private System.Windows.Forms.Label label6;
|
private System.Windows.Forms.Label label6;
|
||||||
private System.Windows.Forms.GroupBox groupBox3;
|
private System.Windows.Forms.GroupBox groupBox3;
|
||||||
|
private System.Windows.Forms.Button PushButton;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,53 +2,52 @@
|
||||||
#define DEBUG_ENABLED
|
#define DEBUG_ENABLED
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.IO.Ports;
|
|
||||||
using System.Timers;
|
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Management;
|
using System.IO.Ports;
|
||||||
using System.Text.RegularExpressions;
|
using System.Timers;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Matrix_App.adds;
|
||||||
|
using Matrix_App.forms;
|
||||||
|
using Matrix_App.Properties;
|
||||||
|
using Matrix_App.Themes;
|
||||||
using static Matrix_App.Defaults;
|
using static Matrix_App.Defaults;
|
||||||
using static Matrix_App.ArduinoInstruction;
|
using static Matrix_App.ArduinoInstruction;
|
||||||
using static Matrix_App.Utils;
|
using static Matrix_App.Utils;
|
||||||
using Matrix_App.Themes;
|
|
||||||
using Timer = System.Timers.Timer;
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
namespace Matrix_App
|
namespace Matrix_App
|
||||||
{
|
{
|
||||||
public partial class MatrixDesignerMain : Form
|
public partial class MatrixDesignerMain : Form
|
||||||
{
|
{
|
||||||
|
private void PortsOnClick(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
new Settings(ref commandQueue, ref port);
|
||||||
|
}
|
||||||
|
|
||||||
#region Private-Members
|
#region Private-Members
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Port update Timer
|
/// Port update Timer
|
||||||
/// Reloads available port names at consecutive rates
|
/// Reloads available port names at consecutive rates
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private Timer? portNameUpdater;
|
|
||||||
private Timer? delay;
|
private Timer? delay;
|
||||||
|
|
||||||
private static SerialPort _port = new SerialPort();
|
|
||||||
|
|
||||||
private uint portNumber;
|
|
||||||
|
|
||||||
private bool runningGif;
|
private bool runningGif;
|
||||||
|
|
||||||
private readonly PortCommandQueue commandQueue = new PortCommandQueue(ref _port);
|
private static SerialPort port = new();
|
||||||
private readonly Regex comRegex = new Regex(@"COM[\d]+");
|
|
||||||
|
private PortCommandQueue commandQueue = new(ref port);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gif like frame video buffer
|
/// Gif like frame video buffer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static byte[][] gifBuffer = CreateImageRGB_NT(MatrixStartWidth, MatrixStartHeight, MatrixStartFrames);
|
public static byte[][] gifBuffer = CreateImageRGB_NT(MatrixStartWidth, MatrixStartHeight, MatrixStartFrames);
|
||||||
|
|
||||||
public static readonly ThreadQueue IMAGE_DRAWER = new ThreadQueue("Matrix Image Drawer", 4);
|
public static readonly ThreadQueue IMAGE_DRAWER = new("Matrix Image Drawer", 4);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Setup
|
#region Setup
|
||||||
|
@ -61,7 +60,7 @@ namespace Matrix_App
|
||||||
matrixView.Instance(this);
|
matrixView.Instance(this);
|
||||||
// Generate filter access buttons
|
// Generate filter access buttons
|
||||||
MatrixGifGenerator.GenerateBaseUi(pregeneratedModsBase, matrixView, this);
|
MatrixGifGenerator.GenerateBaseUi(pregeneratedModsBase, matrixView, this);
|
||||||
|
|
||||||
Init();
|
Init();
|
||||||
// apply light-mode by default
|
// apply light-mode by default
|
||||||
new LightMode().ApplyTheme(this);
|
new LightMode().ApplyTheme(this);
|
||||||
|
@ -71,12 +70,6 @@ namespace Matrix_App
|
||||||
|
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
// Create port name update timer
|
|
||||||
portNameUpdater = new Timer(PortNameUpdateInterval);
|
|
||||||
portNameUpdater.Elapsed += UpdatePortNames;
|
|
||||||
portNameUpdater.AutoReset = true;
|
|
||||||
portNameUpdater.Enabled = true;
|
|
||||||
|
|
||||||
// create gif playback timer
|
// create gif playback timer
|
||||||
delay = new Timer((int) Delay.Value);
|
delay = new Timer((int) Delay.Value);
|
||||||
delay.Elapsed += Timelineupdate;
|
delay.Elapsed += Timelineupdate;
|
||||||
|
@ -86,42 +79,42 @@ namespace Matrix_App
|
||||||
ZeichnenFarbRad.handler = ColorWheel_Handler!;
|
ZeichnenFarbRad.handler = ColorWheel_Handler!;
|
||||||
|
|
||||||
// setup port settings
|
// setup port settings
|
||||||
_port.BaudRate = BaudRate;
|
port.BaudRate = BaudRate;
|
||||||
_port.ReadTimeout = ReadTimeoutMs;
|
port.ReadTimeout = ReadTimeoutMs;
|
||||||
_port.WriteTimeout = WriteTimeoutMs;
|
port.WriteTimeout = WriteTimeoutMs;
|
||||||
|
port.Parity = Parity.None;
|
||||||
|
port.DataBits = 8;
|
||||||
|
port.StopBits = StopBits.One;
|
||||||
|
|
||||||
// setup matrix
|
// setup matrix
|
||||||
AdjustMatrixTable();
|
AdjustMatrixTable();
|
||||||
|
|
||||||
// search for initial ports
|
// search for initial ports
|
||||||
GatherPortNames();
|
//GatherPortNames();
|
||||||
|
|
||||||
HideEasterEgg();
|
HideEasterEgg();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HideEasterEgg()
|
private void HideEasterEgg()
|
||||||
{
|
{
|
||||||
if (((int) DateTime.Now.DayOfWeek) != 3)
|
if (DateTime.Now.DayOfWeek != DayOfWeek.Wednesday)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (new Random().Next(0, 9) >= 1)
|
if (new Random().Next(0, 9) >= 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
using (Bitmap wednesdayFrog = new Bitmap(Properties.Resources.Frosch))
|
using (Bitmap wednesdayFrog = new(Resources.Frosch))
|
||||||
{
|
{
|
||||||
matrixWidth.Value = wednesdayFrog.Width;
|
matrixWidth.Value = wednesdayFrog.Width;
|
||||||
matrixHeight.Value = wednesdayFrog.Height;
|
matrixHeight.Value = wednesdayFrog.Height;
|
||||||
ResizeGif();
|
ResizeGif();
|
||||||
|
|
||||||
for (var x = 0; x < wednesdayFrog.Width; x++)
|
for (var x = 0; x < wednesdayFrog.Width; x++)
|
||||||
|
for (var y = 0; y < wednesdayFrog.Height; y++)
|
||||||
{
|
{
|
||||||
for (var y = 0; y < wednesdayFrog.Height; y++)
|
var pixel = wednesdayFrog.GetPixel(x, y);
|
||||||
{
|
|
||||||
var pixel = wednesdayFrog.GetPixel(x, y);
|
|
||||||
|
|
||||||
matrixView.SetPixelNoRefresh(x, y, pixel);
|
matrixView.SetPixelNoRefresh(x, y, pixel);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,164 +126,31 @@ namespace Matrix_App
|
||||||
#region UI-Methods
|
#region UI-Methods
|
||||||
|
|
||||||
#region Port-ComboBox
|
#region Port-ComboBox
|
||||||
/// <summary>
|
|
||||||
/// Updates the port names to newest available ports.
|
|
||||||
/// Called by <see cref="portNameUpdater"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="source"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void UpdatePortNames(object source, ElapsedEventArgs e)
|
|
||||||
{
|
|
||||||
if (Ports.InvokeRequired)
|
|
||||||
{
|
|
||||||
// invoke on the combo-boxes thread
|
|
||||||
Ports.Invoke(new Action(GatherPortNames));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// run on this thread
|
|
||||||
GatherPortNames();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gathers all available ports and sets them to the combobox <see cref="Ports"/>
|
|
||||||
/// </summary>
|
|
||||||
[SuppressMessage("ReSharper", "CoVariantArrayConversion", Justification = "Never got an exception, so seems to be just fine")]
|
|
||||||
private void GatherPortNames()
|
|
||||||
{
|
|
||||||
var ports = SerialPort.GetPortNames();
|
|
||||||
// save previously selected
|
|
||||||
var selected = this.Ports.SelectedItem;
|
|
||||||
// get device names from ports
|
|
||||||
var newPorts = GetDeviceNames(ports);
|
|
||||||
// add virtual port
|
|
||||||
newPorts.AddLast("Virtual-Unlimited (COM257)");
|
|
||||||
|
|
||||||
// search for new port
|
|
||||||
foreach (var newPort in newPorts)
|
|
||||||
{
|
|
||||||
// find any new port
|
|
||||||
var found = Ports.Items.Cast<object?>().Any(oldPort => (string) oldPort! == newPort);
|
|
||||||
|
|
||||||
// some port wasn't found, recreate list
|
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
commandQueue.InvalidatePort();
|
|
||||||
|
|
||||||
Ports.Items.Clear();
|
|
||||||
|
|
||||||
Ports.Items.AddRange(newPorts.ToArray()!);
|
|
||||||
|
|
||||||
// select previously selected port if port is still accessible
|
|
||||||
if (selected != null && Ports.Items.Contains(selected))
|
|
||||||
{
|
|
||||||
Ports.SelectedItem = selected;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
Ports.SelectedIndex = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static LinkedList<string> GetDeviceNames(string[] ports)
|
|
||||||
{
|
|
||||||
ManagementClass processClass = new ManagementClass("Win32_PnPEntity");
|
|
||||||
ManagementObjectCollection devicePortNames = processClass.GetInstances();
|
|
||||||
|
|
||||||
var newPorts = new LinkedList<string>();
|
|
||||||
|
|
||||||
foreach (var currentPort in ports)
|
|
||||||
{
|
|
||||||
foreach (var o in devicePortNames)
|
|
||||||
{
|
|
||||||
var name = ((ManagementObject) o).GetPropertyValue("Name");
|
|
||||||
|
|
||||||
if (name == null || !name.ToString()!.Contains(currentPort))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
newPorts.AddLast(name.ToString()!);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return newPorts;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Invoked when the selected port has changed.
|
|
||||||
/// Applies the new port settings.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void Ports_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
lock (_port)
|
|
||||||
{
|
|
||||||
if (_port.IsOpen)
|
|
||||||
{
|
|
||||||
_port.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
var item = (string)((ComboBox)sender).SelectedItem;
|
|
||||||
if (item != null)
|
|
||||||
{
|
|
||||||
// extract port
|
|
||||||
var matches = comRegex.Matches(item);
|
|
||||||
|
|
||||||
if(matches.Count > 0)
|
|
||||||
{
|
|
||||||
// only select valid port numbers (up to (including) 256)
|
|
||||||
portNumber = UInt32.Parse(matches[0].Value.Split('M')[1]);
|
|
||||||
|
|
||||||
if (portNumber <= 256)
|
|
||||||
{
|
|
||||||
// set valid port
|
|
||||||
_port.PortName = matches[0].Value;
|
|
||||||
commandQueue.ValidatePort();
|
|
||||||
} else if (portNumber == 257)
|
|
||||||
{
|
|
||||||
// virtual mode, increase limitations as no real arduino is connected
|
|
||||||
matrixWidth.Maximum = MatrixLimitedWidth;
|
|
||||||
matrixHeight.Maximum = MatrixLimitedHeight;
|
|
||||||
|
|
||||||
commandQueue.InvalidatePort();
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
// no port selected reset settings
|
|
||||||
matrixWidth.Maximum = MatrixStartWidth;
|
|
||||||
matrixHeight.Maximum = MatrixStartHeight;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Scale
|
#region Scale
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Applies a new size to the gif and matrix
|
/// Applies a new size to the gif and matrix
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void AdjustMatrixTable()
|
private void AdjustMatrixTable()
|
||||||
{
|
{
|
||||||
int width = (int)this.matrixWidth.Value;
|
var width = (int) matrixWidth.Value;
|
||||||
int height = (int)this.matrixHeight.Value;
|
var height = (int) matrixHeight.Value;
|
||||||
|
|
||||||
matrixView.resize(width, height);
|
matrixView.resize(width, height);
|
||||||
ResizeGif();
|
ResizeGif();
|
||||||
// Delay.Minimum = Math.Min(Width.Value * Height.Value * 5, 500);
|
// Delay.Minimum = Math.Min(Width.Value * Height.Value * 5, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Width_ValueChanged(object sender, EventArgs e)
|
private void Width_ValueChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AdjustMatrixTable();
|
AdjustMatrixTable();
|
||||||
commandQueue.EnqueueArduinoCommand(
|
commandQueue.EnqueueArduinoCommand(
|
||||||
OpcodeScale, // opcode
|
OpcodeScale, // opcode
|
||||||
(byte)matrixWidth.Value,
|
(byte) matrixWidth.Value,
|
||||||
(byte)matrixHeight.Value
|
(byte) matrixHeight.Value
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,9 +158,9 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
AdjustMatrixTable();
|
AdjustMatrixTable();
|
||||||
commandQueue.EnqueueArduinoCommand(
|
commandQueue.EnqueueArduinoCommand(
|
||||||
OpcodeScale, // opcode
|
OpcodeScale, // opcode
|
||||||
(byte)matrixWidth.Value,
|
(byte) matrixWidth.Value,
|
||||||
(byte)matrixHeight.Value
|
(byte) matrixHeight.Value
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,20 +169,25 @@ namespace Matrix_App
|
||||||
#region Edit/Draw
|
#region Edit/Draw
|
||||||
|
|
||||||
#region TextBoxen
|
#region TextBoxen
|
||||||
|
|
||||||
private void DrawTextBoxRed_KeyUp(object sender, KeyEventArgs e)
|
private void DrawTextBoxRed_KeyUp(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (int.TryParse(ZeichnenTextBoxRed.Text, out var value) && value < 256 && value >= 0)
|
if (int.TryParse(ZeichnenTextBoxRed.Text, out var value) && value < 256 && value >= 0)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarRed.Value = value;
|
ZeichnenTrackBarRed.Value = value;
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
else if (value >= 256)
|
else if (value >= 256)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarRed.Value = 255;
|
ZeichnenTrackBarRed.Value = 255;
|
||||||
ZeichnenTextBoxRed.Text = @"255";
|
ZeichnenTextBoxRed.Text = @"255";
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawTextBoxGreen_KeyUp(object sender, KeyEventArgs e)
|
private void DrawTextBoxGreen_KeyUp(object sender, KeyEventArgs e)
|
||||||
|
@ -330,16 +195,19 @@ namespace Matrix_App
|
||||||
if (int.TryParse(ZeichnenTextBoxGreen.Text, out var value) && value < 256 && value >= 0)
|
if (int.TryParse(ZeichnenTextBoxGreen.Text, out var value) && value < 256 && value >= 0)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarGreen.Value = value;
|
ZeichnenTrackBarGreen.Value = value;
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
else if (value >= 256)
|
else if (value >= 256)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarGreen.Value = 255;
|
ZeichnenTrackBarGreen.Value = 255;
|
||||||
ZeichnenTextBoxGreen.Text = @"255";
|
ZeichnenTextBoxGreen.Text = @"255";
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
|
||||||
|
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawTextBoxBlue_KeyUp(object sender, KeyEventArgs e)
|
private void DrawTextBoxBlue_KeyUp(object sender, KeyEventArgs e)
|
||||||
|
@ -347,44 +215,56 @@ namespace Matrix_App
|
||||||
if (int.TryParse(ZeichnenTextBoxBlue.Text, out var value) && value < 256 && value >= 0)
|
if (int.TryParse(ZeichnenTextBoxBlue.Text, out var value) && value < 256 && value >= 0)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarBlue.Value = value;
|
ZeichnenTrackBarBlue.Value = value;
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
else if (value >= 256)
|
else if (value >= 256)
|
||||||
{
|
{
|
||||||
ZeichnenTrackBarBlue.Value = 255;
|
ZeichnenTrackBarBlue.Value = 255;
|
||||||
ZeichnenTextBoxBlue.Text = @"255";
|
ZeichnenTextBoxBlue.Text = @"255";
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
}
|
}
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
|
||||||
|
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region TackBars
|
#region TackBars
|
||||||
|
|
||||||
private void ZeichnenTrackBarRed_Scroll(object sender, EventArgs e)
|
private void ZeichnenTrackBarRed_Scroll(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ZeichnenTextBoxRed.Text = ZeichnenTrackBarRed.Value.ToString();
|
ZeichnenTextBoxRed.Text = ZeichnenTrackBarRed.Value.ToString();
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ZeichnenTrackBarGreen_Scroll(object sender, EventArgs e)
|
private void ZeichnenTrackBarGreen_Scroll(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ZeichnenTextBoxGreen.Text = ZeichnenTrackBarGreen.Value.ToString();
|
ZeichnenTextBoxGreen.Text = ZeichnenTrackBarGreen.Value.ToString();
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ZeichnenTrackBarBlue_Scroll(object sender, EventArgs e)
|
private void ZeichnenTrackBarBlue_Scroll(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ZeichnenTextBoxBlue.Text = ZeichnenTrackBarBlue.Value.ToString();
|
ZeichnenTextBoxBlue.Text = ZeichnenTrackBarBlue.Value.ToString();
|
||||||
ZeichnenFarbRad.setRGB((byte)ZeichnenTrackBarRed.Value, (byte)ZeichnenTrackBarGreen.Value, (byte)ZeichnenTrackBarBlue.Value);
|
ZeichnenFarbRad.setRGB((byte) ZeichnenTrackBarRed.Value, (byte) ZeichnenTrackBarGreen.Value,
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
(byte) ZeichnenTrackBarBlue.Value);
|
||||||
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets a new color to the edit tab
|
/// Sets a new color to the edit tab
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="color"></param>
|
/// <param name="color"></param>
|
||||||
public void SetColor(Color color)
|
public void SetColor(Color color)
|
||||||
|
@ -401,7 +281,7 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Updates trackbars and RGB-textboxes according to color wheel settings
|
/// Updates trackbars and RGB-textboxes according to color wheel settings
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
|
@ -415,30 +295,32 @@ namespace Matrix_App
|
||||||
ZeichnenTextBoxGreen.Text = ZeichnenFarbRad.getGreen().ToString();
|
ZeichnenTextBoxGreen.Text = ZeichnenFarbRad.getGreen().ToString();
|
||||||
ZeichnenTextBoxBlue.Text = ZeichnenFarbRad.getBlue().ToString();
|
ZeichnenTextBoxBlue.Text = ZeichnenFarbRad.getBlue().ToString();
|
||||||
|
|
||||||
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value));
|
matrixView.SetPaintColor(Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fills the entire Matrix with a color
|
/// Fills the entire Matrix with a color
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void DrawFill_Click(object sender, EventArgs e)
|
private void DrawFill_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var color = Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value, ZeichnenTrackBarBlue.Value);
|
var color = Color.FromArgb(ZeichnenTrackBarRed.Value, ZeichnenTrackBarGreen.Value,
|
||||||
|
ZeichnenTrackBarBlue.Value);
|
||||||
matrixView.SetPaintColor(color);
|
matrixView.SetPaintColor(color);
|
||||||
matrixView.Fill(color);
|
matrixView.Fill(color);
|
||||||
|
|
||||||
commandQueue.EnqueueArduinoCommand(
|
commandQueue.EnqueueArduinoCommand(
|
||||||
OpcodeFill, // Opcode
|
OpcodeFill, // Opcode
|
||||||
(byte)ZeichnenTrackBarRed.Value, // Red
|
(byte) ZeichnenTrackBarGreen.Value, // Red
|
||||||
(byte)ZeichnenTrackBarGreen.Value,// Green
|
(byte) ZeichnenTrackBarRed.Value, // Green
|
||||||
(byte)ZeichnenTrackBarBlue.Value // Blue
|
(byte) ZeichnenTrackBarBlue.Value // Blue
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets the entire Matrix to black
|
/// Sets the entire Matrix to black
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
|
@ -447,25 +329,25 @@ namespace Matrix_App
|
||||||
matrixView.Fill(Color.Black);
|
matrixView.Fill(Color.Black);
|
||||||
|
|
||||||
commandQueue.EnqueueArduinoCommand(
|
commandQueue.EnqueueArduinoCommand(
|
||||||
OpcodeFill, // opcode
|
OpcodeFill, // opcode
|
||||||
0, // red
|
0, // red
|
||||||
0, // green
|
0, // green
|
||||||
0 // blue
|
0 // blue
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Image-Drag-Drop
|
#region Image-Drag-Drop
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles click event, opens a file dialog to choose and image file
|
/// Handles click event, opens a file dialog to choose and image file
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void DragDrop_Click(object sender, EventArgs e)
|
private void DragDrop_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
using OpenFileDialog openFileDialog = new OpenFileDialog
|
using OpenFileDialog openFileDialog = new()
|
||||||
{
|
{
|
||||||
InitialDirectory = "c:\\",
|
InitialDirectory = "c:\\",
|
||||||
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
|
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
|
||||||
|
@ -482,8 +364,8 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads an image file froim disk and sets the matrix to it.
|
/// Loads an image file froim disk and sets the matrix to it.
|
||||||
/// If the image is an gif, the gif buffer will be set to the gif, as well as the matrix itself.
|
/// If the image is an gif, the gif buffer will be set to the gif, as well as the matrix itself.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="filePath"></param>
|
/// <param name="filePath"></param>
|
||||||
private void LoadFromFile(string filePath)
|
private void LoadFromFile(string filePath)
|
||||||
|
@ -496,9 +378,9 @@ namespace Matrix_App
|
||||||
var frames = Math.Min(gif.GetFrameCount(FrameDimension.Time), 120);
|
var frames = Math.Min(gif.GetFrameCount(FrameDimension.Time), 120);
|
||||||
|
|
||||||
if (gif.GetFrameCount(FrameDimension.Time) > 120)
|
if (gif.GetFrameCount(FrameDimension.Time) > 120)
|
||||||
{
|
MessageBox.Show(
|
||||||
MessageBox.Show(@"Das Gif ist zu Groß. Die Maximalgröße sind 120 Frames. Das Gif wird abgeschnitten sein, damit es in die Maximalgröße passt.", @"Gif to large");
|
@"Das Gif ist zu Groß. Die Maximalgröße sind 120 Frames. Das Gif wird abgeschnitten sein, damit es in die Maximalgröße passt.",
|
||||||
}
|
@"Gif to large");
|
||||||
|
|
||||||
FrameCount.Value = frames;
|
FrameCount.Value = frames;
|
||||||
Timeline.Maximum = frames - 1;
|
Timeline.Maximum = frames - 1;
|
||||||
|
@ -515,44 +397,41 @@ namespace Matrix_App
|
||||||
|
|
||||||
// fetch each pixel and store
|
// fetch each pixel and store
|
||||||
for (var x = 0; x < bitmap.Width; x++)
|
for (var x = 0; x < bitmap.Width; x++)
|
||||||
|
for (var y = 0; y < bitmap.Height; y++)
|
||||||
{
|
{
|
||||||
for (var y = 0; y < bitmap.Height; y++)
|
var pixel = bitmap.GetPixel(x, y);
|
||||||
{
|
|
||||||
var pixel = bitmap.GetPixel(x, y);
|
|
||||||
|
|
||||||
var index = x + y * bitmap.Width;
|
var index = x + y * bitmap.Width;
|
||||||
|
|
||||||
matrixView.SetPixelNoRefresh(x, y, pixel);
|
matrixView.SetPixelNoRefresh(x, y, pixel);
|
||||||
|
|
||||||
gifBuffer[i][index * 3 + 0] = pixel.R;
|
gifBuffer[i][index * 3 + 0] = pixel.R;
|
||||||
gifBuffer[i][index * 3 + 1] = pixel.G;
|
gifBuffer[i][index * 3 + 1] = pixel.G;
|
||||||
gifBuffer[i][index * 3 + 2] = pixel.B;
|
gifBuffer[i][index * 3 + 2] = pixel.B;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
matrixView.Refresh();
|
matrixView.Refresh();
|
||||||
Timeline.Value = 0;
|
Timeline.Value = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Bitmap bitmap = ResizeImage(new Bitmap(filePath), matrixView.matrixWidth(), matrixView.matrixHeight());
|
Bitmap bitmap = ResizeImage(new Bitmap(filePath), matrixView.matrixWidth(), matrixView.matrixHeight());
|
||||||
matrixView.SetImage(bitmap);
|
matrixView.SetImage(bitmap);
|
||||||
|
|
||||||
for (int x = 0; x < bitmap.Width; x++)
|
for (var x = 0; x < bitmap.Width; x++)
|
||||||
|
for (var y = 0; y < bitmap.Height; y++)
|
||||||
{
|
{
|
||||||
for (int y = 0; y < bitmap.Height; y++)
|
var pixel = bitmap.GetPixel(x, y);
|
||||||
{
|
|
||||||
var pixel = bitmap.GetPixel(x, y);
|
|
||||||
|
|
||||||
int index = x + y * bitmap.Width;
|
var index = x + y * bitmap.Width;
|
||||||
|
|
||||||
gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R;
|
gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R;
|
||||||
gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G;
|
gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G;
|
||||||
gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B;
|
gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteImage(gifBuffer[Timeline.Value]);
|
WriteImage(gifBuffer[Timeline.Value]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,15 +445,15 @@ namespace Matrix_App
|
||||||
|
|
||||||
private void DragDrop_DragDrop(object sender, DragEventArgs e)
|
private void DragDrop_DragDrop(object sender, DragEventArgs e)
|
||||||
{
|
{
|
||||||
string[] picturePath = (string[])e.Data.GetData(DataFormats.FileDrop);
|
string[] picturePath = (string[]) e.Data.GetData(DataFormats.FileDrop);
|
||||||
|
|
||||||
LoadFromFile(picturePath[0]);
|
LoadFromFile(picturePath[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Timeline
|
#region Timeline
|
||||||
|
|
||||||
|
|
||||||
public void ResetTimeline()
|
public void ResetTimeline()
|
||||||
{
|
{
|
||||||
Timeline.Value = 1;
|
Timeline.Value = 1;
|
||||||
|
@ -583,7 +462,7 @@ namespace Matrix_App
|
||||||
|
|
||||||
public int GetDelayTime()
|
public int GetDelayTime()
|
||||||
{
|
{
|
||||||
return (int)Delay.Value;
|
return (int) Delay.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FrameCount_ValueChanged(object sender, EventArgs e)
|
private void FrameCount_ValueChanged(object sender, EventArgs e)
|
||||||
|
@ -597,16 +476,16 @@ namespace Matrix_App
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Timeline.Enabled = true;
|
Timeline.Enabled = true;
|
||||||
Timeline.Maximum = (int)FrameCount.Value - 1;
|
Timeline.Maximum = (int) FrameCount.Value - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timeline_ValueChanged(object sender, EventArgs e)
|
private void Timeline_ValueChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var timeFrame = Timeline.Value;
|
var timeFrame = Timeline.Value;
|
||||||
|
|
||||||
WriteImage(gifBuffer[timeFrame]);
|
WriteImage(gifBuffer[timeFrame]);
|
||||||
|
|
||||||
lock (matrixView)
|
lock (matrixView)
|
||||||
{
|
{
|
||||||
matrixView.SetImage(gifBuffer[timeFrame]);
|
matrixView.SetImage(gifBuffer[timeFrame]);
|
||||||
|
@ -614,22 +493,22 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stores the current matrix at the index noted by the timeline into the Gif
|
/// Stores the current matrix at the index noted by the timeline into the Gif
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void Apply_Click(object sender, EventArgs e)
|
private void Apply_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
int width = matrixView.matrixWidth();
|
var width = matrixView.matrixWidth();
|
||||||
int height = matrixView.matrixHeight();
|
var height = matrixView.matrixHeight();
|
||||||
|
|
||||||
for (int y = 0; y < height; y++)
|
for (var y = 0; y < height; y++)
|
||||||
{
|
{
|
||||||
int i = y * width;
|
var i = y * width;
|
||||||
|
|
||||||
for (int x = 0; x < width; x++)
|
for (var x = 0; x < width; x++)
|
||||||
{
|
{
|
||||||
int tmp = (i + x) * 3;
|
var tmp = (i + x) * 3;
|
||||||
|
|
||||||
var color = matrixView.GetPixel(x, y);
|
var color = matrixView.GetPixel(x, y);
|
||||||
|
|
||||||
|
@ -640,27 +519,21 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timelineupdate(Object source, ElapsedEventArgs e)
|
private void Timelineupdate(object source, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
if (Timeline.InvokeRequired)
|
if (Timeline.InvokeRequired)
|
||||||
{
|
|
||||||
// invoke on the combo-boxes thread
|
// invoke on the combo-boxes thread
|
||||||
Timeline.Invoke(new Action(() =>
|
Timeline.Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
if (Timeline.Value < Timeline.Maximum)
|
if (Timeline.Value < Timeline.Maximum)
|
||||||
{
|
|
||||||
Timeline.Value = Timeline.Value + 1;
|
Timeline.Value = Timeline.Value + 1;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
Timeline.Value = 0;
|
Timeline.Value = 0;
|
||||||
}
|
|
||||||
}));
|
}));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Starts playing the timeline
|
/// Starts playing the timeline
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
|
@ -674,19 +547,19 @@ namespace Matrix_App
|
||||||
Timeline.Value = 0;
|
Timeline.Value = 0;
|
||||||
|
|
||||||
runningGif = true;
|
runningGif = true;
|
||||||
|
|
||||||
if (delay != null)
|
if (delay != null)
|
||||||
delay.Enabled = true;
|
delay.Enabled = true;
|
||||||
|
|
||||||
Play.Image = new Bitmap(Properties.Resources.Stop);
|
Play.Image = new Bitmap(Resources.Stop);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Play.Image = new Bitmap(Properties.Resources.Play);
|
Play.Image = new Bitmap(Resources.Play);
|
||||||
Play.Text = @"Play";
|
Play.Text = @"Play";
|
||||||
runningGif = false;
|
runningGif = false;
|
||||||
|
|
||||||
if (delay != null)
|
if (delay != null)
|
||||||
delay.Enabled = false;
|
delay.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -695,27 +568,27 @@ namespace Matrix_App
|
||||||
private void Timeline_MouseDown(object sender, MouseEventArgs e)
|
private void Timeline_MouseDown(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (!runningGif) return;
|
if (!runningGif) return;
|
||||||
Play.Image = new Bitmap(Properties.Resources.Play);
|
Play.Image = new Bitmap(Resources.Play);
|
||||||
Play.Text = @"Play";
|
Play.Text = @"Play";
|
||||||
runningGif = false;
|
runningGif = false;
|
||||||
|
|
||||||
if (delay != null)
|
if (delay != null)
|
||||||
delay.Enabled = false;
|
delay.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Delay_ValueChanged(object sender, EventArgs _)
|
private void Delay_ValueChanged(object sender, EventArgs _)
|
||||||
{
|
{
|
||||||
if (delay != null)
|
if (delay != null)
|
||||||
delay.Interval = (int) Delay.Value;
|
delay.Interval = (int) Delay.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
private void Save_Click(object sender, EventArgs e)
|
private void Save_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveFileDialog save = new SaveFileDialog
|
SaveFileDialog save = new()
|
||||||
{
|
{
|
||||||
InitialDirectory = "c:\\",
|
InitialDirectory = "c:\\",
|
||||||
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
|
Filter = @"image files (*.PNG;*.JPG;*.GIF)|*.*",
|
||||||
|
@ -727,20 +600,23 @@ namespace Matrix_App
|
||||||
{
|
{
|
||||||
string filePath = save.FileName;
|
string filePath = save.FileName;
|
||||||
Bitmap[] gifBitmap = new Bitmap[gifBuffer.Length];
|
Bitmap[] gifBitmap = new Bitmap[gifBuffer.Length];
|
||||||
GifWriter writer = new GifWriter(File.Create(filePath));
|
GifWriter writer = new(File.Create(filePath));
|
||||||
for (var i = 0; i < FrameCount.Value; i++)
|
for (var i = 0; i < FrameCount.Value; i++)
|
||||||
{
|
{
|
||||||
gifBitmap[i] = new Bitmap((int)matrixWidth.Value, (int)matrixHeight.Value);
|
gifBitmap[i] = new Bitmap((int) matrixWidth.Value, (int) matrixHeight.Value);
|
||||||
|
|
||||||
for (var j = 0; j < gifBuffer[i].Length / 3; j++)
|
for (var j = 0; j < gifBuffer[i].Length / 3; j++)
|
||||||
{
|
{
|
||||||
var y = j / (int) matrixWidth.Value;
|
var y = j / (int) matrixWidth.Value;
|
||||||
var x = j % (int) matrixWidth.Value;
|
var x = j % (int) matrixWidth.Value;
|
||||||
|
|
||||||
gifBitmap[i].SetPixel(x, y, Color.FromArgb(gifBuffer[i][j * 3], gifBuffer[i][j * 3 + 1], gifBuffer[i][j * 3 + 2]));
|
gifBitmap[i].SetPixel(x, y,
|
||||||
|
Color.FromArgb(gifBuffer[i][j * 3], gifBuffer[i][j * 3 + 1], gifBuffer[i][j * 3 + 2]));
|
||||||
}
|
}
|
||||||
writer.WriteFrame(gifBitmap[i], (int)Delay.Value);
|
|
||||||
|
writer.WriteFrame(gifBitmap[i], (int) Delay.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.Dispose();
|
writer.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -748,7 +624,7 @@ namespace Matrix_App
|
||||||
private void ConfigButton_Click(object sender, EventArgs e)
|
private void ConfigButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
commandQueue.EnqueueArduinoCommand(4);
|
commandQueue.EnqueueArduinoCommand(4);
|
||||||
commandQueue.WaitForLastDequeue();
|
PortCommandQueue.WaitForLastDequeue();
|
||||||
byte[] data = commandQueue.GetLastData();
|
byte[] data = commandQueue.GetLastData();
|
||||||
|
|
||||||
if (commandQueue.GetMark() > 0)
|
if (commandQueue.GetMark() > 0)
|
||||||
|
@ -758,23 +634,21 @@ namespace Matrix_App
|
||||||
|
|
||||||
matrixWidth.Value = width;
|
matrixWidth.Value = width;
|
||||||
matrixHeight.Value = height;
|
matrixHeight.Value = height;
|
||||||
|
|
||||||
for (var y = 0; y < height; y++)
|
for (var y = 0; y < height; y++)
|
||||||
|
for (var x = 0; x < width; x++)
|
||||||
{
|
{
|
||||||
for (var x = 0; x < width; x++)
|
var i0 = x * 3 + y * width * 3;
|
||||||
{
|
|
||||||
var i0 = x * 3 + y * width * 3;
|
|
||||||
|
|
||||||
var x1 = height - y - 1;
|
var x1 = height - y - 1;
|
||||||
var y1 = width - x - 1;
|
var y1 = width - x - 1;
|
||||||
|
|
||||||
var i1 = x1 * 3 + y1 * width * 3;
|
var i1 = x1 * 3 + y1 * width * 3;
|
||||||
|
|
||||||
// degamma
|
// degamma
|
||||||
gifBuffer[0][i0 + 0] = (byte) MathF.Sqrt(data[i1 + 0 + 2] / 258.0f * 65536.0f);
|
gifBuffer[0][i0 + 0] = (byte) MathF.Sqrt(data[i1 + 0 + 2] / 258.0f * 65536.0f);
|
||||||
gifBuffer[0][i0 + 1] = (byte) MathF.Sqrt(data[i1 + 1 + 2] / 258.0f * 65536.0f);
|
gifBuffer[0][i0 + 1] = (byte) MathF.Sqrt(data[i1 + 1 + 2] / 258.0f * 65536.0f);
|
||||||
gifBuffer[0][i0 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f);
|
gifBuffer[0][i0 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Timeline.Value = 1;
|
Timeline.Value = 1;
|
||||||
|
@ -794,16 +668,14 @@ namespace Matrix_App
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Resizes the Gif image buffer
|
/// Resizes the Gif image buffer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ResizeGif()
|
private void ResizeGif()
|
||||||
{
|
{
|
||||||
int frames = (int)FrameCount.Value;
|
var frames = (int) FrameCount.Value;
|
||||||
gifBuffer = new byte[frames + 1][];
|
gifBuffer = new byte[frames + 1][];
|
||||||
for (int i = 0; i <= frames; i++)
|
for (var i = 0; i <= frames; i++)
|
||||||
{
|
|
||||||
gifBuffer[i] = new byte[matrixView.matrixWidth() * matrixView.matrixHeight() * 3];
|
gifBuffer[i] = new byte[matrixView.matrixWidth() * matrixView.matrixHeight() * 3];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -834,32 +706,29 @@ namespace Matrix_App
|
||||||
var height = matrixView.matrixHeight();
|
var height = matrixView.matrixHeight();
|
||||||
|
|
||||||
for (var y = 0; y < height; y++)
|
for (var y = 0; y < height; y++)
|
||||||
|
for (var x = 0; x < width; x++)
|
||||||
{
|
{
|
||||||
for (var x = 0; x < width; x++)
|
var i0 = x * 3 + y * width * 3;
|
||||||
{
|
|
||||||
var i0 = x * 3 + y * width * 3;
|
|
||||||
|
|
||||||
; var x1 = height - y - 1;
|
;
|
||||||
var y1 = width - x - 1;
|
var x1 = height - y - 1;
|
||||||
|
var y1 = width - x - 1;
|
||||||
|
|
||||||
var i1 = x1 * 3 + y1 * width * 3;
|
var i1 = x1 * 3 + y1 * width * 3;
|
||||||
|
|
||||||
gammaImage[i0 + 0] = rgbImageData[i1 + 0];
|
gammaImage[i0 + 0] = rgbImageData[i1 + 0];
|
||||||
gammaImage[i0 + 1] = rgbImageData[i1 + 1];
|
gammaImage[i0 + 1] = rgbImageData[i1 + 1];
|
||||||
gammaImage[i0 + 2] = rgbImageData[i1 + 2];
|
gammaImage[i0 + 2] = rgbImageData[i1 + 2];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < rgbImageData.Length; i++)
|
for (var i = 0; i < rgbImageData.Length; i++)
|
||||||
{
|
gammaImage[i] = (byte) ((gammaImage[i] * gammaImage[i] * 258) >> 16);
|
||||||
gammaImage[i] = (byte) (gammaImage[i] * gammaImage[i] * 258 >> 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
commandQueue.EnqueueArduinoCommand(OpcodeImage, gammaImage);
|
commandQueue.EnqueueArduinoCommand(OpcodeImage, gammaImage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Converts the matrix's pixel ARGB buffer to an 3-byte RGB tuple array and sends them to the arduino
|
/// Converts the matrix's pixel ARGB buffer to an 3-byte RGB tuple array and sends them to the arduino
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void EnqueuePixelSet()
|
public void EnqueuePixelSet()
|
||||||
{
|
{
|
||||||
|
@ -869,14 +738,36 @@ namespace Matrix_App
|
||||||
|
|
||||||
for (var x = 0; x < pixels.Length; x++)
|
for (var x = 0; x < pixels.Length; x++)
|
||||||
{
|
{
|
||||||
image[x * 3 + 0] = (byte) (pixels[x] >> 16 & 0xFF);
|
image[x * 3 + 0] = (byte) ((pixels[x] >> 16) & 0xFF);
|
||||||
image[x * 3 + 1] = (byte) (pixels[x] >> 8 & 0xFF);
|
image[x * 3 + 1] = (byte) ((pixels[x] >> 8) & 0xFF);
|
||||||
image[x * 3 + 2] = (byte) (pixels[x] >> 0 & 0xFF);
|
image[x * 3 + 2] = (byte) ((pixels[x] >> 0) & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteImage(image);
|
WriteImage(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private void PushButtonOnClick(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var bytes = matrixWidth.Value * matrixHeight.Value * 3 * gifBuffer.Length + 5;
|
||||||
|
var data = new byte[(int) bytes];
|
||||||
|
|
||||||
|
data[0] = (byte) matrixWidth.Value;
|
||||||
|
data[1] = (byte) matrixHeight.Value;
|
||||||
|
data[2] = (byte) gifBuffer.Length;
|
||||||
|
data[3] = (byte) ((int) Delay.Value >> 8);
|
||||||
|
data[4] = (byte) ((int) Delay.Value & 0xFF);
|
||||||
|
|
||||||
|
for (var frame = 0; frame < gifBuffer.Length; frame++)
|
||||||
|
{
|
||||||
|
for (var pixel = 0; pixel < gifBuffer[0].Length; pixel++)
|
||||||
|
{
|
||||||
|
data[frame * gifBuffer[0].Length + pixel + 5] = (byte) (gifBuffer[frame][pixel] * gifBuffer[frame][pixel] * 258 >> 16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
commandQueue.EnqueueArduinoCommand(OpcodePush, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,245 @@
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace Matrix_App.forms
|
||||||
|
{
|
||||||
|
partial class Settings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.UpdateRealtimeCheckbox = new System.Windows.Forms.CheckBox();
|
||||||
|
this.WritePortCombobox = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
|
this.BluetoothFlagLabel = new System.Windows.Forms.Label();
|
||||||
|
this.USBFlagLabel = new System.Windows.Forms.Label();
|
||||||
|
this.UploadFlagLabel = new System.Windows.Forms.Label();
|
||||||
|
this.Controller = new System.Windows.Forms.Label();
|
||||||
|
this.ControllerNameLabel = new System.Windows.Forms.Label();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(285, 28);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "COM Settings";
|
||||||
|
//
|
||||||
|
// UpdateRealtimeCheckbox
|
||||||
|
//
|
||||||
|
this.UpdateRealtimeCheckbox.Location = new System.Drawing.Point(18, 40);
|
||||||
|
this.UpdateRealtimeCheckbox.Name = "UpdateRealtimeCheckbox";
|
||||||
|
this.UpdateRealtimeCheckbox.Size = new System.Drawing.Size(159, 26);
|
||||||
|
this.UpdateRealtimeCheckbox.TabIndex = 2;
|
||||||
|
this.UpdateRealtimeCheckbox.Text = "Realtime update";
|
||||||
|
this.UpdateRealtimeCheckbox.UseVisualStyleBackColor = true;
|
||||||
|
this.UpdateRealtimeCheckbox.CheckedChanged += new System.EventHandler(this.UpdateRealtimeCheckbox_CheckedChanged);
|
||||||
|
//
|
||||||
|
// WritePortCombobox
|
||||||
|
//
|
||||||
|
this.WritePortCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.WritePortCombobox.FormattingEnabled = true;
|
||||||
|
this.WritePortCombobox.Location = new System.Drawing.Point(6, 24);
|
||||||
|
this.WritePortCombobox.Name = "WritePortCombobox";
|
||||||
|
this.WritePortCombobox.Size = new System.Drawing.Size(430, 21);
|
||||||
|
this.WritePortCombobox.TabIndex = 5;
|
||||||
|
this.WritePortCombobox.SelectedIndexChanged += new System.EventHandler(this.WritePortCombobox_SelectedIndexChanged_1);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.Location = new System.Drawing.Point(442, 27);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(88, 17);
|
||||||
|
this.label3.TabIndex = 6;
|
||||||
|
this.label3.Text = "Serial Port";
|
||||||
|
this.label3.Click += new System.EventHandler(this.label3_Click);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.ControllerNameLabel);
|
||||||
|
this.groupBox1.Controls.Add(this.Controller);
|
||||||
|
this.groupBox1.Controls.Add(this.UploadFlagLabel);
|
||||||
|
this.groupBox1.Controls.Add(this.USBFlagLabel);
|
||||||
|
this.groupBox1.Controls.Add(this.BluetoothFlagLabel);
|
||||||
|
this.groupBox1.Controls.Add(this.label6);
|
||||||
|
this.groupBox1.Controls.Add(this.label5);
|
||||||
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
|
this.groupBox1.Controls.Add(this.button1);
|
||||||
|
this.groupBox1.Controls.Add(this.label3);
|
||||||
|
this.groupBox1.Controls.Add(this.WritePortCombobox);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(12, 72);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(536, 211);
|
||||||
|
this.groupBox1.TabIndex = 8;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "Serial Port";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.Location = new System.Drawing.Point(6, 102);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.label5.TabIndex = 10;
|
||||||
|
this.label5.Text = "USB";
|
||||||
|
this.label5.Click += new System.EventHandler(this.label5_Click);
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.Location = new System.Drawing.Point(6, 85);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.label4.TabIndex = 9;
|
||||||
|
this.label4.Text = "Bluetooth";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
|
||||||
|
this.label2.Location = new System.Drawing.Point(6, 60);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(127, 25);
|
||||||
|
this.label2.TabIndex = 8;
|
||||||
|
this.label2.Text = "Features";
|
||||||
|
this.label2.Click += new System.EventHandler(this.label2_Click);
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.Location = new System.Drawing.Point(6, 181);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(97, 24);
|
||||||
|
this.button1.TabIndex = 7;
|
||||||
|
this.button1.Text = "Auto detect";
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
this.label6.Location = new System.Drawing.Point(6, 119);
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
this.label6.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.label6.TabIndex = 11;
|
||||||
|
this.label6.Text = "Upload";
|
||||||
|
//
|
||||||
|
// BluetoothFlagLabel
|
||||||
|
//
|
||||||
|
this.BluetoothFlagLabel.Location = new System.Drawing.Point(89, 85);
|
||||||
|
this.BluetoothFlagLabel.Name = "BluetoothFlagLabel";
|
||||||
|
this.BluetoothFlagLabel.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.BluetoothFlagLabel.TabIndex = 12;
|
||||||
|
this.BluetoothFlagLabel.Text = "-";
|
||||||
|
//
|
||||||
|
// USBFlagLabel
|
||||||
|
//
|
||||||
|
this.USBFlagLabel.Location = new System.Drawing.Point(89, 102);
|
||||||
|
this.USBFlagLabel.Name = "USBFlagLabel";
|
||||||
|
this.USBFlagLabel.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.USBFlagLabel.TabIndex = 13;
|
||||||
|
this.USBFlagLabel.Text = "-";
|
||||||
|
//
|
||||||
|
// UploadFlagLabel
|
||||||
|
//
|
||||||
|
this.UploadFlagLabel.Location = new System.Drawing.Point(89, 119);
|
||||||
|
this.UploadFlagLabel.Name = "UploadFlagLabel";
|
||||||
|
this.UploadFlagLabel.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.UploadFlagLabel.TabIndex = 14;
|
||||||
|
this.UploadFlagLabel.Text = "-";
|
||||||
|
//
|
||||||
|
// Controller
|
||||||
|
//
|
||||||
|
this.Controller.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte) (0)));
|
||||||
|
this.Controller.Location = new System.Drawing.Point(6, 150);
|
||||||
|
this.Controller.Name = "Controller";
|
||||||
|
this.Controller.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.Controller.TabIndex = 15;
|
||||||
|
this.Controller.Text = "Controller:";
|
||||||
|
//
|
||||||
|
// ControllerNameLabel
|
||||||
|
//
|
||||||
|
this.ControllerNameLabel.Location = new System.Drawing.Point(89, 150);
|
||||||
|
this.ControllerNameLabel.Name = "ControllerNameLabel";
|
||||||
|
this.ControllerNameLabel.Size = new System.Drawing.Size(129, 17);
|
||||||
|
this.ControllerNameLabel.TabIndex = 16;
|
||||||
|
this.ControllerNameLabel.Text = "-";
|
||||||
|
//
|
||||||
|
// Settings
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(564, 295);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.UpdateRealtimeCheckbox);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "Settings";
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.Text = "Settings";
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label ControllerNameLabel;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label Controller;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label7;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label6;
|
||||||
|
private System.Windows.Forms.Label BluetoothFlagLabel;
|
||||||
|
private System.Windows.Forms.Label USBFlagLabel;
|
||||||
|
private System.Windows.Forms.Label UploadFlagLabel;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Button button1;
|
||||||
|
|
||||||
|
private System.Windows.Forms.CheckBox UpdateRealtimeCheckbox;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
|
||||||
|
private System.Windows.Forms.ComboBox WritePortCombobox;
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,250 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
using System.IO.Ports;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Management;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Matrix_App.adds;
|
||||||
|
|
||||||
|
namespace Matrix_App.forms
|
||||||
|
{
|
||||||
|
public partial class Settings : Form
|
||||||
|
{
|
||||||
|
private readonly SerialPort port;
|
||||||
|
|
||||||
|
private readonly PortCommandQueue queue;
|
||||||
|
|
||||||
|
private readonly Regex comRegex = new Regex(@"COM([\d]+)");
|
||||||
|
|
||||||
|
public Settings(ref PortCommandQueue queue, ref SerialPort port)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.queue = queue;
|
||||||
|
this.port = port;
|
||||||
|
|
||||||
|
GatherPortNames(WritePortCombobox, port.PortName);
|
||||||
|
|
||||||
|
UpdateRealtimeCheckbox.Checked = queue.GetRealtimeUpdates();
|
||||||
|
|
||||||
|
Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateRealtimeCheckbox_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
queue.SetRealtimeUpdates(UpdateRealtimeCheckbox.Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool disableValidation;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gathers all available ports and sets them to the combobox
|
||||||
|
/// </summary>
|
||||||
|
[SuppressMessage("ReSharper", "CoVariantArrayConversion", Justification = "Never got an exception, so seems to be just fine")]
|
||||||
|
private void GatherPortNames(ComboBox portBox, string initialCom)
|
||||||
|
{
|
||||||
|
disableValidation = true;
|
||||||
|
|
||||||
|
var ports = SerialPort.GetPortNames();
|
||||||
|
// save previously selected
|
||||||
|
var selected = portBox.SelectedItem ?? initialCom;
|
||||||
|
|
||||||
|
if (!port.IsOpen)
|
||||||
|
{
|
||||||
|
selected = "None";
|
||||||
|
}
|
||||||
|
|
||||||
|
// get device names from ports
|
||||||
|
var newPorts = GetDeviceNames(ports);
|
||||||
|
// add virtual port
|
||||||
|
newPorts.AddLast("None");
|
||||||
|
|
||||||
|
// search for new port
|
||||||
|
foreach (var newPort in newPorts)
|
||||||
|
{
|
||||||
|
// find any new port
|
||||||
|
var found = portBox.Items.Cast<object?>().Any(oldPort => (string) oldPort! == newPort);
|
||||||
|
|
||||||
|
// some port wasn't found, recreate list
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
portBox.Items.Clear();
|
||||||
|
|
||||||
|
portBox.Items.AddRange(newPorts.ToArray()!);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
portBox.SelectedItem = portBox.Items.Count - 1;
|
||||||
|
|
||||||
|
foreach (var item in portBox.Items)
|
||||||
|
{
|
||||||
|
if (item == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!((string) item).Contains((string) selected))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
|
portBox.SelectedItem = item;
|
||||||
|
GetPortInformation();
|
||||||
|
disableValidation = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
queue.InvalidatePort();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static LinkedList<string> GetDeviceNames(IEnumerable<string> ports)
|
||||||
|
{
|
||||||
|
ManagementClass processClass = new ManagementClass("Win32_PnPEntity");
|
||||||
|
ManagementObjectCollection devicePortNames = processClass.GetInstances();
|
||||||
|
|
||||||
|
var newPorts = new LinkedList<string>();
|
||||||
|
|
||||||
|
foreach (var currentPort in ports)
|
||||||
|
{
|
||||||
|
foreach (var o in devicePortNames)
|
||||||
|
{
|
||||||
|
var name = ((ManagementObject) o).GetPropertyValue("Name");
|
||||||
|
|
||||||
|
if (name == null || !name.ToString()!.Contains(currentPort))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
newPorts.AddLast(name.ToString()!);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newPorts;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ValidatePortSelection(ComboBox box, SerialPort port)
|
||||||
|
{
|
||||||
|
if (disableValidation)
|
||||||
|
return;
|
||||||
|
|
||||||
|
lock (port)
|
||||||
|
{
|
||||||
|
if (port.IsOpen)
|
||||||
|
{
|
||||||
|
port.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
var item = (string) box.SelectedItem;
|
||||||
|
{
|
||||||
|
// extract port
|
||||||
|
var matches = comRegex.Matches(item);
|
||||||
|
|
||||||
|
if(matches.Count > 0)
|
||||||
|
{
|
||||||
|
// set valid port
|
||||||
|
port.PortName = matches[0].Value;
|
||||||
|
queue.ValidatePort();
|
||||||
|
|
||||||
|
GetPortInformation();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BluetoothFlagLabel.Text = @"-";
|
||||||
|
USBFlagLabel.Text = @"-";
|
||||||
|
UploadFlagLabel.Text = @"-";
|
||||||
|
|
||||||
|
ControllerNameLabel.Text = @"-";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GetPortInformation()
|
||||||
|
{
|
||||||
|
if (port.IsOpen)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (port.IsOpen)
|
||||||
|
{
|
||||||
|
port.Write(new byte[]{0x06}, 0, 1);
|
||||||
|
|
||||||
|
var @byte = port.ReadByte();
|
||||||
|
var flags = port.ReadByte();
|
||||||
|
var name = port.ReadTo("\x4B");
|
||||||
|
|
||||||
|
BluetoothFlagLabel.Text = (flags & 0b10000000) == 0 ? "false" : "true";
|
||||||
|
USBFlagLabel.Text = (flags & 0b01000000) == 0 ? "false" : "true";
|
||||||
|
UploadFlagLabel.Text = (flags & 0b00000001) == 0 ? "false" : "true";
|
||||||
|
|
||||||
|
ControllerNameLabel.Text = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.WriteLine("ERROR! " + e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void button1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (var item in WritePortCombobox.Items)
|
||||||
|
{
|
||||||
|
if (item == null || (string) item == "None")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var number = comRegex.Match(item as string).Groups[1].ToString();
|
||||||
|
var portNumber = UInt32.Parse(number);
|
||||||
|
|
||||||
|
var testPort = new SerialPort {PortName = "COM" + portNumber, ReadTimeout = 500, WriteTimeout = 500};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
testPort.Open();
|
||||||
|
testPort.Write(new byte[] {0x06}, 0, 1);
|
||||||
|
var answer = testPort.ReadByte();
|
||||||
|
testPort.DiscardInBuffer();
|
||||||
|
testPort.DiscardOutBuffer();
|
||||||
|
|
||||||
|
if (answer == 91)
|
||||||
|
{
|
||||||
|
WritePortCombobox.SelectedIndex = WritePortCombobox.Items.Count - 1;
|
||||||
|
WritePortCombobox.SelectedItem = item;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
// ignored
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
testPort.Close();
|
||||||
|
testPort.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label3_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WritePortCombobox_SelectedIndexChanged_1(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ValidatePortSelection(WritePortCombobox, port);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label2_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label5_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
2fd371e536027e5b611b0b4082d7a8540ace9153
|
ee08f3fd4fec0961f4d332058a40061343b3301b
|
||||||
|
|
|
@ -36,3 +36,48 @@ F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matri
|
||||||
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
|
||||||
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
|
||||||
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.exe
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.deps.json
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.json
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.runtimeconfig.dev.json
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Matrix App.pdb
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.Registry.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.CodeDom.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.IO.Ports.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Management.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.AccessControl.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Security.Principal.Windows.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\linux\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\osx\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Management.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.AccessControl.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csprojAssemblyReference.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.ColorWheel.resources
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Matrix.resources
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.MatrixDesignerMain.resources
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.Properties.Resources.resources
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.GenerateResource.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfoInputs.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.AssemblyInfo.cs
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CoreCompileInputs.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.csproj.CopyComplete
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.pdb
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix App.genruntimeconfig.cache
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\System.Drawing.Common.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Debug\netcoreapp3.1\Matrix_App.forms.Settings.resources
|
||||||
|
E:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Debug\netcoreapp3.1\Bluetooth.dll
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
||||||
515eead76ebf0b414116e9f97a694849e0a06bf3
|
ba5d749f524a96f4bc8a665369065c925956c5b6
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,17 +1,17 @@
|
||||||
{
|
{
|
||||||
"format": 1,
|
"format": 1,
|
||||||
"restore": {
|
"restore": {
|
||||||
"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {}
|
"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {}
|
||||||
},
|
},
|
||||||
"projects": {
|
"projects": {
|
||||||
"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {
|
"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
"projectUniqueName": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
||||||
"projectName": "Matrix App",
|
"projectName": "Matrix App",
|
||||||
"projectPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
"projectPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
||||||
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
|
||||||
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
|
"outputPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
@ -40,6 +40,14 @@
|
||||||
"netcoreapp3.1": {
|
"netcoreapp3.1": {
|
||||||
"targetAlias": "netcoreapp3.1",
|
"targetAlias": "netcoreapp3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"Bluetooth": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.0.0.2, )"
|
||||||
|
},
|
||||||
|
"System.Drawing.Common": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[5.0.2, )"
|
||||||
|
},
|
||||||
"System.IO.Ports": {
|
"System.IO.Ports": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[6.0.0-preview.5.21301.5, )"
|
"version": "[6.0.0-preview.5.21301.5, )"
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]
|
|
@ -0,0 +1,22 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Matrix App")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("Matrix App")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("Matrix App")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
39de9d24d938d695442768dc93361a4c97b58647
|
|
@ -0,0 +1,8 @@
|
||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = netcoreapp3.1
|
||||||
|
build_property.TargetPlatformMinVersion = 7.0
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb =
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.PublishSingleFile =
|
||||||
|
build_property.IncludeAllContentForSelfExtract =
|
||||||
|
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
3fc6bc78589ef3eb4111eb99db02236b755b7630
|
|
@ -0,0 +1,38 @@
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.exe
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.deps.json
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.runtimeconfig.json
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.runtimeconfig.dev.json
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Matrix App.pdb
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\Microsoft.Win32.Registry.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.CodeDom.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.IO.Ports.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Management.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Security.AccessControl.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\System.Security.Principal.Windows.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\linux\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\osx\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.IO.Ports.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Management.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.AccessControl.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\bin\Release\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csprojAssemblyReference.cache
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.ColorWheel.resources
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.Matrix.resources
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.MatrixDesignerMain.resources
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix_App.Properties.Resources.resources
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.GenerateResource.cache
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.AssemblyInfoInputs.cache
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.AssemblyInfo.cs
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.CoreCompileInputs.cache
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.csproj.CopyComplete
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.dll
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.pdb
|
||||||
|
F:\Content\Schule\BBS-T1-Ludwigshafen\Klasse 12\Info Lk\bulli\Neopixel\App\Matrix_App_V3.5.3\Matrix App\obj\Release\netcoreapp3.1\Matrix App.genruntimeconfig.cache
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
515eead76ebf0b414116e9f97a694849e0a06bf3
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2,6 +2,20 @@
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"targets": {
|
"targets": {
|
||||||
".NETCoreApp,Version=v3.1": {
|
".NETCoreApp,Version=v3.1": {
|
||||||
|
"Bluetooth/1.0.0.2": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Windows.SDK.Contracts": "10.0.19041.1",
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime": "4.3.0",
|
||||||
|
"System.Runtime.WindowsRuntime": "4.7.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/netstandard2.0/Bluetooth.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Bluetooth.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {
|
"Microsoft.NETCore.Platforms/5.0.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"compile": {
|
"compile": {
|
||||||
|
@ -11,6 +25,15 @@
|
||||||
"lib/netstandard1.0/_._": {}
|
"lib/netstandard1.0/_._": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/netstandard1.0/_._": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard1.0/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -30,6 +53,122 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard2.0/_._": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Runtime.WindowsRuntime": "4.6.0",
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml": "4.6.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard2.0/Windows.AI.MachineLearning.MachineLearningContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivatedEventsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsPhoneContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsVoipContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.LockScreenCallContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.FullTrustAppContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Search.Core.SearchCoreContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Search.SearchContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.SocialInfo.SocialInfoContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.StartupTaskContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Wallet.WalletContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Custom.CustomDeviceContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.DevicesLowLevelContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Portable.PortableDeviceContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Printers.Extensions.ExtensionsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Printers.PrintersContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Scanners.ScannerDeviceContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardEmulatorContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Sms.LegacySmsApiContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Embedded.DeviceLockdown.DeviceLockdownContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Foundation.FoundationContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Foundation.UniversalApiContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.Input.GamingInputPreviewContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.Preview.GamesEnumerationContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.UI.GameChatOverlayContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.UI.GamingUIProviderContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.XboxLive.StorageApiContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Graphics.Printing3D.Printing3DContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Management.Deployment.Preview.DeploymentPreviewContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Management.Workplace.WorkplaceSettingsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.AppBroadcasting.AppBroadcastingContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.AppRecording.AppRecordingContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppBroadcastContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureMetadataContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.CameraCaptureUIContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.GameBarContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Devices.CallControlContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.MediaControlContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Playlists.PlaylistsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Media.Protection.ProtectionRenewalContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Networking.Connectivity.WwanContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.WinMD": {},
|
||||||
|
"ref/netstandard2.0/Windows.Networking.Sockets.ControlChannelTriggerContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Phone.PhoneContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Phone.StartScreen.DualSimTileContract.WinMD": {},
|
||||||
|
"ref/netstandard2.0/Windows.Security.EnterpriseData.EnterpriseDataContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Security.Isolation.Isolatedwindowsenvironmentcontract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Services.Maps.GuidanceContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Services.Maps.LocalSearchContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Services.Store.StoreContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Services.TargetedContent.TargetedContentContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Storage.Provider.CloudFilesContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileHardwareTokenContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileRetailInfoContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileSharedModeContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.SystemManagementContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileLockScreenContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.Core.CoreWindowDialogsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.Shell.SecurityAppManagerContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.ViewManagement.ViewManagementViewScalingContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.WebUI.Core.WebUICommandBarContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.Xaml.Core.Direct.XamlDirectContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.UI.Xaml.Hosting.HostingContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.winmd": {},
|
||||||
|
"ref/netstandard2.0/Windows.WinMD": {}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"build/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"runtimeTargets": {
|
"runtimeTargets": {
|
||||||
|
@ -84,6 +223,28 @@
|
||||||
"lib/netstandard2.0/System.CodeDom.dll": {}
|
"lib/netstandard2.0/System.CodeDom.dll": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"System.Drawing.Common/5.0.2": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.SystemEvents": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netcoreapp3.0/System.Drawing.Common.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.0/System.Drawing.Common.dll": {}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "unix"
|
||||||
|
},
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -131,6 +292,65 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||||
|
"Microsoft.NETCore.Targets": "1.1.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard1.5/System.Runtime.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Runtime": "4.3.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "3.1.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.dll": {}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "3.0.0",
|
||||||
|
"System.Runtime.WindowsRuntime": "4.6.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -171,6 +391,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"libraries": {
|
"libraries": {
|
||||||
|
"Bluetooth/1.0.0.2": {
|
||||||
|
"sha512": "dI5MtUEkDm2L81kHFeofWkpOvq7Yn2iNVl8dKa+DIeXhqHb9LrBSH7LpmaNOlZMLwQFDKageUpxV0w39GMeUag==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "bluetooth/1.0.0.2",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"bluetooth.1.0.0.2.nupkg.sha512",
|
||||||
|
"bluetooth.nuspec",
|
||||||
|
"lib/netstandard2.0/Bluetooth.dll"
|
||||||
|
]
|
||||||
|
},
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {
|
"Microsoft.NETCore.Platforms/5.0.0": {
|
||||||
"sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
|
"sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -189,6 +421,21 @@
|
||||||
"version.txt"
|
"version.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {
|
||||||
|
"sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.netcore.targets/1.1.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"ThirdPartyNotices.txt",
|
||||||
|
"dotnet_library_license.txt",
|
||||||
|
"lib/netstandard1.0/_._",
|
||||||
|
"microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||||
|
"microsoft.netcore.targets.nuspec",
|
||||||
|
"runtime.json"
|
||||||
|
]
|
||||||
|
},
|
||||||
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
"Microsoft.Win32.Registry/6.0.0-preview.5.21301.5": {
|
||||||
"sha512": "qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
|
"sha512": "qYLtJIAEJJmY2vXxlVO8x4uXfgq7DFOHjpmnHlLm7kmAvyNFckYY/Dx5CZythBXvI2/7sratbIGKqSTysfgZ8A==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -215,6 +462,220 @@
|
||||||
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml"
|
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||||
|
"sha512": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.win32.systemevents/5.0.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"lib/net461/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"lib/net461/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"microsoft.win32.systemevents.5.0.0.nupkg.sha512",
|
||||||
|
"microsoft.win32.systemevents.nuspec",
|
||||||
|
"ref/net461/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"ref/net461/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"ref/netstandard2.0/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"ref/netstandard2.0/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.xml",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Microsoft.Windows.SDK.Contracts/10.0.19041.1": {
|
||||||
|
"sha512": "sgDwuoyubbLFNJR/BINbvfSNRiglF91D+Q0uEAkU4ZTO5Hgbnu8+gA4TCc65S56e1kK7gvR1+H4kphkDTr+9bw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.windows.sdk.contracts/10.0.19041.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"build/Microsoft.Windows.SDK.Contracts.props",
|
||||||
|
"build/Microsoft.Windows.SDK.Contracts.targets",
|
||||||
|
"c/Catalogs/cat353be8f91891a6a5761b9ac157fa2ff1.cat",
|
||||||
|
"c/Catalogs/cat4ec14c5368b7642563c070cd168960a8.cat",
|
||||||
|
"c/Catalogs/cate59830bab4961666e8d8c2af1e5fa771.cat",
|
||||||
|
"c/Catalogs/catf105a73f98cfc88c7b64d8f7b39a474c.cat",
|
||||||
|
"microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512",
|
||||||
|
"microsoft.windows.sdk.contracts.nuspec",
|
||||||
|
"ref/netstandard2.0/Windows.AI.MachineLearning.MachineLearningContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivatedEventsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsPhoneContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.CallsVoipContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Calls.LockScreenCallContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.FullTrustAppContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Search.Core.SearchCoreContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Search.SearchContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.SocialInfo.SocialInfoContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.StartupTaskContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.ApplicationModel.Wallet.WalletContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Custom.CustomDeviceContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.DevicesLowLevelContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Portable.PortableDeviceContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Printers.Extensions.ExtensionsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Printers.PrintersContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Scanners.ScannerDeviceContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.SmartCards.SmartCardEmulatorContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Devices.Sms.LegacySmsApiContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Embedded.DeviceLockdown.DeviceLockdownContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Foundation.FoundationContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Foundation.UniversalApiContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.Input.GamingInputPreviewContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.Preview.GamesEnumerationContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.UI.GameChatOverlayContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.UI.GamingUIProviderContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Gaming.XboxLive.StorageApiContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Graphics.Printing3D.Printing3DContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Management.Deployment.Preview.DeploymentPreviewContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Management.Workplace.WorkplaceSettingsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.AppBroadcasting.AppBroadcastingContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.AppRecording.AppRecordingContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppBroadcastContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.AppCaptureMetadataContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.CameraCaptureUIContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Capture.GameBarContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Devices.CallControlContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.MediaControlContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Playlists.PlaylistsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Media.Protection.ProtectionRenewalContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Networking.Connectivity.WwanContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.WinMD",
|
||||||
|
"ref/netstandard2.0/Windows.Networking.Sockets.ControlChannelTriggerContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Phone.PhoneContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Phone.StartScreen.DualSimTileContract.WinMD",
|
||||||
|
"ref/netstandard2.0/Windows.Security.EnterpriseData.EnterpriseDataContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Security.Isolation.Isolatedwindowsenvironmentcontract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Services.Maps.GuidanceContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Services.Maps.LocalSearchContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Services.Store.StoreContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Services.TargetedContent.TargetedContentContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Storage.Provider.CloudFilesContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileHardwareTokenContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileRetailInfoContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.ProfileSharedModeContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.SystemManagementContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.System.UserProfile.UserProfileLockScreenContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.Core.CoreWindowDialogsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.Shell.SecurityAppManagerContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.ViewManagement.ViewManagementViewScalingContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.WebUI.Core.WebUICommandBarContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.Xaml.Core.Direct.XamlDirectContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.UI.Xaml.Hosting.HostingContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.winmd",
|
||||||
|
"ref/netstandard2.0/Windows.WinMD",
|
||||||
|
"ref/netstandard2.0/en/Windows.AI.MachineLearning.MachineLearningContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ActivatedEventsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.ContactActivatedEventsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.CallsPhoneContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.CallsVoipContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Calls.LockScreenCallContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.FullTrustAppContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Search.Core.SearchCoreContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Search.SearchContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.SocialInfo.SocialInfoContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.StartupTaskContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.ApplicationModel.Wallet.WalletContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Custom.CustomDeviceContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.DevicesLowLevelContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Portable.PortableDeviceContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Printers.Extensions.ExtensionsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Printers.PrintersContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Scanners.ScannerDeviceContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.SmartCards.SmartCardEmulatorContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Devices.Sms.LegacySmsApiContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Foundation.FoundationContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Foundation.UniversalApiContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Gaming.Input.GamingInputPreviewContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Gaming.Preview.GamesEnumerationContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Gaming.UI.GameChatOverlayContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Gaming.UI.GamingUIProviderContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Gaming.XboxLive.StorageApiContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Graphics.Printing3D.Printing3DContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Management.Deployment.Preview.DeploymentPreviewContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Management.Workplace.WorkplaceSettingsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.AppBroadcasting.AppBroadcastingContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.AppRecording.AppRecordingContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Capture.AppBroadcastContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Capture.AppCaptureContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Capture.AppCaptureMetadataContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Capture.CameraCaptureUIContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Capture.GameBarContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Devices.CallControlContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.MediaControlContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Playlists.PlaylistsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Media.Protection.ProtectionRenewalContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Networking.Connectivity.WwanContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Networking.NetworkOperators.NetworkOperatorsFdnContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Networking.Sockets.ControlChannelTriggerContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Phone.PhoneContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Phone.StartScreen.DualSimTileContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Security.EnterpriseData.EnterpriseDataContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Security.ExchangeActiveSyncProvisioning.EasContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Services.Maps.GuidanceContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Services.Maps.LocalSearchContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Services.Store.StoreContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Services.TargetedContent.TargetedContentContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Storage.Provider.CloudFilesContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.Profile.ProfileHardwareTokenContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.Profile.ProfileRetailInfoContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.Profile.ProfileSharedModeContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.SystemManagementContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.UserProfile.UserProfileContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.System.UserProfile.UserProfileLockScreenContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.ApplicationSettings.ApplicationsSettingsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.Core.AnimationMetrics.AnimationMetricsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.Core.CoreWindowDialogsContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.Shell.SecurityAppManagerContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.ViewManagement.ViewManagementViewScalingContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.WebUI.Core.WebUICommandBarContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.Xaml.Core.Direct.XamlDirectContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.UI.Xaml.Hosting.HostingContract.xml",
|
||||||
|
"ref/netstandard2.0/en/Windows.Web.Http.Diagnostics.HttpDiagnosticsContract.xml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"runtime.linux-arm.runtime.native.System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"sha512": "VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
|
"sha512": "VlGxrS0KZuoXA2zP/4JtcsnAUr66ivzLj2TdwXcaQ2vKTFOq9wCz7xYh08KvZVWXJKthpzhS+lWtdw/9vbVlgg==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -313,6 +774,48 @@
|
||||||
"version.txt"
|
"version.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"System.Drawing.Common/5.0.2": {
|
||||||
|
"sha512": "rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.drawing.common/5.0.2",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"lib/MonoAndroid10/_._",
|
||||||
|
"lib/MonoTouch10/_._",
|
||||||
|
"lib/net461/System.Drawing.Common.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Drawing.Common.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Drawing.Common.xml",
|
||||||
|
"lib/netstandard2.0/System.Drawing.Common.dll",
|
||||||
|
"lib/xamarinios10/_._",
|
||||||
|
"lib/xamarinmac20/_._",
|
||||||
|
"lib/xamarintvos10/_._",
|
||||||
|
"lib/xamarinwatchos10/_._",
|
||||||
|
"ref/MonoAndroid10/_._",
|
||||||
|
"ref/MonoTouch10/_._",
|
||||||
|
"ref/net461/System.Drawing.Common.dll",
|
||||||
|
"ref/netcoreapp3.0/System.Drawing.Common.dll",
|
||||||
|
"ref/netcoreapp3.0/System.Drawing.Common.xml",
|
||||||
|
"ref/netstandard2.0/System.Drawing.Common.dll",
|
||||||
|
"ref/xamarinios10/_._",
|
||||||
|
"ref/xamarinmac20/_._",
|
||||||
|
"ref/xamarintvos10/_._",
|
||||||
|
"ref/xamarinwatchos10/_._",
|
||||||
|
"runtimes/unix/lib/netcoreapp2.0/System.Drawing.Common.dll",
|
||||||
|
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll",
|
||||||
|
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.xml",
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/System.Drawing.Common.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.xml",
|
||||||
|
"system.drawing.common.5.0.2.nupkg.sha512",
|
||||||
|
"system.drawing.common.nuspec",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
"System.IO.Ports/6.0.0-preview.5.21301.5": {
|
||||||
"sha512": "9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
|
"sha512": "9jguTG3uxGLvERVKV6w8ctcaYktBv8ssZgl6xm1hI89BBIaU6WwC2SQt9ur+TT8UMxdu9ZG+QQMbCJKEKv9dnQ==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -368,6 +871,299 @@
|
||||||
"version.txt"
|
"version.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.runtime/4.3.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"ThirdPartyNotices.txt",
|
||||||
|
"dotnet_library_license.txt",
|
||||||
|
"lib/MonoAndroid10/_._",
|
||||||
|
"lib/MonoTouch10/_._",
|
||||||
|
"lib/net45/_._",
|
||||||
|
"lib/net462/System.Runtime.dll",
|
||||||
|
"lib/portable-net45+win8+wp80+wpa81/_._",
|
||||||
|
"lib/win8/_._",
|
||||||
|
"lib/wp80/_._",
|
||||||
|
"lib/wpa81/_._",
|
||||||
|
"lib/xamarinios10/_._",
|
||||||
|
"lib/xamarinmac20/_._",
|
||||||
|
"lib/xamarintvos10/_._",
|
||||||
|
"lib/xamarinwatchos10/_._",
|
||||||
|
"ref/MonoAndroid10/_._",
|
||||||
|
"ref/MonoTouch10/_._",
|
||||||
|
"ref/net45/_._",
|
||||||
|
"ref/net462/System.Runtime.dll",
|
||||||
|
"ref/netcore50/System.Runtime.dll",
|
||||||
|
"ref/netcore50/System.Runtime.xml",
|
||||||
|
"ref/netcore50/de/System.Runtime.xml",
|
||||||
|
"ref/netcore50/es/System.Runtime.xml",
|
||||||
|
"ref/netcore50/fr/System.Runtime.xml",
|
||||||
|
"ref/netcore50/it/System.Runtime.xml",
|
||||||
|
"ref/netcore50/ja/System.Runtime.xml",
|
||||||
|
"ref/netcore50/ko/System.Runtime.xml",
|
||||||
|
"ref/netcore50/ru/System.Runtime.xml",
|
||||||
|
"ref/netcore50/zh-hans/System.Runtime.xml",
|
||||||
|
"ref/netcore50/zh-hant/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/System.Runtime.dll",
|
||||||
|
"ref/netstandard1.0/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/de/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/es/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/fr/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/it/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/ja/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/ko/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/ru/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hans/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hant/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/System.Runtime.dll",
|
||||||
|
"ref/netstandard1.2/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/de/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/es/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/fr/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/it/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/ja/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/ko/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/ru/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/zh-hans/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.2/zh-hant/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/System.Runtime.dll",
|
||||||
|
"ref/netstandard1.3/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/de/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/es/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/fr/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/it/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/ja/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/ko/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/ru/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/zh-hans/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.3/zh-hant/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/System.Runtime.dll",
|
||||||
|
"ref/netstandard1.5/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/de/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/es/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/fr/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/it/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/ja/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/ko/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/ru/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/zh-hans/System.Runtime.xml",
|
||||||
|
"ref/netstandard1.5/zh-hant/System.Runtime.xml",
|
||||||
|
"ref/portable-net45+win8+wp80+wpa81/_._",
|
||||||
|
"ref/win8/_._",
|
||||||
|
"ref/wp80/_._",
|
||||||
|
"ref/wpa81/_._",
|
||||||
|
"ref/xamarinios10/_._",
|
||||||
|
"ref/xamarinmac20/_._",
|
||||||
|
"ref/xamarintvos10/_._",
|
||||||
|
"ref/xamarinwatchos10/_._",
|
||||||
|
"system.runtime.4.3.0.nupkg.sha512",
|
||||||
|
"system.runtime.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Runtime.InteropServices.WindowsRuntime/4.3.0": {
|
||||||
|
"sha512": "J4GUi3xZQLUBasNwZnjrffN8i5wpHrBtZoLG+OhRyGo/+YunMRWWtwoMDlUAIdmX0uRfpHIBDSV6zyr3yf00TA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.runtime.interopservices.windowsruntime/4.3.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"ThirdPartyNotices.txt",
|
||||||
|
"dotnet_library_license.txt",
|
||||||
|
"lib/MonoAndroid10/_._",
|
||||||
|
"lib/MonoTouch10/_._",
|
||||||
|
"lib/net45/_._",
|
||||||
|
"lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||||
|
"lib/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||||
|
"lib/portable-net45+win8+wp8+wpa81/_._",
|
||||||
|
"lib/win8/_._",
|
||||||
|
"lib/wp80/_._",
|
||||||
|
"lib/wpa81/_._",
|
||||||
|
"lib/xamarinios1/_._",
|
||||||
|
"lib/xamarinios10/_._",
|
||||||
|
"lib/xamarinmac20/_._",
|
||||||
|
"lib/xamarintvos10/_._",
|
||||||
|
"lib/xamarinwatchos10/_._",
|
||||||
|
"ref/MonoAndroid10/_._",
|
||||||
|
"ref/MonoTouch10/_._",
|
||||||
|
"ref/net45/_._",
|
||||||
|
"ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||||
|
"ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/de/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/es/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/fr/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/it/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ja/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ko/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ru/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/zh-hans/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/zh-hant/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||||
|
"ref/netstandard1.0/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/de/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/es/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/fr/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/it/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ja/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ko/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ru/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hans/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hant/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||||
|
"ref/portable-net45+win8+wp8+wpa81/_._",
|
||||||
|
"ref/win8/_._",
|
||||||
|
"ref/wp80/_._",
|
||||||
|
"ref/wpa81/_._",
|
||||||
|
"ref/xamarinios10/_._",
|
||||||
|
"ref/xamarinmac20/_._",
|
||||||
|
"ref/xamarintvos10/_._",
|
||||||
|
"ref/xamarinwatchos10/_._",
|
||||||
|
"runtimes/aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||||
|
"system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512",
|
||||||
|
"system.runtime.interopservices.windowsruntime.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime/4.7.0": {
|
||||||
|
"sha512": "RQxUkf37fp7MSWbOfKRjUjyudyfZb2u79YY5i1s+d7vuD80A7kmr2YfefO0JprQUhanxSm8bhXigCVfX2kEh+w==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.runtime.windowsruntime/4.7.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"build/net45/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"build/net451/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"build/net461/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"buildTransitive/net45/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"buildTransitive/net451/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"buildTransitive/net461/System.Runtime.WindowsRuntime.targets",
|
||||||
|
"lib/net45/_._",
|
||||||
|
"lib/netstandard1.0/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"lib/netstandard1.0/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"lib/netstandard1.2/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"lib/netstandard1.2/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"lib/portable-win8+wp8+wpa81/_._",
|
||||||
|
"lib/uap10.0.16299/_._",
|
||||||
|
"lib/win8/_._",
|
||||||
|
"lib/wp80/_._",
|
||||||
|
"lib/wpa81/_._",
|
||||||
|
"ref/net45/_._",
|
||||||
|
"ref/netcore50/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"ref/netcore50/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/de/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/es/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/fr/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/it/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ja/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ko/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/ru/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/zh-hans/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netcore50/zh-hant/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"ref/netstandard1.0/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/de/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/es/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/fr/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/it/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ja/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ko/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/ru/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hans/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.0/zh-hant/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"ref/netstandard1.2/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/de/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/es/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/fr/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/it/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/ja/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/ko/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/ru/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/zh-hans/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard1.2/zh-hant/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"ref/portable-win8+wp8+wpa81/_._",
|
||||||
|
"ref/uap10.0.16299/_._",
|
||||||
|
"ref/win8/_._",
|
||||||
|
"ref/wp80/_._",
|
||||||
|
"ref/wpa81/_._",
|
||||||
|
"runtimes/win-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"runtimes/win-aot/lib/uap10.0.16299/_._",
|
||||||
|
"runtimes/win/lib/netcore50/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.xml",
|
||||||
|
"runtimes/win/lib/uap10.0.16299/_._",
|
||||||
|
"system.runtime.windowsruntime.4.7.0.nupkg.sha512",
|
||||||
|
"system.runtime.windowsruntime.nuspec",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Runtime.WindowsRuntime.UI.Xaml/4.6.0": {
|
||||||
|
"sha512": "r4tNw5v5kqRJ9HikWpcyNf3suGw7DjX93svj9iBjtdeLqL8jt9Z+7f+s4wrKZJr84u8IMsrIjt8K6jYvkRqMSg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.runtime.windowsruntime.ui.xaml/4.6.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"build/net45/System.Runtime.WindowsRuntime.UI.Xaml.targets",
|
||||||
|
"build/net461/System.Runtime.WindowsRuntime.UI.Xaml.targets",
|
||||||
|
"lib/net45/_._",
|
||||||
|
"lib/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"lib/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"lib/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"lib/portable-win8+wpa81/_._",
|
||||||
|
"lib/uap10.0.16299/_._",
|
||||||
|
"lib/win8/_._",
|
||||||
|
"lib/wpa81/_._",
|
||||||
|
"ref/net45/_._",
|
||||||
|
"ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/de/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/es/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/fr/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/it/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/ja/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/ko/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/ru/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/zh-hans/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netcore50/zh-hant/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"ref/netstandard1.1/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/de/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/es/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/fr/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/it/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/ja/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/ko/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/ru/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/zh-hans/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard1.1/zh-hant/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"ref/netstandard2.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"ref/portable-win8+wpa81/_._",
|
||||||
|
"ref/uap10.0.16299/_._",
|
||||||
|
"ref/win8/_._",
|
||||||
|
"ref/wpa81/_._",
|
||||||
|
"runtimes/win-aot/lib/uap10.0.16299/_._",
|
||||||
|
"runtimes/win/lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Runtime.WindowsRuntime.UI.Xaml.xml",
|
||||||
|
"runtimes/win/lib/uap10.0.16299/_._",
|
||||||
|
"system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512",
|
||||||
|
"system.runtime.windowsruntime.ui.xaml.nuspec",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
"System.Security.AccessControl/6.0.0-preview.5.21301.5": {
|
||||||
"sha512": "EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
|
"sha512": "EA9ul7nGN8oggMvloILnR+wnrbgLNZZQBYHq5nEq/ixwnKLV3M3Tbd1Jbj8oGck3XMj0owq81e4Jxp3s0IMICw==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -431,6 +1227,8 @@
|
||||||
},
|
},
|
||||||
"projectFileDependencyGroups": {
|
"projectFileDependencyGroups": {
|
||||||
".NETCoreApp,Version=v3.1": [
|
".NETCoreApp,Version=v3.1": [
|
||||||
|
"Bluetooth >= 1.0.0.2",
|
||||||
|
"System.Drawing.Common >= 5.0.2",
|
||||||
"System.IO.Ports >= 6.0.0-preview.5.21301.5",
|
"System.IO.Ports >= 6.0.0-preview.5.21301.5",
|
||||||
"System.Management >= 5.0.0"
|
"System.Management >= 5.0.0"
|
||||||
]
|
]
|
||||||
|
@ -441,11 +1239,11 @@
|
||||||
"project": {
|
"project": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
"projectUniqueName": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
||||||
"projectName": "Matrix App",
|
"projectName": "Matrix App",
|
||||||
"projectPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
"projectPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
||||||
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\SvenV\\.nuget\\packages\\",
|
||||||
"outputPath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
|
"outputPath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\SvenV\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
@ -474,6 +1272,14 @@
|
||||||
"netcoreapp3.1": {
|
"netcoreapp3.1": {
|
||||||
"targetAlias": "netcoreapp3.1",
|
"targetAlias": "netcoreapp3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"Bluetooth": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.0.0.2, )"
|
||||||
|
},
|
||||||
|
"System.Drawing.Common": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[5.0.2, )"
|
||||||
|
},
|
||||||
"System.IO.Ports": {
|
"System.IO.Ports": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[6.0.0-preview.5.21301.5, )"
|
"version": "[6.0.0-preview.5.21301.5, )"
|
||||||
|
|
|
@ -1,19 +1,28 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "in5PmRkmB8RpF6FzDZSVW/AkI1iTzIqwg3iCCVYnwoId7ig1EsQtej3lqZkrG6LgW4VgvDBp38hFmkELxxuwhA==",
|
"dgSpecHash": "wc6bBI6cy21hG6HJS/seE/8+GBfvWeoemFz2j+L6V5u50CqFyU/VAe0ginIL6UBGNSS6nvjGaVEFS3N6mCCqPw==",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
"projectFilePath": "E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj",
|
||||||
"expectedPackageFiles": [
|
"expectedPackageFiles": [
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\bluetooth\\1.0.0.2\\bluetooth.1.0.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.registry\\6.0.0-preview.5.21301.5\\microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.registry\\6.0.0-preview.5.21301.5\\microsoft.win32.registry.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.windows.sdk.contracts\\10.0.19041.1\\microsoft.windows.sdk.contracts.10.0.19041.1.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-arm64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.linux-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\6.0.0-preview.5.21301.5\\runtime.osx-x64.runtime.native.system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.drawing.common\\5.0.2\\system.drawing.common.5.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\system.io.ports\\6.0.0-preview.5.21301.5\\system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.io.ports\\6.0.0-preview.5.21301.5\\system.io.ports.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.interopservices.windowsruntime\\4.3.0\\system.runtime.interopservices.windowsruntime.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.windowsruntime\\4.7.0\\system.runtime.windowsruntime.4.7.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.runtime.windowsruntime.ui.xaml\\4.6.0\\system.runtime.windowsruntime.ui.xaml.4.6.0.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.accesscontrol\\6.0.0-preview.5.21301.5\\system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.accesscontrol\\6.0.0-preview.5.21301.5\\system.security.accesscontrol.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.principal.windows\\6.0.0-preview.5.21301.5\\system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512",
|
"C:\\Users\\SvenV\\.nuget\\packages\\system.security.principal.windows\\6.0.0-preview.5.21301.5\\system.security.principal.windows.6.0.0-preview.5.21301.5.nupkg.sha512",
|
||||||
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.app.host.win-x64\\3.1.15\\microsoft.netcore.app.host.win-x64.3.1.15.nupkg.sha512"
|
"C:\\Users\\SvenV\\.nuget\\packages\\microsoft.netcore.app.host.win-x64\\3.1.15\\microsoft.netcore.app.host.win-x64.3.1.15.nupkg.sha512"
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
"restore":{"projectUniqueName":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","projectName":"Matrix App","projectPath":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","outputPath":"F:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netcoreapp3.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","dependencies":{"System.IO.Ports":{"target":"Package","version":"[6.0.0-preview.5.21301.5, )"},"System.Management":{"target":"Package","version":"[5.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.NETCore.App.Host.win-x64","version":"[3.1.15, 3.1.15]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App.WindowsForms":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"}}
|
"restore":{"projectUniqueName":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","projectName":"Matrix App","projectPath":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\Matrix App.csproj","outputPath":"E:\\Content\\Schule\\BBS-T1-Ludwigshafen\\Klasse 12\\Info Lk\\bulli\\Neopixel\\App\\Matrix_App_V3.5.3\\Matrix App\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netcoreapp3.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"netcoreapp3.1":{"targetAlias":"netcoreapp3.1","dependencies":{"Bluetooth":{"target":"Package","version":"[1.0.0.2, )"},"System.Drawing.Common":{"target":"Package","version":"[5.0.2, )"},"System.IO.Ports":{"target":"Package","version":"[6.0.0-preview.5.21301.5, )"},"System.Management":{"target":"Package","version":"[5.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.NETCore.App.Host.win-x64","version":"[3.1.15, 3.1.15]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App.WindowsForms":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"}}
|
|
@ -1 +1 @@
|
||||||
16249002820000000
|
16280999400000000
|
Reference in New Issue