1 #ifndef NUGGET_TOOLS_H 2 #define NUGGET_TOOLS_H 3 4 #include <app_nugget.h> 5 #include <application.h> 6 #include <nos/debug.h> 7 #include <nos/NuggetClient.h> 8 9 #include <memory> 10 #include <string> 11 12 #define ASSERT_NO_ERROR(code, msg) \ 13 do { \ 14 int value = code; \ 15 ASSERT_EQ(value, app_status::APP_SUCCESS) \ 16 << value << " is " << nos::StatusCodeString(value) << msg; \ 17 } while(0) 18 19 namespace nugget_tools { 20 21 bool IsDirectDeviceClient(); 22 23 std::string GetCitadelUSBSerialNo(); 24 25 std::unique_ptr<nos::NuggetClientInterface> MakeNuggetClient(); 26 27 std::unique_ptr<nos::NuggetClient> MakeDirectNuggetClient(); 28 29 // Always does a hard reboot. Use WaitForSleep() if you just want deep sleep. 30 bool RebootNuggetUnchecked(nos::NuggetClientInterface *client); 31 // Does a hard reboot and checks the stats to make sure it happened. 32 bool RebootNugget(nos::NuggetClientInterface *client); 33 34 // Returns true if Citadel entered deep sleep 35 // Passes back an underestimate of the number of seconds waited if so. 36 bool WaitForSleep(nos::NuggetClientInterface *client, uint32_t *seconds_waited); 37 38 bool WipeUserData(nos::NuggetClientInterface *client); 39 40 } // namespace nugget_tools 41 42 #endif // NUGGET_TOOLS_H 43