From: Thomas Pietrzak Date: Wed, 7 Mar 2012 09:17:51 +0000 (+0000) Subject: Handle different baudrates, static library X-Git-Url: https://git.thomaspietrzak.com/?a=commitdiff_plain;h=eea242fdb12af8b929a64d0c9b57974e38e06e99;p=arduinoserial.git Handle different baudrates, static library git-svn-id: svn+ssh://thomaspietrzak.com/var/svn/rep@50 47cf9a05-e0a8-4ed5-9e9b-101a649bc004 --- diff --git a/ArduinoSerial/ArduinoSerial.suo b/ArduinoSerial/ArduinoSerial.suo index 71bf454..b6522da 100644 Binary files a/ArduinoSerial/ArduinoSerial.suo and b/ArduinoSerial/ArduinoSerial.suo differ diff --git a/ArduinoSerial/ArduinoSerial/ArduinoSerial.vcxproj b/ArduinoSerial/ArduinoSerial/ArduinoSerial.vcxproj index 588b847..963a0c6 100644 --- a/ArduinoSerial/ArduinoSerial/ArduinoSerial.vcxproj +++ b/ArduinoSerial/ArduinoSerial/ArduinoSerial.vcxproj @@ -17,12 +17,12 @@ - DynamicLibrary + StaticLibrary true Unicode - DynamicLibrary + StaticLibrary false true Unicode diff --git a/Serial.cpp b/Serial.cpp index 6474450..0852327 100644 --- a/Serial.cpp +++ b/Serial.cpp @@ -1,6 +1,6 @@ #include "Serial.hpp" -Serial::Serial(const char *) +Serial::Serial(const char *, int baudrate) :_connected(false) { } diff --git a/Serial.hpp b/Serial.hpp index da69a33..61f9a0b 100644 --- a/Serial.hpp +++ b/Serial.hpp @@ -7,7 +7,8 @@ class Serial { public: //Initialize Serial communication with the given COM port - __declspec(dllexport) Serial(const char *portName); + //baudrate among 300 1200 2400 4800 9600 14400 19200 38400 57600 115200 + __declspec(dllexport) Serial(const char *portName, int baudrate = 57600); //Close the connection //NOTA: for some reason you can't connect again before exiting diff --git a/SerialWindows.cpp b/SerialWindows.cpp index 04a27ad..872a712 100644 --- a/SerialWindows.cpp +++ b/SerialWindows.cpp @@ -7,7 +7,7 @@ using namespace std; #include #endif -SerialWindows::SerialWindows(const char *portName) +SerialWindows::SerialWindows(const char *portName, int baudrate) :Serial(portName) { //Try to connect to the given port throuh CreateFile @@ -54,7 +54,42 @@ SerialWindows::SerialWindows(const char *portName) else { //Define serial connection parameters for the arduino board - dcbSerialParams.BaudRate=CBR_57600; + switch(baudrate) + { + case 300: + dcbSerialParams.BaudRate=CBR_300; + break; + case 1200: + dcbSerialParams.BaudRate=CBR_1200; + break; + case 2400: + dcbSerialParams.BaudRate=CBR_2400; + break; + case 4800: + dcbSerialParams.BaudRate=CBR_4800; + break; + case 9600: + dcbSerialParams.BaudRate=CBR_9600; + break; + case 14400: + dcbSerialParams.BaudRate=CBR_14400; + break; + case 19200: + dcbSerialParams.BaudRate=CBR_19200; + break; + case 38400: + dcbSerialParams.BaudRate=CBR_38400; + break; + case 57600: + dcbSerialParams.BaudRate=CBR_57600; + break; + case 115200: + dcbSerialParams.BaudRate=CBR_115200; + break; + default: + dcbSerialParams.BaudRate=CBR_57600; + break; + } dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT; dcbSerialParams.Parity=NOPARITY; diff --git a/SerialWindows.hpp b/SerialWindows.hpp index 0d2b112..f3c056e 100644 --- a/SerialWindows.hpp +++ b/SerialWindows.hpp @@ -9,7 +9,7 @@ class SerialWindows : public Serial { public: //Initialize Serial communication with the given COM port - __declspec(dllexport) SerialWindows(const char *portName); + __declspec(dllexport) SerialWindows(const char *portName, int baudrate = 57600); //Close the connection //NOTA: for some reason you can't connect again before exiting //the program and running it again