Skip to content

Commit

Permalink
Address issues.
Browse files Browse the repository at this point in the history
Changes list:
- Rename to `appWideEnabled`
- Rename to `egenioussEnabled`
- Set `mSocketStateString` and `mSocketState`
- Use `const` variables in `onReadyRead`
  • Loading branch information
mohsenD98 committed Sep 23, 2024
1 parent 781d9f9 commit 183fd28
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 15 deletions.
6 changes: 3 additions & 3 deletions src/core/pluginmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ void PluginManager::enableAppPlugin( const QString &uuid )
loadPlugin( mAvailableAppPlugins[uuid].path(), mAvailableAppPlugins[uuid].name() );
}
}
callPluginMethod( uuid, "appWideActivated" );
callPluginMethod( uuid, "appWideEnabled" );
}

void PluginManager::disableAppPlugin( const QString &uuid )
Expand Down Expand Up @@ -474,9 +474,9 @@ void PluginManager::callPluginMethod( const QString &uuid, const QString &method
const QPointer<QObject> object = mLoadedPlugins[pluginPath];

const char *normalizedSignature = QMetaObject::normalizedSignature( ( methodName + "()" ).toStdString().c_str() );
const int methodExists = object->metaObject()->indexOfSlot( normalizedSignature );
const int methodIndex = object->metaObject()->indexOfSlot( normalizedSignature );

if ( methodExists != -1 )
if ( methodIndex != -1 )
{
QMetaObject::invokeMethod( object.data(), methodName.toStdString().c_str() );
}
Expand Down
32 changes: 24 additions & 8 deletions src/core/positioning/egenioussreceiver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ void EgenioussReceiver::handleConnectDevice()
void EgenioussReceiver::connected()
{
mSocketState = QAbstractSocket::ConnectedState;
mSocketStateString = tr( "Successfully connected" );
emit socketStateChanged( mSocketState );
setValid( true );
}
Expand All @@ -35,6 +36,7 @@ void EgenioussReceiver::disconnected()
if ( mTcpSocket->state() == QAbstractSocket::ConnectedState )
{
mSocketState = QAbstractSocket::UnconnectedState;
mSocketStateString = tr( "Disconnected" );
emit socketStateChanged( mSocketState );
}
}
Expand All @@ -55,27 +57,39 @@ QList<QPair<QString, QVariant>> EgenioussReceiver::details()

void EgenioussReceiver::onReadyRead()
{
const int minimumDataSize = 9;
const uint8_t validStartByte = 0xFE;
const int payloadHeaderSize = 8;

QByteArray mReceivedData = mTcpSocket->readAll();
if ( mReceivedData.size() < 9 )
if ( mReceivedData.size() < minimumDataSize )
{
return; // Received data is too short to process.
mLastError = tr( "Received data is too short to process" );
emit lastErrorChanged( mLastError );
return;
}
if ( static_cast<uint8_t>( mReceivedData[0] ) != 0xFE )
if ( static_cast<uint8_t>( mReceivedData[0] ) != validStartByte )
{
return; // Invalid start byte
mLastError = tr( "Invalid start byte" );
emit lastErrorChanged( mLastError );
return;
}
uint32_t payloadLength;
QDataStream dataStream( mReceivedData.mid( 4, 4 ) );
dataStream.setByteOrder( QDataStream::LittleEndian );
dataStream >> payloadLength;
if ( mReceivedData.size() < 8 + payloadLength )
if ( mReceivedData.size() < payloadHeaderSize + payloadLength )
{
return; // Received data is too short to contain the payload.
mLastError = tr( "Received data is too short to contain the payload" );
emit lastErrorChanged( mLastError );
return;
}
QJsonDocument jsonDoc = QJsonDocument::fromJson( mReceivedData.mid( 8, payloadLength ) );
QJsonDocument jsonDoc = QJsonDocument::fromJson( mReceivedData.mid( payloadHeaderSize, payloadLength ) );
if ( jsonDoc.isNull() || !jsonDoc.isObject() )
{
return; // Failed to parse JSON
mLastError = tr( "Failed to parse JSON" );
emit lastErrorChanged( mLastError );
return;
}
mPayload = jsonDoc.object();
const double latitude = mPayload.value( "lat" ).toDouble() == 0 ? std::numeric_limits<double>::quiet_NaN() : mPayload.value( "lat" ).toDouble();
Expand Down Expand Up @@ -118,6 +132,8 @@ void EgenioussReceiver::handleError( QAbstractSocket::SocketError error )
mLastError = tr( "TCP receiver error (%1)" ).arg( QMetaEnum::fromType<QAbstractSocket::SocketError>().valueToKey( error ) );
break;
}
mSocketState = QAbstractSocket::UnconnectedState;
mSocketStateString = mLastError;
qInfo() << QStringLiteral( "EgenioussReceiver: Error: %1" ).arg( mLastError );

emit lastErrorChanged( mLastError );
Expand Down
6 changes: 3 additions & 3 deletions src/qml/PositioningDeviceSettings.qml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Popup {
}

function handleEgenioussChange() {
if (positioningSettings.enableEgeniouss) {
if (positioningSettings.egenioussEnabled) {
positioningDeviceTypeModel.insert(0, {
"name": qsTr('Egeniouss'),
"value": PositioningDeviceModel.EgenioussDevice
Expand All @@ -68,14 +68,14 @@ Popup {
"value": PositioningDeviceModel.SerialPortDevice
});
}
if (positioningSettings.enableEgeniouss) {
if (positioningSettings.egenioussEnabled) {
positioningDeviceTypeModel.insert(0, {
"name": qsTr('Egeniouss'),
"value": PositioningDeviceModel.EgenioussDevice
});
}
positioningDeviceType.model = positioningDeviceTypeModel;
positioningSettings.onEnableEgenioussChanged.connect(handleEgenioussChange);
positioningSettings.onEgenioussEnabledChanged.connect(handleEgenioussChange);
}

Page {
Expand Down
2 changes: 1 addition & 1 deletion src/qml/PositioningSettings.qml
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ Settings {
property int digitizingMeasureType: 1

property bool geofencingPreventDigitizingDuringAlert: false
property bool enableEgeniouss: false
property bool egenioussEnabled: false
}

0 comments on commit 183fd28

Please sign in to comment.