XR_EXT_interaction_profile_battery_state_display

رشته نام

XR_EXT_interaction_profile_battery_state_display

نوع افزونه

افزونه نمونه

شماره داخلی ثبت شده

۸۳۷

بازنگری

۱

وضعیت تصویب

تصویب شده

وابستگی‌های افزونه و نسخه

اوپن‌ایکس‌آر ۱.۰

آخرین تاریخ اصلاح

۲۰۲۵-۱۰-۲۱

وضعیت آی‌پی

هیچ ادعای مالکیت معنوی شناخته‌شده‌ای وجود ندارد.

مشارکت‌کنندگان

جان کرنی، متا
دنیل ویلموت، ولو
دنی رونگرن، وارخو
یاکوب بورنکرانتز، انویدیا
ناتان نوبر، ولو
لاکلان فورد، گوگل
نیهاو جین، گوگل

نمای کلی

XR_EXT_interaction_profile_battery_state_display مکانیزمی را برای برنامه‌ها فراهم می‌کند تا اطلاعات وضعیت باتری دستگاه‌هایی که با پروفایل‌های تعامل استفاده می‌شوند را در زمان اجرا جستجو کنند. این اطلاعات وضعیت باتری فقط باید برای اهداف نمایشی استفاده شود و زمان اجرا باید تضمین کند که این اطلاعات با آنچه در رابط‌های کاربری داخلی سیستم استفاده می‌شود، مطابقت دارد.

در مواردی که چندین دستگاه فیزیکی ورودی به اقدامات مرتبط با یک مسیر سطح بالا، مانند زمان‌های اجرا که نگاشت مجدد را برای سفارشی‌سازی یا دسترسی کاربر انجام می‌دهند، ارائه می‌دهند، این زمان‌های اجرا باید تمام تلاش خود را برای ارائه اطلاعات مفید باتری در یک مقدار واحد انجام دهند.

به طور خاص، انتظار نمی‌رود که این اطلاعات بین زمان‌های اجرا یا دستگاه‌ها کالیبره شود و نباید برای تولید هشدار یا تغییر رفتار برنامه استفاده شود.

پرس و جو برای وضعیت باتری

ساختار XrBatteryStateDisplayEXT به صورت زیر تعریف شده است:

typedef struct XrBatteryStateDisplayEXT {
    XrStructureType                       type;
    void*                                 next;
    XrBatteryStateDisplayStateFlagsEXT    stateFlags;
    float                                 batteryLevel;
} XrBatteryStateDisplayEXT;

توضیحات اعضا

  • type نوع XrStructureType این ساختار است.
  • next NULL یا اشاره‌گری به ساختار بعدی در یک زنجیره ساختار است.
  • stateFlags اعتبار batteryLevel را با استفاده از bit mask های تعریف شده در XrBatteryStateDisplayStateFlagBitsEXT توصیف می‌کند.
  • batteryLevel ) سطح باتری (از 0.0f تا 1.0f) دستگاه متصل شده توسط موجودیت یا اقدام مرتبط است.

برای پرس‌وجوی میزان باتری، برنامه هنگام فراخوانی xrGetCurrentInteractionProfile ، یک ساختار XrBatteryStateDisplayEXT را به زنجیره XrInteractionProfileState :: next زنجیر می‌کند.

اگر xrGetCurrentInteractionProfile مقدار XrInteractionProfileState :: interactionProfile روی XR_NULL_PATH تنظیم کند، آنگاه زمان اجرا نباید بیت XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT را در stateFlags تنظیم کند.

XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT نشان می‌دهد که آیا batteryLevel حاوی داده‌های معتبر است یا خیر. اگر بیت XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT در stateFlags تنظیم نشده باشد، برنامه نباید batteryLevel را بخواند.

کاربرد معتبر (ضمنی)

عضو XrBatteryStateDisplayEXT :: stateFlags از نوع زیر است و شامل یک OR بیتی از صفر یا بیشتر از بیت‌های تعریف شده در XrBatteryStateDisplayStateFlagBitsEXT است.

typedef XrFlags64 XrBatteryStateDisplayStateFlagsEXT;

// Flag bits for XrBatteryStateDisplayStateFlagsEXT
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT = 0x00000001;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT = 0x00000002;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT = 0x00000004;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT = 0x00000008;

بیت‌های پرچم معانی زیر را دارند:

توضیحات پرچم

  • XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT — نشان‌دهنده‌ی اعتبار XrBatteryStateDisplayEXT :: batteryLevel
  • XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT — نشان می‌دهد که دستگاه مرتبط با نمایه تعامل در حال شارژ است.
  • XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT — نشان می‌دهد که دستگاه مرتبط با پروفایل تعامل به منبع تغذیه متصل است.
  • XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT — نشان می‌دهد که دستگاه مرتبط با نمایه تعامل، منبع تغذیه باتری ندارد.

مثال

// previously initialized
extern XrSession session;
extern XrPath topLevelUserPath;

XrBatteryStateDisplayEXT batteryStateDisplay{XR_TYPE_BATTERY_STATE_DISPLAY_EXT};
XrInteractionProfileState ipState{XR_TYPE_INTERACTION_PROFILE_STATE, &batteryStateDisplay};
CHK_XR(xrGetCurrentInteractionProfile(session, topLevelUserPath, &ipState));
if ((batteryStateDisplay.stateFlags & XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT) != 0) {
  // use value of batteryStateDisplay.batteryLevel
}

سازه‌های جدید

Enum های جدید

بیت‌ماسک‌های جدید

ثابت‌های شمارشی جدید

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • گسترش XrStructureType :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

مسائل

  • آیا برنامه می‌تواند میزان باتری نمایش داده شده برای یک دستگاه نصب شده روی سر با این افزونه را جستجو کند؟

    • حل شد. نه مستقیماً . این افزونه فقط از برگرداندن سطح باتری نمایش داده شده برای مسیرهای سطح بالای /کاربر با پروفایل‌های تعامل فعلی پشتیبانی می‌کند. اگر برنامه، اتصالاتی را برای یک پروفایل تعامل برای دستگاه نصب شده روی سر ( /user/head ) پیشنهاد دهد، و اگر زمان اجرا آن پروفایل تعامل را فعال کند، زمان اجرا می‌تواند سطح باتری را برای آن مسیر سطح بالای /کاربر برگرداند.

تاریخچه نسخه

  • نسخه ۱، ۲۰۲۵-۱۰-۲۱ (جان کرنی)

    • پیش‌نویس اولیه.