fix: restore changes omitted by v2 develop merge

This commit is contained in:
ob-yalian
2026-09-21 18:54:31 +08:00
parent a625397460
commit e10afc11a4
34 changed files with 422 additions and 388 deletions
+3 -1
View File
@@ -420,8 +420,10 @@ DeviceIdentity getDeviceIdentity(const std::shared_ptr<ob::DeviceInfo> &device_i
DeviceIdentity identity;
identity.serial_number = safeString(device_info->getSerialNumber());
identity.uid = safeString(device_info->getUid());
identity.ip_address = safeString(device_info->getIpAddress());
identity.is_network = safeString(device_info->getConnectionType()) == "Ethernet";
if (identity.is_network) {
identity.ip_address = safeString(device_info->getIpAddress());
}
return identity;
}
+46 -1
View File
@@ -22,15 +22,18 @@ constexpr char kDocumentationUrl[] =
struct CliArgs {
bool help = false;
std::string serial_number;
std::string device_preset;
std::string sdk_log_level = "off";
};
void printUsage() {
std::cout << "Usage:\n"
<< "ros2 run orbbec_camera list_camera_profile_mode_node --\\\n"
<< " [--serial_number SN]\n\n"
<< " [--serial_number SN] [--device_preset PRESET]\n\n"
<< "Parameters:\n"
<< " --serial_number SN Select a specific camera by serial number.\n"
<< " --device_preset PRESET\n"
<< " Load a device preset before listing profiles.\n"
<< " --sdk_log_level LEVEL\n"
<< " SDK file log level: debug/info/warn/error/fatal/off "
"(default: off).\n"
@@ -67,6 +70,28 @@ bool parseArgs(int argc, char** argv, CliArgs& args, std::string& error) {
continue;
}
if (current.rfind("--device_preset=", 0) == 0) {
args.device_preset = current.substr(std::strlen("--device_preset="));
if (args.device_preset.empty()) {
error = "--device_preset requires a value";
return false;
}
continue;
}
if (current == "--device_preset") {
if (++i >= argc) {
error = "--device_preset requires a value";
return false;
}
args.device_preset = argv[i];
if (args.device_preset.empty()) {
error = "--device_preset requires a value";
return false;
}
continue;
}
if (current.rfind("--sdk_log_level=", 0) == 0) {
args.sdk_log_level = current.substr(std::strlen("--sdk_log_level="));
continue;
@@ -220,6 +245,23 @@ void printPreset(const std::shared_ptr<ob::Device>& device) {
}
}
bool loadDevicePreset(const std::shared_ptr<ob::Device>& device, const std::string& device_preset) {
if (device_preset.empty()) {
return true;
}
try {
device->loadPreset(device_preset.c_str());
std::cout << "Loaded device preset: " << device_preset << std::endl;
return true;
} catch (const ob::Error& e) {
std::cerr << "Failed to load device preset: " << formatObErrorWithStatus(e) << std::endl;
} catch (const std::exception& e) {
std::cerr << "Failed to load device preset: " << e.what() << std::endl;
}
return false;
}
int main(int argc, char** argv) {
CliArgs args;
std::string parse_error;
@@ -247,6 +289,9 @@ int main(int argc, char** argv) {
if (isSdkLogEnabled(args.sdk_log_level)) {
firmware_log_enabled = enableFirmwareLog(device);
}
if (!loadDevicePreset(device, args.device_preset)) {
return -1;
}
listSensorProfiles(device);
printDeviceProperties(device);
printPreset(device);