X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/e17660d5f7dfa44447068e7897ee6454157d2ae1..afdcb8c159a73aba95a017f1cfec98e8fa2b93c1:/client/comms.h diff --git a/client/comms.h b/client/comms.h new file mode 100644 index 00000000..75adeea1 --- /dev/null +++ b/client/comms.h @@ -0,0 +1,45 @@ +#ifndef COMMS_H_ +#define COMMS_H_ + +#include +#include + +#include "usb_cmd.h" +#include "uart.h" + +#ifndef CMD_BUFFER_SIZE +#define CMD_BUFFER_SIZE 50 +#endif + +#ifndef MAX_DEMOD_BUF_LEN +#define MAX_DEMOD_BUF_LEN (1024*128) +#endif + +#ifndef BIGBUF_SIZE +#define BIGBUF_SIZE 40000 +#endif + +typedef struct { + // If TRUE, continue running the uart_receiver thread. + bool run; + + // Lock around serial port receives + pthread_mutex_t recv_lock; +} receiver_arg; + + +// Wrappers required as static variables can only be used in one file. +void SetSerialPort(serial_port* new_port); +serial_port* GetSerialPort(); +void SetOffline(bool new_offline); +bool IsOffline(); + +void SendCommand(UsbCommand *c); +void *uart_receiver(void *targ); +void UsbCommandReceived(UsbCommand *UC); +void clearCommandBuffer(); +bool WaitForResponseTimeoutW(uint64_t cmd, UsbCommand* response, size_t ms_timeout, bool show_warning); +bool WaitForResponseTimeout(uint64_t cmd, UsbCommand* response, size_t ms_timeout); +bool WaitForResponse(uint64_t cmd, UsbCommand* response); + +#endif // COMMS_H_