به روز رسانی بلوتوث RFCOMM در وب سریال

فرانسوا بوفور
François Beaufort

API سریال وب از برقراری ارتباط با سرویس‌های RFCOMM در دستگاه‌های جفت‌شده با بلوتوث کلاسیک از طریق کروم ۱۱۷ در دسکتاپ پشتیبانی می‌کند. برای مثال، این به هدفون‌های بی‌سیم اجازه می‌دهد تا از RFCOMM برای مدیریت تنظیمات صوتی و به‌روزرسانی‌های میان‌افزار استفاده کنند. برای کسب اطلاعات بیشتر، به Serial over Bluetooth در وب مراجعه کنید.

از کروم ۱۳۰ برای دسکتاپ، بهبود رابط برنامه‌نویسی کاربردی سریال وب به برنامه‌های وب اجازه می‌دهد تا بدون نیاز به باز کردن پورت، تشخیص دهند که چه زمانی یک پورت سریال RFCOMM بلوتوث در دسترس است. این امر از اتصال مجدد غیرضروری در زمانی که دستگاه بی‌سیم عمداً قطع شده است، جلوگیری می‌کند.

وقتی یک دستگاه بی‌سیم از محدوده میزبان خارج می‌شود، هر پورت سریال بی‌سیمی که توسط یک برنامه وب باز شده باشد، به‌طور خودکار بسته می‌شود. در چنین مواردی، برنامه وب ممکن است با استفاده از متد SerialPort open() سعی در بازگشایی پورت داشته باشد. با این حال، اگر دستگاه بی‌سیم عمداً قطع شده باشد (مثلاً توسط کاربر از طریق کنترل پنل سیستم عامل)، برنامه وب باید از بازگشایی پورت خودداری کند تا از اتصال مجدد به دستگاه بی‌سیم جلوگیری شود.

با افشای وضعیت اتصال منطقی دستگاه بی‌سیم میزبان پورت سریال بی‌سیم از طریق یک ویژگی جدید بولی SerialPort connected ، برنامه‌های وب اکنون می‌توانند این موارد را تشخیص دهند و تنها در صورتی که قطع اتصال غیرعمدی بوده باشد، دوباره متصل شوند.

ویژگی SerialPort connected برای پورت‌های سریال بی‌سیم در صورتی درست است که دستگاه بی‌سیم میزبان پورت، هرگونه اتصال فعالی به سیستم داشته باشد. برای پورت‌های سریال سیمی، در صورتی درست است که پورت به صورت فیزیکی به سیستم متصل باشد.

قطعه کد زیر به شما نشان می‌دهد که چگونه می‌توانید بررسی کنید کدام دستگاه‌ها در دسترس هستند و به طور خودکار به آنها متصل شوید.

const ports = await navigator.serial.getPorts();
for (const port of ports) {
  if (port.connected) {
    // Automatically try to connect to the Bluetooth device.
    await port.open({ baudRate: 9600 });
  } else {
    // Otherwise, when the port is not logically connected:
    // 1. Prompt the user to make sure the Bluetooth device is available.
    // 2. Show a "connect" button to try opening the port.
  }
}

پیش از این، فقط پورت‌های سریال سیمی رویدادهای اتصال و قطع ارتباط را ارسال می‌کردند. پورت‌های سریال بلوتوث RFCOMM اکنون این رویدادها را زمانی ارسال می‌کنند که پورت به صورت منطقی متصل یا قطع شود.

نسخه آزمایشی

نسخه آزمایشی متصل به پورت سریال.

منابع

تقدیرنامه‌ها

با تشکر از جک هسیه و ریلی گرانت برای نقدهایشان.