|
QGroundControl
Ground Control Station for MAVLink Drones
|
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 | setUsePosixSerial (bool use) |
| bool | usePosixSerial () |
| QList< QSerialPortInfo > | availablePosixPorts () |
| bool | hasPosixSerialPorts () |
| void | registerPointer (QSerialPortPrivate *ptr) |
| void | unregisterPointer (QSerialPortPrivate *ptr) |
| static QSerialPortPrivate * | lookupByToken (jlong token) |
| static jlong | lookupToken (QSerialPortPrivate *ptr) |
| static QSerialPort * | lookupPortByTokenLocked (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< QSerialPortInfo > | availableDevices () |
| 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 std::atomic< bool > | s_usePosixSerial {false} |
| 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" |
| Enumerator | |
|---|---|
| RtsControlLine | |
| CtsControlLine | |
| DtrControlLine | |
| DsrControlLine | |
| CdControlLine | |
| RiControlLine | |
Definition at line 35 of file AndroidSerial.h.
| Enumerator | |
|---|---|
| Data5 | |
| Data6 | |
| Data7 | |
| Data8 | |
Definition at line 11 of file AndroidSerial.h.
| Enumerator | |
|---|---|
| NoFlowControl | |
| RtsCtsFlowControl | |
| DtrDsrFlowControl | |
| XonXoffFlowControl | |
| XonXoffInlineFlowControl | |
Definition at line 45 of file AndroidSerial.h.
| Enumerator | |
|---|---|
| NoParity | |
| OddParity | |
| EvenParity | |
| MarkParity | |
| SpaceParity | |
Definition at line 19 of file AndroidSerial.h.
| Enumerator | |
|---|---|
| OneStop | |
| OneAndHalfStop | |
| TwoStop | |
Definition at line 28 of file AndroidSerial.h.
| QList< QSerialPortInfo > AndroidSerial::availableDevices | ( | ) |
Definition at line 536 of file AndroidSerial.cc.
References availableDevices(), AndroidSerial::JniMethodCache::availableDevicesInfo, AndroidSerial::JniContext::cls, QSerialPortInfoPrivate::description, QSerialPortInfoPrivate::device, AndroidSerial::JniContext::env, AndroidInterface::JniLocalRef< T >::get(), getContext(), QSerialPortInfoPrivate::hasProductIdentifier, QSerialPortInfoPrivate::hasVendorIdentifier, INVALID_DEVICE_ID, QSerialPortInfoPrivate::manufacturer, QSerialPortInfoPrivate::portName, QSerialPortInfoPrivate::portNameFromSystemLocation(), QSerialPortInfoPrivate::productIdentifier, s_methods, QSerialPortInfoPrivate::serialNumber, and QSerialPortInfoPrivate::vendorIdentifier.
Referenced by availableDevices().
| QList< QSerialPortInfo > AndroidSerial::availablePosixPorts | ( | ) |
Definition at line 44 of file AndroidSerial.cc.
References QSerialPortInfoPrivate::device, and QSerialPortInfoPrivate::portName.
Referenced by QSerialPortInfo::availablePorts(), and hasPosixSerialPorts().
|
static |
Definition at line 223 of file AndroidSerial.cc.
References AndroidSerial::JniMethodCache::availableDevicesInfo, AndroidSerial::JniMethodCache::close, AndroidSerial::JniMethodCache::getCarrierDetect, AndroidSerial::JniMethodCache::getClearToSend, AndroidSerial::JniMethodCache::getControlLines, AndroidSerial::JniMethodCache::getDataSetReady, AndroidSerial::JniMethodCache::getDataTerminalReady, AndroidSerial::JniMethodCache::getDeviceHandle, AndroidSerial::JniMethodCache::getDeviceId, AndroidSerial::JniMethodCache::getFlowControl, AndroidSerial::JniMethodCache::getRequestToSend, AndroidSerial::JniMethodCache::getRingIndicator, AndroidSerial::JniMethodCache::ioManagerRunning, AndroidSerial::JniMethodCache::isDeviceNameOpen, AndroidSerial::JniMethodCache::open, AndroidSerial::JniMethodCache::purgeBuffers, AndroidSerial::JniMethodCache::read, s_methods, s_methodsCached, AndroidSerial::JniMethodCache::setBreak, AndroidSerial::JniMethodCache::setDataTerminalReady, AndroidSerial::JniMethodCache::setFlowControl, AndroidSerial::JniMethodCache::setParameters, AndroidSerial::JniMethodCache::setRequestToSend, AndroidSerial::JniMethodCache::startIoManager, AndroidSerial::JniMethodCache::stopIoManager, AndroidSerial::JniMethodCache::write, and AndroidSerial::JniMethodCache::writeAsync.
Referenced by getSerialManagerClass().
|
static |
Definition at line 811 of file AndroidSerial.cc.
References callBoolMethod(), AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, and getContext().
Referenced by callBoolMethod(), getCarrierDetect(), getClearToSend(), getDataSetReady(), getDataTerminalReady(), getRequestToSend(), getRingIndicator(), readThreadRunning(), startReadThread(), and stopReadThread().
|
static |
Definition at line 826 of file AndroidSerial.cc.
References callBoolSetMethod(), AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, and getContext().
Referenced by callBoolSetMethod(), setBreak(), setDataTerminalReady(), and setRequestToSend().
| void AndroidSerial::cleanupJniCache | ( | ) |
Definition at line 326 of file AndroidSerial.cc.
References s_cacheLock, s_methods, s_methodsCached, and s_serialManagerClass.
Referenced by JNI_OnUnload().
| bool AndroidSerial::close | ( | int | deviceId | ) |
Definition at line 670 of file AndroidSerial.cc.
References AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniMethodCache::close, close(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), and s_methods.
Referenced by QSerialPortPrivate::close(), and close().
|
static |
Definition at line 152 of file AndroidSerial.cc.
Referenced by jniDeviceException(), and jniDeviceHasDisconnected().
| bool AndroidSerial::getCarrierDetect | ( | int | deviceId | ) |
Definition at line 846 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getCarrierDetect, getCarrierDetect(), and s_methods.
Referenced by getCarrierDetect().
| bool AndroidSerial::getClearToSend | ( | int | deviceId | ) |
Definition at line 851 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getClearToSend, getClearToSend(), and s_methods.
Referenced by getClearToSend().
|
static |
Definition at line 515 of file AndroidSerial.cc.
References AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), getSerialManagerClass(), and AndroidSerial::JniContext::valid.
Referenced by availableDevices(), callBoolMethod(), callBoolSetMethod(), close(), getContext(), getControlLines(), getDeviceHandle(), getDeviceId(), getFlowControl(), isOpen(), open(), purgeBuffers(), read(), setFlowControl(), setParameters(), and write().
| QSerialPort::PinoutSignals AndroidSerial::getControlLines | ( | int | deviceId | ) |
Definition at line 886 of file AndroidSerial.cc.
References CdControlLine, QSerialPort::ClearToSendSignal, AndroidSerial::JniContext::cls, CtsControlLine, QSerialPort::DataCarrierDetectSignal, QSerialPort::DataSetReadySignal, QSerialPort::DataTerminalReadySignal, DsrControlLine, DtrControlLine, AndroidSerial::JniContext::env, AndroidInterface::JniLocalRef< T >::get(), getContext(), AndroidSerial::JniMethodCache::getControlLines, getControlLines(), QSerialPort::RequestToSendSignal, RiControlLine, QSerialPort::RingIndicatorSignal, RtsControlLine, and s_methods.
Referenced by getControlLines(), and QSerialPortPrivate::pinoutSignals().
| bool AndroidSerial::getDataSetReady | ( | int | deviceId | ) |
Definition at line 856 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getDataSetReady, getDataSetReady(), and s_methods.
Referenced by getDataSetReady().
| bool AndroidSerial::getDataTerminalReady | ( | int | deviceId | ) |
Definition at line 861 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getDataTerminalReady, getDataTerminalReady(), and s_methods.
Referenced by getDataTerminalReady().
| int AndroidSerial::getDeviceHandle | ( | int | deviceId | ) |
Definition at line 619 of file AndroidSerial.cc.
References AndroidInterface::callStaticIntMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), AndroidSerial::JniMethodCache::getDeviceHandle, getDeviceHandle(), and s_methods.
Referenced by getDeviceHandle(), and QSerialPortPrivate::open().
| int AndroidSerial::getDeviceId | ( | const QString & | portName | ) |
Definition at line 598 of file AndroidSerial.cc.
References AndroidInterface::callStaticIntMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), AndroidSerial::JniMethodCache::getDeviceId, getDeviceId(), and s_methods.
Referenced by getDeviceId().
| int AndroidSerial::getFlowControl | ( | int | deviceId | ) |
Definition at line 951 of file AndroidSerial.cc.
References AndroidInterface::callStaticIntMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), AndroidSerial::JniMethodCache::getFlowControl, getFlowControl(), QSerialPort::NoFlowControl, and s_methods.
Referenced by getFlowControl().
| bool AndroidSerial::getRequestToSend | ( | int | deviceId | ) |
Definition at line 871 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getRequestToSend, getRequestToSend(), and s_methods.
Referenced by getRequestToSend().
| bool AndroidSerial::getRingIndicator | ( | int | deviceId | ) |
Definition at line 866 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::getRingIndicator, getRingIndicator(), and s_methods.
Referenced by getRingIndicator().
|
static |
Definition at line 279 of file AndroidSerial.cc.
References cacheMethodIds(), kJniUsbSerialManagerClassName, s_cacheLock, s_methods, s_methodsCached, and s_serialManagerClass.
Referenced by getContext(), and setNativeMethods().
| bool AndroidSerial::hasPosixSerialPorts | ( | ) |
Definition at line 72 of file AndroidSerial.cc.
References availablePosixPorts().
Referenced by QGCCorePlugin::adjustSettingMetaData().
| bool AndroidSerial::isOpen | ( | const QString & | portName | ) |
Definition at line 685 of file AndroidSerial.cc.
References AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), AndroidSerial::JniMethodCache::isDeviceNameOpen, isOpen(), and s_methods.
Referenced by isOpen().
|
static |
Definition at line 462 of file AndroidSerial.cc.
References dispatchToPortObject(), jniDeviceException(), lookupPortByTokenLocked(), and s_ptrLock.
Referenced by jniDeviceException(), and setNativeMethods().
|
static |
Definition at line 375 of file AndroidSerial.cc.
References dispatchToPortObject(), lookupPortByTokenLocked(), and s_ptrLock.
Referenced by setNativeMethods().
|
static |
Definition at line 415 of file AndroidSerial.cc.
References jniDeviceNewData(), MAX_READ_SIZE, QSerialPortPrivate::newDataArrived(), s_ptrLock, and s_tokenToPtr.
Referenced by jniDeviceNewData(), and setNativeMethods().
|
static |
Definition at line 129 of file AndroidSerial.cc.
References s_ptrLock, and s_tokenToPtr.
|
static |
Definition at line 141 of file AndroidSerial.cc.
References s_tokenToPtr.
Referenced by jniDeviceException(), and jniDeviceHasDisconnected().
|
static |
Definition at line 135 of file AndroidSerial.cc.
References s_ptrLock, and s_ptrToToken.
Referenced by open().
| int AndroidSerial::open | ( | const QString & | portName, |
| QSerialPortPrivate * | classPtr | ||
| ) |
Definition at line 638 of file AndroidSerial.cc.
References AndroidInterface::callStaticIntMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), INVALID_DEVICE_ID, lookupToken(), AndroidSerial::JniMethodCache::open, open(), and s_methods.
Referenced by open(), and QSerialPortPrivate::open().
| bool AndroidSerial::purgeBuffers | ( | int | deviceId, |
| bool | input, | ||
| bool | output | ||
| ) |
Definition at line 986 of file AndroidSerial.cc.
References AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), AndroidSerial::JniMethodCache::purgeBuffers, purgeBuffers(), and s_methods.
Referenced by QSerialPortPrivate::clear(), and purgeBuffers().
| QByteArray AndroidSerial::read | ( | int | deviceId, |
| int | length, | ||
| int | timeout | ||
| ) |
Definition at line 710 of file AndroidSerial.cc.
References AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, AndroidInterface::JniLocalRef< T >::get(), getContext(), AndroidSerial::JniMethodCache::read, read(), and s_methods.
Referenced by read().
| bool AndroidSerial::readThreadRunning | ( | int | deviceId | ) |
Definition at line 1024 of file AndroidSerial.cc.
References callBoolMethod(), AndroidSerial::JniMethodCache::ioManagerRunning, readThreadRunning(), and s_methods.
Referenced by readThreadRunning(), and QSerialPortPrivate::startAsyncRead().
| void AndroidSerial::registerPointer | ( | QSerialPortPrivate * | ptr | ) |
Definition at line 91 of file AndroidSerial.cc.
References s_ptrLock, s_ptrToToken, and s_tokenToPtr.
Referenced by QSerialPortPrivate::open().
| bool AndroidSerial::setBreak | ( | int | deviceId, |
| bool | set | ||
| ) |
Definition at line 1005 of file AndroidSerial.cc.
References callBoolSetMethod(), s_methods, AndroidSerial::JniMethodCache::setBreak, and setBreak().
Referenced by setBreak(), and QSerialPortPrivate::setBreakEnabled().
| bool AndroidSerial::setDataTerminalReady | ( | int | deviceId, |
| bool | set | ||
| ) |
Definition at line 876 of file AndroidSerial.cc.
References callBoolSetMethod(), s_methods, AndroidSerial::JniMethodCache::setDataTerminalReady, and setDataTerminalReady().
Referenced by QSerialPortPrivate::setDataTerminalReady(), and setDataTerminalReady().
| bool AndroidSerial::setFlowControl | ( | int | deviceId, |
| int | flowControl | ||
| ) |
Definition at line 966 of file AndroidSerial.cc.
References AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), s_methods, AndroidSerial::JniMethodCache::setFlowControl, and setFlowControl().
Referenced by setFlowControl(), and QSerialPortPrivate::setFlowControl().
| void AndroidSerial::setNativeMethods | ( | ) |
Definition at line 347 of file AndroidSerial.cc.
References getSerialManagerClass(), jniDeviceException(), jniDeviceHasDisconnected(), jniDeviceNewData(), and kJniUsbSerialManagerClassName.
Referenced by JNI_OnLoad().
| bool AndroidSerial::setParameters | ( | int | deviceId, |
| int | baudRate, | ||
| int | dataBits, | ||
| int | stopBits, | ||
| int | parity | ||
| ) |
Definition at line 790 of file AndroidSerial.cc.
References AndroidInterface::callStaticBooleanMethod(), AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, getContext(), s_methods, AndroidSerial::JniMethodCache::setParameters, and setParameters().
Referenced by setParameters().
| bool AndroidSerial::setRequestToSend | ( | int | deviceId, |
| bool | set | ||
| ) |
Definition at line 881 of file AndroidSerial.cc.
References callBoolSetMethod(), s_methods, AndroidSerial::JniMethodCache::setRequestToSend, and setRequestToSend().
Referenced by QSerialPortPrivate::setRequestToSend(), and setRequestToSend().
| void AndroidSerial::setUsePosixSerial | ( | bool | use | ) |
Definition at line 33 of file AndroidSerial.cc.
References s_usePosixSerial.
Referenced by LinkManager::init().
| bool AndroidSerial::startReadThread | ( | int | deviceId | ) |
Definition at line 1014 of file AndroidSerial.cc.
References callBoolMethod(), s_methods, AndroidSerial::JniMethodCache::startIoManager, and startReadThread().
Referenced by QSerialPortPrivate::startAsyncRead(), and startReadThread().
| bool AndroidSerial::stopReadThread | ( | int | deviceId | ) |
Definition at line 1019 of file AndroidSerial.cc.
References callBoolMethod(), s_methods, AndroidSerial::JniMethodCache::stopIoManager, and stopReadThread().
Referenced by stopReadThread().
| void AndroidSerial::unregisterPointer | ( | QSerialPortPrivate * | ptr | ) |
Definition at line 115 of file AndroidSerial.cc.
References s_ptrLock, s_ptrToToken, and s_tokenToPtr.
Referenced by QSerialPortPrivate::close(), and QSerialPortPrivate::open().
| bool AndroidSerial::usePosixSerial | ( | ) |
Definition at line 39 of file AndroidSerial.cc.
References s_usePosixSerial.
Referenced by QSerialPortInfo::availablePorts(), QSerialPortPrivate::clear(), QSerialPortPrivate::close(), QSerialPortPrivate::open(), QSerialPortPrivate::pinoutSignals(), QSerialPortPrivate::setBreakEnabled(), QSerialPortPrivate::setDataTerminalReady(), QSerialPortPrivate::setFlowControl(), QSerialPortPrivate::setRequestToSend(), and QSerialPortPrivate::startAsyncRead().
| int AndroidSerial::write | ( | int | deviceId, |
| const char * | data, | ||
| int | length, | ||
| int | timeout, | ||
| bool | async | ||
| ) |
Definition at line 745 of file AndroidSerial.cc.
References AndroidSerial::JniContext::cls, AndroidSerial::JniContext::env, AndroidInterface::JniLocalRef< T >::get(), getContext(), s_methods, AndroidSerial::JniMethodCache::write, and AndroidSerial::JniMethodCache::writeAsync.
|
constexpr |
Definition at line 55 of file AndroidSerial.h.
|
constexpr |
Definition at line 54 of file AndroidSerial.h.
|
constexpr |
Definition at line 57 of file AndroidSerial.h.
Referenced by getSerialManagerClass(), and setNativeMethods().
|
static |
Definition at line 220 of file AndroidSerial.cc.
Referenced by cleanupJniCache(), and getSerialManagerClass().
|
static |
Definition at line 218 of file AndroidSerial.cc.
Referenced by availableDevices(), cacheMethodIds(), cleanupJniCache(), close(), getCarrierDetect(), getClearToSend(), getControlLines(), getDataSetReady(), getDataTerminalReady(), getDeviceHandle(), getDeviceId(), getFlowControl(), getRequestToSend(), getRingIndicator(), getSerialManagerClass(), isOpen(), open(), purgeBuffers(), read(), readThreadRunning(), setBreak(), setDataTerminalReady(), setFlowControl(), setParameters(), setRequestToSend(), startReadThread(), stopReadThread(), and write().
|
static |
Definition at line 219 of file AndroidSerial.cc.
Referenced by cacheMethodIds(), cleanupJniCache(), and getSerialManagerClass().
|
static |
Definition at line 87 of file AndroidSerial.cc.
Referenced by jniDeviceException(), jniDeviceHasDisconnected(), jniDeviceNewData(), lookupByToken(), lookupToken(), registerPointer(), and unregisterPointer().
|
static |
Definition at line 89 of file AndroidSerial.cc.
Referenced by lookupToken(), registerPointer(), and unregisterPointer().
|
static |
Definition at line 221 of file AndroidSerial.cc.
Referenced by cleanupJniCache(), and getSerialManagerClass().
|
static |
Definition at line 88 of file AndroidSerial.cc.
Referenced by jniDeviceNewData(), lookupByToken(), lookupPortByTokenLocked(), registerPointer(), and unregisterPointer().
|
static |
Definition at line 31 of file AndroidSerial.cc.
Referenced by setUsePosixSerial(), and usePosixSerial().