Loading .vscode/c_cpp_properties.jsondeleted 100644 → 0 +0 −21 Original line number Diff line number Diff line { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/sdk/src/**", "/usr/include/linux/**", "/usr/include/c++/10/tr1/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu17", "cppStandard": "gnu++17", "intelliSenseMode": "linux-gcc-x64", "compilerArgs": [ "-DUWS_NO_ZLIB -pthread -lstdc++fs" ] } ], "version": 4 } No newline at end of file .vscode/tasks.json +3 −0 Original line number Diff line number Diff line { "tasks": [ { "label": "arm build & run", "command": "sudo", Loading @@ -12,6 +13,8 @@ "isDefault": true }, }, { "type": "cppbuild", "label": "x86 build", Loading sdk/build/miphoto/miphoto-exec +208 B (9.38 MiB) File changed.No diff preview for this file type. View original file View changed file sdk/docker.sh +3 −1 Original line number Diff line number Diff line #!/usr/bin/bash outfile=miphoto-exec buildopts="-std=c++17 -Wno-psabi -static-libstdc++ -DUWS_NO_ZLIB -Isrc/lib/ArduinoJson -Isrc/lib/uSockets -Isrc/lib/uWebSockets -Isrc/lib/easyexif -Lsrc/lib -lpthread -lstdc++fs -l:uSockets.a -l:exif.a" buildopts="-std=c++17 -Wno-psabi -static-libstdc++ -DUWS_NO_ZLIB -Isrc/lib/ArduinoJson -Isrc/lib/uSockets -Isrc/lib/uWebSockets -Isrc/lib/easyexif -Lsrc/lib -lpthread -lstdc++fs -l:uSockets.a -l:exif.a " #"-l:libambaeventnotifier.so -l:libcrc.so -l:libcrc_priv.so -l:libaipc_cfg.so -l:libambaipc.so" sources=$(ls src/*.cpp 2>/dev/null | tr '\r\n' ' ') || (echo "No .cpp files found" && exit 1) arm-linux-gnueabihf-c++ $sources $buildopts -o /workdir/build/miphoto/$outfile && echo -e "\nBUILD SUCCESSFUL.\n" || echo -e "\nBUILD FAILED.\n" sdk/src/commander.cpp +43 −13 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include "commander.h" #include "server.h" #include "exif.h" #include "sendToRTOS.h" using namespace std; Loading Loading @@ -100,7 +101,19 @@ bool Commander::getToken() bool Commander::holdSession() { return _sock.sendString(this->generateJSON(Codes::MsgId::QuerySessionHolder)); //return _sock.sendString(this->generateJSON(Codes::MsgId::QuerySessionHolder)); shared_ptr<DynamicJsonDocument> jsonPtr; // send QuerySessionHolder and check if response contains "rval":InvalidToken bool failed =_sock.sendRecvVerify( generateJSON(Codes::MsgId::QuerySessionHolder, _token), jsonPtr, make_pair(Codes::MsgId::QuerySessionHolder,Codes::Rval::ErrorInvalidToken), std::chrono::milliseconds(1000), 1 ); return !failed; } bool Commander::wifiControl(bool on) Loading Loading @@ -829,16 +842,18 @@ void Commander::invalidateCachedSettings() _bracketingBuiltIn = (Codes::ParamBracketingBuiltIn)-1; } void Commander::disconnectCommander() void Commander::disconnectCommander(bool dropToken) { if (dropToken) { // drop token shared_ptr<DynamicJsonDocument> jsonPtr; _sock.sendRecvVerify( generateJSON(Codes::MsgId::DropToken), jsonPtr, make_pair(Codes::MsgId::DropToken, Codes::Rval::CommandOk), chrono::milliseconds(1000), 2); 1); } disconnectSocket(); } Loading Loading @@ -1041,6 +1056,7 @@ bool Commander::executorShoot(shared_ptr<DynamicJsonDocument> jsonPtr) } // turn of wifi if requested and shoot bool wifiTurnedOff = false; if ((*jsonPtr)["wifiOff"] == true) { _server->wsSendState(Server::State::DISCONNECTED); Loading @@ -1049,14 +1065,28 @@ bool Commander::executorShoot(shared_ptr<DynamicJsonDocument> jsonPtr) cerr << "Error: Couldn't turn off wifi." << endl; _server->wsSendNotification("Error: Couldn't turn off wifi...", true); } else { wifiTurnedOff = true; this_thread::sleep_for(chrono::milliseconds(200)); } } SendToRTOS::SendWifiConnected(); // make camera think that someone is connected to the wifi this_thread::sleep_for(chrono::milliseconds(100)); if (!shoot()) { _server->wsSendNotification("Error while shooting...", true); } SendToRTOS::SendWifiDisconnected(); this_thread::sleep_for(chrono::milliseconds(100)); this_thread::sleep_for(chrono::milliseconds(300)); if (wifiTurnedOff) { this_thread::sleep_for(chrono::milliseconds(200)); wifiControl(true); } // set auto power-off to original value if (autoPowerOffBackup != _autoPowerOff) Loading Loading
.vscode/c_cpp_properties.jsondeleted 100644 → 0 +0 −21 Original line number Diff line number Diff line { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/sdk/src/**", "/usr/include/linux/**", "/usr/include/c++/10/tr1/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu17", "cppStandard": "gnu++17", "intelliSenseMode": "linux-gcc-x64", "compilerArgs": [ "-DUWS_NO_ZLIB -pthread -lstdc++fs" ] } ], "version": 4 } No newline at end of file
.vscode/tasks.json +3 −0 Original line number Diff line number Diff line { "tasks": [ { "label": "arm build & run", "command": "sudo", Loading @@ -12,6 +13,8 @@ "isDefault": true }, }, { "type": "cppbuild", "label": "x86 build", Loading
sdk/build/miphoto/miphoto-exec +208 B (9.38 MiB) File changed.No diff preview for this file type. View original file View changed file
sdk/docker.sh +3 −1 Original line number Diff line number Diff line #!/usr/bin/bash outfile=miphoto-exec buildopts="-std=c++17 -Wno-psabi -static-libstdc++ -DUWS_NO_ZLIB -Isrc/lib/ArduinoJson -Isrc/lib/uSockets -Isrc/lib/uWebSockets -Isrc/lib/easyexif -Lsrc/lib -lpthread -lstdc++fs -l:uSockets.a -l:exif.a" buildopts="-std=c++17 -Wno-psabi -static-libstdc++ -DUWS_NO_ZLIB -Isrc/lib/ArduinoJson -Isrc/lib/uSockets -Isrc/lib/uWebSockets -Isrc/lib/easyexif -Lsrc/lib -lpthread -lstdc++fs -l:uSockets.a -l:exif.a " #"-l:libambaeventnotifier.so -l:libcrc.so -l:libcrc_priv.so -l:libaipc_cfg.so -l:libambaipc.so" sources=$(ls src/*.cpp 2>/dev/null | tr '\r\n' ' ') || (echo "No .cpp files found" && exit 1) arm-linux-gnueabihf-c++ $sources $buildopts -o /workdir/build/miphoto/$outfile && echo -e "\nBUILD SUCCESSFUL.\n" || echo -e "\nBUILD FAILED.\n"
sdk/src/commander.cpp +43 −13 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include "commander.h" #include "server.h" #include "exif.h" #include "sendToRTOS.h" using namespace std; Loading Loading @@ -100,7 +101,19 @@ bool Commander::getToken() bool Commander::holdSession() { return _sock.sendString(this->generateJSON(Codes::MsgId::QuerySessionHolder)); //return _sock.sendString(this->generateJSON(Codes::MsgId::QuerySessionHolder)); shared_ptr<DynamicJsonDocument> jsonPtr; // send QuerySessionHolder and check if response contains "rval":InvalidToken bool failed =_sock.sendRecvVerify( generateJSON(Codes::MsgId::QuerySessionHolder, _token), jsonPtr, make_pair(Codes::MsgId::QuerySessionHolder,Codes::Rval::ErrorInvalidToken), std::chrono::milliseconds(1000), 1 ); return !failed; } bool Commander::wifiControl(bool on) Loading Loading @@ -829,16 +842,18 @@ void Commander::invalidateCachedSettings() _bracketingBuiltIn = (Codes::ParamBracketingBuiltIn)-1; } void Commander::disconnectCommander() void Commander::disconnectCommander(bool dropToken) { if (dropToken) { // drop token shared_ptr<DynamicJsonDocument> jsonPtr; _sock.sendRecvVerify( generateJSON(Codes::MsgId::DropToken), jsonPtr, make_pair(Codes::MsgId::DropToken, Codes::Rval::CommandOk), chrono::milliseconds(1000), 2); 1); } disconnectSocket(); } Loading Loading @@ -1041,6 +1056,7 @@ bool Commander::executorShoot(shared_ptr<DynamicJsonDocument> jsonPtr) } // turn of wifi if requested and shoot bool wifiTurnedOff = false; if ((*jsonPtr)["wifiOff"] == true) { _server->wsSendState(Server::State::DISCONNECTED); Loading @@ -1049,14 +1065,28 @@ bool Commander::executorShoot(shared_ptr<DynamicJsonDocument> jsonPtr) cerr << "Error: Couldn't turn off wifi." << endl; _server->wsSendNotification("Error: Couldn't turn off wifi...", true); } else { wifiTurnedOff = true; this_thread::sleep_for(chrono::milliseconds(200)); } } SendToRTOS::SendWifiConnected(); // make camera think that someone is connected to the wifi this_thread::sleep_for(chrono::milliseconds(100)); if (!shoot()) { _server->wsSendNotification("Error while shooting...", true); } SendToRTOS::SendWifiDisconnected(); this_thread::sleep_for(chrono::milliseconds(100)); this_thread::sleep_for(chrono::milliseconds(300)); if (wifiTurnedOff) { this_thread::sleep_for(chrono::milliseconds(200)); wifiControl(true); } // set auto power-off to original value if (autoPowerOffBackup != _autoPowerOff) Loading