Skip to content

Commit 2458b33

Browse files
committed
API 1.0.2
* Add Binary TX to JSON API
1 parent 85ceabe commit 2458b33

File tree

4 files changed

+83
-4
lines changed

4 files changed

+83
-4
lines changed

Source Code/esprfidtool/api.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
void apiTX(String apiBIN, int apitxdelayus, int apitxdelayms) {
2+
wg.pause();
3+
digitalWrite(DATA0, HIGH);
4+
pinMode(DATA0,OUTPUT);
5+
digitalWrite(DATA1, HIGH);
6+
pinMode(DATA1,OUTPUT);
7+
for (int i=0; i<=apiBIN.length(); i++) {
8+
if (apiBIN.charAt(i) == '0') {
9+
digitalWrite(DATA0, LOW);
10+
delayMicroseconds(apitxdelayus);
11+
digitalWrite(DATA0, HIGH);
12+
}
13+
else if (apiBIN.charAt(i) == '1') {
14+
digitalWrite(DATA1, LOW);
15+
delayMicroseconds(apitxdelayus);
16+
digitalWrite(DATA1, HIGH);
17+
}
18+
delay(apitxdelayms);
19+
}
20+
yield();
21+
apiBIN="";
22+
pinMode(DATA0, INPUT);
23+
pinMode(DATA1, INPUT);
24+
wg.clear();
25+
}
26+
127
void apiinfo(int prettify) {
228

329
FSInfo fs_info;

Source Code/esprfidtool/api_server.h

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,53 @@
1+
server.on("/api/tx/bin", [](){
2+
String api_binary="";
3+
int api_txdelayus=txdelayus;
4+
int api_txdelayms=txdelayms;
5+
int prettify=0;
6+
if (server.hasArg("binary")) {
7+
api_binary=(server.arg("binary"));
8+
}
9+
if (server.hasArg("pulsewidth")) {
10+
api_txdelayus=(server.arg("pulsewidth").toInt());
11+
}
12+
if (server.hasArg("interval")) {
13+
api_txdelayms=(server.arg("interval").toInt());
14+
}
15+
if (server.hasArg("prettify")) {
16+
prettify=1;
17+
}
18+
19+
const size_t bufferSize = JSON_ARRAY_SIZE(4) + JSON_OBJECT_SIZE(4);
20+
DynamicJsonBuffer jsonAPIbuffer(bufferSize);
21+
JsonObject& apitxbin = jsonAPIbuffer.createObject();
22+
23+
apitxbin["Device"] = "ESP-RFID-Tool";
24+
apitxbin["Firmware"] = version;
25+
apitxbin["API"] = APIversion;
26+
27+
JsonObject& apitxbinary = apitxbin.createNestedObject("Transmission");
28+
apitxbinary["Bit Count"]=api_binary.length();
29+
apitxbinary["Binary"]=api_binary;
30+
apitxbinary["Wiegand Data Pulse Width"]=String()+api_txdelayus+"us";
31+
apitxbinary["Wiegand Data Interval"]=String()+api_txdelayms+"ms";
32+
33+
if (api_binary=="") {
34+
server.send(200, "application/json", F("Binary to tx not specified."));
35+
}
36+
else {
37+
String API_Response="";
38+
if (prettify==1) {
39+
apitxbin.prettyPrintTo(API_Response);
40+
}
41+
else {
42+
apitxbin.printTo(API_Response);
43+
}
44+
server.send(200, "application/json", API_Response);
45+
delay(50);
46+
apiTX(api_binary,api_txdelayus,api_txdelayms);
47+
}
48+
jsonAPIbuffer.clear();
49+
});
50+
151
server.on("/api/help", [](){
252
String apihelpHTML=String()+F(
353
"<a href=\"/\"><- BACK TO INDEX</a><br><br>"
@@ -15,7 +65,10 @@ server.on("/api/help", [](){
1565
"<b><a href=\"/api/listlogs?prettify=1\">/api/listlogs</a></b><br>"
1666
"<small>Usage: [server]/api/listlogs</small><br>"
1767
"<br>"
18-
"<b>Optional Arguments</b><br>"
68+
"<b><a href=\"/api/tx/bin?binary=0001&pulsewidth=40&interval=2&prettify=1\">/api/tx/bin</a></b><br>"
69+
"<small>Usage: [server]/api/tx/bin?binary=[binary]&pulsewidth=[delay_us]&interval=[delay_ms]</small><br>"
70+
"<br>"
71+
"<b>Universal Arguments</b><br>"
1972
"<small>Prettify: [api-url]?[args]<u>&prettify=1</u></small><br>"
2073
);
2174
server.send(200, "text/html", apihelpHTML);

Source Code/esprfidtool/esprfidtool.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ DNSServer dnsServer;
5959

6060
HTTPClient http;
6161

62-
#include "api.h"
63-
6462
const char* update_path = "/update";
6563
int accesspointmode;
6664
char ssid[32];
@@ -604,6 +602,8 @@ void LogWiegand(WiegandNG &tempwg) {
604602
f.close(); //done
605603
}
606604

605+
#include "api.h"
606+
607607
void settingsPage()
608608
{
609609
if(!server.authenticate(update_username, update_password))

Source Code/esprfidtool/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
String version = "1.2.0";
2-
String APIversion = "1.0.1";
2+
String APIversion = "1.0.2";

0 commit comments

Comments
 (0)