mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 13:23:51 -07:00
receiving/sending moved to one thread
This commit is contained in:
parent
985ef1c315
commit
f0ba634221
1 changed files with 16 additions and 2 deletions
|
@ -25,14 +25,21 @@
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
|
||||||
static serial_port sp;
|
static serial_port sp;
|
||||||
|
static UsbCommand txcmd;
|
||||||
|
static bool txcmd_pending = false;
|
||||||
|
|
||||||
void SendCommand(UsbCommand *c) {
|
void SendCommand(UsbCommand *c) {
|
||||||
#if 0
|
#if 0
|
||||||
printf("Sending %d bytes\n", sizeof(UsbCommand));
|
printf("Sending %d bytes\n", sizeof(UsbCommand));
|
||||||
#endif
|
#endif
|
||||||
if (!uart_send(sp,(byte_t*)c,sizeof(UsbCommand))) {
|
/*
|
||||||
ERR("Sending bytes to proxmark failed");
|
if (txcmd_pending) {
|
||||||
|
ERR("Sending command failed, previous command is still pending");
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
while(txcmd_pending);
|
||||||
|
txcmd = *c;
|
||||||
|
txcmd_pending = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct receiver_arg {
|
struct receiver_arg {
|
||||||
|
@ -79,6 +86,13 @@ static void *uart_receiver(void *targ) {
|
||||||
UsbCommandReceived((UsbCommand*)(rx+(i*sizeof(UsbCommand))));
|
UsbCommandReceived((UsbCommand*)(rx+(i*sizeof(UsbCommand))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(txcmd_pending) {
|
||||||
|
if (!uart_send(sp,(byte_t*)&txcmd,sizeof(UsbCommand))) {
|
||||||
|
PrintAndLog("Sending bytes to proxmark failed");
|
||||||
|
}
|
||||||
|
txcmd_pending = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue