public com.robotraconteur.device.DeviceInfo ToRRInfo()
        {
            var info = new com.robotraconteur.device.DeviceInfo();

            CopyTo(info);
            return(info);
        }
 public void CopyTo(com.robotraconteur.device.DeviceInfo device_info)
 {
     device_info.device               = device?.ToRRInfo();
     device_info.parent_device        = parent_device?.ToRRInfo();
     device_info.manufacturer         = manufacturer?.ToRRInfo();
     device_info.model                = model?.ToRRInfo();
     device_info.serial_number        = serial_number ?? "";
     device_info.options              = options?.Select(x => x.ToRRInfo()).ToList();
     device_info.capabilities         = capabilities?.Select(x => x.ToRRInfo()).ToList();
     device_info.device_classes       = device_classes?.Select(x => x.ToRRInfo()).ToList();
     device_info.user_description     = user_description ?? "";
     device_info.description_resource = description_resource?.ToRRInfo();
     device_info.implemented_types    = implemented_types?.Select(x => x ?? "").ToList();
     device_info.device_origin_pose   = device_origin_pose?.ToRRInfo();
     device_info.extended             = extended?.ToDictionary(x => x.Key, x => x.Value.value);
 }