@@ -1054,6 +1054,42 @@ std::vector<std::uint8_t> DeviceBase::readFactoryCalibrationRaw() {
10541054 return eepromDataRaw;
10551055}
10561056
1057+ void DeviceBase::flashEepromClear () {
1058+ bool factoryPermissions = false ;
1059+ bool protectedPermissions = false ;
1060+ getFlashingPermissions (factoryPermissions, protectedPermissions);
1061+ spdlog::debug (" Clearing User EEPROM contents. Factory permissions {}, Protected permissions {}" , factoryPermissions, protectedPermissions);
1062+
1063+ if (!protectedPermissions) {
1064+ throw std::runtime_error (" Calling EEPROM clear API is not allowed in current configuration" );
1065+ }
1066+
1067+ bool success;
1068+ std::string errorMsg;
1069+ std::tie (success, errorMsg) = pimpl->rpcClient ->call (" eepromClear" , protectedPermissions, factoryPermissions).as <std::tuple<bool , std::string>>();
1070+ if (!success) {
1071+ throw std::runtime_error (errorMsg);
1072+ }
1073+ }
1074+
1075+ void DeviceBase::flashFactoryEepromClear () {
1076+ bool factoryPermissions = false ;
1077+ bool protectedPermissions = false ;
1078+ getFlashingPermissions (factoryPermissions, protectedPermissions);
1079+ spdlog::debug (" Clearing User EEPROM contents. Factory permissions {}, Protected permissions {}" , factoryPermissions, protectedPermissions);
1080+
1081+ if (!protectedPermissions || !factoryPermissions) {
1082+ throw std::runtime_error (" Calling factory EEPROM clear API is not allowed in current configuration" );
1083+ }
1084+
1085+ bool success;
1086+ std::string errorMsg;
1087+ std::tie (success, errorMsg) = pimpl->rpcClient ->call (" eepromFactoryClear" , protectedPermissions, factoryPermissions).as <std::tuple<bool , std::string>>();
1088+ if (!success) {
1089+ throw std::runtime_error (errorMsg);
1090+ }
1091+ }
1092+
10571093bool DeviceBase::startPipeline () {
10581094 // Deprecated
10591095 return true ;
0 commit comments