arduino stuffs
Diffstat (limited to 'car_driver/godot/src/gdserial.cpp')
-rw-r--r--car_driver/godot/src/gdserial.cpp111
1 files changed, 0 insertions, 111 deletions
diff --git a/car_driver/godot/src/gdserial.cpp b/car_driver/godot/src/gdserial.cpp
deleted file mode 100644
index 3b5a9ea..0000000
--- a/car_driver/godot/src/gdserial.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-#include "gdserial.h"
-
-#define DEBUG_LOG 0
-
-#include <cstdio>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <termios.h>
-#include <unistd.h>
-
-using namespace godot;
-
-void GDSerial::_register_methods() {
- register_method("start", &GDSerial::start);
- register_method("end", &GDSerial::end);
- register_method("send", &GDSerial::send);
- register_method("read_string", &GDSerial::read_string);
- register_method("get_available", &GDSerial::get_available);
-}
-
-GDSerial::GDSerial() {}
-
-GDSerial::~GDSerial() {}
-
-void GDSerial::_init() {}
-
-bool GDSerial::start(String port, int baud_rate) {
- const char *port_c = port.utf8().get_data();
-#if DEBUG_LOG
- printf("GDSerial: Trying to open %s at baudrate %s.\n", port_c, baud_rate);
-#endif
- serial_port = open(port_c, O_RDWR | O_NOCTTY | O_NDELAY);
- struct termios tty;
- struct termios tty_old;
- memset(&tty, 0, sizeof tty);
- if (tcgetattr(serial_port, &tty) != 0) {
-#if DEBUG_LOG
- printf("GDSerial: Failed to get current serial parameters.\n");
-#endif
- return false;
- }
- tty_old = tty;
- cfsetospeed(&tty, (speed_t)baud_rate);
- cfsetispeed(&tty, (speed_t)baud_rate);
-
- tty.c_cflag &= ~PARENB;
- tty.c_cflag &= ~CSTOPB;
- tty.c_cflag |= CS8;
- tty.c_cflag &= ~CRTSCTS;
- tty.c_cflag |= CREAD | CLOCAL;
- tty.c_lflag &= ~ICANON;
- tty.c_lflag &= ~ECHO;
- tty.c_lflag &= ~ECHOE;
- tty.c_lflag &= ~ECHONL;
- tty.c_lflag &= ~ISIG;
- tty.c_iflag &= ~(IXON | IXOFF | IXANY);
- tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL);
- tty.c_oflag &= ~OPOST;
- tty.c_oflag &= ~ONLCR;
- tty.c_cc[VTIME] = 0;
- tty.c_cc[VMIN] = 0;
-
- cfmakeraw(&tty);
- tcflush(serial_port, TCIFLUSH);
-
- if (tcsetattr(serial_port, TCSANOW, &tty) != 0) {
-#if DEBUG_LOG
- printf("GDSerial: Could not set serial port parameters.\n");
-#endif
- return false;
- }
- fcntl(serial_port, F_SETFL, FNDELAY);
-#if DEBUG_LOG
- printf("GDSerial: %s opened.\n", port_c);
-#endif
- return true;
-}
-
-void GDSerial::end() {
-
- close(serial_port);
- serial_port = 0;
-
-#if DEBUG_LOG
- printf("GDSerial: Serial port closed.\n");
-#endif
-}
-
-void GDSerial::send(String text) {
- const char *text_c = text.utf8().get_data();
- write(serial_port, text_c, text.length());
-}
-
-String GDSerial::read_string() {
- String text = "";
-
- unsigned char buf[4096];
- int n;
- n = read(serial_port, &buf, sizeof(buf));
- for (int x = 0; x < n; x++) {
- text += buf[x];
- }
- return text;
-}
-
-int GDSerial::get_available() {
- int bytes_available = 0;
- ioctl(serial_port, FIONREAD, &bytes_available);
- return bytes_available;
-}