-// sg_serial.hxx -- Serial I/O routines
-//
+/**
+ * \file sg_serial.hxx
+ * Serial I/O routines
+ */
+
// Written by Curtis Olson, started November 1999.
//
-// Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1999 Curtis L. Olson - http://www.flightgear.org/~curt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
#include <string>
-// #ifdef FG_HAVE_STD_INCLUDES
+// #ifdef SG_HAVE_STD_INCLUDES
// # include <ctime>
// #else
// # include <time.h>
#include "iochannel.hxx"
-FG_USING_STD(string);
-
+SG_USING_STD(string);
+/**
+ * A serial I/O class based on SGIOChannel.
+ */
class SGSerial : public SGIOChannel {
string device;
string baud;
- FGSerialPort port;
+ SGSerialPort port;
char save_buf[ 2 * SG_IO_MAX_MSG_SIZE ];
int save_len;
public:
+ /**
+ * Create an instance of SGSerial.
+ * This creates an instance of the SGSerial class. You need to
+ * provide the serial device name and desired baud rate. For Unix
+ * style systems, device names will be similar to
+ * ``/dev/ttyS0''. For DOS style systems you may want to use
+ * something similar to ``COM1:''. As with the SGFile class,
+ * device is not opened immediately, but instead will be opened
+ * when the open() method is called.
+ * @param device_name name of serial device
+ * @param baud_rate speed of communication
+ */
SGSerial( const string& device_name, const string& baud_rate );
+
+ /** Destructor */
~SGSerial();
// open the serial port based on specified direction
- bool open( SGProtocolDir dir );
+ bool open( const SGProtocolDir d );
// read a block of data of specified size
int read( char *buf, int length );
int readline( char *buf, int length );
// write data to port
- int write( char *buf, int length );
+ int write( const char *buf, const int length );
// write null terminated string to port
- int writestring( char *str );
+ int writestring( const char *str );
// close port
bool close();
+ /** @return the serial port device name */
inline string get_device() const { return device; }
+
+ /** @return the baud rate */
inline string get_baud() const { return baud; }
};