C#-Library to Interact with ESP-Remote Shockcollars
glax
ac19e20fb7
Get OpenShock Shockers from API. Save Shockers for PiShock and OpenShock in different structs Implement Action Queue, to avoid synchronous actions getting lost. Moved SerialPortInfo to own file Created ShockerJsonConverter Better separation of Devices/APIs and Shockers |
||
---|---|---|
.idea/.idea.CShocker/.idea | ||
CShocker | ||
TestApp | ||
.gitignore | ||
CShocker.sln | ||
CShocker.sln.DotSettings | ||
LICENSE | ||
README.md |
Library to interact with Shock-Collars that are remotely controllable via ESP32-Boards.
Usage
public static void Main(string[] args){
List<string> shockerIds = new();
IntensityRange intensityRange = new IntensityRange(30, 50);
DurationRange durationRange = new DurationRange(1000, 2000);
string apiKey = ":)";
OpenShockHttp openShockHttp = new OpenShockHttp(shockerIds, intensityRange, durationRange, apiKey);
openShockHttp.ShockerIds.AddRange(openShockHttp.GetShockers());
string username = "username";
string shareCode = "sharecode";
PiShockHttp piShockHttp = new PiShockHttp(shockerIds, intensityRange, durationRange, apiKey, username, shareCode, apiUri);
ControlAction action = ControlAction.Shock;
openShockHttp.Control(action, shockerIds.First(), 20, 1000);
piShockHttp.Control(action);
}
Shocker.Control
Control(ControlAction action, string? shockerId = null, int? intensity = null, int? duration = null)
If shockerId
is null
, all IDs will be used. If intensity
or duration
are null
, a random value within the
configured range will be used.
ControlAction
From here
Variables
ApiKey
ShockerIds
List of Shocker-Ids, comma seperated.
[ "ID-1-asdasd", "ID-2-fghfgh" ]
OpenShockHttp also can retrieve IDs automatically.
Intensity Range
in percent
0-100
Duration Range
in ms
0-30000
OpenShock0-15000
PiShock
Username (PiShockHttp only)
For PiShock (HTTP) get information here
Sharecode (PiShockHttp only)
For PiShock (HTTP) get information here