ওয়েব সিরিয়ালে ব্লুটুথ RFCOMM আপডেট

ফ্রাঁসোয়া বিউফোর্ট
François Beaufort

ওয়েব সিরিয়াল API ডেস্কটপে Chrome 117 থেকে জোড়া ব্লুটুথ ক্লাসিক ডিভাইসে RFCOMM পরিষেবার সাথে যোগাযোগ সমর্থন করে। উদাহরণস্বরূপ, এটি ওয়্যারলেস ইয়ারবাডগুলিকে অডিও সেটিংস এবং ফার্মওয়্যার আপডেটগুলি পরিচালনা করতে RFCOMM ব্যবহার করার অনুমতি দেয়। আরও জানতে ওয়েবে ব্লুটুথের মাধ্যমে সিরিয়াল দেখুন।

ডেস্কটপের জন্য Chrome 130 থেকে, ওয়েব সিরিয়াল API-এর একটি উন্নতি ওয়েব অ্যাপগুলিকে সনাক্ত করতে দেয় কখন একটি ব্লুটুথ RFCOMM সিরিয়াল পোর্ট উপলব্ধ থাকে, পোর্টটি খোলা ছাড়াই৷ যখন বেতার ডিভাইসটি ইচ্ছাকৃতভাবে সংযোগ বিচ্ছিন্ন করা হয়েছিল তখন এটি অপ্রয়োজনীয় পুনঃসংযোগ রোধ করে।

যখন একটি ওয়্যারলেস ডিভাইস হোস্টের সীমার বাইরে চলে যায়, তখন একটি ওয়েব অ্যাপ দ্বারা খোলা যেকোনো বেতার সিরিয়াল পোর্ট স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। এই ধরনের ক্ষেত্রে, ওয়েব অ্যাপ SerialPort open() পদ্ধতিতে পোর্টটি পুনরায় খোলার চেষ্টা করতে পারে। যাইহোক, যদি ওয়্যারলেস ডিভাইসটি ইচ্ছাকৃতভাবে সংযোগ বিচ্ছিন্ন হয়ে থাকে (উদাহরণস্বরূপ, অপারেটিং সিস্টেম কন্ট্রোল প্যানেল থেকে ব্যবহারকারীর দ্বারা), ওয়েব অ্যাপটিকে ওয়্যারলেস ডিভাইসের সাথে পুনরায় সংযোগ করা প্রতিরোধ করতে পোর্টটি পুনরায় খোলা থেকে বিরত থাকতে হবে।

একটি নতুন বুলিয়ান সিরিয়াল পোর্ট connected অ্যাট্রিবিউটের মাধ্যমে ওয়্যারলেস সিরিয়াল পোর্ট হোস্ট করা ওয়্যারলেস ডিভাইসের যৌক্তিক সংযোগের অবস্থা প্রকাশ করে, ওয়েব অ্যাপগুলি এখন এই ক্ষেত্রেগুলিকে আলাদা করতে পারে, এবং সংযোগ বিচ্ছিন্ন যদি অনিচ্ছাকৃত হয় তবেই পুনরায় সংযোগ করতে পারে৷

সিরিয়ালপোর্ট 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 সিরিয়াল পোর্টগুলি এখন এই ইভেন্টগুলি প্রেরণ করে যখন পোর্টটি যৌক্তিকভাবে সংযুক্ত বা সংযোগ বিচ্ছিন্ন হয়ে যায়।

ডেমো

সিরিয়ালপোর্ট সংযুক্ত ডেমো।

সম্পদ

স্বীকৃতি

তাদের পর্যালোচনার জন্য জ্যাক হিসিয়েহ এবং রিলি গ্রান্টকে ধন্যবাদ।