Compare commits
No commits in common. "3fe43b6e63bff938cf7975f35361a9fececca62f" and "3659e357f27122accde94d07394a06d605fb8268" have entirely different histories.
3fe43b6e63
...
3659e357f2
@ -1,6 +1,4 @@
|
|||||||
using System.Runtime.InteropServices;
|
using System.Text.RegularExpressions;
|
||||||
using System.Runtime.Versioning;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using CShocker.Devices.Abstract;
|
using CShocker.Devices.Abstract;
|
||||||
using CShocker.Devices.Additional;
|
using CShocker.Devices.Additional;
|
||||||
using CShocker.Devices.APIs;
|
using CShocker.Devices.APIs;
|
||||||
@ -62,7 +60,6 @@ public static class Setup
|
|||||||
AddApisWorkflow(ref c);
|
AddApisWorkflow(ref c);
|
||||||
break;
|
break;
|
||||||
case ConsoleKey.D3:
|
case ConsoleKey.D3:
|
||||||
// ReSharper disable once PossibleInvalidCastExceptionInForeachLoop Only returning OpenShockApi Objects
|
|
||||||
foreach (OpenShockApi api in c.Apis.Where(a => a is OpenShockApi))
|
foreach (OpenShockApi api in c.Apis.Where(a => a is OpenShockApi))
|
||||||
{
|
{
|
||||||
Configuration configuration = c;
|
Configuration configuration = c;
|
||||||
@ -111,12 +108,12 @@ public static class Setup
|
|||||||
{
|
{
|
||||||
Console.WriteLine("Select API:");
|
Console.WriteLine("Select API:");
|
||||||
Console.WriteLine("1) OpenShock (HTTP)");
|
Console.WriteLine("1) OpenShock (HTTP)");
|
||||||
Console.WriteLine("2) OpenShock (Serial Windows Only)");
|
Console.WriteLine("2) OpenShock (Serial)");
|
||||||
Console.WriteLine("3) PiShock (HTTP) NotImplemented"); //TODO
|
Console.WriteLine("3) PiShock (HTTP) NotImplemented"); //TODO
|
||||||
Console.WriteLine("4) PiShock (Serial Windows Only) NotImplemented"); //TODO
|
Console.WriteLine("4) PiShock (Serial) NotImplemented"); //TODO
|
||||||
char selectedChar = Console.ReadKey().KeyChar;
|
char selectedChar = Console.ReadKey().KeyChar;
|
||||||
int selected;
|
int selected = 0;
|
||||||
while (!int.TryParse(selectedChar.ToString(), out selected) || selected < 1 || selected > 4)
|
while (!int.TryParse(selectedChar.ToString(), out selected) || selected < 1 || selected > 3)
|
||||||
selectedChar = Console.ReadKey().KeyChar;
|
selectedChar = Console.ReadKey().KeyChar;
|
||||||
Console.WriteLine();//NewLine after Input
|
Console.WriteLine();//NewLine after Input
|
||||||
|
|
||||||
@ -132,8 +129,6 @@ public static class Setup
|
|||||||
c.Shockers.Add(c.Shockers.Any() ? c.Shockers.Keys.Max() + 1 : 0, shocker);
|
c.Shockers.Add(c.Shockers.Any() ? c.Shockers.Keys.Max() + 1 : 0, shocker);
|
||||||
goto default;
|
goto default;
|
||||||
case 2: //OpenShock (Serial)
|
case 2: //OpenShock (Serial)
|
||||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
||||||
throw new PlatformNotSupportedException("Serial is only supported on Windows.");
|
|
||||||
apiUri = QueryString("OpenShock API-Endpoint (https://api.shocklink.net):", "https://api.shocklink.net");
|
apiUri = QueryString("OpenShock API-Endpoint (https://api.shocklink.net):", "https://api.shocklink.net");
|
||||||
apiKey = QueryString("OpenShock API-Key:","");
|
apiKey = QueryString("OpenShock API-Key:","");
|
||||||
SerialPortInfo serialPort = SelectSerialPort();
|
SerialPortInfo serialPort = SelectSerialPort();
|
||||||
@ -142,11 +137,7 @@ public static class Setup
|
|||||||
c.Shockers.Add(c.Shockers.Any() ? c.Shockers.Keys.Max() + 1 : 0, shocker);
|
c.Shockers.Add(c.Shockers.Any() ? c.Shockers.Keys.Max() + 1 : 0, shocker);
|
||||||
goto default;
|
goto default;
|
||||||
case 3: //PiShock (HTTP)
|
case 3: //PiShock (HTTP)
|
||||||
goto default;
|
|
||||||
case 4: //PiShock (Serial)
|
case 4: //PiShock (Serial)
|
||||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
||||||
throw new PlatformNotSupportedException("Serial is only supported on Windows.");
|
|
||||||
goto default;
|
|
||||||
default:
|
default:
|
||||||
if (api is null)
|
if (api is null)
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
@ -155,19 +146,21 @@ public static class Setup
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[SupportedOSPlatform("windows")]
|
|
||||||
private static SerialPortInfo SelectSerialPort()
|
private static SerialPortInfo SelectSerialPort()
|
||||||
{
|
{
|
||||||
List<SerialPortInfo> serialPorts = SerialHelper.GetSerialPorts();
|
List<SerialPortInfo> serialPorts = SerialHelper.GetSerialPorts();
|
||||||
|
|
||||||
int selectedPort;
|
for(int i = 0; i < serialPorts.Count; i++)
|
||||||
do
|
Console.WriteLine($"{i}) {serialPorts[i]}");
|
||||||
|
|
||||||
|
Console.WriteLine($"Select Serial Port [0-{serialPorts.Count-1}]:");
|
||||||
|
string? selectedPortStr = Console.ReadLine();
|
||||||
|
int selectedPort = -1;
|
||||||
|
while (!int.TryParse(selectedPortStr, out selectedPort) || selectedPort < 0 || selectedPort > serialPorts.Count - 1)
|
||||||
{
|
{
|
||||||
Console.Clear();
|
|
||||||
for(int i = 0; i < serialPorts.Count; i++)
|
|
||||||
Console.WriteLine($"{i}) {serialPorts[i]}");
|
|
||||||
Console.WriteLine($"Select Serial Port [0-{serialPorts.Count-1}]:");
|
Console.WriteLine($"Select Serial Port [0-{serialPorts.Count-1}]:");
|
||||||
} while (!int.TryParse(Console.ReadLine(), out selectedPort) || selectedPort < 0 || selectedPort >= serialPorts.Count);
|
selectedPortStr = Console.ReadLine();
|
||||||
|
}
|
||||||
Console.WriteLine();//NewLine after Input
|
Console.WriteLine();//NewLine after Input
|
||||||
|
|
||||||
return serialPorts[selectedPort];
|
return serialPorts[selectedPort];
|
||||||
@ -187,15 +180,14 @@ public static class Setup
|
|||||||
|
|
||||||
private static int GetShockerId(Dictionary<int, Shocker> shockersDict)
|
private static int GetShockerId(Dictionary<int, Shocker> shockersDict)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Select Shocker:");
|
||||||
List<Shocker> shockers = shockersDict.Values.ToList();
|
List<Shocker> shockers = shockersDict.Values.ToList();
|
||||||
|
for (int i = 0; i < shockers.Count; i++)
|
||||||
|
Console.WriteLine($"{i}) {shockers[i]}");
|
||||||
|
|
||||||
int selectedShockerIndex;
|
int selectedShockerIndex;
|
||||||
do
|
while (!int.TryParse(Console.ReadLine(), out selectedShockerIndex) || selectedShockerIndex < 0 || selectedShockerIndex > shockersDict.Count)
|
||||||
{
|
|
||||||
Console.Clear();
|
|
||||||
Console.WriteLine("Select Shocker:");
|
Console.WriteLine("Select Shocker:");
|
||||||
for (int i = 0; i < shockers.Count; i++)
|
|
||||||
Console.WriteLine($"{i}) {shockers[i]}");
|
|
||||||
} while (!int.TryParse(Console.ReadLine(), out selectedShockerIndex) || selectedShockerIndex < 0 || selectedShockerIndex > shockersDict.Count);
|
|
||||||
Console.WriteLine();//NewLine after Input
|
Console.WriteLine();//NewLine after Input
|
||||||
|
|
||||||
Shocker shocker = shockers[selectedShockerIndex];
|
Shocker shocker = shockers[selectedShockerIndex];
|
||||||
@ -203,49 +195,6 @@ public static class Setup
|
|||||||
return shockersDict.First(s => s.Value == shocker).Key;
|
return shockersDict.First(s => s.Value == shocker).Key;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IntegerRange GetIntegerRange(int min, int max, string? unit = null)
|
|
||||||
{
|
|
||||||
Regex rangeRex = new (@"([0-9]{1,5})\-([0-9]{1,5})");
|
|
||||||
|
|
||||||
string intensityRangeStr;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
intensityRangeStr = QueryString($"Range ({min}-{max}) {(unit is null ? "" : $"in {unit}")}:", "0-100");
|
|
||||||
} while (!rangeRex.IsMatch(intensityRangeStr));
|
|
||||||
return new IntegerRange(short.Parse(rangeRex.Match(intensityRangeStr).Groups[1].Value), short.Parse(rangeRex.Match(intensityRangeStr).Groups[2].Value));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static CS2Event GetTrigger()
|
|
||||||
{
|
|
||||||
string[] eventNames = Enum.GetNames(typeof(CS2Event));
|
|
||||||
|
|
||||||
int selectedIndex;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
Console.Clear();
|
|
||||||
Console.WriteLine("Select CS2 Trigger-Event:");
|
|
||||||
for (int i = 0; i < eventNames.Length; i++)
|
|
||||||
Console.WriteLine($"{i}) {eventNames[i]}");
|
|
||||||
} while (!int.TryParse(Console.ReadLine(), out selectedIndex) || selectedIndex < 0 || selectedIndex >= eventNames.Length);
|
|
||||||
|
|
||||||
return Enum.Parse<CS2Event>(eventNames[selectedIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static ControlAction GetControlAction()
|
|
||||||
{
|
|
||||||
string[] actionNames = Enum.GetNames(typeof(ControlAction));
|
|
||||||
int selectedIndex;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
Console.Clear();
|
|
||||||
Console.WriteLine("Select Action:");
|
|
||||||
for (int i = 0; i < actionNames.Length; i++)
|
|
||||||
Console.WriteLine($"{i}) {actionNames[i]}");
|
|
||||||
} while (!int.TryParse(Console.ReadLine(), out selectedIndex) || selectedIndex < 0 || selectedIndex >= actionNames.Length);
|
|
||||||
|
|
||||||
return Enum.Parse<ControlAction>(actionNames[selectedIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool QueryBool(string queryString, bool defaultResult)
|
private static bool QueryBool(string queryString, bool defaultResult)
|
||||||
{
|
{
|
||||||
Console.WriteLine(queryString);
|
Console.WriteLine(queryString);
|
||||||
@ -260,4 +209,41 @@ public static class Setup
|
|||||||
string? userInput = Console.ReadLine();
|
string? userInput = Console.ReadLine();
|
||||||
return userInput?.Length > 0 ? userInput : defaultResult;
|
return userInput?.Length > 0 ? userInput : defaultResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static IntegerRange GetIntegerRange(int min, int max, string? unit = null)
|
||||||
|
{
|
||||||
|
Regex rangeRex = new (@"([0-9]{1,5})\-([0-9]{1,5})");
|
||||||
|
string intensityRangeStr = "";
|
||||||
|
while(!rangeRex.IsMatch(intensityRangeStr))
|
||||||
|
intensityRangeStr = QueryString($"Range ({min}-{max}) {(unit is null ? "" : $"in {unit}")}:", "0-100");
|
||||||
|
return new IntegerRange(short.Parse(rangeRex.Match(intensityRangeStr).Groups[1].Value), short.Parse(rangeRex.Match(intensityRangeStr).Groups[2].Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CS2Event GetTrigger()
|
||||||
|
{
|
||||||
|
string[] names = Enum.GetNames(typeof(CS2Event));
|
||||||
|
Console.WriteLine("Select CS2 Trigger-Event:");
|
||||||
|
for (int i = 0; i < names.Length; i++)
|
||||||
|
Console.WriteLine($"{i}) {names[i]}");
|
||||||
|
|
||||||
|
int selectedIndex;
|
||||||
|
while (!int.TryParse(Console.ReadLine(), out selectedIndex))
|
||||||
|
Console.WriteLine("Select CS2 Trigger-Event:");
|
||||||
|
|
||||||
|
return Enum.Parse<CS2Event>(names[selectedIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ControlAction GetControlAction()
|
||||||
|
{
|
||||||
|
string[] names = Enum.GetNames(typeof(ControlAction));
|
||||||
|
Console.WriteLine("Select Action:");
|
||||||
|
for (int i = 0; i < names.Length; i++)
|
||||||
|
Console.WriteLine($"{i}) {names[i]}");
|
||||||
|
|
||||||
|
int selectedIndex;
|
||||||
|
while (!int.TryParse(Console.ReadLine(), out selectedIndex))
|
||||||
|
Console.WriteLine("Select Action:");
|
||||||
|
|
||||||
|
return Enum.Parse<ControlAction>(names[selectedIndex]);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user