Added data logger (again)
This commit is contained in:
60
Manager.cpp
60
Manager.cpp
@@ -28,7 +28,7 @@ const std::string NUC5 = "d0:c6:37:bc:5c:41";
|
||||
|
||||
static long long startTime = 0;
|
||||
|
||||
static QString GetCurrentTimeForFileName()
|
||||
static QString getCurrentTimeForFileName()
|
||||
{
|
||||
auto time = std::time(nullptr);
|
||||
std::stringstream ss;
|
||||
@@ -66,8 +66,43 @@ bool Manager::trigger() {
|
||||
}
|
||||
|
||||
void Manager::start() {
|
||||
if (_logToDisk) {
|
||||
QString folder = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation) + "/ftm/";
|
||||
QString prefix = getCurrentTimeForFileName();
|
||||
|
||||
ftmLogger = std::make_shared<QFile>(folder+"/"+prefix+"_ftm.txt");
|
||||
|
||||
if (!ftmLogger->exists()) {
|
||||
// create the folder, if necessary
|
||||
QDir dir(folder);
|
||||
if (!dir.exists()) {
|
||||
qWarning("creating new folder");
|
||||
if (!dir.mkpath(".")) {
|
||||
qWarning() << "Failed to create new folder";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!ftmLogger->open(QIODevice::ReadWrite)) {
|
||||
qWarning() << "Failed to create data logger file" << ftmLogger->fileName();
|
||||
ftmLogger = nullptr;
|
||||
}
|
||||
|
||||
// write header
|
||||
if (ftmLogger) {
|
||||
QTextStream out(ftmLogger.get());
|
||||
out << "timeInMS;" << "MAC;" << "NucIdx;" << "Success;"
|
||||
<< "DistMM;" << "DistStdDevMM;" << "Rssi;" << "NumSuccessfullMeas;" << "NumAttemptedMeas"
|
||||
<< endl;
|
||||
}
|
||||
|
||||
} else {
|
||||
ftmLogger = nullptr;
|
||||
}
|
||||
|
||||
startTime = nowInMsec();
|
||||
|
||||
|
||||
#ifdef ANDROID
|
||||
//QAndroidJniObject::callStaticMethod<int>("android/net/wifi/UWB", "start", "()I");
|
||||
QAndroidJniObject::callStaticMethod<int>("android/net/wifi/RTT", "start", "()I");
|
||||
@@ -91,6 +126,8 @@ void Manager::start() {
|
||||
|
||||
onWifiData(res);
|
||||
}
|
||||
|
||||
stop();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -101,6 +138,12 @@ void Manager::stop() {
|
||||
//QAndroidJniObject::callStaticMethod<int>("android/net/wifi/UWB", "stop", "()I");
|
||||
#endif
|
||||
|
||||
if (ftmLogger) {
|
||||
ftmLogger->flush();
|
||||
ftmLogger->close();
|
||||
ftmLogger = nullptr;
|
||||
}
|
||||
|
||||
isRunning = false;
|
||||
}
|
||||
|
||||
@@ -125,6 +168,21 @@ void Manager::onWifiData(WifiRttResult result) {
|
||||
if(NUC5 == result.mac) {nucIdx = 4;}
|
||||
|
||||
emit newDistMeas(nucIdx, result.distMM);
|
||||
|
||||
if (ftmLogger) {
|
||||
QTextStream out(ftmLogger.get());
|
||||
|
||||
out << result.timeMS << ";"
|
||||
<< QString::fromStdString(result.mac) << ";"
|
||||
<< nucIdx << ";"
|
||||
<< result.success << ";"
|
||||
<< result.distMM << ";"
|
||||
<< result.distStdDevMM << ";"
|
||||
<< result.rssi << ";"
|
||||
<< result.numSuccessfullMeas << ";"
|
||||
<< result.numAttemptedMeas
|
||||
<< endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user