SILICON LABS 21Q2 ਬਲੂਟੁੱਥ ਫੀਚਰ ਲੈਬ
ਬਲੂਟੁੱਥ 21Q2 ਫੀਚਰ ਲੈਬ ਮੈਨੂਅਲ
ਇਹ ਲੈਬ ਮੈਨੂਅਲ ਤੁਹਾਨੂੰ ਕੁਝ ਨਵੀਆਂ ਬਲੂਟੁੱਥ SDK ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਾਰੇ ਦੱਸਦਾ ਹੈ ਜੋ 20Q4 ਅਤੇ 21Q2 ਰੀਲੀਜ਼ ਦੇ ਵਿਚਕਾਰ ਪੇਸ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਸਨ। ਇਸ ਲੈਬ ਵਿੱਚ ਅਸੀਂ ਇੱਕ NCP ਸਾਬਕਾ ਨੂੰ ਬਣਾਵਾਂਗੇample ਅਤੇ ਪਾਈਥਨ ਭਾਸ਼ਾ ਵਿੱਚ ਇੱਕ ਹੋਸਟ ਸਾਫਟਵੇਅਰ ਲਿਖੋ। ਨਵੀਂ ਗਤੀਸ਼ੀਲ GATT ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਅਸੀਂ GATT ਕੌਂਫਿਗਰੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਬਜਾਏ ਹੋਸਟ ਸੌਫਟਵੇਅਰ ਤੋਂ GATT ਡੇਟਾਬੇਸ ਵੀ ਬਣਾਵਾਂਗੇ। ਅੰਤ ਵਿੱਚ LE ਪਾਵਰ ਕੰਟਰੋਲ ਵਿਸ਼ੇਸ਼ਤਾ ਹੋਸਟ ਸੌਫਟਵੇਅਰ ਨੂੰ ਵਧਾ ਕੇ ਪੇਸ਼ ਕੀਤੀ ਗਈ ਹੈ।
ਪੂਰਵ-ਸ਼ਰਤਾਂ
ਇਸ ਲੈਬ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਹੇਠ ਲਿਖਿਆਂ ਦੀ ਲੋੜ ਹੋਵੇਗੀ:
- ਕਿਸੇ ਵੀ EFR22BG/EFR32MG ਰੇਡੀਓ ਬੋਰਡ ਜਾਂ ਇਹਨਾਂ ਦੇ ਮਿਸ਼ਰਣ ਨਾਲ ਦੋ ਥੰਡਰਬੋਰਡ BG32 ਜਾਂ ਦੋ WSTK
- ਬਲੂਟੁੱਥ SDKv5 ਸਮੇਤ Gecko SDK v3.2 ਦੇ ਨਾਲ, Simplicity Studio 3.2 ਸਥਾਪਿਤ
- ਇੱਕ PC ਜਿਸ 'ਤੇ Python v3.6 ਜਾਂ ਬਾਅਦ ਵਾਲਾ ਇੰਸਟਾਲ ਹੈ
NCP ਕਾਰਜਸ਼ੀਲਤਾ ਲਈ ਟਾਰਗੇਟ ਡਿਵਾਈਸਾਂ ਨੂੰ ਫਲੈਸ਼ ਕਰਨਾ
- ਆਪਣੇ ਦੋ ਰੇਡੀਓ ਬੋਰਡ ਅਟੈਚ ਕਰੋ ਅਤੇ ਸਿਮਪਲੀਸਿਟੀ ਸਟੂਡੀਓ 5 ਖੋਲ੍ਹੋ
- ਡੀਬੱਗ ਅਡਾਪਟਰ ਟੈਬ 'ਤੇ ਰੇਡੀਓ ਬੋਰਡਾਂ ਵਿੱਚੋਂ ਇੱਕ ਦੀ ਚੋਣ ਕਰੋ
- ਓਵਰ 'ਤੇ ਤਰਜੀਹੀ SDK ਨੂੰ v3.2.0 'ਤੇ ਸੈੱਟ ਕਰੋview ਲਾਂਚਰ ਦੀ ਟੈਬ view
- ਐਕਸ ਨੂੰ ਖੋਲ੍ਹੋampਪ੍ਰੋਜੈਕਟ ਅਤੇ ਡੈਮੋ ਟੈਬ
- ਨਵਾਂ ਬਲੂਟੁੱਥ - NCP ਡੈਮੋ ਲੱਭੋ।
- ਬੋਰਡ 'ਤੇ NCP ਟਾਰਗੇਟ ਚਿੱਤਰ ਨੂੰ ਫਲੈਸ਼ ਕਰਨ ਲਈ ਰਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
(ਨੋਟ: ਬਲੂਟੁੱਥ - NCP ਖਾਲੀ ਦੇ ਉਲਟ, ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਬਣਾਇਆ ਗਿਆ GATT ਡੇਟਾਬੇਸ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ, ਪਰ ਇਸ ਵਿੱਚ ਗਤੀਸ਼ੀਲ GATT API ਸਮਰਥਿਤ ਹੈ, ਜੋ ਅਗਲੇ ਭਾਗਾਂ ਲਈ ਇੱਕ ਪੂਰਵ ਸ਼ਰਤ ਹੈ)
- ਦੂਜੇ ਰੇਡੀਓ ਬੋਰਡ ਲਈ ਉਹੀ ਕਦਮ ਦੁਹਰਾਓ।
ਪਾਈਥਨ ਵਿੱਚ ਇੱਕ ਬਲੂਟੁੱਥ ਸਰਵਰ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ
ਸ਼ੁਰੂ ਕਰਨਾ
- pybgapi ਪੈਕੇਜ Python ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ PC ਤੋਂ ਟਾਰਗਿਟ ਡਿਵਾਈਸ ਲਈ BGAPI ਕਮਾਂਡਾਂ ਜਾਰੀ ਕਰਨ ਦੀ ਸੰਭਾਵਨਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਸ ਪੈਕੇਜ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਹੇਠ ਲਿਖਿਆਂ ਨੂੰ ਟਾਈਪ ਕਰੋ: pip install pybgapi ਪੈਕੇਜ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਵੇਖੋ https://pypi.org/project/pybgapi/
- ਨਵੀਨਤਮ BGAPI ਪਰਿਭਾਸ਼ਾ ਲੱਭੋ file ਅਧੀਨ
- C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ਅਤੇ ਇਸਨੂੰ ਆਪਣੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਫੋਲਡਰ ਵਿੱਚ ਕਾਪੀ ਕਰੋ।
- python bash ਖੋਲ੍ਹੋ (CLI ਵਿੱਚ python ਟਾਈਪ ਕਰੋ)
- bgapi ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਨਾਲ ਇੰਪੋਰਟ ਕਰੋ: >>> bgapi ਆਯਾਤ ਕਰੋ
- ਆਪਣੇ ਰੇਡੀਓ ਬੋਰਡਾਂ ਵਿੱਚੋਂ ਇੱਕ ਦਾ COM ਪੋਰਟ ਨੰਬਰ (ਉਦਾਹਰਨ ਲਈ COM49) ਲੱਭੋ। ਤੁਹਾਨੂੰ ਡਿਵਾਈਸ ਮੈਨੇਜਰ ਜਾਂ ਆਪਣੇ ਮਨਪਸੰਦ ਟਰਮੀਨਲ ਐਪ ਵਿੱਚ "JLink CDC UART ਪੋਰਟ" ਦੀ ਭਾਲ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
- ਆਪਣੇ ਰੇਡੀਓ ਬੋਰਡ ਨਾਲ ਜੁੜੋ:
- >>> ਕੁਨੈਕਸ਼ਨ = bgapi.SerialConnector('COM49')
- ਇਸ ਨੋਡ ਲਈ pybgapi ਲਾਇਬ੍ਰੇਰੀ ਸ਼ੁਰੂ ਕਰੋ:
- >>> ਨੋਡ = bgapi.BGLib(ਕੁਨੈਕਸ਼ਨ, 'sl_bt.xapi')
- ਇਸ ਨੋਡ ਵੱਲ BGAPI ਸੰਚਾਰ ਖੋਲ੍ਹੋ:
- >>> node.open()
- ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਤੁਸੀਂ system_hello() ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬੋਰਡ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਹਾਨੂੰ ਇੱਕ ਸਿਸਟਮ_ਹੈਲੋ ਜਵਾਬ ਮਿਲਣਾ ਚਾਹੀਦਾ ਹੈ:
- >>> node.bt.system.hello()
- bt_rsp_system_hello(ਨਤੀਜਾ=0)
- >>> node.bt.system.hello()
- ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਨਾਲ ਆਪਣੇ ਨੋਡ ਨੂੰ ਰੀਸੈਟ ਕਰੋ:
- node.bt.system.reset(0)
- ਹੁਣ ਤੁਹਾਨੂੰ ਇੱਕ system_boot ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਨਵੀਨਤਮ ਘਟਨਾ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰੋ:
- evt = node.get_events(max_events=1)
- ਪ੍ਰਿੰਟ (ਈਵੀਟੀ)
- [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]
GATT ਡਾਟਾਬੇਸ ਬਣਾਉਣਾ
- ਬਲੂਟੁੱਥ – NCP ਟਾਰਗੇਟ ਐਪ ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਬਣਾਇਆ ਗਿਆ GATT ਡੇਟਾਬੇਸ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। ਇੱਥੇ ਅਸੀਂ ਕੋਡ ਤੋਂ ਡਾਟਾਬੇਸ ਬਣਾਵਾਂਗੇ। ਪਹਿਲਾਂ ਡੇਟਾਬੇਸ ਬਿਲਡਿੰਗ ਲਈ ਇੱਕ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ:
- >>> ਸੈਸ਼ਨ = node.bt.gattdb.new_session().session
- GATT ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਸੇਵਾ ਸ਼ਾਮਲ ਕਰੋ। ਇੱਥੇ ਅਸੀਂ ਬਲੂਟੁੱਥ SIG ਦੁਆਰਾ ਅਪਣਾਈ ਗਈ ਜੈਨਰਿਕ ਐਕਸੈਸ ਸੇਵਾ ਨੂੰ ਜੋੜਾਂਗੇ। ਇਹ ਇੱਕ ਪ੍ਰਾਇਮਰੀ ਸੇਵਾ ਹੈ (0x0) ਬਿਨਾਂ ਫਲੈਗ ਸੈੱਟ (0x0) ਅਤੇ ਇੱਕ 16bit UUID (0x1800) ਦੇ ਨਾਲ।
- service = node.bt.gattdb.add_service(session, 0, 0, bytes.fromhex(“0018”)).ਸੇਵਾ
- ਸੇਵਾ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਮਲ ਕਰੋ। ਇੱਥੇ ਅਸੀਂ READ ਵਿਸ਼ੇਸ਼ਤਾ (0x2), ਕੋਈ ਸੁਰੱਖਿਆ ਲੋੜਾਂ (0x0), ਕੋਈ ਫਲੈਗ (0x0), 16bit UUID (0x2a00), ਵੇਰੀਏਬਲ ਲੰਬਾਈ (0x2), ਅਧਿਕਤਮ ਲੰਬਾਈ 20 ਅਤੇ "PyBGAPI ਦੇ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ ਦੇ ਨਾਲ
Example":
- >>> char = node.bt.gattdb.add_uuid16_characteristic(ਸੈਸ਼ਨ, ਸਰਵਿਸ, 2, 0, 0, bytes.fromhex('002a'), 2,
- 20, ਬਾਈਟਸ ('PyBGAPI Example','utf-8′))) ਵਿਸ਼ੇਸ਼ਤਾ
- 3.15 ਨਵੀਂ ਸੇਵਾ ਨੂੰ ਸਰਗਰਮ ਕਰੋ:
- >>> node.bt.gattdb.start_service(ਸੈਸ਼ਨ,ਸੇਵਾ)
- bt_rsp_gattdb_start_service(ਨਤੀਜਾ=0)
- ਨਵੀਂ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਰਗਰਮ ਕਰੋ:
- >>> node.bt.gattdb.start_characteristic(ਸੈਸ਼ਨ, ਚਾਰ)
- bt_rsp_gattdb_start_characteristic(ਨਤੀਜਾ=0)
- >>> node.bt.gattdb.start_characteristic(ਸੈਸ਼ਨ, ਚਾਰ)
- ਤਬਦੀਲੀਆਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ ਅਤੇ ਡੇਟਾਬੇਸ ਸੰਪਾਦਨ ਸੈਸ਼ਨ ਨੂੰ ਬੰਦ ਕਰੋ:
- >>> node.bt.gattdb.commit(ਸੈਸ਼ਨ)
- bt_rsp_gattdb_commit(ਨਤੀਜਾ=0)
ਸਰਵਰ ਨਾਲ ਜੁੜ ਰਿਹਾ ਹੈ
- 3.18 ਹੁਣ ਜਦੋਂ ਕਿ ਸਾਡੇ ਕੋਲ GATT ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਡਿਵਾਈਸ ਦਾ ਨਾਮ ਹੈ, ਅਸੀਂ ਵਿਗਿਆਪਨ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਾਂ। ਸਟੈਕ ਆਪਣੇ GATT ਡੇਟਾਬੇਸ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਨਾਮ ਦੇ ਨਾਲ ਡਿਵਾਈਸ ਨੂੰ ਆਪਣੇ ਆਪ ਹੀ ਇਸ਼ਤਿਹਾਰ ਦੇਵੇਗਾ:
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(ਨਤੀਜਾ=0)
- ਆਪਣੇ ਫ਼ੋਨ 'ਤੇ EFR ਕਨੈਕਟ ਸ਼ੁਰੂ ਕਰੋ, ਅਤੇ "PyBGAPI Exampਲੇ "
- ਤੁਸੀਂ ਡਿਵਾਈਸ ਨਾਲ ਜੁੜ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸਦੇ GATT ਡੇਟਾਬੇਸ ਦੀ ਖੋਜ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਵਿੱਚ ਹੁਣ ਡਿਵਾਈਸ ਨਾਮ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ
ਨੋਟ: ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਬਹੁਤ ਤੇਜ਼ ਸਾਬਕਾ ਚਾਹੁੰਦੇ ਹੋampGATT ਡੇਟਾਬੇਸ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ, ਤੁਸੀਂ ਅਜੇ ਵੀ ਬਲੂਟੁੱਥ ਫਲੈਸ਼ ਕਰ ਸਕਦੇ ਹੋ - NCP ਖਾਲੀ ਸਾਬਕਾampਤੁਹਾਡੇ ਬੋਰਡ 'ਤੇ ਜਾਓ, ਜਿਸ ਵਿੱਚ ਇੱਕ ਮੂਲ ਪ੍ਰੀਬਿਲਟ GATT ਡੇਟਾਬੇਸ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਤੁਹਾਨੂੰ ਹੋਸਟ ਸਾਈਡ 'ਤੇ ਕੀ ਕਰਨਾ ਹੈ:
- >>> bgapi ਆਯਾਤ ਕਰੋ
- >>> ਕੁਨੈਕਸ਼ਨ = bgapi.SerialConnector('COM49')
- >>> ਨੋਡ = bgapi.BGLib(ਕੁਨੈਕਸ਼ਨ, 'sl_bt.xapi')
- >>> node.open()
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(ਨਤੀਜਾ=0)
ਪਾਈਥਨ ਵਿੱਚ ਇੱਕ ਬਲੂਟੁੱਥ ਕਲਾਇੰਟ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ
- ਇੱਕ ਕਲਾਇੰਟ ਬਣਾਉਣਾ ਇੱਕ ਸਰਵਰ ਨੂੰ ਲਾਗੂ ਕਰਨ ਨਾਲੋਂ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਹੈ. ਇਸ ਲਈ ਅਸੀਂ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਲਿਖਾਂਗੇ। ਆਪਣਾ ਮਨਪਸੰਦ ਟੈਕਸਟ ਐਡੀਟਰ ਖੋਲ੍ਹੋ ਅਤੇ ਨਵਾਂ ਬਣਾਓ file, ਚਲੋ ਇਸਨੂੰ client.py ਕਹਿੰਦੇ ਹਾਂ
- ਹੇਠ ਲਿਖੇ ਨੂੰ ਆਯਾਤ ਕਰੋ:
- ਜਿਵੇਂ ਕਿ ਸਰਵਰ ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਅਸੀਂ UART ਦੁਆਰਾ ਨੋਡ ਨਾਲ ਜੁੜਾਂਗੇ। ਇੱਥੇ ਆਪਣੇ ਦੂਜੇ ਬੋਰਡ ਦੇ COM ਪੋਰਟ ਨੰਬਰ ਦੀ ਵਰਤੋਂ ਕਰੋ:
- ਇੱਥੋਂ, ਸਾਡੀ ਅਰਜ਼ੀ ਇਵੈਂਟ ਦੁਆਰਾ ਚਲਾਈ ਜਾਵੇਗੀ। ਜਦੋਂ ਵੀ ਸਟੈਕ ਦੁਆਰਾ ਇੱਕ ਬਲੂਟੁੱਥ ਇਵੈਂਟ ਤਿਆਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਸੀਂ ਇਵੈਂਟ ਨੂੰ ਸੰਭਾਲਾਂਗੇ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅੱਗੇ ਵਧਾਵਾਂਗੇ:
- ਆਉ ਈਵੈਂਟ ਹੈਂਡਲਰ ਫੰਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੀਏ ਅਤੇ system_boot ਈਵੈਂਟ ਲਈ ਇੱਕ ਹੈਂਡਲਰ ਜੋੜੀਏ, ਜਿੱਥੇ ਅਸੀਂ ਪੈਰੀਫਿਰਲ ਡਿਵਾਈਸਾਂ ਲਈ ਸਕੈਨ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਾਂਗੇ। ਨੋਟ ਕਰੋ, ਕਿ ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ while ਲੂਪ (ਅਤੇ ਨੋਡ ਵੇਰੀਏਬਲ ਦੀ ਪਰਿਭਾਸ਼ਾ ਤੋਂ ਬਾਅਦ) ਤੋਂ ਪਹਿਲਾਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਇੱਕ ਵਾਰ ਸਕੈਨਰ ਚਾਲੂ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਨੋਡ ਸਕੈਨ ਰਿਪੋਰਟਾਂ ਪ੍ਰਾਪਤ ਕਰੇਗਾ। ਚਲੋ sl_bt_on_event() ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਸਕੈਨ ਰਿਪੋਰਟਾਂ ਲਈ ਇੱਕ ਇਵੈਂਟ ਹੈਂਡਲਰ ਸ਼ਾਮਲ ਕਰੀਏ। ਜੇਕਰ ਇੱਕ ਸਕੈਨ ਰਿਪੋਰਟ ਇਸ਼ਤਿਹਾਰੀ ਡਿਵਾਈਸ ਨਾਮ ਨਾਲ ਮਿਲਦੀ ਹੈ "PyBGAPI Example", ਕਲਾਇੰਟ ਉਸ ਡਿਵਾਈਸ ਲਈ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਖੋਲ੍ਹੇਗਾ:
- ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇਸ ਬਿੰਦੂ 'ਤੇ ਪਹੁੰਚ ਜਾਂਦੇ ਹੋ ਤਾਂ ਇਹ ਜਾਂਚ ਕਰਨ ਯੋਗ ਹੈ ਕਿ ਕੀ ਤੁਹਾਡੇ ਕਲਾਇੰਟ ਨੂੰ ਸਰਵਰ ਮਿਲਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਯਕੀਨੀ ਬਣਾਓ, ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਡਿਵਾਈਸ 'ਤੇ ਇਸ਼ਤਿਹਾਰ ਸ਼ੁਰੂ ਕੀਤਾ ਹੈ, ਫਿਰ client.py ਨੂੰ ਸੇਵ ਕਰੋ, ਅਤੇ ਇਸਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ। ਤੁਹਾਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਕੁਝ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ:
- ਕਲਾਇੰਟ ਨੂੰ ਸਰਵਰ 'ਤੇ ਸੇਵਾਵਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਖੋਜ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਇੱਥੇ ਅਸੀਂ ਜੈਨਰਿਕ ਐਕਸੈਸ ਸੇਵਾ ਅਤੇ ਡਿਵਾਈਸ ਨਾਮ ਗੁਣਾਂ ਦੀ ਖੋਜ ਕਰਾਂਗੇ, ਅਤੇ ਅੰਤ ਵਿੱਚ ਡਿਵਾਈਸ ਨਾਮ ਵਿਸ਼ੇਸ਼ਤਾ ਦੇ ਮੁੱਲ ਨੂੰ ਪੜ੍ਹਾਂਗੇ। ਆਪਣੇ ਮੌਜੂਦਾ sl_bt_on_event() ਫੰਕਸ਼ਨ ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਨਾਲ ਬਦਲੋ:
- client.py ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਇਸਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ। ਤੁਹਾਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਕੁਝ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ:
LE ਪਾਵਰ ਕੰਟਰੋਲ ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਮਲ ਕਰਨਾ
ਟਾਰਗੇਟ ਡਿਵਾਈਸਾਂ ਨੂੰ ਫਲੈਸ਼ ਕਰਨਾ
ਬਲੂਟੁੱਥ ਐਕਸ ਵਿੱਚ LE ਪਾਵਰ ਕੰਟਰੋਲ ਯੋਗ ਨਹੀਂ ਹੈample ਪ੍ਰੋਜੈਕਟ ਮੂਲ ਰੂਪ ਵਿੱਚ. ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਜੋੜਨ ਲਈ, ਬਲੂਟੁੱਥ > ਵਿਸ਼ੇਸ਼ਤਾ > ਪਾਵਰਕੰਟਰੋਲ ਸਾਫਟਵੇਅਰ ਕੰਪੋਨੈਂਟ ਇੰਸਟਾਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਲਾਂਚਰ ਖੋਲ੍ਹੋ view ਸਾਦਗੀ ਸਟੂਡੀਓ 5 ਦਾ.
- ਡੀਬੱਗ ਅਡਾਪਟਰ ਟੈਬ ਵਿੱਚ ਆਪਣੀਆਂ ਡਿਵਾਈਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਚੁਣੋ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤਰਜੀਹੀ SDK v3.2 ਹੈ।
- ਐਕਸ ਨੂੰ ਖੋਲ੍ਹੋample Projects & Demos ਟੈਬ ਅਤੇ ਬਲੂਟੁੱਥ ਲੱਭੋ – NCP Empty example. ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਲਈ [ਬਣਾਓ] ਦਬਾਓ। (ਇਸ ਵਾਰ ਅਸੀਂ GATT ਡੇਟਾਬੇਸ ਨਹੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ, ਇਸਲਈ ਅਸੀਂ NCP Empty ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ, ਜਿਸਦਾ ਇੱਕ ਡਿਫਾਲਟ ਹੈ।)
- GATT ਕੌਂਫਿਗਰੇਟਰ ਟੈਬ ਖੋਲ੍ਹੋ, ਡਿਵਾਈਸ ਨਾਮ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਚੋਣ ਕਰੋ, ਅਤੇ "ਸਿਲਾਬ ਐਕਸ" ਨੂੰ ਓਵਰਰਾਈਟ ਕਰੋample” ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ “PyBGAPI Example” (ਤਾਂ ਕਿ ਕਲਾਇੰਟ ਸਰਵਰ ਨੂੰ ਪਛਾਣ ਸਕੇ)। 15 ਨਾਲ ਮੁੱਲ ਦੀ ਲੰਬਾਈ ਨੂੰ ਵੀ ਓਵਰਰਾਈਟ ਕਰੋ।
- ਡਾਟਾਬੇਸ ਨੂੰ ਸੇਵ ਕਰਨ ਲਈ ctrl-s ਦਬਾਓ।
- ਪ੍ਰੋਜੈਕਟ ਕੌਂਫਿਗਰੇਟਰ ਵਿੱਚ ਸਾਫਟਵੇਅਰ ਕੰਪੋਨੈਂਟਸ ਟੈਬ ਖੋਲ੍ਹੋ।
- ਬਲੂਟੁੱਥ > ਫੀਚਰ > ਪਾਵਰਕੰਟਰੋਲ ਸਾਫਟਵੇਅਰ ਕੰਪੋਨੈਂਟ ਲੱਭੋ, ਅਤੇ [ਇੰਸਟਾਲ] 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
- ਸੁਨਹਿਰੀ ਰੇਂਜ ਦੀਆਂ ਉਪਰਲੀਆਂ ਅਤੇ ਹੇਠਲੀਆਂ ਸੀਮਾਵਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਪਾਵਰਕੰਟਰੋਲਸਾਫਟਵੇਅਰ ਕੰਪੋਨੈਂਟ ਦੇ ਅੱਗੇ ਕੋਗਵੀਲ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। 1M ਲਈ ਹੇਠਲੀ ਸੀਮਾ ਸੈੱਟ ਕਰੋ
- PHY ਤੋਂ -45 (-60 ਦੀ ਬਜਾਏ)। ਹਾਲਾਂਕਿ ਅਭਿਆਸ ਵਿੱਚ ਇਹ ਮੁੱਲ ਅਨੁਕੂਲ ਨਹੀਂ ਹੈ, ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਵਧੇਰੇ Tx ਪਾਵਰ ਐਡਜਸਟਮੈਂਟ ਹੋਣਗੇ, ਜੋ ਕਿ ਪ੍ਰਦਰਸ਼ਨ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਚੰਗਾ ਹੈ।
- SDK ਸੰਸਕਰਣ 3.2.0 ਵਿੱਚ, ਸੁਨਹਿਰੀ ਰੇਂਜ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕਰਨ ਲਈ ਇੱਕ ਛੋਟਾ ਜਿਹਾ ਹੱਲ ਲਾਗੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ: sl_bluetooth.c ਖੋਲ੍ਹੋ file ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੇ /autogen ਫੋਲਡਰ ਵਿੱਚ ਲੱਭੋ ਅਤੇ sl_bt_init_power_control(); sl_bt_init_stack(&config) ਤੋਂ ਪਹਿਲਾਂ ਫੰਕਸ਼ਨ ਕਾਲ ਕਰੋ;
- ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ ਅਤੇ ਇਸਨੂੰ ਆਪਣੇ ਬੋਰਡ 'ਤੇ ਫਲੈਸ਼ ਕਰੋ।
- ਜੇਕਰ ਤੁਹਾਡੇ ਦੋ ਬੋਰਡ ਇੱਕੋ ਕਿਸਮ ਦੇ ਹਨ, ਤਾਂ ਉਸੇ ਚਿੱਤਰ ਨੂੰ ਦੂਜੇ ਬੋਰਡ 'ਤੇ ਵੀ ਫਲੈਸ਼ ਕਰੋ। ਜੇਕਰ ਤੁਹਾਡਾ ਦੂਜਾ ਬੋਰਡ ਇੱਕ ਵੱਖਰਾ ਬੋਰਡ ਹੈ, ਤਾਂ ਦੂਜੇ ਬੋਰਡ ਲਈ ਉਪਰੋਕਤ ਕਦਮਾਂ ਨੂੰ ਦੁਹਰਾਓ।
ਸਰਵਰ ਅਤੇ ਕਲਾਇੰਟ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ
- ਹੁਣ ਦੁਬਾਰਾ, ਪਾਈਥਨ ਬੈਸ਼ ਖੋਲ੍ਹੋ, ਆਪਣੇ ਪਹਿਲੇ ਬੋਰਡ ਨਾਲ ਜੁੜੋ, ਅਤੇ ਵਿਗਿਆਪਨ ਸ਼ੁਰੂ ਕਰੋ
- ਆਪਣੀ ਕਲਾਇੰਟ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰੋ, ਤਾਂ ਕਿ ਇਹ ਡਿਵਾਈਸ ਦਾ ਨਾਮ ਪੜ੍ਹਨ ਤੋਂ ਬਾਅਦ ਬਾਹਰ ਨਾ ਨਿਕਲੇ। ਹੇਠ ਲਿਖੀਆਂ ਲਾਈਨਾਂ ਲੱਭੋ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਟਿੱਪਣੀ ਵਿੱਚ ਪਾਓ:
- ਆਪਣੀ ਕਲਾਇੰਟ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਚਲਾਓ
- py.\client.py
- ਆਪਣੇ ਦੋ ਬੋਰਡਾਂ ਨੂੰ ਦੂਰ ਰੱਖੋ, ਫਿਰ ਹੌਲੀ ਹੌਲੀ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਦੂਜੇ ਦੇ ਨੇੜੇ ਲੈ ਜਾਓ। ਹੁਣ ਤੁਹਾਨੂੰ ਇਹ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਸਟੈਕ ਆਪਣੇ ਪਾਵਰ ਲੈਵਲ ਨੂੰ ਡਿਫੌਲਟ 8dBm ਤੋਂ ਘਟਾ ਕੇ -3dBm (ਜੋ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ ਨਿਊਨਤਮ Tx ਪਾਵਰ ਹੈ):
ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ
![]() |
SILICON LABS 21Q2 ਬਲੂਟੁੱਥ ਫੀਚਰ ਲੈਬ [pdf] ਹਦਾਇਤ ਮੈਨੂਅਲ 21Q2, ਬਲੂਟੁੱਥ ਫੀਚਰ ਲੈਬ, 21Q2 ਬਲੂਟੁੱਥ ਫੀਚਰ ਲੈਬ, ਫੀਚਰ ਲੈਬ, ਲੈਬ |