Commit fbeddd82 authored by pixhawk's avatar pixhawk

Merge branch 'experimental' of github.com:pixhawk/qgroundcontrol into dev

parents 1f80ef19 66ca1afd
......@@ -17,7 +17,7 @@ MAVLinkSimulationMAV::MAVLinkSimulationMAV(MAVLinkSimulationLink *parent, int sy
void MAVLinkSimulationMAV::mainloop()
{
mavlink_message_t msg;
mavlink_msg_heartbeat_pack(systemid, MAV_COMP_ID_IMU, &msg, MAV_FIXED_WING, MAV_AUTOPILOT_SLUGS);
mavlink_msg_heartbeat_pack(systemid, MAV_COMP_ID_IMU, &msg, MAV_FIXED_WING, MAV_AUTOPILOT_PIXHAWK);
link->sendMAVLinkMessage(&msg);
}
......
#ifndef _WIN_QEXTSERIALPORT_H_
#define _WIN_QEXTSERIALPORT_H_
#include "qextserialbase.h"
#include <windows.h>
#include <QThread>
/* These baudrates work on windows, but are not part of the windows headers */
#ifndef _WIN_QEXTSERIALPORT_H_
#define _WIN_QEXTSERIALPORT_H_
#include "qextserialbase.h"
#include <windows.h>
#include <QThread>
/* These baudrates work on windows, but are not part of the windows headers */
#ifndef CBR_230400
#define CBR_230400 230400
#endif
......@@ -13,135 +13,135 @@
#define CBR_460800 460800
#endif
#ifndef CBR_921600
#define CBR_921600 921600
#endif
/*if all warning messages are turned off, flag portability warnings to be turned off as well*/
#ifdef _TTY_NOWARN_
#define _TTY_NOWARN_PORT_
#endif
class QReadWriteLock;
class Win_QextSerialThread;
/*!
\author Stefan Sander
\author Michal Policht
A cross-platform serial port class.
This class encapsulates the Windows portion of QextSerialPort. The user will be notified of
errors and possible portability conflicts at run-time by default - this behavior can be turned
off by defining _TTY_NOWARN_ (to turn off all warnings) or _TTY_NOWARN_PORT_ (to turn off
portability warnings) in the project. Note that defining _TTY_NOWARN_ also defines
_TTY_NOWARN_PORT_.
\note
On Windows NT/2000/XP this class uses Win32 serial port functions by default. The user may
select POSIX behavior under NT, 2000, or XP ONLY by defining _TTY_POSIX_ in the project. I can
make no guarantees as to the quality of POSIX support under NT/2000 however.
\todo remove copy constructor and assign operator.
*/
class Win_QextSerialPort: public QextSerialBase
{
Q_OBJECT
friend class Win_QextSerialThread;
private:
/*!
* This method is a part of constructor.
*/
void init();
protected:
HANDLE Win_Handle;
HANDLE threadStartEvent;
HANDLE threadTerminateEvent;
OVERLAPPED overlap;
OVERLAPPED overlapWrite;
COMMCONFIG Win_CommConfig;
COMMTIMEOUTS Win_CommTimeouts;
QReadWriteLock * bytesToWriteLock; ///< @todo maybe move to QextSerialBase.
qint64 _bytesToWrite; ///< @todo maybe move to QextSerialBase (and implement in POSIX).
Win_QextSerialThread * overlapThread; ///< @todo maybe move to QextSerialBase (and implement in POSIX).
void monitorCommEvent();
void terminateCommWait();
virtual qint64 readData(char *data, qint64 maxSize);
virtual qint64 writeData(const char *data, qint64 maxSize);
public:
Win_QextSerialPort(QextSerialBase::QueryMode mode);
Win_QextSerialPort(Win_QextSerialPort const& s);
Win_QextSerialPort(const QString & name, QextSerialBase::QueryMode mode);
Win_QextSerialPort(const PortSettings& settings, QextSerialBase::QueryMode mode);
Win_QextSerialPort(const QString & name, const PortSettings& settings, QextSerialBase::QueryMode mode);
Win_QextSerialPort& operator=(const Win_QextSerialPort& s);
virtual ~Win_QextSerialPort();
virtual bool open(OpenMode mode);
virtual void close();
virtual void flush();
virtual qint64 size() const;
virtual void ungetChar(char c);
virtual void setFlowControl(FlowType);
virtual void setParity(ParityType);
virtual void setDataBits(DataBitsType);
virtual void setStopBits(StopBitsType);
virtual void setBaudRate(BaudRateType);
virtual void setDtr(bool set=true);
virtual void setRts(bool set=true);
virtual ulong lineStatus(void);
virtual qint64 bytesAvailable() const;
virtual void translateError(ulong);
virtual void setTimeout(long);
/*!
* Return number of bytes waiting in the buffer. Currently this shows number
* of bytes queued within write() and before the TX_EMPTY event occured. TX_EMPTY
* event is created whenever last character in the system buffer was sent.
*
* \return number of bytes queued within write(), before the first TX_EMPTY
* event occur.
*
* \warning this function may not give you expected results since TX_EMPTY may occur
* while writing data to the buffer. Eventually some TX_EMPTY events may not be
* catched.
*
* \note this function always returns 0 in polling mode.
*
* \see flush().
*/
virtual qint64 bytesToWrite() const;
virtual bool waitForReadyRead(int msecs); ///< @todo implement.
};
/*!
* This thread monitors communication events.
*/
class Win_QextSerialThread: public QThread
{
Win_QextSerialPort * qesp;
bool terminate;
public:
/*!
* Constructor.
*
* \param qesp valid serial port object.
*/
Win_QextSerialThread(Win_QextSerialPort * qesp);
/*!
* Stop the thread.
*/
void stop();
protected:
//overriden
virtual void run();
};
#endif
#define CBR_921600 921600
#endif
/*if all warning messages are turned off, flag portability warnings to be turned off as well*/
#ifdef _TTY_NOWARN_
#define _TTY_NOWARN_PORT_
#endif
class QReadWriteLock;
class Win_QextSerialThread;
/*!
\author Stefan Sander
\author Michal Policht
A cross-platform serial port class.
This class encapsulates the Windows portion of QextSerialPort. The user will be notified of
errors and possible portability conflicts at run-time by default - this behavior can be turned
off by defining _TTY_NOWARN_ (to turn off all warnings) or _TTY_NOWARN_PORT_ (to turn off
portability warnings) in the project. Note that defining _TTY_NOWARN_ also defines
_TTY_NOWARN_PORT_.
\note
On Windows NT/2000/XP this class uses Win32 serial port functions by default. The user may
select POSIX behavior under NT, 2000, or XP ONLY by defining _TTY_POSIX_ in the project. I can
make no guarantees as to the quality of POSIX support under NT/2000 however.
\todo remove copy constructor and assign operator.
*/
class Win_QextSerialPort: public QextSerialBase
{
Q_OBJECT
friend class Win_QextSerialThread;
private:
/*!
* This method is a part of constructor.
*/
void init();
protected:
HANDLE Win_Handle;
HANDLE threadStartEvent;
HANDLE threadTerminateEvent;
OVERLAPPED overlap;
OVERLAPPED overlapWrite;
COMMCONFIG Win_CommConfig;
COMMTIMEOUTS Win_CommTimeouts;
QReadWriteLock * bytesToWriteLock; ///< @todo maybe move to QextSerialBase.
qint64 _bytesToWrite; ///< @todo maybe move to QextSerialBase (and implement in POSIX).
Win_QextSerialThread * overlapThread; ///< @todo maybe move to QextSerialBase (and implement in POSIX).
void monitorCommEvent();
void terminateCommWait();
virtual qint64 readData(char *data, qint64 maxSize);
virtual qint64 writeData(const char *data, qint64 maxSize);
public:
Win_QextSerialPort(QextSerialBase::QueryMode mode);
Win_QextSerialPort(Win_QextSerialPort const& s);
Win_QextSerialPort(const QString & name, QextSerialBase::QueryMode mode);
Win_QextSerialPort(const PortSettings& settings, QextSerialBase::QueryMode mode);
Win_QextSerialPort(const QString & name, const PortSettings& settings, QextSerialBase::QueryMode mode);
Win_QextSerialPort& operator=(const Win_QextSerialPort& s);
virtual ~Win_QextSerialPort();
virtual bool open(OpenMode mode);
virtual void close();
virtual void flush();
virtual qint64 size() const;
virtual void ungetChar(char c);
virtual void setFlowControl(FlowType);
virtual void setParity(ParityType);
virtual void setDataBits(DataBitsType);
virtual void setStopBits(StopBitsType);
virtual void setBaudRate(BaudRateType);
virtual void setDtr(bool set=true);
virtual void setRts(bool set=true);
virtual ulong lineStatus(void);
virtual qint64 bytesAvailable() const;
virtual void translateError(ulong);
virtual void setTimeout(long);
/*!
* Return number of bytes waiting in the buffer. Currently this shows number
* of bytes queued within write() and before the TX_EMPTY event occured. TX_EMPTY
* event is created whenever last character in the system buffer was sent.
*
* \return number of bytes queued within write(), before the first TX_EMPTY
* event occur.
*
* \warning this function may not give you expected results since TX_EMPTY may occur
* while writing data to the buffer. Eventually some TX_EMPTY events may not be
* catched.
*
* \note this function always returns 0 in polling mode.
*
* \see flush().
*/
virtual qint64 bytesToWrite() const;
virtual bool waitForReadyRead(int msecs); ///< @todo implement.
};
/*!
* This thread monitors communication events.
*/
class Win_QextSerialThread: public QThread
{
Win_QextSerialPort * qesp;
bool terminate;
public:
/*!
* Constructor.
*
* \param qesp valid serial port object.
*/
Win_QextSerialThread(Win_QextSerialPort * qesp);
/*!
* Stop the thread.
*/
void stop();
protected:
//overriden
virtual void run();
};
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment