diff options
Diffstat (limited to 'navit/support')
-rw-r--r-- | navit/support/win32/Makefile.am | 3 | ||||
-rw-r--r-- | navit/support/win32/serial_io.c | 130 | ||||
-rw-r--r-- | navit/support/win32/serial_io.h | 35 |
3 files changed, 101 insertions, 67 deletions
diff --git a/navit/support/win32/Makefile.am b/navit/support/win32/Makefile.am index 0b71ae19f..aee4350cb 100644 --- a/navit/support/win32/Makefile.am +++ b/navit/support/win32/Makefile.am @@ -1,4 +1,5 @@ include $(top_srcdir)/Makefile.inc AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_win32 noinst_LTLIBRARIES = libsupport_win32.la -libsupport_win32_la_SOURCES = mmap.c win32_init.c sys/mman.h ConvertUTF.c ConvertUTF.h +libsupport_win32_la_SOURCES = mmap.c win32_init.c sys/mman.h ConvertUTF.c ConvertUTF.h serial_io.c addwinsock.c + diff --git a/navit/support/win32/serial_io.c b/navit/support/win32/serial_io.c index fef6d3833..643201c5b 100644 --- a/navit/support/win32/serial_io.c +++ b/navit/support/win32/serial_io.c @@ -3,24 +3,24 @@ #include "serial_io.h" #include "debug.h" -//***************************************************************************
-/** @fn int serial_io_init( const char* port, const char* strsettings )
-*****************************************************************************
-* @b Description: initialise a serial port communication
-*****************************************************************************
-* @param port : port name
-* example 'COM7'
-* @param strsettings : port settings
-* example ; 'baud=115200 parity=N data=8 stop=1'
-*****************************************************************************
-* @return file descriptor
-* -1 if error
-*****************************************************************************
-**/
+//*************************************************************************** +/** @fn int serial_io_init( const char* port, const char* strsettings ) +***************************************************************************** +* @b Description: initialise a serial port communication +***************************************************************************** +* @param port : port name +* example 'COM7' +* @param strsettings : port settings +* example ; 'baud=115200 parity=N data=8 stop=1' +***************************************************************************** +* @return file descriptor +* -1 if error +***************************************************************************** +**/ int serial_io_init( const char* port, const char* strsettings ) { HANDLE hCom = NULL; -
+ char strport[16]; snprintf( strport, sizeof( strport ), "\\\\.\\%s", port ); @@ -48,7 +48,7 @@ int serial_io_init( const char* port, const char* strsettings ) 0, NULL ); - dbg(1, "return (fd) : '-1' : serial_io_init error : '%s'\n", lpMsgBuf);
+ dbg(1, "return (fd) : '-1' : serial_io_init error : '%s'\n", lpMsgBuf); LocalFree( lpMsgBuf ); // Free the buffer. return -1; @@ -73,34 +73,34 @@ int serial_io_init( const char* port, const char* strsettings ) SetCommTimeouts(hCom, &sCT); - dbg(1, "serial_io_init return (fd) : '%d'\n", (int)hCom);
-
+ dbg(1, "serial_io_init return (fd) : '%d'\n", (int)hCom); + return (int)hCom; } -//***************************************************************************
-/** @fn int serial_io_read( int fd, char * buffer, int buffer_size )
-*****************************************************************************
-* @b Description: Read bytes on the serial port
-*****************************************************************************
-* @param fd : file descriptor
-* @param buffer : buffer for data
-* @param buffer_size : size in byte of the buffer
-*****************************************************************************
-* @return number of bytes read
-*****************************************************************************
-* @remarks buffer must be allocated by the caller
-*****************************************************************************
-**/
+//*************************************************************************** +/** @fn int serial_io_read( int fd, char * buffer, int buffer_size ) +***************************************************************************** +* @b Description: Read bytes on the serial port +***************************************************************************** +* @param fd : file descriptor +* @param buffer : buffer for data +* @param buffer_size : size in byte of the buffer +***************************************************************************** +* @return number of bytes read +***************************************************************************** +* @remarks buffer must be allocated by the caller +***************************************************************************** +**/ int serial_io_read( int fd, char * buffer, int buffer_size ) { - dbg(1, "serial_io_read fd = %d buffer_size = %d\n", fd, buffer_size);
-
+ dbg(1, "serial_io_read fd = %d buffer_size = %d\n", fd, buffer_size); + DWORD dwBytesIn = 0; if (fd <= 0) { - dbg(0, "serial_io_read return (dwBytesIn) : '0'\n");
+ dbg(0, "serial_io_read return (dwBytesIn) : '0'\n"); *buffer = 0; return 0; } @@ -111,36 +111,36 @@ int serial_io_read( int fd, char * buffer, int buffer_size ) { buffer[dwBytesIn] = 0; } - else
+ else { - dwBytesIn = 0;
+ dwBytesIn = 0; buffer[0] = 0; } - if (dwBytesIn > 0)
- {
- dbg(1,"GPS < %s\n",buffer );
- }
+ if (dwBytesIn > 0) + { + dbg(1,"GPS < %s\n",buffer ); + } buffer[buffer_size - 1] = 0; - dbg(2, "serial_io_read return (dwBytesIn) : '%d'\n", dwBytesIn);
+ dbg(2, "serial_io_read return (dwBytesIn) : '%d'\n", dwBytesIn); return dwBytesIn; } -//***************************************************************************
-/** @fn int serial_io_write(int fd, const char * buffer)
-*****************************************************************************
-* @b Description: Write bytes on the serial port
-*****************************************************************************
-* @param fd : file descriptor
-* @param buffer : data buffer (null terminated)
-*****************************************************************************
-* @return number of bytes written
-*****************************************************************************
-**/
+//*************************************************************************** +/** @fn int serial_io_write(int fd, const char * buffer) +***************************************************************************** +* @b Description: Write bytes on the serial port +***************************************************************************** +* @param fd : file descriptor +* @param buffer : data buffer (null terminated) +***************************************************************************** +* @return number of bytes written +***************************************************************************** +**/ int serial_io_write(int fd, const char * buffer) { - dbg(1, "serial_io_write fd = %d buffer = '%s'\n",fd, buffer);
-
+ dbg(1, "serial_io_write fd = %d buffer = '%s'\n",fd, buffer); + DWORD dwBytesOut = 0; WriteFile((HANDLE)fd, buffer, strlen(buffer), &dwBytesOut, NULL); @@ -148,18 +148,18 @@ int serial_io_write(int fd, const char * buffer) return dwBytesOut; } -//***************************************************************************
-/** @fn void serial_io_shutdown(int fd )
-*****************************************************************************
-* @b Description: Terminate serial communication
-*****************************************************************************
-* @param fd : file descriptor
-*****************************************************************************
-**/
+//*************************************************************************** +/** @fn void serial_io_shutdown(int fd ) +***************************************************************************** +* @b Description: Terminate serial communication +***************************************************************************** +* @param fd : file descriptor +***************************************************************************** +**/ void serial_io_shutdown(int fd ) { - dbg(1, "serial_io_shutdown fd = %d\n",fd);
-
+ dbg(1, "serial_io_shutdown fd = %d\n",fd); + if (fd > 0) { CloseHandle((HANDLE)fd); diff --git a/navit/support/win32/serial_io.h b/navit/support/win32/serial_io.h index 4c7b8a31c..0526a217a 100644 --- a/navit/support/win32/serial_io.h +++ b/navit/support/win32/serial_io.h @@ -3,7 +3,40 @@ int serial_io_init( const char* port, const char* strsettings ); int serial_io_read(int fd, char * buffer, int buffer_size ); -int WriteSerial(int fd, const char * buffer); +int serial_io_write(int fd, const char * buffer); void serial_io_shutdown(int fd ); +typedef unsigned int speed_t; + +#define B0 0000000 +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#define B57600 0010001 +#define B115200 0010002 +#define B230400 0010003 +#define B460800 0010004 +#define B500000 0010005 +#define B576000 0010006 +#define B921600 0010007 +#define B1000000 0010010 +#define B1152000 0010011 +#define B1500000 0010012 +#define B2000000 0010013 +#define B2500000 0010014 +#define B3000000 0010015 +#define B3500000 0010016 +#define B4000000 0010017 #endif |