/*
- * Proxmark3 generic uart / rs232/ serial port library
+ * Generic uart / rs232/ serial port library
*
- * Copyright (c) 2012, Roel Verdult
+ * Copyright (c) 2013, Roel Verdult
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
*
*/
-#ifndef _PROXMARK3_RS232_H_
-#define _PROXMARK3_RS232_H_
+#ifndef _RS232_H_
+#define _RS232_H_
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <limits.h>
#include <sys/time.h>
+ #include <errno.h>
#else
#include <windows.h>
#endif
+typedef enum {
+ SP_INVALID = 0x00, // invalid value, error occured
+ SP_NONE = 0x01, // no parity (default)
+ SP_EVEN = 0x02, // even parity
+ SP_ODD = 0x03 // odd parity
+} serial_port_parity;
+
// Define shortcut to types to make code more readable
typedef void* serial_port;
#define INVALID_SERIAL_PORT (void*)(~1)
serial_port uart_open(const char* pcPortName);
void uart_close(const serial_port sp);
-void uart_set_speed(serial_port sp, const uint32_t uiPortSpeed);
+bool uart_set_speed(serial_port sp, const uint32_t uiPortSpeed);
uint32_t uart_get_speed(const serial_port sp);
+bool uart_set_parity(serial_port sp, serial_port_parity spp);
+serial_port_parity uart_get_parity(const serial_port sp);
+
bool uart_receive(const serial_port sp, byte_t* pbtRx, size_t* pszRxLen);
bool uart_send(const serial_port sp, const byte_t* pbtTx, const size_t szTxLen);