Central — BLE میں اس کا کردار اور یہ آلات کو کیسے اسکین کرتا ہے

مصنف: IT Sectr اشاعت: 2026-07-15 مطالعے کا وقت: 8 منٹ

Central بلوٹوتھ لو انرجی آرکیٹیکچر میں ایک ایسا آلہ ہے جو اسکیننگ شروع کرتا ہے، کنکشن قائم کرتا ہے اور پیریفرل آلات کے ساتھ ڈیٹا کے تبادلے کا انتظام کرتا ہے۔ موبائل ڈویلپمنٹ کے سیاق و سباق میں، Central ایک اسمارٹ فون یا ٹیبلٹ ہے جو iOS یا Android پر چلتا ہے اور BLE سینسرز، فٹنس ٹریکرز اور اسمارٹ لوازمات سے جڑتا ہے۔ Bluetooth Core Specification 5.4 (2023) کے مطابق، Central بیک وقت 7 مختلف Peripheral کے ساتھ بیک وقت کنکشن کو سپورٹ کر سکتا ہے، اگرچہ حقیقی حد چپ بنانے والے اور OS ورژن پر منحصر ہے۔ iOS پر Core Bluetooth اور Android پر android.bluetooth.le Central کردار کے انتظام کے لیے مکمل API فراہم کرتے ہیں۔

اہم نکات

  • Central ایک فعال BLE آلہ ہے جو اسکین کرتا ہے، جڑتا ہے اور پیریفرل کے ساتھ تبادلے کا انتظام کرتا ہے۔
  • اسکیننگ اشتہاری پیکٹ کے ذریعے کی جاتی ہے — Central توانائی بچانے کے لیے Service UUID کے ذریعے آلات کو فلٹر کر سکتا ہے۔
  • ایک Central بیک وقت مختلف Peripheral کے ساتھ 7 کنکشن تک سپورٹ کر سکتا ہے (عمل درآمد پر منحصر ہے)۔
  • موبائل ڈویلپمنٹ میں، Central ایک اسمارٹ فون ہے جو Core Bluetooth (iOS) یا android.bluetooth.le (Android) استعمال کرتا ہے۔
  • Central کردار مسلسل اسکیننگ اور ڈیٹا پروسیسنگ کی وجہ سے Peripheral سے زیادہ توانائی استعمال کرتا ہے۔

BLE میں Central کیا ہے؟

Central بلوٹوتھ لو انرجی آرکیٹیکچر میں ایک GATT کلائنٹ ہے جو تمام مواصلات شروع کرتا ہے۔ Peripheral کے برعکس، جو غیر فعال طور پر کنکشن کا انتظار کرتا ہے اور اپنی خدمات کی تشہیر کرتا ہے، Central فعال طور پر فضا کو اسکین کرتا ہے، اشتہاری پیکٹ دریافت کرتا ہے اور کنکشن شروع کرتا ہے۔

غیر متناسب Central-Peripheral ماڈل BLE کی ایک بنیادی خصوصیت ہے۔ Central تعامل کی منطق کا انتظام کرتا ہے: یہ فیصلہ کرتا ہے کہ کس آلے سے جڑنا ہے، کن خدمات کو دریافت کرنا ہے اور کن خصوصیات کو پڑھنا اور لکھنا ہے۔ Peripheral ڈیٹا سرور کے طور پر کام کرتا ہے — یہ خدمات اور خصوصیات کو ذخیرہ کرتا ہے لیکن کنکشن شروع نہیں کرتا۔

Bluetooth Core Specification 5.4 (2023) کے مطابق، ایک آلہ بیک وقت Central اور Peripheral (دوہرا کردار) ہو سکتا ہے۔ مثال کے طور پر، ایک اسمارٹ فون فٹنس بینڈ کے لیے Central اور فائلز منتقل کرنے والے دوسرے اسمارٹ فون کے لیے Peripheral ہو سکتا ہے۔ تاہم، دونوں کرداروں میں بیک وقت کام کرنے سے توانائی کی کھپت اور کنکشن کے انتظام کی پیچیدگی بڑھ جاتی ہے۔

موبائل ڈویلپمنٹ ایکو سسٹم میں، Central کردار سب سے عام منظرنامہ ہے۔ اسمارٹ فون پر ایک ایپ BLE آلات (سینسرز، ہیڈ فونز، بینڈز) تلاش کرتی ہے، ان سے جڑتی ہے اور ڈیٹا وصول کرتی ہے۔ ڈویلپر Central کے ساتھ کام کرنے کے لیے آپریٹنگ سسٹم API استعمال کرتا ہے: iOS پر CBCentralManager، Android پر BluetoothLeScanner اور BluetoothGatt۔

آلات اسکین کرنے کا عمل

اسکیننگ Central کے آپریشن کا پہلا مرحلہ ہے۔ آلہ BLE ریڈیو چینلز (37، 38، 39) پر سنتا ہے تاکہ اشتہاری پیکٹ کا پتہ لگا سکے جو Peripheral وقتاً فوقتاً بھیجتے ہیں۔ ہر اشتہاری پیکٹ میں آلے کا نام، Service UUID کی فہرست اور حسب ضرورت ڈیٹا ہوتا ہے۔

Central دو اسکیننگ موڈز میں کام کر سکتا ہے: غیر فعال اسکیننگ (صرف اشتہاری پیکٹ وصول کرنا) اور فعال اسکیننگ (اسکین رسپانس کے ذریعے اضافی ڈیٹا حاصل کرنے کے لیے اسکین کی درخواست بھیجنا)۔ غیر فعال اسکیننگ توانائی بچاتی ہے لیکن کم معلومات دیتی ہے۔ فعال اسکیننگ آلے کا نام اور مکمل خدمات کی فہرست سمیت اشتہاری پیکٹ کا مکمل ڈیٹا حاصل کرنے کی اجازت دیتی ہے۔

UUID کے ذریعے فلٹرنگ ایک اہم اصلاح ہے۔ Central صرف ایک مخصوص Service UUID والے آلات کو اسکین کر سکتا ہے، باقی کو نظر انداز کر سکتا ہے۔ یہ نہ صرف توانائی بچاتا ہے بلکہ ایپلیکیشن کی منطق کو بھی آسان بناتا ہے: مندوب صرف متعلقہ آلات وصول کرتا ہے۔

swift
import CoreBluetooth

class BLECentralManager: NSObject, CBCentralManagerDelegate {

    private var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(
            delegate: self,
            queue: nil
        )
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        if central.state == .poweredOn {
            central.scanForPeripherals(
                withServices: nil,
                options: [
                    CBCentralManagerScanOptionAllowDuplicatesKey: false
                ]
            )
        }
    }
}

کنکشن کا انتظام

کنکشن کا انتظام Central کی اہم ذمہ داری ہے۔ مناسب Peripheral دریافت کرنے کے بعد، Central کنکشن شروع کرتا ہے۔ BLE کنکشن کنکشن قیام کے عمل کے ذریعے قائم ہوتا ہے جس میں پیرامیٹرز کا تبادلہ شامل ہوتا ہے: کنکشن وقفہ، غلام تاخیر اور نگرانی کا وقت ختم۔

کنکشن وقفہ اس بات کا تعین کرتا ہے کہ کنکشن کے بعد Central اور Peripheral کتنی بار ڈیٹا کا تبادلہ کرتے ہیں۔ وقفہ 7.5 ms سے 4 سیکنڈ تک ہو سکتا ہے۔ وقفہ جتنا چھوٹا ہوگا، تھرو پٹ اتنا ہی زیادہ ہوگا، لیکن توانائی کی کھپت بھی اتنی ہی زیادہ ہوگی۔ غلام تاخیر Peripheral کو توانائی بچانے کے لیے متعدد کنکشن ایونٹس کو چھوڑنے کی اجازت دیتی ہے۔ نگرانی کا وقت ختم بغیر جواب کے زیادہ سے زیادہ وقت ہے، جس کے بعد کنکشن کو کھو دیا گیا سمجھا جاتا ہے۔

Central ڈیٹا کے تبادلے کے مکمل ہونے کے بعد کنکشن ختم کرنے کا ذمہ دار ہے۔ BLE آلات عام طور پر مستقل کنکشن برقرار نہیں رکھتے — Central جڑتا ہے، ڈیٹا حاصل کرتا ہے اور منقطع ہو جاتا ہے۔ یہ IoT سینسرز کے لیے ایک معیاری نمونہ ہے: Central اسکین کرتا ہے، درجہ حرارت کا سینسر ڈھونڈتا ہے، جڑتا ہے، قدر پڑھتا ہے اور منقطع ہو جاتا ہے۔

پیرامیٹرحدمقصدسفارش
کنکشن وقفہ7.5 ms – 4 sڈیٹا کے تبادلے کی تعدداسٹریمنگ کے لیے 30–50 ms، نایاب ڈیٹا کے لیے 1–4 s
غلام تاخیر0–499 واقعاتPeripheral واقعات کو چھوڑناسینسر توانائی بچت کے لیے 4–10
نگرانی کا وقت ختم100 ms – 32 sکنکشن کھونے کا وقت ختمزیادہ تر منظرناموں کے لیے 6–10 سیکنڈ
MTU23–517 بائٹسATT پیکٹ کا سائزکنکشن پر زیادہ سے زیادہ کی درخواست کریں

iOS پر Central: Core Bluetooth

Core Bluetooth iOS اور macOS پر BLE کے ساتھ کام کرنے کے لیے Apple کا فریم ورک ہے۔ CBCentralManager کلاس Central کردار کو نافذ کرنے کے لیے مکمل API فراہم کرتی ہے: اسکیننگ، کنکشن، کنکشن کا انتظام۔ iOS پر Central کے ساتھ کام مندوب ماڈل پر مبنی ہے: CBCentralManagerDelegate حالت میں تبدیلی، آلات کی دریافت اور کنکشن کے نتائج کے واقعات وصول کرتا ہے۔

iOS پر Central کے اہم مراحل: CBCentralManager کو شروع کرنا، Bluetooth کی حالت چیک کرنا، اسکیننگ شروع کرنا، مندوب کے ذریعے دریافت شدہ آلات کو ہینڈل کرنا، منتخب Peripheral سے جڑنا، خدمات اور خصوصیات دریافت کرنا، ڈیٹا کا تبادلہ کرنا۔

swift
// دریافت شدہ Peripheral سے جڑیں
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // Peripheral کا حوالہ رکھیں اور جڑیں
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// کامیاب کنکشن
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

iOS پس منظر میں BLE کام کو محدود کرتا ہے: پس منظر میں، ایک ایپ صرف Info.plist میں مخصوص کلیدوں سے اسکین کر سکتی ہے، اور منسلک آلات Central کو ڈیٹا کی تبدیلیوں کے بارے میں مطلع کر سکتے ہیں۔ اہم ایپلیکیشنز (طبی آلات) کے لیے، bluetooth-central کلید کے ساتھ پس منظر کے طریقوں کا استعمال کریں۔

Android پر Central: BluetoothLeScanner

Android BLE آلات کو اسکین کرنے کے لیے BluetoothLeScanner API اور کنکشن کے انتظام کے لیے BluetoothGatt فراہم کرتا ہے۔ Android 5.0 (API 21) سے شروع کرتے ہوئے، BluetoothLeScanner نے فرسودہ startLeScan کی جگہ لے لی۔ API کو BLUETOOTH، BLUETOOTH_ADMIN اور ACCESS_FINE_LOCATION اجازت ناموں کی ضرورت ہے (Android 10+ کے لیے ACCESS_BACKGROUND_LOCATION)۔

java
import android.bluetooth.le.*;
import android.bluetooth.*;

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// اسکیننگ ترتیب دیں
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// اسکیننگ شروع کریں
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // آلے سے جڑیں
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

Android پر، اسکیننگ کی پابندیوں پر غور کرنا ضروری ہے: Android 7 (API 24) سے شروع کرتے ہوئے، مقام استعمال نہ کرنے والی ایپس میں اسکیننگ 30 سیکنڈ میں 5 بار سے زیادہ شروع نہیں کی جا سکتی۔ Android 12+ کو BLUETOOTH_SCAN، BLUETOOTH_CONNECT اور ADVERTISE اجازت ناموں کے ساتھ ساتھ ان اجازت ناموں کے رن ٹائم درخواست کی ضرورت ہے۔

Central کی توانائی کی کھپت

Central کی توانائی کی کھپت Peripheral سے زیادہ ہے کیونکہ اسے ریڈیو چینلز کو مسلسل اسکین کرنے کی ضرورت ہوتی ہے۔ Central BLE پیکٹ وصول کرتا ہے، ان پر کارروائی کرتا ہے، کنکشن کا انتظام کرتا ہے اور اکثر ایپلیکیشن پروسیسر پر حسابات انجام دیتا ہے۔ Bluetooth SIG کے مطابق، اسکیننگ موڈ کے لحاظ سے 30 mA سے 100 mA تک استعمال کرتی ہے۔

Central کے لیے توانائی بچانے کی کئی حکمت عملییں ہیں۔ وقفہ اسکیننگ سب سے مؤثر طریقہ ہے: Central لمبے وقفوں (اسکین وقفہ) کے ساتھ چھوٹی ونڈوز (اسکین ونڈو) میں اسکین کرتا ہے۔ مثال کے طور پر، 30 ms کی اسکین ونڈو اور 1000 ms کے اسکین وقفہ کے ساتھ، مسلسل اسکیننگ کے مقابلے میں توانائی کی کھپت 97% کم ہو جاتی ہے۔

ایک اضافی اصلاح UUID فلٹرنگ ہے۔ Central صرف متعلقہ اشتہاری پیکٹوں پر تیزی سے کارروائی کرتا ہے، باقی کو نظر انداز کرتا ہے۔ اس سے CPU کا بوجھ کم ہوتا ہے اور آلے کی بیٹری کی زندگی بڑھتی ہے۔ نیز، مطلوبہ آلہ ملتے ہی اسکیننگ بند کرنے اور ضرورت سے زیادہ دیر تک کنکشن برقرار نہ رکھنے کی سفارش کی جاتی ہے۔

اکثر پوچھے گئے سوالات

کیا اسمارٹ فون بیک وقت Central اور Peripheral ہو سکتا ہے؟

ہاں، BLE دوہرے کردار کو سپورٹ کرتا ہے: ایک آلہ بیک وقت کچھ آلات کے لیے Central اور دوسروں کے لیے Peripheral ہو سکتا ہے۔ مثال کے طور پر، اسمارٹ فون سینسر سے ڈیٹا پڑھتا ہے (Central کے طور پر) اور بیک وقت کسی دوسرے آلے کو ڈیٹا منتقل کرنے کے لیے اپنی خدمت کی تشہیر کرتا ہے (Peripheral کے طور پر)۔

Central بیک وقت کتنے آلات کی خدمت کر سکتا ہے؟

BLE تصریح ایک Central کے لیے 7 کنکشن کی حد متعین کرتی ہے۔ عملی طور پر، حد چپ بنانے والے پر منحصر ہے: Nordic nRF52840 چپس 20 کنکشن تک سپورٹ کرتی ہیں، جبکہ کچھ سستے Bluetooth اڈاپٹر 3–4 سے زیادہ سپورٹ نہیں کرتے۔

میرا Central میرے BLE سینسر کا پتہ کیوں نہیں لگا رہا؟

وجوہات مختلف ہو سکتی ہیں: سینسر تشہیر نہیں کر رہا (تشہیر کے موڈ میں نہیں)، UUID فلٹر بہت سخت ہے، اسمارٹ فون پر Bluetooth بند ہے، ضروری اجازت نامے غائب ہیں (Android پر مقام)، یا سینسر حد سے باہر ہے (انڈور میں 10 میٹر تک تجویز کردہ)۔

کیا BLE آلے کے ساتھ کنکشن مسلسل برقرار رکھنا ضروری ہے؟

ضروری نہیں۔ بہت سے منظرناموں کے لیے، کنیکٹ-اور-پڑھیں پیٹرن استعمال کیا جاتا ہے: Central اسکین کرتا ہے، جڑتا ہے، ضروری ڈیٹا پڑھتا ہے اور منقطع ہو جاتا ہے۔ مسلسل کنکشن صرف اسٹریمنگ ڈیٹا (نبض، ECG) یا ریئل ٹائم آلہ کنٹرول کے لیے ضروری ہے۔

اسکیننگ کے دوران Central کی توانائی کی کھپت کیسے کم کی جائے؟

30–50 ms کی اسکین ونڈو اور 500–1000 ms کے اسکین وقفہ کے ساتھ وقفہ اسکیننگ استعمال کریں۔ صرف متعلقہ اشتہاری پیکٹوں پر کارروائی کرنے کے لیے UUID کے ذریعے آلات کو فلٹر کریں۔ مطلوبہ Peripheral ملتے ہی اسکیننگ بند کر دیں۔

خلاصہ

  • Central BLE کنکشن کا ایک فعال شریک ہے جو اسکیننگ، کنکشن اور ڈیٹا کے تبادلے کا انتظام شروع کرتا ہے۔
  • اسکیننگ کے عمل میں Service UUID کے ذریعے فلٹر کرنے کی صلاحیت کے ساتھ چینل 37، 38، 39 پر اشتہاری پیکٹ وصول کرنا شامل ہے۔
  • Peripheral دریافت کرنے کے بعد، Central تشکیل پذیر پیرامیٹرز — کنکشن وقفہ، غلام تاخیر، نگرانی کا وقت ختم — کے ساتھ کنکشن قائم کرتا ہے۔
  • موبائل ڈویلپمنٹ میں، Central CBCentralManager (iOS) یا BluetoothLeScanner + BluetoothGatt (Android) کے ذریعے نافذ کیا جاتا ہے۔
  • ایک Central معیاری Bluetooth ترتیب میں بیک وقت 7 کنکشن تک کا انتظام کر سکتا ہے۔
  • Central کی توانائی کی کھپت کو وقفہ اسکیننگ اور UUID فلٹرنگ کے ذریعے بیٹری کی زندگی بڑھانے کے لیے بہتر بنایا جا سکتا ہے۔
  • دریافت سے منقطع ہونے تک کنکشن لائف سائیکل کا مناسب انتظام BLE ایپلیکیشن کی مؤثریت کا تعین کرتا ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں