summaryrefslogtreecommitdiff
path: root/Source/serial.h
diff options
context:
space:
mode:
authormanasdas172018-06-02 10:59:17 +0530
committermanasdas172018-06-02 10:59:17 +0530
commitee305e1716587a04a14b5d0369426abf7faea118 (patch)
tree06c2437ac7d48daa043b710cb24e733de10dcc27 /Source/serial.h
downloadOpenModelicaEmbedded-1-ee305e1716587a04a14b5d0369426abf7faea118.tar.gz
OpenModelicaEmbedded-1-ee305e1716587a04a14b5d0369426abf7faea118.tar.bz2
OpenModelicaEmbedded-1-ee305e1716587a04a14b5d0369426abf7faea118.zip
Add initial working verison of OpenModelicaArduino
Diffstat (limited to 'Source/serial.h')
-rwxr-xr-xSource/serial.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/Source/serial.h b/Source/serial.h
new file mode 100755
index 0000000..e49b4a7
--- /dev/null
+++ b/Source/serial.h
@@ -0,0 +1,57 @@
+#ifndef __serial_h__
+#define __serial_h__
+
+#include <stdint.h>
+
+#if defined(LINUX)
+#include <termios.h>
+#elif defined(MACOSX)
+#include <termios.h>
+#elif defined(WINDOWS)
+#include <windows.h>
+#endif
+
+#include <vector>
+#include <string>
+#include <sstream>
+#include <algorithm>
+
+using namespace std;
+
+class Serial
+{
+public:
+ Serial();
+ ~Serial();
+ vector<string> port_list();
+ int Open(const string& name);
+ string error_message();
+ int Set_baud(int baud);
+ int Set_baud(const string& baud_str);
+ int Read(void *ptr, int count);
+ int Write(const void *ptr, int len);
+ int Input_wait(int msec);
+ void Input_discard(void);
+ int Set_control(int dtr, int rts);
+ void Output_flush();
+ void Close(void);
+ int Is_open(void);
+ string get_name(void);
+private:
+ int port_is_open;
+ string port_name;
+ int baud_rate;
+ string error_msg;
+private:
+#if defined(LINUX) || defined(MACOSX)
+ int port_fd;
+ struct termios settings_orig;
+ struct termios settings;
+#elif defined(WINDOWS)
+ HANDLE port_handle;
+ COMMCONFIG port_cfg_orig;
+ COMMCONFIG port_cfg;
+#endif
+};
+
+#endif // __serial_h__