void SatelliteModel::updateDemoData() { static bool flag = true; QList<QGeoSatelliteInfo> satellites; if (flag) { for (int i = 0; i<5; i++) { QGeoSatelliteInfo info; info.setSatelliteIdentifier(i); info.setSignalStrength(20 + 20*i); satellites.append(info); } } else { for (int i = 0; i<9; i++) { QGeoSatelliteInfo info; info.setSatelliteIdentifier(i*2); info.setSignalStrength(20 + 10*i); satellites.append(info); } } satellitesInViewUpdated(satellites); flag ? satellitesInUseUpdated(QList<QGeoSatelliteInfo>() << satellites.at(2)) : satellitesInUseUpdated(QList<QGeoSatelliteInfo>() << satellites.at(3)); flag = !flag; emit errorFound(flag); if (isSingleRequest() && !singleRequestServed) { singleRequestServed = true; setRunning(false); } }
void addTestData_update() { QTest::addColumn<QGeoSatelliteInfo>("info"); QList<int> intValues = tst_qgeosatelliteinfo_intTestValues(); for (int i=0; i<intValues.count(); i++) { QGeoSatelliteInfo info; info.setSignalStrength(intValues[i]); QTest::newRow("signal strength") << info; } for (int i=0; i<intValues.count(); i++) { QGeoSatelliteInfo info; info.setSatelliteIdentifier(intValues[i]); QTest::newRow("satellite identifier") << info; } QGeoSatelliteInfo info; info.setSatelliteSystem(QGeoSatelliteInfo::GPS); QTest::newRow("satellite system") << info; info.setSatelliteSystem(QGeoSatelliteInfo::GLONASS); QTest::newRow("satellite system") << info; QList<QGeoSatelliteInfo::Attribute> attributes = tst_qgeosatelliteinfo_getAttributes(); QList<qreal> qrealValues = tst_qgeosatelliteinfo_qrealTestValues(); for (int i=0; i<attributes.count(); i++) { QTest::newRow(qPrintable(QString("Attribute %1 = %2").arg(attributes[i]).arg(qrealValues[i]))) << updateWithAttribute(attributes[i], qrealValues[i]); } }
void QGeoSatelliteInfoSourceSimulator::updateData() { QList<QGeoSatelliteInfo> satellitesInUse; QList<QGeoSatelliteInfo> satellitesInView; QGeoSatelliteInfoData *data = qtSatelliteInfo(); for(int i = 0; i < data->satellites.count(); i++) { QGeoSatelliteInfoData::SatelliteInfo info = data->satellites.at(i); QGeoSatelliteInfo satInfo; satInfo.setAttribute(QGeoSatelliteInfo::Azimuth, info.azimuth); satInfo.setAttribute(QGeoSatelliteInfo::Elevation, info.elevation); satInfo.setSignalStrength(info.signalStrength); satInfo.setSatelliteSystem(static_cast<QGeoSatelliteInfo::SatelliteSystem>(info.satelliteSystem)); satInfo.setSatelliteIdentifier(info.satelliteIdentifier); satellitesInView.append(satInfo); if (info.inUse) satellitesInUse.append(satInfo); } emit satellitesInViewUpdated(satellitesInView); emit satellitesInUseUpdated(satellitesInUse); }
// From a QvariantMap representing a location response from the Location Manager fill the lists of // QGeoSatelliteInfo instances intended to be emitted via satellitesInUseUpdated() and // satellitesInViewUpdated() signals. void QGeoSatelliteInfoSourceBbPrivate::populateSatelliteLists(const QVariantMap &map) { // populate _currentSatelliteInfo QVariantMap datMap = map.value("dat").toMap(); QVariantList satelliteList = datMap.value("satellites").toList(); _satellitesInView.clear(); _satellitesInUse.clear(); Q_FOREACH (const QVariant &satelliteData, satelliteList) { datMap = satelliteData.toMap(); QGeoSatelliteInfo satelliteInfo = QGeoSatelliteInfo(); if (datMap.contains("id")) satelliteInfo.setSatelliteIdentifier(static_cast<int>(datMap.value("id").toDouble())); satelliteInfo.setSatelliteSystem(determineSatSystem(satelliteInfo.satelliteIdentifier())); if (datMap.contains("cno")) satelliteInfo.setSignalStrength(static_cast<int>(datMap.value("cno").toDouble())); // attributes if (datMap.contains("elevation")) satelliteInfo.setAttribute(QGeoSatelliteInfo::Elevation, static_cast<qreal>(datMap.value("elevation").toDouble())); else satelliteInfo.removeAttribute(QGeoSatelliteInfo::Elevation); if (datMap.contains("azimuth")) satelliteInfo.setAttribute(QGeoSatelliteInfo::Azimuth, static_cast<qreal>(datMap.value("azimuth").toDouble())); else satelliteInfo.removeAttribute(QGeoSatelliteInfo::Azimuth); // each satellite in this list is considered "in view" _satellitesInView.append(satelliteInfo); if (datMap.value("used").toBool() == true) _satellitesInUse.append(satelliteInfo); }
void QGeoSatelliteInfoSourceNpeBackend::onSatelliteUpdate(const QList<SatelliteData> &satellites) { QList<QGeoSatelliteInfo> inUse; QList<QGeoSatelliteInfo> inView; QListIterator<SatelliteData> it(satellites); if (!satellites.empty()) { while (it.hasNext()) { QGeoSatelliteInfo satinfo; const SatelliteData &satellite = it.next(); satinfo.setAttribute(QGeoSatelliteInfo::Elevation, satellite.elevation); satinfo.setAttribute(QGeoSatelliteInfo::Azimuth, satellite.azimuth); satinfo.setSatelliteIdentifier(satellite.id); satinfo.setSignalStrength(satellite.signalStrength); if (satellite.satSystem == LocationdStrings::PositionInfo::kGPS) satinfo.setSatelliteSystem(QGeoSatelliteInfo::GPS); else if (satellite.satSystem == LocationdStrings::PositionInfo::kGLONASS) satinfo.setSatelliteSystem(QGeoSatelliteInfo::GLONASS); else satinfo.setSatelliteSystem(QGeoSatelliteInfo::Undefined); if (satellite.status & SATELLITES_STATUS_VISIBLE) { inView.append(satinfo); if (satellite.status & SATELLITES_STATUS_USED_POS) inUse.append(satinfo); } } if (inUse.count() > 0) // emit updated signal if satellite list is not empty emit satellitesInUseUpdated(inUse); qDebug() << "emit satelliteUpdated signals: in use count: " << inUse.count() << ", in view count: " <<inView.count(); if (inView.count() > 0) emit satellitesInViewUpdated(inView); if ( requestTimer->isActive() ) shutdownRequestSession(); } }