Fix Converters
This commit is contained in:
parent
f593efda62
commit
8a640491cb
@ -7,7 +7,7 @@
|
|||||||
<Authors>Glax</Authors>
|
<Authors>Glax</Authors>
|
||||||
<RepositoryUrl>https://github.com/C9Glax/CShocker</RepositoryUrl>
|
<RepositoryUrl>https://github.com/C9Glax/CShocker</RepositoryUrl>
|
||||||
<RepositoryType>git</RepositoryType>
|
<RepositoryType>git</RepositoryType>
|
||||||
<Version>2.1.1</Version>
|
<Version>2.2.0</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
using CShocker.Devices.Abstract;
|
using CShocker.Devices.Abstract;
|
||||||
using CShocker.Devices.APIs;
|
using CShocker.Devices.APIs;
|
||||||
using CShocker.Ranges;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
@ -16,33 +15,16 @@ public class ApiJsonConverter : JsonConverter
|
|||||||
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
|
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
|
||||||
{
|
{
|
||||||
JObject jo = JObject.Load(reader);
|
JObject jo = JObject.Load(reader);
|
||||||
DeviceApi? apiType = (DeviceApi?)jo.SelectToken("ApiType")?.Value<byte>();
|
DeviceApi apiType = (DeviceApi)jo.SelectToken("ApiType")!.Value<byte>();
|
||||||
|
|
||||||
switch (apiType)
|
switch (apiType)
|
||||||
{
|
{
|
||||||
case DeviceApi.OpenShockHttp:
|
case DeviceApi.OpenShockHttp:
|
||||||
return new OpenShockHttp(
|
return jo.ToObject<OpenShockHttp>()!;
|
||||||
jo.SelectToken("IntensityRange")!.ToObject<IntensityRange>()!,
|
|
||||||
jo.SelectToken("DurationRange")!.ToObject<DurationRange>()!,
|
|
||||||
jo.SelectToken("ApiKey")!.Value<string>()!,
|
|
||||||
jo.SelectToken("Endpoint")!.Value<string>()!
|
|
||||||
);
|
|
||||||
case DeviceApi.OpenShockSerial:
|
case DeviceApi.OpenShockSerial:
|
||||||
return new OpenShockSerial(
|
return jo.ToObject<OpenShockSerial>()!;
|
||||||
jo.SelectToken("IntensityRange")!.ToObject<IntensityRange>()!,
|
|
||||||
jo.SelectToken("DurationRange")!.ToObject<DurationRange>()!,
|
|
||||||
jo.SelectToken("SerialPortI")!.ToObject<SerialPortInfo>()!,
|
|
||||||
jo.SelectToken("ApiKey")!.Value<string>()!,
|
|
||||||
jo.SelectToken("Endpoint")!.Value<string>()!
|
|
||||||
);
|
|
||||||
case DeviceApi.PiShockHttp:
|
case DeviceApi.PiShockHttp:
|
||||||
return new PiShockHttp(
|
return jo.ToObject<PiShockHttp>()!;
|
||||||
jo.SelectToken("IntensityRange")!.ToObject<IntensityRange>()!,
|
|
||||||
jo.SelectToken("DurationRange")!.ToObject<DurationRange>()!,
|
|
||||||
jo.SelectToken("ApiKey")!.Value<string>()!,
|
|
||||||
jo.SelectToken("Username")!.Value<string>()!,
|
|
||||||
jo.SelectToken("Endpoint")!.Value<string>()!
|
|
||||||
);
|
|
||||||
case DeviceApi.PiShockSerial:
|
case DeviceApi.PiShockSerial:
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
default:
|
default:
|
||||||
|
12
CShocker/Ranges/IntegerRange.cs
Normal file
12
CShocker/Ranges/IntegerRange.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace CShocker.Ranges;
|
||||||
|
|
||||||
|
public readonly struct IntegerRange
|
||||||
|
{
|
||||||
|
public readonly int Min, Max;
|
||||||
|
|
||||||
|
public IntegerRange(int min, int max)
|
||||||
|
{
|
||||||
|
this.Min = min;
|
||||||
|
this.Max = max;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,4 @@
|
|||||||
using CShocker.Devices.Abstract;
|
using CShocker.Shockers.Abstract;
|
||||||
using CShocker.Shockers.Abstract;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
@ -17,22 +16,11 @@ public class ShockerJsonConverter : JsonConverter
|
|||||||
JObject jo = JObject.Load(reader);
|
JObject jo = JObject.Load(reader);
|
||||||
if (jo.ContainsKey("model")) //OpenShockShocker
|
if (jo.ContainsKey("model")) //OpenShockShocker
|
||||||
{
|
{
|
||||||
return new OpenShockShocker(
|
return jo.ToObject<OpenShockShocker>(serializer)!;
|
||||||
jo.SelectToken("api")!.ToObject<Api>()!,
|
|
||||||
jo.SelectToken("name")!.Value<string>()!,
|
|
||||||
jo.SelectToken("id")!.Value<string>()!,
|
|
||||||
jo.SelectToken("rfId")!.Value<short>(),
|
|
||||||
(OpenShockShocker.OpenShockModel)jo.SelectToken("model")!.Value<byte>(),
|
|
||||||
jo.SelectToken("createdOn")!.Value<DateTime>(),
|
|
||||||
jo.SelectToken("isPaused")!.Value<bool>()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else //PiShockShocker
|
else //PiShockShocker
|
||||||
{
|
{
|
||||||
return new PiShockShocker(
|
return jo.ToObject<PiShockShocker>(serializer)!;
|
||||||
jo.SelectToken("api")!.ToObject<Api>()!,
|
|
||||||
jo.SelectToken("Code")!.Value<string>()!
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using CShocker.Devices.Abstract;
|
using CShocker.Devices.Additional;
|
||||||
using CShocker.Devices.Additional;
|
|
||||||
using CShocker.Devices.APIs;
|
using CShocker.Devices.APIs;
|
||||||
using CShocker.Ranges;
|
using CShocker.Ranges;
|
||||||
using CShocker.Shockers;
|
using CShocker.Shockers;
|
||||||
@ -14,9 +13,9 @@ string? apiKey = Console.ReadLine();
|
|||||||
while(apiKey is null || apiKey.Length < 1)
|
while(apiKey is null || apiKey.Length < 1)
|
||||||
apiKey = Console.ReadLine();
|
apiKey = Console.ReadLine();
|
||||||
|
|
||||||
/*
|
|
||||||
OpenShockHttp openShockHttp = new (new IntensityRange(30, 50), new DurationRange(1000, 1000), apiKey, logger: logger);
|
OpenShockHttp openShockHttp = new (new IntensityRange(30, 50), new DurationRange(1000, 1000), apiKey, logger: logger);
|
||||||
OpenShockShocker shocker = openShockHttp.GetShockers(apiKey).First();
|
OpenShockShocker shocker = openShockHttp.GetShockers().First();
|
||||||
shocker.Control(ControlAction.Vibrate, 20, 1000);
|
shocker.Control(ControlAction.Vibrate, 20, 1000);
|
||||||
|
|
||||||
File.WriteAllText("shockers.json", JsonConvert.SerializeObject(shocker));
|
File.WriteAllText("shockers.json", JsonConvert.SerializeObject(shocker));
|
||||||
@ -25,9 +24,9 @@ Thread.Sleep(1100); //Wait for previous to end
|
|||||||
deserialized.Control(ControlAction.Vibrate, 20, 1000);
|
deserialized.Control(ControlAction.Vibrate, 20, 1000);
|
||||||
shocker.Dispose();
|
shocker.Dispose();
|
||||||
deserialized.Dispose();
|
deserialized.Dispose();
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
#pragma warning disable CA1416
|
#pragma warning disable CA1416
|
||||||
List<SerialPortInfo> serialPorts = SerialHelper.GetSerialPorts();
|
List<SerialPortInfo> serialPorts = SerialHelper.GetSerialPorts();
|
||||||
|
|
||||||
@ -53,5 +52,6 @@ File.WriteAllText("shockers.json", JsonConvert.SerializeObject(shocker));
|
|||||||
OpenShockShocker deserialized = JsonConvert.DeserializeObject<OpenShockShocker>(File.ReadAllText("shockers.json"), new ApiJsonConverter())!;
|
OpenShockShocker deserialized = JsonConvert.DeserializeObject<OpenShockShocker>(File.ReadAllText("shockers.json"), new ApiJsonConverter())!;
|
||||||
shocker.Dispose();
|
shocker.Dispose();
|
||||||
deserialized.Dispose();
|
deserialized.Dispose();
|
||||||
|
*/
|
||||||
|
|
||||||
logger.Dispose();
|
logger.Dispose();
|
Loading…
x
Reference in New Issue
Block a user