|
19 | 19 | #include <QDebug> |
20 | 20 | #include <QProcess> |
21 | 21 | #include <QSettings> |
| 22 | +#include <QJsonObject> |
| 23 | +#include <QJsonDocument> |
22 | 24 | #include <QtConcurrent/QtConcurrent> |
23 | 25 | #include <QtNetwork/QNetworkProxy> |
24 | 26 |
|
@@ -1133,227 +1135,181 @@ bool DownloadThread::_customizeImage() |
1133 | 1135 | qDebug() << "Writing OpenHD-Settings"; |
1134 | 1136 | QSettings settings_; |
1135 | 1137 |
|
1136 | | - |
1137 | 1138 | QString cameraName = settings_.value("camera").toString(); |
1138 | 1139 | QString sbcValue = settings_.value("sbc").toString(); |
1139 | 1140 | QString modeValue = settings_.value("mode").toString(); |
1140 | 1141 | QString hotspot = settings_.value("hotspot").toString(); |
1141 | 1142 | QString bootType = settings_.value("bootType").toString(); |
1142 | 1143 | QString qopenhdConfPath = settings_.value("qopenhdConfPath").toString(); |
1143 | 1144 |
|
| 1145 | + QJsonObject openhdSettings; |
| 1146 | + |
1144 | 1147 | if (!cameraName.isEmpty()){ |
1145 | 1148 | QString cameraValue; |
1146 | 1149 | qDebug() << "Camera found" << cameraName; |
1147 | | - QFile cam(folder+"/openhd/camera1.txt"); |
1148 | | - //Encode camera name to Cam-int |
1149 | | - if (cam.open(QIODevice::WriteOnly)) |
1150 | | - { |
1151 | | - if (sbcValue == "rpi"){ |
1152 | | - //RaspberryPi |
1153 | | - if (cameraName == "OV5647"){ |
1154 | | - cameraValue="30"; |
1155 | | - } |
1156 | | - else if (cameraName == "IMX219"){ |
1157 | | - cameraValue="31"; |
1158 | | - } |
1159 | | - else if (cameraName == "IMX708"){ |
1160 | | - cameraValue="32"; |
1161 | | - } |
1162 | | - else if (cameraName == "IMX477"){ |
1163 | | - cameraValue="33"; |
1164 | | - } |
1165 | | - else if (cameraName == "HDMI"){ |
1166 | | - cameraValue="20"; |
1167 | | - } |
1168 | | - //Arducam |
1169 | | - else if (cameraName == "SkyMasterHDR708"){ |
1170 | | - cameraValue="40"; |
1171 | | - } |
1172 | | - else if (cameraName == "SkyVisionPro519"){ |
1173 | | - cameraValue="41"; |
1174 | | - } |
1175 | | - else if (cameraName == "IMX477m"){ |
1176 | | - cameraValue="42"; |
1177 | | - } |
1178 | | - else if (cameraName == "IMX462"){ |
1179 | | - cameraValue="43"; |
1180 | | - } |
1181 | | - else if (cameraName == "IMX327"){ |
1182 | | - cameraValue="44"; |
1183 | | - } |
1184 | | - else if (cameraName == "IMX290"){ |
1185 | | - cameraValue="45"; |
1186 | | - } |
1187 | | - else if (cameraName == "IMX462MINI"){ |
1188 | | - cameraValue="46"; |
1189 | | - } |
1190 | | - else if (cameraName == "IMX662"){ |
1191 | | - cameraValue="47"; |
1192 | | - } |
1193 | | - //Veye |
1194 | | - else if (cameraName == "2MPCAMERAS"){ |
1195 | | - cameraValue="60"; |
1196 | | - } |
1197 | | - else if (cameraName == "CSIMX307"){ |
1198 | | - cameraValue="61"; |
1199 | | - } |
1200 | | - else if (cameraName == "CSSC137"){ |
1201 | | - cameraValue="62"; |
1202 | | - } |
1203 | | - else if (cameraName == "MVCAM"){ |
1204 | | - cameraValue="63"; |
1205 | | - } |
| 1150 | + |
| 1151 | + if (sbcValue == "rpi"){ |
| 1152 | + //RaspberryPi |
| 1153 | + if (cameraName == "OV5647"){ |
| 1154 | + cameraValue="30"; |
1206 | 1155 | } |
1207 | | - else if (sbcValue == "zero3w"){ |
1208 | | - if (cameraName == "HDMI"){ |
1209 | | - cameraValue="90"; |
1210 | | - } |
1211 | | - if (cameraName == "IMX462"){ |
1212 | | - cameraValue="94"; |
1213 | | - } |
1214 | | - if (cameraName == "IMX519"){ |
1215 | | - cameraValue="95"; |
1216 | | - } |
1217 | | - if (cameraName == "IMX219"){ |
1218 | | - cameraValue="92"; |
1219 | | - } |
1220 | | - else if (cameraName == "OV5647"){ |
1221 | | - cameraValue="91"; |
1222 | | - } |
1223 | | - else if (cameraName == "IMX708"){ |
1224 | | - cameraValue="93"; |
1225 | | - } |
1226 | | - else if (cameraName == "VEYE"){ |
1227 | | - cameraValue="97"; |
1228 | | - } |
1229 | | - else if (cameraName == "OHD-JAGUAR"){ |
1230 | | - cameraValue="96"; |
1231 | | - } |
| 1156 | + else if (cameraName == "IMX219"){ |
| 1157 | + cameraValue="31"; |
1232 | 1158 | } |
1233 | | - else if ((sbcValue == "rock-5b") || (sbcValue == "rock-5a")) { |
1234 | | - if (cameraName == "HDMI"){ |
1235 | | - cameraValue="80"; |
1236 | | - } |
1237 | | - if (cameraName == "IMX219"){ |
1238 | | - cameraValue="82"; |
1239 | | - } |
1240 | | - else if (cameraName == "OV5647"){ |
1241 | | - cameraValue="81"; |
1242 | | - } |
1243 | | - else if (cameraName == "IMX708"){ |
1244 | | - cameraValue="83"; |
1245 | | - } |
1246 | | - else if (cameraName == "IMX462"){ |
1247 | | - cameraValue="84"; |
1248 | | - } |
1249 | | - else if (cameraName == "IMX415"){ |
1250 | | - cameraValue="85"; |
1251 | | - } |
1252 | | - else if (cameraName == "IMX477"){ |
1253 | | - cameraValue="86"; |
1254 | | - } |
1255 | | - else if (cameraName == "IMX519"){ |
1256 | | - cameraValue="87"; |
1257 | | - } |
1258 | | - else if (cameraName == "OHD-JAGUAR"){ |
1259 | | - cameraValue="88"; |
1260 | | - } |
| 1159 | + else if (cameraName == "IMX708"){ |
| 1160 | + cameraValue="32"; |
1261 | 1161 | } |
1262 | | - |
1263 | | - if (cameraName == "FILESRC"){ |
1264 | | - cameraValue="4"; |
| 1162 | + else if (cameraName == "IMX477"){ |
| 1163 | + cameraValue="33"; |
1265 | 1164 | } |
1266 | | - else if (cameraName == "IP-CAMERA"){ |
1267 | | - cameraValue="3"; |
| 1165 | + else if (cameraName == "HDMI"){ |
| 1166 | + cameraValue="20"; |
1268 | 1167 | } |
1269 | | - else if (cameraName == "EXTERNAL"){ |
1270 | | - cameraValue="2"; |
| 1168 | + //Arducam |
| 1169 | + else if (cameraName == "SkyMasterHDR708"){ |
| 1170 | + cameraValue="40"; |
1271 | 1171 | } |
1272 | | - else if (cameraName == "USB"){ |
1273 | | - cameraValue="1"; |
| 1172 | + else if (cameraName == "SkyVisionPro519"){ |
| 1173 | + cameraValue="41"; |
1274 | 1174 | } |
1275 | | - else if (cameraName == "TESTPATTERN"){ |
1276 | | - cameraValue="0"; |
| 1175 | + else if (cameraName == "IMX477m"){ |
| 1176 | + cameraValue="42"; |
1277 | 1177 | } |
1278 | | - |
1279 | | - QByteArray camBytes = cameraValue.toUtf8(); |
1280 | | - qint64 bytesWritten = cam.write(camBytes); |
1281 | | - cam.close(); |
1282 | | - |
1283 | | - |
1284 | | - if (bytesWritten == camBytes.length()) |
1285 | | - { |
1286 | | - // Successfully wrote the camera to the file |
| 1178 | + else if (cameraName == "IMX462"){ |
| 1179 | + cameraValue="43"; |
1287 | 1180 | } |
1288 | | - else |
1289 | | - { |
1290 | | - emit error(tr("Error writing camera to camera1.txt on FAT partition")); |
1291 | | - return false; |
| 1181 | + else if (cameraName == "IMX327"){ |
| 1182 | + cameraValue="44"; |
| 1183 | + } |
| 1184 | + else if (cameraName == "IMX290"){ |
| 1185 | + cameraValue="45"; |
| 1186 | + } |
| 1187 | + else if (cameraName == "IMX462MINI"){ |
| 1188 | + cameraValue="46"; |
| 1189 | + } |
| 1190 | + else if (cameraName == "IMX662"){ |
| 1191 | + cameraValue="47"; |
| 1192 | + } |
| 1193 | + //Veye |
| 1194 | + else if (cameraName == "2MPCAMERAS"){ |
| 1195 | + cameraValue="60"; |
| 1196 | + } |
| 1197 | + else if (cameraName == "CSIMX307"){ |
| 1198 | + cameraValue="61"; |
| 1199 | + } |
| 1200 | + else if (cameraName == "CSSC137"){ |
| 1201 | + cameraValue="62"; |
| 1202 | + } |
| 1203 | + else if (cameraName == "MVCAM"){ |
| 1204 | + cameraValue="63"; |
1292 | 1205 | } |
1293 | 1206 | } |
1294 | | - else |
1295 | | - { |
1296 | | - emit error(tr("Error creating camera1.txt on FAT partition")); |
1297 | | - return false; |
| 1207 | + else if (sbcValue == "zero3w"){ |
| 1208 | + if (cameraName == "HDMI"){ |
| 1209 | + cameraValue="90"; |
| 1210 | + } |
| 1211 | + if (cameraName == "IMX462"){ |
| 1212 | + cameraValue="94"; |
| 1213 | + } |
| 1214 | + if (cameraName == "IMX519"){ |
| 1215 | + cameraValue="95"; |
| 1216 | + } |
| 1217 | + if (cameraName == "IMX219"){ |
| 1218 | + cameraValue="92"; |
| 1219 | + } |
| 1220 | + else if (cameraName == "OV5647"){ |
| 1221 | + cameraValue="91"; |
| 1222 | + } |
| 1223 | + else if (cameraName == "IMX708"){ |
| 1224 | + cameraValue="93"; |
| 1225 | + } |
| 1226 | + else if (cameraName == "VEYE"){ |
| 1227 | + cameraValue="97"; |
| 1228 | + } |
| 1229 | + else if (cameraName == "OHD-JAGUAR"){ |
| 1230 | + cameraValue="96"; |
| 1231 | + } |
| 1232 | + } |
| 1233 | + else if ((sbcValue == "rock-5b") || (sbcValue == "rock-5a")) { |
| 1234 | + if (cameraName == "HDMI"){ |
| 1235 | + cameraValue="80"; |
| 1236 | + } |
| 1237 | + if (cameraName == "IMX219"){ |
| 1238 | + cameraValue="82"; |
| 1239 | + } |
| 1240 | + else if (cameraName == "OV5647"){ |
| 1241 | + cameraValue="81"; |
| 1242 | + } |
| 1243 | + else if (cameraName == "IMX708"){ |
| 1244 | + cameraValue="83"; |
| 1245 | + } |
| 1246 | + else if (cameraName == "IMX462"){ |
| 1247 | + cameraValue="84"; |
| 1248 | + } |
| 1249 | + else if (cameraName == "IMX415"){ |
| 1250 | + cameraValue="85"; |
| 1251 | + } |
| 1252 | + else if (cameraName == "IMX477"){ |
| 1253 | + cameraValue="86"; |
| 1254 | + } |
| 1255 | + else if (cameraName == "IMX519"){ |
| 1256 | + cameraValue="87"; |
| 1257 | + } |
| 1258 | + else if (cameraName == "OHD-JAGUAR"){ |
| 1259 | + cameraValue="88"; |
| 1260 | + } |
| 1261 | + } |
| 1262 | + |
| 1263 | + if (cameraName == "FILESRC"){ |
| 1264 | + cameraValue="4"; |
| 1265 | + } |
| 1266 | + else if (cameraName == "IP-CAMERA"){ |
| 1267 | + cameraValue="3"; |
| 1268 | + } |
| 1269 | + else if (cameraName == "EXTERNAL"){ |
| 1270 | + cameraValue="2"; |
| 1271 | + } |
| 1272 | + else if (cameraName == "USB"){ |
| 1273 | + cameraValue="1"; |
| 1274 | + } |
| 1275 | + else if (cameraName == "TESTPATTERN"){ |
| 1276 | + cameraValue="0"; |
| 1277 | + } |
| 1278 | + |
| 1279 | + if (!cameraValue.isEmpty()) { |
| 1280 | + openhdSettings.insert("camera", cameraValue); |
1298 | 1281 | } |
1299 | 1282 | } |
| 1283 | + |
1300 | 1284 | if (!sbcValue.isEmpty()){ |
1301 | | - QFile sbc(folder + "/openhd" + "/" + sbcValue + ".txt"); |
1302 | | - if (sbc.open(QIODevice::WriteOnly)) { |
1303 | | - QTextStream stream(&sbc); |
1304 | | - sbc.close(); |
1305 | | - } else { |
1306 | | - emit error(tr("This Image does not support settings, yet !")); |
1307 | | - return false; |
1308 | | - } |
| 1285 | + openhdSettings.insert("sbc", sbcValue); |
1309 | 1286 | } |
1310 | | - // if (!hotspot.isEmpty()){ |
1311 | | - // QFile Hs(folder+"/openhd"+"/wifi_hotspot.txt"); |
1312 | | - // if (Hs.open(QIODevice::WriteOnly)) { |
1313 | | - // QTextStream stream(&Hs); |
1314 | | - // Hs.close(); |
1315 | | - // } else { |
1316 | | - // emit error(tr("Error creating hotspot.txt file on FAT partition")); |
1317 | | - // return false; |
1318 | | - // } |
1319 | | - // } |
| 1287 | + |
1320 | 1288 | if (modeValue == "debug"){ |
1321 | | - QFile Db(folder+"/openhd"+"/debug.txt"); |
1322 | | - if (Db.open(QIODevice::WriteOnly)) { |
1323 | | - QTextStream stream(&Db); |
1324 | | - Db.close(); |
1325 | | - } else { |
1326 | | - emit error(tr("Error creating debug.txt file on FAT partition")); |
1327 | | - return false; |
1328 | | - } |
1329 | | - } |
1330 | | - if (!sbcValue.isEmpty()) { |
1331 | | - QFile sbc(folder+"/openhd"+"/"+sbcValue+".txt"); |
1332 | | - if (sbc.open(QIODevice::WriteOnly)) { |
1333 | | - QTextStream stream(&sbc); |
1334 | | - sbc.close(); |
1335 | | - } else { |
1336 | | - emit error(tr("This Image does not support settings, yet !")); |
1337 | | - return false; |
1338 | | - } |
| 1289 | + openhdSettings.insert("debug", true); |
1339 | 1290 | } |
| 1291 | + |
1340 | 1292 | if (bootType == "Air"){ |
1341 | | - QFile air(folder+"/openhd"+"/air.txt"); |
1342 | | - if (air.open(QIODevice::WriteOnly)) { |
1343 | | - QTextStream stream(&air); |
1344 | | - air.close(); |
1345 | | - } else { |
1346 | | - emit error(tr("Error creating air.txt file on FAT partition")); |
1347 | | - return false; |
1348 | | - } |
| 1293 | + openhdSettings.insert("role", "air"); |
1349 | 1294 | } |
1350 | 1295 | else if(bootType == "Ground"){ |
1351 | | - QFile ground(folder+"/openhd"+"/ground.txt"); |
1352 | | - if (ground.open(QIODevice::WriteOnly)) { |
1353 | | - QTextStream stream(&ground); |
1354 | | - ground.close(); |
| 1296 | + openhdSettings.insert("role", "ground"); |
| 1297 | + } |
| 1298 | + |
| 1299 | + if (!openhdSettings.isEmpty()) { |
| 1300 | + QDir openhdDir(folder + "/openhd"); |
| 1301 | + if (!openhdDir.exists() && !openhdDir.mkpath(".")) { |
| 1302 | + emit error(tr("Error creating openhd folder on FAT partition")); |
| 1303 | + return false; |
| 1304 | + } |
| 1305 | + |
| 1306 | + QFile settingsFile(openhdDir.filePath("settings.json")); |
| 1307 | + if (settingsFile.open(QIODevice::WriteOnly)) { |
| 1308 | + QJsonDocument doc(openhdSettings); |
| 1309 | + settingsFile.write(doc.toJson()); |
| 1310 | + settingsFile.close(); |
1355 | 1311 | } else { |
1356 | | - emit error(tr("Error creating air.txt file on FAT partition")); |
| 1312 | + emit error(tr("Error writing settings.json on FAT partition")); |
1357 | 1313 | return false; |
1358 | 1314 | } |
1359 | 1315 | } |
@@ -1382,16 +1338,6 @@ bool DownloadThread::_customizeImage() |
1382 | 1338 | return false; |
1383 | 1339 | } |
1384 | 1340 | } |
1385 | | - // if (!cameraName.isEmpty()) { |
1386 | | - // QFile cam(folder+"/openhd"+"/+camera1+.txt"); |
1387 | | - // if (cam.open(QIODevice::WriteOnly)) { |
1388 | | - // QTextStream stream(&cam); |
1389 | | - // cam.close(); |
1390 | | - // } else { |
1391 | | - // emit error(tr("Error creating Camera file on FAT partition")); |
1392 | | - // return false; |
1393 | | - // } |
1394 | | - // } |
1395 | 1341 | } |
1396 | 1342 |
|
1397 | 1343 | emit finalizing(); |
|
0 commit comments