1 #ifndef FILE_OPERATION_H
2 #define FILE_OPERATION_H
8 #include <QJsonDocument>
10 /******************************************************
11 * Write access token of mapbox in /etc/mapAccessToken
12 ******************************************************/
13 #define MAP_ACCESS_TOKEN_FILEPATH "/etc/mapAccessToken"
15 class File_Operation: public QObject{
19 Q_INVOKABLE QString getMapAccessToken() {
22 QString mapAccessToken = "";
24 FILE* filep = fopen(qPrintable(MAP_ACCESS_TOKEN_FILEPATH), "r");
26 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
27 return mapAccessToken;
29 if (!fgets(buf, 512, filep)) {
30 fprintf(stderr,"Failed to read mapAccessToken from mapAccessToken file \"%s\"", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
32 return mapAccessToken;
34 if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') {
35 buf[strlen(buf)-1] = '\0';
37 mapAccessToken = QString(buf);
41 return mapAccessToken;
43 QString mapAccessToken = "";
44 QFile file(MAP_ACCESS_TOKEN_FILEPATH);
45 if (!file.open(QIODevice::ReadOnly)){
46 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
47 return mapAccessToken;
49 QByteArray data = file.readAll();
50 QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
51 QJsonObject jsonObj(jsonDoc.object());
52 if(jsonObj.contains("mapAccessToken")){
53 mapAccessToken = jsonObj["mapAccessToken"].toString();
55 fprintf(stderr,"Failed to find mapAccessToken data \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
59 return mapAccessToken;
63 Q_INVOKABLE double getSpeed() {
64 double speed = 60; // km/h
65 QFile file(MAP_ACCESS_TOKEN_FILEPATH);
66 if (!file.open(QIODevice::ReadOnly)){
67 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
70 QByteArray data = file.readAll();
71 QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
72 QJsonObject jsonObj(jsonDoc.object());
73 if(jsonObj.contains("speed")){
74 speed = jsonObj["speed"].toDouble();
76 fprintf(stderr,"Failed to find speed data \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
83 Q_INVOKABLE int getInterval() {
84 int interval = 15; // ms
85 QFile file(MAP_ACCESS_TOKEN_FILEPATH);
86 if (!file.open(QIODevice::ReadOnly)){
87 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
90 QByteArray data = file.readAll();
91 QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
92 QJsonObject jsonObj(jsonDoc.object());
93 if(jsonObj.contains("interval")){
94 interval = (int)jsonObj["interval"].toDouble();
96 fprintf(stderr,"Failed to find interval data \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
103 Q_INVOKABLE double getLatitude() {
104 double latitude = 36.136261;
105 QFile file(MAP_ACCESS_TOKEN_FILEPATH);
106 if (!file.open(QIODevice::ReadOnly)){
107 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
110 QByteArray data = file.readAll();
111 QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
112 QJsonObject jsonObj(jsonDoc.object());
113 if(jsonObj.contains("latitude")){
114 latitude = jsonObj["latitude"].toDouble();
116 fprintf(stderr,"Failed to find latitude data \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
123 Q_INVOKABLE double getLongitude() {
124 double longitute = -115.151254;
125 QFile file(MAP_ACCESS_TOKEN_FILEPATH);
126 if (!file.open(QIODevice::ReadOnly)){
127 fprintf(stderr,"Failed to open mapAccessToken file \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
130 QByteArray data = file.readAll();
131 QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
132 QJsonObject jsonObj(jsonDoc.object());
133 if(jsonObj.contains("longitute")){
134 longitute = jsonObj["longitute"].toDouble();
136 fprintf(stderr,"Failed to find longitute data \"%s\": %m", qPrintable(MAP_ACCESS_TOKEN_FILEPATH));
144 #endif // FILE_OPERATION_H