QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
AndroidSerial Namespace Reference

Classes

struct  JniContext
 
struct  JniMethodCache
 

Enumerations

enum  DataBits { Data5 = 5 , Data6 = 6 , Data7 = 7 , Data8 = 8 }
 
enum  Parity {
  NoParity = 0 , OddParity , EvenParity , MarkParity ,
  SpaceParity
}
 
enum  StopBits { OneStop = 1 , OneAndHalfStop = 3 , TwoStop = 2 }
 
enum  ControlLine {
  RtsControlLine = 0 , CtsControlLine , DtrControlLine , DsrControlLine ,
  CdControlLine , RiControlLine
}
 
enum  FlowControl {
  NoFlowControl = 0 , RtsCtsFlowControl , DtrDsrFlowControl , XonXoffFlowControl ,
  XonXoffInlineFlowControl
}
 

Functions

void registerPointer (QSerialPortPrivate *ptr)
 
void unregisterPointer (QSerialPortPrivate *ptr)
 
static QSerialPortPrivatelookupByToken (jlong token)
 
static jlong lookupToken (QSerialPortPrivate *ptr)
 
static QSerialPortlookupPortByTokenLocked (jlong token)
 
template<typename Functor >
static bool dispatchToPortObject (QSerialPort *serialPort, Functor &&func, const char *context)
 
static bool cacheMethodIds (JNIEnv *env, jclass javaClass)
 
static jclass getSerialManagerClass ()
 
void cleanupJniCache ()
 
static void jniDeviceHasDisconnected (JNIEnv *env, jobject obj, jlong token)
 
static void jniDeviceNewData (JNIEnv *env, jobject obj, jlong token, jbyteArray data)
 
static void jniDeviceException (JNIEnv *env, jobject obj, jlong token, jstring message)
 
void setNativeMethods ()
 
static bool getContext (JniContext &ctx, const char *caller)
 
QList< QSerialPortInfoavailableDevices ()
 
int getDeviceId (const QString &portName)
 
int getDeviceHandle (int deviceId)
 
int open (const QString &portName, QSerialPortPrivate *classPtr)
 
bool close (int deviceId)
 
bool isOpen (const QString &portName)
 
QByteArray read (int deviceId, int length, int timeout)
 
int write (int deviceId, const char *data, int length, int timeout, bool async)
 
bool setParameters (int deviceId, int baudRate, int dataBits, int stopBits, int parity)
 
static bool callBoolMethod (jmethodID method, int deviceId, const char *name)
 
static bool callBoolSetMethod (jmethodID method, int deviceId, bool set, const char *name)
 
bool getCarrierDetect (int deviceId)
 
bool getClearToSend (int deviceId)
 
bool getDataSetReady (int deviceId)
 
bool getDataTerminalReady (int deviceId)
 
bool getRingIndicator (int deviceId)
 
bool getRequestToSend (int deviceId)
 
bool setDataTerminalReady (int deviceId, bool set)
 
bool setRequestToSend (int deviceId, bool set)
 
QSerialPort::PinoutSignals getControlLines (int deviceId)
 
int getFlowControl (int deviceId)
 
bool setFlowControl (int deviceId, int flowControl)
 
bool purgeBuffers (int deviceId, bool input, bool output)
 
bool setBreak (int deviceId, bool set)
 
bool startReadThread (int deviceId)
 
bool stopReadThread (int deviceId)
 
bool readThreadRunning (int deviceId)
 

Variables

static QReadWriteLock s_ptrLock
 
static QHash< jlong, QSerialPortPrivate * > s_tokenToPtr
 
static QHash< QSerialPortPrivate *, jlong > s_ptrToToken
 
static JniMethodCache s_methods
 
static bool s_methodsCached = false
 
static QMutex s_cacheLock
 
static jclass s_serialManagerClass = nullptr
 
constexpr char CHAR_XON = 17
 
constexpr char CHAR_XOFF = 19
 
constexpr const char * kJniUsbSerialManagerClassName = "org/mavlink/qgroundcontrol/QGCUsbSerialManager"
 

Enumeration Type Documentation

◆ ControlLine

Enumerator
RtsControlLine 
CtsControlLine 
DtrControlLine 
DsrControlLine 
CdControlLine 
RiControlLine 

Definition at line 38 of file AndroidSerial.h.

◆ DataBits

Enumerator
Data5 
Data6 
Data7 
Data8 

Definition at line 14 of file AndroidSerial.h.

◆ FlowControl

Enumerator
NoFlowControl 
RtsCtsFlowControl 
DtrDsrFlowControl 
XonXoffFlowControl 
XonXoffInlineFlowControl 

Definition at line 48 of file AndroidSerial.h.

◆ Parity

Enumerator
NoParity 
OddParity 
EvenParity 
MarkParity 
SpaceParity 

Definition at line 22 of file AndroidSerial.h.

◆ StopBits

Enumerator
OneStop 
OneAndHalfStop 
TwoStop 

Definition at line 31 of file AndroidSerial.h.

Function Documentation

◆ availableDevices()

◆ cacheMethodIds()

◆ callBoolMethod()

◆ callBoolSetMethod()

static bool AndroidSerial::callBoolSetMethod ( jmethodID  method,
int  deviceId,
bool  set,
const char *  name 
)
static

◆ cleanupJniCache()

void AndroidSerial::cleanupJniCache ( )

Definition at line 272 of file AndroidSerial.cc.

References s_cacheLock, s_methods, s_methodsCached, and s_serialManagerClass.

Referenced by JNI_OnUnload().

◆ close()

◆ dispatchToPortObject()

template<typename Functor >
static bool AndroidSerial::dispatchToPortObject ( QSerialPort serialPort,
Functor &&  func,
const char *  context 
)
static

Definition at line 98 of file AndroidSerial.cc.

Referenced by jniDeviceException(), and jniDeviceHasDisconnected().

◆ getCarrierDetect()

bool AndroidSerial::getCarrierDetect ( int  deviceId)

◆ getClearToSend()

bool AndroidSerial::getClearToSend ( int  deviceId)

◆ getContext()

◆ getControlLines()

◆ getDataSetReady()

bool AndroidSerial::getDataSetReady ( int  deviceId)

◆ getDataTerminalReady()

bool AndroidSerial::getDataTerminalReady ( int  deviceId)

◆ getDeviceHandle()

◆ getDeviceId()

◆ getFlowControl()

◆ getRequestToSend()

bool AndroidSerial::getRequestToSend ( int  deviceId)

◆ getRingIndicator()

bool AndroidSerial::getRingIndicator ( int  deviceId)

◆ getSerialManagerClass()

static jclass AndroidSerial::getSerialManagerClass ( )
static

◆ isOpen()

◆ jniDeviceException()

static void AndroidSerial::jniDeviceException ( JNIEnv *  env,
jobject  obj,
jlong  token,
jstring  message 
)
static

◆ jniDeviceHasDisconnected()

static void AndroidSerial::jniDeviceHasDisconnected ( JNIEnv *  env,
jobject  obj,
jlong  token 
)
static

Definition at line 321 of file AndroidSerial.cc.

References dispatchToPortObject(), lookupPortByTokenLocked(), and s_ptrLock.

Referenced by setNativeMethods().

◆ jniDeviceNewData()

static void AndroidSerial::jniDeviceNewData ( JNIEnv *  env,
jobject  obj,
jlong  token,
jbyteArray  data 
)
static

◆ lookupByToken()

static QSerialPortPrivate * AndroidSerial::lookupByToken ( jlong  token)
static

Definition at line 75 of file AndroidSerial.cc.

References s_ptrLock, and s_tokenToPtr.

◆ lookupPortByTokenLocked()

static QSerialPort * AndroidSerial::lookupPortByTokenLocked ( jlong  token)
static

Definition at line 87 of file AndroidSerial.cc.

References s_tokenToPtr.

Referenced by jniDeviceException(), and jniDeviceHasDisconnected().

◆ lookupToken()

static jlong AndroidSerial::lookupToken ( QSerialPortPrivate ptr)
static

Definition at line 81 of file AndroidSerial.cc.

References s_ptrLock, and s_ptrToToken.

Referenced by open().

◆ open()

◆ purgeBuffers()

bool AndroidSerial::purgeBuffers ( int  deviceId,
bool  input,
bool  output 
)

◆ read()

QByteArray AndroidSerial::read ( int  deviceId,
int  length,
int  timeout 
)

◆ readThreadRunning()

bool AndroidSerial::readThreadRunning ( int  deviceId)

◆ registerPointer()

void AndroidSerial::registerPointer ( QSerialPortPrivate ptr)

Definition at line 37 of file AndroidSerial.cc.

References s_ptrLock, s_ptrToToken, and s_tokenToPtr.

Referenced by QSerialPortPrivate::open().

◆ setBreak()

bool AndroidSerial::setBreak ( int  deviceId,
bool  set 
)

◆ setDataTerminalReady()

bool AndroidSerial::setDataTerminalReady ( int  deviceId,
bool  set 
)

◆ setFlowControl()

◆ setNativeMethods()

void AndroidSerial::setNativeMethods ( )

◆ setParameters()

bool AndroidSerial::setParameters ( int  deviceId,
int  baudRate,
int  dataBits,
int  stopBits,
int  parity 
)

◆ setRequestToSend()

bool AndroidSerial::setRequestToSend ( int  deviceId,
bool  set 
)

◆ startReadThread()

bool AndroidSerial::startReadThread ( int  deviceId)

◆ stopReadThread()

bool AndroidSerial::stopReadThread ( int  deviceId)

◆ unregisterPointer()

void AndroidSerial::unregisterPointer ( QSerialPortPrivate ptr)

Definition at line 61 of file AndroidSerial.cc.

References s_ptrLock, s_ptrToToken, and s_tokenToPtr.

Referenced by QSerialPortPrivate::close(), and QSerialPortPrivate::open().

◆ write()

int AndroidSerial::write ( int  deviceId,
const char *  data,
int  length,
int  timeout,
bool  async 
)

Variable Documentation

◆ CHAR_XOFF

constexpr char AndroidSerial::CHAR_XOFF = 19
constexpr

Definition at line 58 of file AndroidSerial.h.

◆ CHAR_XON

constexpr char AndroidSerial::CHAR_XON = 17
constexpr

Definition at line 57 of file AndroidSerial.h.

◆ kJniUsbSerialManagerClassName

constexpr const char* AndroidSerial::kJniUsbSerialManagerClassName = "org/mavlink/qgroundcontrol/QGCUsbSerialManager"
constexpr

Definition at line 60 of file AndroidSerial.h.

Referenced by getSerialManagerClass(), and setNativeMethods().

◆ s_cacheLock

QMutex AndroidSerial::s_cacheLock
static

Definition at line 166 of file AndroidSerial.cc.

Referenced by cleanupJniCache(), and getSerialManagerClass().

◆ s_methods

◆ s_methodsCached

bool AndroidSerial::s_methodsCached = false
static

Definition at line 165 of file AndroidSerial.cc.

Referenced by cacheMethodIds(), cleanupJniCache(), and getSerialManagerClass().

◆ s_ptrLock

QReadWriteLock AndroidSerial::s_ptrLock
static

◆ s_ptrToToken

QHash<QSerialPortPrivate*, jlong> AndroidSerial::s_ptrToToken
static

Definition at line 35 of file AndroidSerial.cc.

Referenced by lookupToken(), registerPointer(), and unregisterPointer().

◆ s_serialManagerClass

jclass AndroidSerial::s_serialManagerClass = nullptr
static

Definition at line 167 of file AndroidSerial.cc.

Referenced by cleanupJniCache(), and getSerialManagerClass().

◆ s_tokenToPtr

QHash<jlong, QSerialPortPrivate*> AndroidSerial::s_tokenToPtr
static