ការបង្ហាញការបង្ហាញពន្លឺសំណាញ់ប៊្លូធូស SILICON AN1299
SDK សំណាញ់ប៊្លូធូសភ្ជាប់មកជាមួយអតីតample គម្រោងដែលបង្កើតបណ្តាញឥតខ្សែនៃភ្លើង និងកុងតាក់ដោយប្រើបច្ចេកវិទ្យា Bluetooth mesh ។ អតីតample សន្មត់ថាការប្រើប្រាស់ Silicon Labs WSTKs សម្រាប់កុងតាក់ និងភ្លើង និងទូរសព្ទដៃ Android ឬ iOS សម្រាប់ផ្គត់ផ្គង់ និងគ្រប់គ្រងបណ្តាញ។ នៅក្នុងឯកសារនេះ យើងពិភាក្សាអំពីមូលដ្ឋានគ្រឹះនៃសំណាញ់ប៊្លូធូសដែលទាមទារដើម្បីយល់ពីអតីតample ហើយដើរតាមទិដ្ឋភាពសំខាន់ៗនៃកូដប្រភពកម្មវិធី។ ឯកសារនេះសន្មត់ថាអ្នកបានអាន QSG176៖ Bluetooth Mesh SDK v2.x Quick-Start Guide ដំឡើង Bluetooth mesh SDK និងដំណើរការ ex ដោយជោគជ័យ។amples ។
Bluetooth LE និង Mesh Stacks និង Topologies ដែលគាំទ្រ
លក្ខណៈសំខាន់ៗ
- ការណែនាំខ្លីៗអំពីសំណាញ់ប៊្លូធូស
- ភ្លើងបំភ្លឺអតីតampការពិពណ៌នាអំពីកម្មវិធី និងការឆ្លងកាត់កូដ
- កម្មវិធីទូរស័ព្ទចល័ត Silicon Labs Bluetooth Mesh
សេចក្តីផ្តើម
ឯកសារនេះពន្យល់អំពីការបង្ហាញនៃពន្លឺសំណាញ់ប៊្លូធូស ដែលបានដំឡើងជាផ្នែកនៃបណ្តាញប៊្លូធូស SDK ។ ឯកសារភាគច្រើនផ្តោតលើអតីតampកម្មវិធី le និងលំហូរនៃការប្រើប្រាស់របស់វា ដោយពន្យល់ពីផ្នែកសំខាន់ៗនៃកូដប្រភព និងកម្មវិធីទូរស័ព្ទ Silicon Labs Bluetooth Mesh ។ ឯកសារនេះក៏ណែនាំអំពីគោលគំនិតមួយចំនួននៃការបញ្ជាក់ដែលមានសារៈសំខាន់សម្រាប់ការយល់ដឹងអំពីអតីតampលេ ផ្នែករងខាងក្រោមសង្ខេបអំពីទិដ្ឋភាពពាក់ព័ន្ធនៃបច្ចេកវិទ្យាសំណាញ់ប៊្លូធូស។ ផ្នែកទី 2 Bluetooth Mesh Lighting Demonstration ពិពណ៌នាអំពីលក្ខណៈពិសេស និងមុខងារនៃ Lighting Demonstration ផ្នែកទី 3 Network Analyzer ពិពណ៌នាអំពីការប្រើប្រាស់ Network Analyzer សម្រាប់ការចាប់យកកញ្ចប់ព័ត៌មាន និងផ្នែកទី 4 Bluetooth Mesh Stack និងកម្មវិធីសម្រាប់ស្មាតហ្វូនផ្តោតលើកម្មវិធីទូរស័ព្ទ។
សំណាញ់ប៊្លូធូស
សំណាញ់ប៊្លូធូសគឺជាធាតុថ្មីដែលមានសម្រាប់ឧបករណ៍ និងកម្មវិធីប៊្លូធូស LE ។ ពីមុនឧបករណ៍ប៊្លូធូសបាននឹងកំពុងប្រើការភ្ជាប់ពីចំណុចមួយទៅចំណុចមួយ ឬប្រព័ន្ធផ្សព្វផ្សាយដើម្បីទំនាក់ទំនងជាមួយឧបករណ៍ផ្សេងទៀត។ សំណាញ់ប៊្លូធូសពង្រីកវា និងអនុញ្ញាតឱ្យទំនាក់ទំនងឧបករណ៍ទាំងពីរពីច្រើនទៅច្រើន និងប្រើឧបករណ៍ប៊្លូធូសក្នុងទម្រង់មេស។ នេះអនុញ្ញាតឱ្យទំនាក់ទំនងពហុហបរវាងឧបករណ៍ប៊្លូធូស និងបណ្តាញឧបករណ៍ប៊្លូធូសដែលមានទំហំធំជាងដែលអាចធ្វើទៅបានពីមុន។
សំណាញ់ប៊្លូធូសប្រើបណ្តាញផ្សាយពាណិជ្ជកម្មប៊្លូធូស LE ដើម្បីផ្ញើ និងទទួលសាររវាងថ្នាំងប៊្លូធូស ប៉ុន្តែវាក៏អាចប្រើការភ្ជាប់ប៊្លូធូស និងសេវាកម្ម GATT ដើម្បីទំនាក់ទំនងជាមួយឧបករណ៍ដែលមិនគាំទ្រប៊្លូធូស។ សំណាញ់ប៊្លូធូសក៏ប្រើស្ថាបត្យកម្មសុវត្ថិភាពផ្ទាល់ខ្លួនរបស់វាដែរ ដែលដាច់ដោយឡែកពីស្ថាបត្យកម្មសុវត្ថិភាព Bluetooth LE ធម្មតា បើទោះបីជាក្បួនដោះស្រាយសុវត្ថិភាព AES-CCM 128-bit និង Elliptic Curve Diffie Hellman (ECDH) ដូចគ្នាត្រូវបានប្រើក៏ដោយ។ សំណាញ់ប៊្លូធូសក៏កំណត់ស្រទាប់កម្មវិធីផ្ទាល់ខ្លួនរបស់វាដែលហៅថាគំរូ mesh ដែលខុសពី GATT-based profiles និងសេវាកម្មដែលឧបករណ៍ Bluetooth LE ដែលមិនមានសំណាញ់ប្រើ។ ស្រទាប់កម្មវិធីថ្មីត្រូវបានកំណត់ដើម្បីដោះស្រាយតម្រូវការនិងតម្រូវការនៃ topologies ដែលមានមូលដ្ឋានលើ Mesh និងក៏ដើម្បីបង្កើត Bluetooth Mesh ជាដំណោះស្រាយជង់ពេញលេញ និងអាចបង្កើតឧបករណ៍ Mesh ដែលអាចធ្វើអន្តរកម្មបាន។
មុខងារបណ្តាញ Bluetooth Mesh និងមុខងារ Node
បណ្តាញសំណាញ់ប៊្លូធូសជាធម្មតាមានថ្នាំងច្រើន។ ថ្នាំងទាំងអស់អាចបញ្ជូន និងទទួលសារ Mesh ប៉ុន្តែពួកវាអាចគាំទ្រមុខងារបន្ថែមមួយឬច្រើនជាជម្រើសផងដែរ។ ប្រសិនបើថ្នាំងមិនអនុវត្តមុខងារបន្ថែមណាមួយទេ វាត្រូវបានចាត់ទុកថាគ្រាន់តែជាថ្នាំងប៉ុណ្ណោះ។ ប្រភេទថ្នាំងផ្សេងៗត្រូវបានបង្ហាញក្នុងរូបខាងក្រោម។ប្រភេទថ្នាំង
លក្ខណៈពិសេសរបស់ថ្នាំងដែលបានបញ្ជាក់ទាំងបួនប្រភេទមានដូចខាងក្រោម៖
មុខងារប្រូកស៊ី៖ បើកដំណើរការប្រូកស៊ីសាររវាងសំណាញ់ប៊្លូធូស និង GATT ហើយបើកឧបករណ៍ដូចជាស្មាតហ្វូនដើម្បីភ្ជាប់ទៅសំណាញ់ប៊្លូធូស។
មុខងារបញ្ជូនត៖ បញ្ជូនសារដើម្បីពង្រីកជួរ និងមាត្រដ្ឋាននៃបណ្តាញសំណាញ់ប៊្លូធូស។
លក្ខណៈមិត្តភាព: អនុវត្តឃ្លាំងសម្ងាត់សារបន្ថែម ដើម្បីគាំទ្រថ្នាំងដែលមានមុខងារថាមពលទាប។
មុខងារថាមពលទាប៖ អនុញ្ញាតឱ្យគេង និងបោះឆ្នោតសារពីថ្នាំងមិត្តភ័ក្តិនៅចន្លោះពេលដែលគេស្គាល់។
សម្រាប់ព័ត៌មានបន្ថែមអំពីមុខងារទាំងនេះ និងបច្ចេកវិជ្ជា Bluetooth Mesh សូមចូលទៅកាន់មជ្ឈមណ្ឌលសិក្សា Silicon Labs Bluetooth Mesh ។
ការផ្តល់
ការផ្តល់គឺសំដៅទៅលើប្រតិបត្តិការដែលឧបករណ៍ដែលមិនមែនជាផ្នែកនៃបណ្តាញសំណាញ់ប៊្លូធូសណាមួយត្រូវបានបំប្លែងទៅជាថ្នាំងដែលជាផ្នែកមួយនៃបណ្តាញសំណាញ់ប៊្លូធូសមួយ ឬច្រើន។ សម្រាប់អតីតample, ការផ្តល់កើតឡើងនៅពេលដែលអំពូលភ្លើងថ្មីត្រូវបានដំឡើង និងយកទៅប្រើប្រាស់ ដូច្នេះវាអាចត្រូវបានគ្រប់គ្រងដោយកុងតាក់ ឬឧបករណ៍បំភ្លឺ។ ការផ្តល់សេវាគឺជាដំណើរការសុវត្ថិភាពជាចម្បងដែលសោសុវត្ថិភាពកម្រិតទីមួយត្រូវបានបង្កើតដោយអ្នកផ្តល់សេវា និងផ្ទេរទៅឧបករណ៍ដែលកំពុងត្រូវបានផ្តល់ដើម្បីធ្វើឱ្យវាជាផ្នែកមួយនៃបណ្តាញសំណាញ់ប៊្លូធូស។ ដំណើរការផ្តល់សេវាចាប់ផ្តើមនៅពេលដែលឧបករណ៍ចាប់ផ្តើមផ្ញើកញ្ចប់ព័ត៌មានប៊្លូធូសដែលមិនបានរៀបចំ ហើយអ្នកផ្តល់សេវាទទួលបានពួកគេ។ បន្ទាប់មកអ្នកផ្តល់សេវាចាប់ផ្តើមដំណើរការផ្តល់ ឧបករណ៍ផ្លាស់ប្តូរសោសាធារណៈ ហើយទាំងពីរបង្កើតសោវគ្គ។ គ្រាប់ចុចសម័យត្រូវបានប្រើដើម្បីធានាវគ្គក្នុងការផ្ទេរសោបណ្ដាញពិតប្រាកដ និងដំណើរការផ្តល់សេវាដែលនៅសល់។ បន្ទាប់ពីការផ្តល់រួច ឧបករណ៍នីមួយៗដែលឥឡូវនេះជាថ្នាំងនៅក្នុងបណ្តាញ មានសោបណ្តាញ ប៉ារ៉ាម៉ែត្រសុវត្ថិភាពហៅថា IV index និងអាសយដ្ឋាន unicast របស់វា។
បោះពុម្ព និងជាវ
នៅក្នុងសំណាញ់ប៊្លូធូស ការទំនាក់ទំនងទៅកាន់ក្រុមឧបករណ៍ជាធម្មតាត្រូវបានអនុវត្តតាមរយៈយន្តការផ្សព្វផ្សាយ និងជាវ។ នេះជាគំនិតងាយយល់ដែលជួយសម្រួលដល់ការរៀបចំបណ្តាញសំណាញ់ប៊្លូធូស និងការបន្ថែម និងកំណត់រចនាសម្ព័ន្ធថ្នាំងឡើងវិញ។ ជាធម្មតាថ្នាំងសំណាញ់ប៊្លូធូសត្រូវបានកំណត់ជាក្រុម ដែលអាចតំណាងឱ្យទីតាំងជាក់ស្តែងរបស់ពួកគេ (ផ្ទះបាយ ឬបន្ទប់ទទួលភ្ញៀវ) ឬមុខងារជាក់លាក់ (ភ្លើង ឬគម្របបង្អួច)។ ជាធម្មតាឧបករណ៍ក៏ត្រូវបានគ្រប់គ្រងជាក្រុមផងដែរ ដូច្នេះសារដូចគ្នាត្រូវបានផ្ញើទៅកាន់ឧបករណ៍ទាំងអស់នៅក្នុងក្រុមមួយ។ ដើម្បីសម្រេចបាននូវមុខងារនេះ សំណាញ់ប៊្លូធូសប្រើគោលគំនិតមួយហៅថា បោះពុម្ពផ្សាយ – ជាវ ជាកន្លែងដែលថ្នាំង ដូចជាភ្លើង ជាវក្រុមសារ និងថ្នាំង ដូចជាកុងតាក់ បោះផ្សាយសារទៅក្រុមទាំងនោះ។ នៅស្រទាប់បណ្តាញ ក្រុមនីមួយៗត្រូវបានផ្តល់អាសយដ្ឋានក្រុម ហើយការផ្ញើសារច្រើនត្រូវបានប្រើដើម្បីផ្ញើសារទៅកាន់ឧបករណ៍ទាំងអស់នៅក្នុងក្រុមជាក់លាក់មួយ។ បោះពុម្ព និងជាវ
អត្ថប្រយោជន៍នៃការបោះផ្សាយ និងជាវ គឺថានៅពេលដែលថ្នាំងថ្មីត្រូវបានបន្ថែម ឬថ្នាំងដែលមានស្រាប់ត្រូវបានដកចេញ ឬជំនួស មានតែថ្នាំងនោះប៉ុណ្ណោះដែលត្រូវផ្តល់ និងកំណត់រចនាសម្ព័ន្ធ។
ការបង្ហាញពន្លឺសំណាញ់ប៊្លូធូស
តម្រូវការ
- ស្ទូឌីយោភាពសាមញ្ញ
- Bluetooth Mesh SDK 2.1.0 ឬថ្មីជាងនេះ ចែកចាយតាមរយៈ Simplicity Studio 5។
- ប្រព័ន្ធគោលពីរ និងកូដប្រភពដែលបានបង្កើតជាមុនត្រូវបានរួមបញ្ចូលនៅក្នុង SDK ។
- Simplicity Studio មានឧបករណ៍វិភាគបណ្តាញដែលមានសមត្ថភាពចាប់យក និងឌិកូដកញ្ចប់សំណាញ់ប៊្លូធូស។
- ការអភិវឌ្ឍន៍កូដពិតប្រាកដអាចត្រូវបានធ្វើជាមួយ Simplicity Studio, IAR EWARM, ឬឧបករណ៍បន្ទាត់ពាក្យបញ្ជា។
- កម្មវិធីទូរស័ព្ទចល័ត Silicon Labs Bluetooth Mesh
- អាចប្រើបានទាំង iOS និង Android ។
- ប្រើសម្រាប់ការស្វែងរក និងផ្តល់ឧបករណ៍នៅលើ GATT ។
- រួមបញ្ចូលទាំងការរៀបចំបណ្តាញ ក្រុម និងការបោះផ្សាយជាវ។
- អនុញ្ញាតឱ្យកំណត់រចនាសម្ព័ន្ធ និងគ្រប់គ្រងឧបករណ៍។
- ទាមទារ iOS 10 ឬថ្មីជាងនេះ។
- ទាមទារប្រព័ន្ធប្រតិបត្តិការ Android 6 (API23) ឬថ្មីជាងនេះ។
- សម្រាប់បទពិសោធន៍ពេញលេញ យ៉ាងហោចណាស់មាន Silicon Labs Blue Gecko SoC Wireless Starter Kits ចំនួនបីគឺត្រូវការ។
- ឧបករណ៍ 2 ត្រូវបានប្រើជាភ្លើងដែលមានមុខងារប្រូកស៊ី។
- 1 កញ្ចប់ត្រូវបានប្រើជាកុងតាក់។
- EFR32BG12, EFR32MG12, EFR32BG13, EFR32MG13, EFR32xG21, និង EFR32xG22 SoCs ក៏ដូចជាម៉ូឌុល BGM13P, BGM13S, BGM220P និង BGM220S គាំទ្រកម្មវិធីប៊្លូធូស។ ចំណាំថា EFR32xG22, BGM220P, និង BGM220S គាំទ្រតែមុខងារប៊្លូធូសមានកំណត់។
សូមមើល QSG176៖ មគ្គុទ្ទេសក៍ចាប់ផ្តើមរហ័ស Bluetooth Mesh SDK v2.x សម្រាប់ព័ត៌មានបន្ថែមស្តីពីការទទួលបានផ្នែករឹង និងសូហ្វវែរដែលត្រូវការ និងដំណើរការការបង្ហាញ។ ជាគោលការណ៍ ការរៀបចំបាតុកម្មអាចមានចំនួនថ្នាំងប្តូរ និងថ្នាំងពន្លឺណាមួយ។ ថ្នាំងប្តូរតែមួយអាចគ្រប់គ្រងចំនួនថ្នាំងពន្លឺតាមអំពើចិត្តដោយបញ្ជូនពាក្យបញ្ជាទៅអាសយដ្ឋានក្រុម។ ដូចគ្នានេះដែរ ថ្នាំងពន្លឺអាចទទួលពាក្យបញ្ជាបើក/បិទពីឧបករណ៍ប្តូរច្រើន។
ការអនុវត្តបណ្តាញសំណាញ់
ដំណើរការអនុវត្តបាតុកម្មអាចចែកចេញជាបួនដំណាក់កាលសំខាន់ៗដូចខាងក្រោម៖
- របៀបដែលមិនបានផ្តល់ជូន – បន្ទាប់ពីកម្មវិធីបង្កប់សាកល្បងត្រូវបានដំឡើង ឧបករណ៍នឹងចាប់ផ្តើមក្នុងទម្រង់មិនបានរៀបចំ។
- ការផ្តល់ - ឧបករណ៍ត្រូវបានផ្តល់ទៅបណ្តាញសំណាញ់ប៊្លូធូស ហើយសុវត្ថិភាពបណ្តាញត្រូវបានតំឡើង។
- ការកំណត់រចនាសម្ព័ន្ធ - ក្រុម បោះផ្សាយ និងជាវ និងសុវត្ថិភាពកម្មវិធីត្រូវបានកំណត់រចនាសម្ព័ន្ធ។
- ប្រតិបត្តិការធម្មតា - ថ្នាំងពន្លឺអាចត្រូវបានគ្រប់គ្រងដោយថ្នាំងប្តូរ និងកម្មវិធីស្មាតហ្វូន។
នៅក្នុងដំណាក់កាលទីមួយ ឧបករណ៍ទាំងអស់មិនត្រូវបានផ្តល់ និងបញ្ជូនសញ្ញាដែលមិនបានរៀបចំ។ ពួកគេមិនមានកូនសោបណ្តាញ ឬសោកម្មវិធីដែលបានកំណត់រចនាសម្ព័ន្ធទេ ហើយការកំណត់ការបោះពុម្ព និងជាវមិនត្រូវបានកំណត់ទេ។ នៅក្នុងស្ថានភាពនេះ ឧបករណ៍ទាំងអស់កំពុងរង់ចាំអ្នកផ្តល់សេវាដើម្បីចាត់តាំងពួកវាទៅក្នុងបណ្តាញសំណាញ់ប៊្លូធូស និងដើម្បីកំណត់រចនាសម្ព័ន្ធការបោះពុម្ពផ្សាយ និងជាវ និងម៉ូដែលសំណាញ់។ នៅក្នុងស្ថានភាពនេះ ឧបករណ៍អាចត្រូវបានរកឃើញដោយកម្មវិធីស្មាតហ្វូន។ នៅក្នុងដំណាក់កាលផ្តល់សេវា អ្នកផ្តល់បន្ថែមភ្លើង និងប្តូរទៅបណ្តាញសំណាញ់ប៊្លូធូស។ កូនសោបណ្តាញត្រូវបានបង្កើត និងចែកចាយទៅកាន់ថ្នាំង ហើយថ្នាំងនីមួយៗត្រូវបានផ្តល់អាសយដ្ឋាន unicast ។ នៅក្នុងដំណាក់កាលកំណត់រចនាសម្ព័ន្ធ អ្នកផ្តល់សេវាកំណត់រចនាសម្ព័ន្ធក្រុម បោះផ្សាយ និងជាវការកំណត់ សុវត្ថិភាពកម្រិតកម្មវិធី និងគំរូសំណាញ់។ បន្ទាប់ពីការផ្តល់ និងកំណត់រចនាសម្ព័ន្ធ បណ្តាញសំណាញ់ប៊្លូធូសដំណើរការ ហើយឧបករណ៍ប្តូរអាចត្រូវបានប្រើដើម្បីគ្រប់គ្រងភ្លើង។ ប៊ូតុងរបស់ WSTK អាចត្រូវបានប្រើដើម្បីគ្រប់គ្រងពន្លឺទាំងអស់នៅក្នុងក្រុមមួយ។ មុខងារដូចគ្នាអាចត្រូវបានធ្វើជាមួយកម្មវិធីស្មាតហ្វូន ហើយវាក៏អាចគ្រប់គ្រងពន្លឺនីមួយៗដោយប្រើអាសយដ្ឋាន unicast ផងដែរ។
ដំណើរការកូដ
SDK សំណាញ់ប៊្លូធូសរួមមានពន្លឺ និងកុងតាក់ampគម្រោងដែលដាក់ឈ្មោះថា Bluetooth Mesh – SoC Light និង Bluetooth Mesh – SoC Switch ។ ទាំងអតីតamples ត្រូវបានអនុវត្តដោយប្រើស្ថាបត្យកម្មដែលជំរុញដោយព្រឹត្តិការណ៍ដូចគ្នាដែលត្រូវបានប្រើនៅក្នុងកម្មវិធីប៊្លូធូសធម្មតា (មិនមែនសំណាញ់) ។ សម្រាប់ព័ត៌មានអំពីការអភិវឌ្ឍន៍កម្មវិធី Bluetooth C សូមមើល UG434: Silicon Labs Bluetooth® C Application Developer's Guide for SDK v3.x ។
របៀបដែលមិនបានរៀបចំ ការផ្តល់ និងការកំណត់រចនាសម្ព័ន្ធ
ក្នុងរបៀបដែលមិនបានរៀបចំទាំងពន្លឺ និងការប្ដូរឧamples មានឥរិយាបទដូចគ្នា។ ឧបករណ៍ដែលមិនបានរៀបចំទុកគ្រាន់តែចាប់ផ្តើមការផ្ញើ beacons ដែលមិនបានរៀបចំហើយរង់ចាំឱ្យអ្នកផ្តល់ឱ្យដើម្បីផ្តល់ឱ្យនិងកំណត់រចនាសម្ព័ន្ធវា។ បន្ទាប់ពីទទួលបានព្រឹត្តិការណ៍ system_boot (sl_bt_evt_system_boot_id) កម្មវិធីពិនិត្យមើលថាតើប៊ូតុងមួយត្រូវបានចុចឬអត់។ ប្រសិនបើបាទ/ចាស វាហៅមុខងារ sl_btmesh_initiate_full_reset() ដែលបញ្ឈប់ប្រព័ន្ធ និងដំណើរការកំណត់ដូចរោងចក្រឡើងវិញដោយលុបកន្លែងផ្ទុក PS។ ការកំណត់ឡើងវិញពីរោងចក្រក៏ត្រូវបានធ្វើបន្ទាប់ពីទទួលបានព្រឹត្តិការណ៍ node_reset (sl_btmesh_evt_node_reset_id)។ ប្រសិនបើគ្មានប៊ូតុងត្រូវបានចុចទេ នោះឈ្មោះរបស់ឧបករណ៍ត្រូវបានកំណត់ដោយផ្អែកលើអាសយដ្ឋានប៊្លូធូស ហើយមុខងារ sl_btmesh_node_init() ត្រូវបានហៅដើម្បីចាប់ផ្តើមជង់ថ្នាំងសំណាញ់ប៊្លូធូស។ ព្រឹត្តិការណ៍ sl_btmesh_evt_node_initialized_id បង្ហាញថាការចាប់ផ្តើមជង់សំណាញ់ប៊្លូធូសត្រូវបានបញ្ចប់។ នៅពេលដែលព្រឹត្តិការណ៍នេះត្រូវបានលើកឡើង មុខងារហៅត្រឡប់មកវិញ sl_btmesh_on_provision_init_status() ត្រូវបានហៅដើម្បីផ្តល់ព័ត៌មានអំពីស្ថានភាពថ្នាំង។ កម្មវិធីដំបូងពិនិត្យមើលស្ថានភាពផ្តល់។ ប្រសិនបើថ្នាំងមិនត្រូវបានផ្តល់ (ស្ថានភាពលំនាំដើមនៅពេលដែលឧបករណ៍ត្រូវបានបើកដំណើរការដំបូងបន្ទាប់ពីការសរសេរកម្មវិធី) នោះកម្មវិធីនឹងចាប់ផ្តើមដំណើរការ beaconing ដែលមិនបានរៀបចំដោយហៅទៅ sl_btmesh_node_start_unprov_beacon-ing()។ API sl_btmesh_node_start_unprov_beaconing ប្រើប៉ារ៉ាម៉ែត្រមួយ (អ្នកកាន់) ដែលជ្រើសរើសអ្នកកាន់ណាដែលត្រូវប្រើ (PB-ADV, PB-GATT ឬទាំងពីរ)។ នៅក្នុងនេះ អតីតample អ្នកកាន់ទាំងពីរត្រូវបានប្រើ។ ដោយសារតែអ្នកកាន់ PB-GATT ត្រូវបានបើក ឧបករណ៍នេះនឹងចាប់ផ្តើមផ្សាយពាណិជ្ជកម្មការផ្តល់សេវា GATT របស់ខ្លួន។ នេះអនុញ្ញាតឱ្យកម្មវិធីស្មាតហ្វូនរកឃើញថ្នាំងដែលមិនបានរៀបចំ។ នៅពេលដែលការផ្សព្វផ្សាយដែលមិនមានការផ្តល់ជូនត្រូវបានចាប់ផ្តើម កម្មវិធីរង់ចាំសម្រាប់អ្នកផ្តល់សេវា (ក្នុងករណីនេះកម្មវិធីស្មាតហ្វូន) ដើម្បីចាប់ផ្តើមការផ្តល់។ ការចាប់ផ្តើមនៃការផ្តល់ត្រូវបានចង្អុលបង្ហាញជាមួយនឹងព្រឹត្តិការណ៍ sl_btmesh_evt_node_provisioning_started_id ។ នៅពេលដែលព្រឹត្តិការណ៍នេះត្រូវបានលើកឡើង មុខងារហៅត្រឡប់មកវិញ sl_btmesh_on_node_provisioning_started() ត្រូវបានហៅ។ កំឡុងពេលផ្តល់ មិនចាំបាច់មានសកម្មភាពណាមួយពីកម្មវិធីអ្នកប្រើប្រាស់ទេ។ ជង់សំណាញ់ប៊្លូធូសគ្រប់គ្រងដោយស្វ័យប្រវត្តិនូវការកំណត់រចនាសម្ព័ន្ធសោបណ្តាញ និងប្រតិបត្តិការផ្សេងទៀត។ ទាំងពន្លឺ និងកម្មវិធីប្តូរគ្រាន់តែចាប់ផ្តើមភ្លឹបភ្លែតៗ LEDs ទាំងពីរនៅលើ WSTK ដើម្បីបង្ហាញថាការផ្គត់ផ្គង់កំពុងដំណើរការ។ បន្ទាប់មកពួកគេរង់ចាំព្រឹត្តិការណ៍ sl_btmesh_evt_node_provisioned_id ដែលបង្ហាញថាការផ្តល់បានបញ្ចប់។ នៅពេលដែលព្រឹត្តិការណ៍នេះត្រូវបានលើកឡើង មុខងារហៅត្រឡប់មកវិញ sl_btmesh_on_node_provisioned() ត្រូវបានហៅ។ វដ្តជីវិតនៃកម្មវិធី
ជំហានបន្ទាប់បន្ទាប់ពីការផ្តល់គឺការកំណត់រចនាសម្ព័ន្ធថ្នាំង។ ដូចដែលបានពន្យល់នៅក្នុង QSG176៖ មគ្គុទ្ទេសក៍ចាប់ផ្តើមរហ័ស Bluetooth Mesh SDK v2.x កម្មវិធីស្មាតហ្វូនត្រូវបានប្រើដើម្បីកំណត់រចនាសម្ព័ន្ធថ្នាំងជាកុងតាក់ ឬពន្លឺ ហើយកំណត់វាទៅក្រុម។ ដំណើរការកំណត់រចនាសម្ព័ន្ធមានជំហានដូចខាងក្រោមៈ
- អ្នកផ្តល់សេវាចែកចាយកូនសោកម្មវិធីទៅថ្នាំង។
- គ្រាប់ចុចកម្មវិធីត្រូវបានចងភ្ជាប់ជាមួយម៉ូដែលសំណាញ់ប៊្លូធូសដែលបានជ្រើសរើស។
- អាសយដ្ឋានផ្សព្វផ្សាយ និងការកំណត់ត្រូវបានកំណត់រចនាសម្ព័ន្ធ។
- អាសយដ្ឋានជាវ និងការកំណត់ត្រូវបានកំណត់រចនាសម្ព័ន្ធ។
ដំណាក់កាលនៃការកំណត់រចនាសម្ព័ន្ធភាគច្រើនត្រូវបានគ្រប់គ្រងរវាងបណ្តុំសំណាញ់ប៊្លូធូស និងអ្នកផ្តល់ ហើយវាមិនតម្រូវឱ្យមានការពាក់ព័ន្ធណាមួយពីកម្មវិធីអ្នកប្រើប្រាស់នៅក្នុងថ្នាំងនោះទេ។ ព្រឹត្តិការណ៍ខាងក្រោមត្រូវបានបង្កើតដោយជង់ ដើម្បីផ្តល់ព័ត៌មានស្ថានភាពអំពីការកំណត់រចនាសម្ព័ន្ធដែលកំពុងដំណើរការ៖
- sl_btmesh_evt_node_key_added_id៖ បង្កើតនៅពេលដែលអ្នកផ្តល់សេវាបានផ្ញើសោថ្មី (បណ្តាញ ឬកម្មវិធី)
- sl_btmesh_evt_node_model_config_changed_id៖ បង្ហាញថាអ្នកផ្តល់សេវាបានកែប្រែការកំណត់រចនាសម្ព័ន្ធនៃគំរូមូលដ្ឋាន (ទាំងការបោះពុម្ព ឬការកំណត់ជាវបានផ្លាស់ប្តូរ)
រហូតមកដល់ចំណុចនេះ លេខកូដនៅក្នុង examples Bluetooth Mesh – SoC Light និង Bluetooth Mesh – SoC Switch គឺស្ទើរតែដូចគ្នាបេះបិទ។
ប្តូរ Node Example
ផ្នែកនេះពិពណ៌នាអំពីប្រតិបត្តិការជាមូលដ្ឋាននៃ Bluetooth Mesh – SoC Switch exampលេ វាត្រូវបានសន្មត់ថាថ្នាំងត្រូវបានផ្តល់ និងបោះពុម្ពរួចហើយ - ការកំណត់ការជាវត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយកម្មវិធីស្មាតហ្វូន។ ថ្នាំងប្តូរមានកិច្ចការសាមញ្ញមួយ៖ ស្តាប់ការចុចប៊ូតុង ហើយផ្អែកលើរយៈពេលនៃការចុចប៊ូតុង គ្រប់គ្រងពន្លឺ សីតុណ្ហភាពពណ៌ ឬស្ថានភាពបិទ/បើកភ្លើងនៅក្នុងក្រុម ឬរំលឹកឡើងវិញនូវទិដ្ឋភាពដែលបានរក្សាទុកពីមុន។ ការចុចប៊ូតុងខ្លី (តិចជាង 250 ms) ត្រូវបានប្រើដើម្បីកែតម្រូវពន្លឺពន្លឺឡើងលើ (PB1) និងចុះក្រោម (PB0)។ ការចុចប៊ូតុងមធ្យម (ច្រើនជាង 250 ms និងតិចជាង 1 វិនាទី) ត្រូវបានប្រើដើម្បីកែតម្រូវសីតុណ្ហភាពពណ៌ពន្លឺឡើងលើ (PB1) និងចុះក្រោម (PB0)។ ការចុចយូរ (ច្រើនជាង 1 វិនាទី និងតិចជាង 5 វិនាទី) បើកពន្លឺ (PB1) ឬបិទ (PB0) ។ ការចុចយូរណាស់ (ច្រើនជាង 5 វិនាទី) រំលឹកកន្លែងកើតហេតុលេខ 1 (PB0) ឬឈុតទី 2 (PB1) ។ ការគ្រប់គ្រងការបើក/បិទប្រើប្រាស់ម៉ូដែល Generic On Off Client ការគ្រប់គ្រងពន្លឺប្រើប្រាស់គំរូ Lightness Client ការគ្រប់គ្រងសីតុណ្ហភាពពណ៌ប្រើប្រាស់ម៉ូដែល Light CTL Client ហើយការរំលឹកកន្លែងកើតហេតុប្រើប្រាស់ម៉ូដែល Scene Client (សូមមើលការបញ្ជាក់របស់ Bluetooth Mesh Model សម្រាប់ព័ត៌មានលម្អិតអំពីគំរូឈុត)។ ការផ្លាស់ប្តូរ ឧample ក៏បង្ហាញពីមុខងារ Low Power Node (LPN) ផងដែរ។ នៅពេលដែលកុងតាក់ត្រូវបានផ្តល់ជូនទៅក្នុងបណ្តាញ វានឹងចាប់ផ្តើមស្វែងរកមិត្តម្នាក់ ដើម្បីឱ្យវាអាចចូលទៅក្នុងរបៀបថាមពលទាប។ នៅពេលដែលមិត្តភាពត្រូវបានបង្កើតឡើង កុងតាក់អាចចូលគេងបានជ្រៅ ហើយវានឹងភ្ញាក់ឡើងជាទៀងទាត់ដើម្បីស្ទង់មតិថ្នាំងមិត្តសម្រាប់សារចូលណាមួយ។
នៅពេលទទួលបានព្រឹត្តិការណ៍ sl_btmesh_evt_node_initialized_id អតិថិជនពន្លឺ CTL ម៉ាស៊ីនភ្ញៀវពន្លឺ អតិថិជនឈុត និងបណ្ណាល័យសំណាញ់ត្រូវបានចាប់ផ្តើម។ បន្ទាប់មកមុខងារ Low Power Node (LPN) ត្រូវបានចាប់ផ្តើម និងកំណត់រចនាសម្ព័ន្ធ។ បន្ទាប់ពីមុខងារ LPN ត្រូវបានចាប់ផ្តើម មុខងារហៅត្រឡប់មកវិញ sl_btmesh_lpn_on_init() ត្រូវបានហៅ ហើយកម្មវិធីបង្ហាញ "LPN on" នៅលើ WSTK LCD ។ ការកំណត់រចនាសម្ព័ន្ធ LPN មានប៉ារ៉ាម៉ែត្រប្រាំ៖ lpn_queue_length, lpn_poll_timeout, lpn_receive_delay, lpn_request_retries និង lpn_retry_interval។ ការកំណត់នៃប៉ារ៉ាម៉ែត្រទាំងនេះត្រូវបានកំណត់នៅក្នុង sl_btmesh_lpn_config.h ជា LPN_MIN_QUEUE_LENGTH, LPN_POOL_TIMEOUT, LPN_RECEIVE_DELAY, LPN_REQUEST_RETRIES និង LPN_RETRY_INTERVAL រៀងគ្នា។ បន្ទាប់ពីនោះថ្នាំងចាប់ផ្តើមស្វែងរកថ្នាំងមិត្ត។ ស្ថានភាពមុខងារ LPN ត្រូវបានបង្ហាញនៅលើអេក្រង់ WSTK LCD ។
មុខងារ LPN ភាគច្រើនត្រូវបានអនុវត្តនៅក្នុង Mesh stack ដូច្នេះមានតែព្រឹត្តិការណ៍ផ្តល់ព័ត៌មានមួយចំនួនប៉ុណ្ណោះអាចត្រូវបានលើកឡើងទៅកាន់កម្មវិធីតាមរយៈមុខងារហៅត្រឡប់មកវិញដែលត្រូវគ្នា៖
- sl_btmesh_lpn_on_friendship_established៖ មិត្តភាពត្រូវបានបង្កើតឡើងដោយជោគជ័យ។ កម្មវិធីបង្ហាញ "LPN ជាមួយមិត្ត" នៅលើ WSTK LCD ។
- sl_btmesh_lpn_on_friendship_failed៖ ការបង្កើតមិត្តភាពបានបរាជ័យ។ កម្មវិធីបង្ហាញ "គ្មានមិត្ត" នៅលើ WSTK LCD ហើយថ្នាំងព្យាយាមបង្កើតមិត្តភាពម្តងទៀតក្នុងរយៈពេល 2 វិនាទី។
- sl_btmesh_lpn_on_friendship_terminated៖ មិត្តភាពត្រូវបានបញ្ចប់ដោយហេតុផលមួយចំនួន។ កម្មវិធីបង្ហាញ "មិត្តបាត់បង់" នៅលើ WSTK LCD ហើយថ្នាំងព្យាយាមបង្កើតមិត្តភាពម្តងទៀតក្នុងរយៈពេល 2 វិនាទី។
ប្រសិនបើការតភ្ជាប់ GATT ត្រូវបានបើក មិត្តភាពត្រូវបានបញ្ចប់ ហើយ LPN ត្រូវបានលុបចោល។ ក្នុងករណីនេះ មុខងារ callback sl_btmesh_lpn_on_deinit() ត្រូវបានហៅ ហើយកម្មវិធីបង្ហាញ “LPN off” នៅលើ WSTK LCD។ បន្ទាប់ពីការតភ្ជាប់ GATT ទាំងអស់ត្រូវបានបិទ មុខងារ LPN ត្រូវបានចាប់ផ្តើមឡើងវិញ។ មុខងារ sl_btmesh_change_lightness() ផ្លាស់ប្តូរកម្រិតពន្លឺ និងបញ្ជូនតម្លៃរបស់វាទៅម៉ាស៊ីនមេសម្រាប់ការចុចប៊ូតុងខ្លី។ ការចុចខ្លីត្រូវបានប្រើដើម្បីកែតម្រូវពន្លឺពន្លឺឡើងលើ និងចុះក្រោម។ កម្មវិធីផ្ញើសំណើដោយប្រើគំរូពន្លឺពន្លឺ។ កម្រិតចុងក្រោយដែលត្រូវបានកំណត់ត្រូវបានរក្សាទុកក្នុងអថេរមួយ (ប្រភេទ uint16) ហើយកម្រិតត្រូវបានកែតម្រូវឡើងលើ ឬចុះក្រោមរាល់ពេលដែលការចុចប៊ូតុងខ្លីត្រូវបានរកឃើញ។
ការផ្ញើសំណើពន្លឺតែមួយត្រូវបានអនុវត្តនៅក្នុងមុខងារ send_lightness_request() ដែលស្រដៀងទៅនឹង send_on-off_request() ដែលត្រូវបានប្រើសម្រាប់សំណើរបើក/បិទ។ ទាំងពីរនេះប្រើ API mesh_lib_generic_client_publish() ដូចគ្នា ដើម្បីបោះផ្សាយសំណើ។ ភាពខុសគ្នាគឺស្ថិតនៅក្នុងលេខសម្គាល់គំរូដែលត្រូវបានឆ្លងកាត់ជាអាគុយម៉ង់ និងប្រភេទទិន្នន័យប៉ារ៉ាម៉ែត្រ។ មុខងារ sl_btmesh_change_temperature() ផ្លាស់ប្តូរសីតុណ្ហភាពពណ៌ ហើយផ្ញើតម្លៃរបស់វាទៅម៉ាស៊ីនមេសម្រាប់ការចុចប៊ូតុងមធ្យម។ ការចុចមធ្យមត្រូវបានប្រើដើម្បីកែតម្រូវសីតុណ្ហភាពពណ៌ពន្លឺឡើងលើ និងចុះក្រោម។ កម្មវិធីផ្ញើសំណើដោយប្រើគំរូ Light CTL ។ សីតុណ្ហភាពចុងក្រោយដែលត្រូវបានកំណត់ត្រូវបានរក្សាទុកក្នុងអថេរ (ប្រភេទ uint16) ហើយសីតុណ្ហភាពត្រូវបានកែតម្រូវឡើងលើ ឬចុះក្រោមរាល់ពេលដែលការចុចប៊ូតុងមធ្យមត្រូវបានរកឃើញ។ ការផ្ញើសំណើ CTL ពន្លឺតែមួយត្រូវបានអនុវត្តនៅក្នុងមុខងារ send_ctl_request() ដែលស្រដៀងទៅនឹង send_lightness_re-quest() ដែលត្រូវបានប្រើសម្រាប់សំណើពន្លឺ។ ទាំងពីរនេះប្រើ API mesh_lib_generic_client_publish() ដូចគ្នា ដើម្បីបោះផ្សាយសំណើ។ ភាពខុសគ្នាគឺស្ថិតនៅក្នុងលេខសម្គាល់គំរូដែលត្រូវបានឆ្លងកាត់ជាអាគុយម៉ង់ និងប្រភេទទិន្នន័យប៉ារ៉ាម៉ែត្រ។
មុខងារ sl_btmesh_change_switch_position() ផ្លាស់ប្តូរទីតាំងប្តូរ និងផ្ញើតម្លៃរបស់វាទៅម៉ាស៊ីនមេសម្រាប់ការចុចប៊ូតុងយូរ។ សម្រាប់ការចុចប៊ូតុងវែងនីមួយៗ កម្មវិធីបោះផ្សាយសំណើបិទ/បើកបីជាប់គ្នាទៅកាន់អាសយដ្ឋានក្រុមដែលបានកំណត់ដោយកម្មវិធីស្មាតហ្វូន។ សំណើត្រូវបានផ្ញើច្រើនដងដើម្បីបង្កើនភាពជឿជាក់។ ចំណាំថាវាជាទំនួលខុសត្រូវរបស់កម្មវិធីក្នុងការជ្រើសរើសយុទ្ធសាស្រ្តសមរម្យសម្រាប់ការទំនាក់ទំនងដែលអាចទុកចិត្តបាន។ នៅក្នុងនេះ អតីតampដូច្នេះ ការបញ្ជូនសារកម្មវិធីជាច្រើនត្រូវបានជ្រើសរើស។ ការបញ្ជូនបន្តក៏អាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីបន្ថែមដោយស្វ័យប្រវត្តិនៅកម្រិតបណ្តាញ។ ការផ្ញើសំណើបិទ/បើកតែមួយត្រូវបានអនុវត្តនៅក្នុងមុខងារ send_onoff_request()។ កម្មវិធីកំណត់ម៉ោងទន់ត្រូវបានប្រើដើម្បីជំរុញការហៅទូរស័ព្ទចំនួនបីដើម្បី send_onoff_request() ជាមួយនឹងការពន្យារពេល 50 ms រវាងការហៅនីមួយៗ។ Mesh stack API ដែលប្រើដើម្បីផ្ញើប្រតិបត្តិការបើក/បិទមួយគឺ mesh_lib_generic_client_publish()។ នេះគឺជា API ទូទៅដែលប្រើដើម្បីផ្សព្វផ្សាយទិន្នន័យសម្រាប់ម៉ូដែលម៉ាស៊ីនភ្ញៀវជាច្រើន។ វាមិនត្រូវបានកំណត់ចំពោះម៉ាស៊ីនភ្ញៀវបើក/បិទទូទៅតែប៉ុណ្ណោះ។ សម្រាប់អតីតampដូច្នេះ ការបោះពុម្ពទិន្នន័យជាម៉ាស៊ីនភ្ញៀវពេលវេលាផ្លាស់ប្តូរទូទៅនឹងត្រូវធ្វើឡើងដោយប្រើ API ដូចគ្នា។ ប៉ារ៉ាម៉ែត្រទីមួយ model_id ជ្រើសរើសម៉ូដែលណាមួយដែលកំពុងត្រូវបានប្រើប្រាស់។ បន្ថែមពីលើស្ថានភាពនៃការបើក/បិទដែលចង់បាន API បោះពុម្ពផ្សាយមានប៉ារ៉ាម៉ែត្របន្ថែមមួយចំនួនដូចជា ការកំណត់អត្តសញ្ញាណប្រតិបត្តិការ ពេលវេលាផ្លាស់ប្តូរ និងការពន្យារពេល។ លេខសម្គាល់ប្រតិបត្តិការគឺជាលេខដែលកំពុងដំណើរការដែលត្រូវបានបង្កើនសម្រាប់ប្រតិបត្តិការនីមួយៗ។ នៅក្នុងនេះ អតីតampដូច្នេះ ការផ្លាស់ប្តូររដ្ឋ បិទ/បើកនីមួយៗ បង្កឱ្យមានសំណើរបើក/បិទបីជាប់គ្នា។ ការកំណត់អត្តសញ្ញាណប្រតិបត្តិការគឺដូចគ្នាសម្រាប់សំណើនីមួយៗទាំងនេះ ដូច្នេះហើយនៅចុងបញ្ចប់នៃការទទួល សំណើស្ទួនអាចត្រូវបានច្រោះចេញ។ ម្យ៉ាងវិញទៀត សារដែលបានបោះផ្សាយទាំងបីគឺជាផ្នែកមួយនៃប្រតិបត្តិការដូចគ្នា ហើយពួកវានឹងបង្កឲ្យមានព្រឹត្តិការណ៍តែមួយនៅឯថ្នាំងពន្លឺទទួល។ ប៉ារ៉ាម៉ែត្រពន្យាពេលអាចត្រូវបានប្រើដើម្បីបង្ហាញថាការផ្លាស់ប្តូរបើក / បិទមិនគួរត្រូវបានអនុវត្តភ្លាមៗទេប៉ុន្តែបន្ទាប់ពីការពន្យារពេលដែលបានផ្តល់ឱ្យ។ នៅក្នុងនេះ អតីតample, ប៉ារ៉ាម៉ែត្រពន្យាពេលត្រូវបានកំណត់ទៅតម្លៃ 100 ms / 50 ms / 0 នៅក្នុងសំណើទីមួយ ទីពីរ និងទីបី រៀងគ្នា។ គោលបំណងគឺដើម្បីធានាថាពន្លឺទាំងអស់នៅក្នុងក្រុមគោលដៅផ្លាស់ប្តូរស្ថានភាពរបស់ពួកគេក្នុងពេលដំណាលគ្នា ដោយមិនគិតពីសំណើបើក/បិទចំនួនបីត្រូវបានចាប់យកនៅផ្នែកទទួល។ មុខងារ sl_btmesh_select_scene() ជ្រើសរើសកន្លែងកើតហេតុ ហើយផ្ញើតម្លៃរបស់វាទៅម៉ាស៊ីនមេ សម្រាប់ការចុចប៊ូតុងយូរ។ ការចុចយូរណាស់ត្រូវបានប្រើដើម្បីរំលឹកឈុតឆាក។ កម្មវិធីផ្ញើសំណើដោយប្រើគំរូ Scene Client ។
ការផ្ញើសំណើរំលឹកឡើងវិញនូវឈុតតែមួយត្រូវបានអនុវត្តនៅក្នុងមុខងារ send_scene_recall_request() ដែលស្រដៀងទៅនឹងសំណើផ្សេងទៀត។ ភាពខុសគ្នានោះគឺថាវាប្រើ API ជាក់លាក់ sl_btmesh_scene_client_recall() សម្រាប់ការបោះពុម្ពផ្សាយ។ មុខងារនេះជាទូទៅត្រូវបានប្រើប្រាស់សម្រាប់ការផ្ញើសំណើររំលឹកកន្លែងកើតហេតុ។ ប្រសិនបើអាសយដ្ឋានគោលដៅត្រូវបានកំណត់ទៅអាសយដ្ឋានហាមឃាត់ 0 មុខងារនឹងផ្សព្វផ្សាយសាររំលឹកឡើងវិញ។ កូដកម្មវិធីដែលអនុវត្តមុខងារប្តូរពន្លឺគឺសាមញ្ញណាស់ ដោយសារទិដ្ឋភាពជាច្រើនត្រូវបានគ្រប់គ្រងដោយស្វ័យប្រវត្តិដោយជង់សំណាញ់។ សម្រាប់អតីតample, ថ្នាំងប្តូរមិនចាំបាច់ដឹងអ្វីទាំងអស់អំពីថ្នាំងពន្លឺដែលវាកំពុងគ្រប់គ្រង។ ចំនួនថ្នាំងពន្លឺណាមួយអាចត្រូវបានជាវទៅសំណើបិទ/បើកដែលត្រូវបានបោះពុម្ពដោយថ្នាំងប្តូរ។ ថ្នាំងប្តូរមិនចាំបាច់ដឹងពីអាសយដ្ឋានក្រុមដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយកម្មវិធីផ្តល់។ វាគ្រាន់តែបោះផ្សាយសំណើបើក/បិទដោយប្រើ API mesh_lib_generic_client_publish() ហើយជង់នឹងផ្ញើសំណើដោយស្វ័យប្រវត្តិដោយប្រើអាសយដ្ឋានក្រុមដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយអ្នកផ្តល់សេវា។
ថ្នាំងពន្លឺ Example
ផ្នែកនេះពិពណ៌នាអំពីប្រតិបត្តិការជាមូលដ្ឋាននៃ Bluetooth Mesh – SoC Light exampលេ វាត្រូវបានសន្មត់ថាថ្នាំងត្រូវបានផ្តល់រួចហើយ ហើយការកំណត់ការបោះពុម្ព និងជាវត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយកម្មវិធីស្មាតហ្វូន។ លក្ខណៈពិសេសចម្បងរបស់ថ្នាំងពន្លឺគឺថា LEDs ឧបករណ៍អភិវឌ្ឍន៍ត្រូវបានបើកឬបិទដោយផ្អែកលើសំណើដែលត្រូវបានទទួលពីថ្នាំងប្តូរឬពីកម្មវិធីស្មាតហ្វូន។ ពន្លឺរបស់ LEDs ក៏អាចត្រូវបានគ្រប់គ្រងផងដែរ។ ការគ្រប់គ្រងការបើក/បិទគឺផ្អែកលើម៉ូដែល Bluetooth Mesh Generic On Off ហើយការគ្រប់គ្រងពន្លឺគឺផ្អែកលើម៉ូដែល Light Lightness។ ម៉ូដែល Light CTL គាំទ្រសំណើសីតុណ្ហភាពពណ៌។ ការផ្លាស់ប្តូរសីតុណ្ហភាពពណ៌ត្រូវបានបង្ហាញនៅលើអេក្រង់ WSTK LCD ។ ថ្នាំងពន្លឺក៏គាំទ្រមុខងារមិត្តផងដែរ។ វាអាចបង្កើតមិត្តភាពជាមួយថ្នាំងប្តូរថាមពលទាបនៅក្នុងបណ្តាញ ដូច្នេះថ្នាំងប្តូរអាចចូលទៅក្នុងរបៀបថាមពលទាប។
ថ្នាំងពន្លឺគាំទ្រស្ថានភាពដូចខាងក្រោមៈ
- បិទទូទៅ
- កម្រិតទូទៅ
- បើកថាមពលទូទៅ
- ពេលវេលាផ្លាស់ប្តូរលំនាំដើមទូទៅ
- ពន្លឺស្រាល
- ពន្លឺ CTL
- ឈុតឆាក
- រដ្ឋ Light LC ទាំងអស់។
- រដ្ឋ Light LC Property ទាំងអស់។
នៅពេលទទួលបានព្រឹត្តិការណ៍ sl_btmesh_evt_node_initialized_id ម៉ាស៊ីនបម្រើពន្លឺ ម៉ាស៊ីនមេ CTL ពន្លឺ ម៉ាស៊ីនបម្រើ LC ពន្លឺ ម៉ាស៊ីនបម្រើឈុត ម៉ាស៊ីនបម្រើកាលវិភាគ ម៉ាស៊ីនបម្រើពេលវេលា និងបណ្ណាល័យសំណាញ់ត្រូវបានចាប់ផ្តើម។ បណ្ណាល័យ Mesh គឺជាស្រទាប់សម្របខ្លួនរវាង Mesh stack និងកូដកម្មវិធី ដែលអនុញ្ញាតឲ្យប្រើប្រាស់ម៉ូដែលជាច្រើនជាមួយនឹងសំណុំតូចមួយនៃការហៅ API ទូទៅ។ ដើម្បីគាំទ្រស្ថានភាពទាំងអស់ដែលបានរាយខាងលើ ថ្នាំងពន្លឺត្រូវតែរក្សាទុកស្ថានភាពខាងក្នុងរបស់វាជាអចិន្ត្រៃយ៍ ដូច្នេះវាត្រូវបានរក្សាទុកនៅលើការចាប់ផ្ដើមឡើងវិញ និងវដ្តថាមពល។ Lighting Server ផ្ទុកនូវ Generic and Light Lightness នៅក្នុង struct lightbulb_state ។ Light CTL Server ផ្ទុករដ្ឋ Light CTL នៅក្នុងរចនាសម្ព័ន្ធ lightbulb_state ។ Light LC Server ផ្ទុករដ្ឋ Light LC នៅក្នុង struct lc_state និង Light LC Property states នៅក្នុង lc_property_state struct ។ ព័ត៍មានរបស់រដ្ឋក៏ត្រូវបានទុកនៅក្នុងជង់ផងដែរ។ ការចាប់ផ្តើមស្ថានភាពពន្លឺត្រូវបានអនុវត្តនៅក្នុង sl_btmesh_lighting_server_init() និង sl_btmesh_ctl_server_init() ។ ស្ថានភាព On Power Up បើកការកំណត់រចនាសម្ព័ន្ធនៃស្ថានភាពលំនាំដើម បន្ទាប់ពីថាមពលត្រូវបានអនុវត្តទៅថ្នាំងពន្លឺ។ ការកំណត់ដែលអាចមានត្រូវបានរាយខាងក្រោម។
នៅលើការកំណត់ថាមពល | ការពិពណ៌នា (ថ្នាំងពន្លឺ) |
បិទ | ភ្លើងត្រូវបានបិទបន្ទាប់ពីថាមពល |
ON | ពន្លឺត្រូវបានបើកបន្ទាប់ពីថាមពល |
ស្ដារ | ស្ថានភាពមុនពេលភ្លើងត្រូវបានបិទគឺត្រូវបានស្ដារឡើងវិញនៅពេលថាមពលឡើងបន្ទាប់ |
គំរូពេលវេលាផ្លាស់ប្តូរធ្វើឱ្យវាអាចកំណត់រចនាសម្ព័ន្ធរយៈពេលដែលវាត្រូវការសម្រាប់ពន្លឺដើម្បីផ្លាស់ប្តូរពីរដ្ឋមួយទៅរដ្ឋមួយទៀត។ រចនាសម្ព័ន្ធ lightbulb_state នៅក្នុង Lighting Server មានវាលខាងក្រោម។
ឈ្មោះសមាជិករចនាសម្ព័ន្ធ | ការពិពណ៌នា |
onoff_current | ស្ថានភាពពន្លឺបច្ចុប្បន្ន (បិទ ឬបើក) |
onoff_target | ស្ថានភាពពន្លឺគោលដៅ (បើក ឬបិទ) |
ពេលវេលាឆ្លង | ពេលវេលាផ្លាស់ប្តូរលំនាំដើម |
បើកថាមពល | ស្ថានភាពពន្លឺបន្ទាប់ពីការបើកថាមពល (តម្លៃដែលអាចធ្វើបានបិទ / បើក / ស្តារ) |
ចរន្តពន្លឺ | ពន្លឺបច្ចុប្បន្ន (តម្លៃដែលអាចធ្វើបានពី 0 ដល់ 65535) |
ពន្លឺ_គោលដៅ | ពន្លឺគោលដៅ |
ពន្លឺ_ចុងក្រោយ | ពន្លឺចុងក្រោយដែលមិនសូន្យ |
lightness_default | ពន្លឺលំនាំដើម |
ពន្លឺ_នាទី | តម្លៃពន្លឺអប្បបរមា |
ពន្លឺ_អតិបរមា | តម្លៃពន្លឺអតិបរមា |
pri_level_current | កម្រិតទូទៅបច្ចុប្បន្ននៅលើធាតុបឋម (តម្លៃដែលអាចធ្វើបានពី -32768 ដល់ 32767) |
pri_level_target | កំណត់កម្រិតទូទៅលើធាតុបឋម |
រចនាសម្ព័ន្ធ lightbulb_state ក្នុង Light CTL Server មានវាលខាងក្រោម។
ឈ្មោះសមាជិករចនាសម្ព័ន្ធ | ការពិពណ៌នា |
សីតុណ្ហភាព_បច្ចុប្បន្ន | សីតុណ្ហភាពពណ៌បច្ចុប្បន្ន (តម្លៃដែលអាចធ្វើបានពី 800 ទៅ 20000) |
សីតុណ្ហភាព_គោលដៅ | សីតុណ្ហភាពពណ៌គោលដៅ |
សីតុណ្ហភាព_លំនាំដើម | សីតុណ្ហភាពពណ៌លំនាំដើម |
សីតុណ្ហភាព_នាទី | សីតុណ្ហភាពពណ៌អប្បបរមា |
សីតុណ្ហភាព_អតិបរមា | សីតុណ្ហភាពពណ៌អតិបរមា |
deltauv_បច្ចុប្បន្ន | តម្លៃបច្ចុប្បន្ននៃ delta UV (តម្លៃដែលអាចធ្វើបានពី -32768 ដល់ 32767) |
deltauv_គោលដៅ | តម្លៃគោលដៅនៃ delta UV |
deltauv_default | តម្លៃលំនាំដើមនៃ delta UV |
sec_level_current | កម្រិតទូទៅបច្ចុប្បន្ននៅលើធាតុបន្ទាប់បន្សំ (តម្លៃដែលអាចធ្វើបានពី -32768 ដល់ 32767) |
sec_level_target | កំណត់កម្រិតទូទៅលើធាតុបន្ទាប់បន្សំ |
បន្ទាប់ពីនោះ ម៉ូដែល LC (Light Controller) ត្រូវបានចាប់ផ្តើមនៅក្នុង sl_btmesh_lc_init()។ សូមមើលការបញ្ជាក់របស់ម៉ូដែល Bluetooth Mesh សម្រាប់ព័ត៌មានលម្អិតបន្ថែមលើម៉ូដែល LC។
រចនាសម្ព័ន្ធ lc_state មានវាលខាងក្រោម។
ឈ្មោះសមាជិករចនាសម្ព័ន្ធ | ការពិពណ៌នា |
របៀប | ស្ថានភាពរបៀប LC ពន្លឺបច្ចុប្បន្ន |
របៀប occupancy | ស្ថានភាពរបៀបកាន់កាប់ LC ពន្លឺបច្ចុប្បន្ន |
light_onoff | ស្ថានភាពបិទភ្លើង LC បច្ចុប្បន្ន |
onoff_current | ស្ថានភាពទូទៅបច្ចុប្បន្ននៃ LC (បើក ឬបិទ) |
onoff_target | ស្ថានភាពទូទៅនៃ LC គោលដៅ (បើក ឬបិទ) |
រចនាសម្ព័ន្ធ lc_property_state មានវាលខាងក្រោម។
ឈ្មោះសមាជិករចនាសម្ព័ន្ធ | ការពិពណ៌នា |
time_occupancy_ពន្យាពេល | ពន្យាពេលរវាងការទទួលសារកាន់កាប់ឧបករណ៍ចាប់សញ្ញា និងការផ្លាស់ប្តូរស្ថានភាព Light LC Occupancy |
time_fade_on | ពេលវេលាផ្លាស់ប្តូរពីស្ថានភាពរង់ចាំទៅស្ថានភាពដំណើរការ |
time_run_on | រយៈពេលនៃស្ថានភាពដំណើរការបន្ទាប់ពីការកាន់កាប់ចុងក្រោយត្រូវបានរកឃើញ |
time_fade | ពេលវេលាផ្លាស់ប្តូរពីស្ថានភាពដំណើរការទៅរដ្ឋអូសបន្លាយ |
ពេលវេលា_ពន្យារ | រយៈពេលនៃរដ្ឋអូសបន្លាយ |
time_fade_standby_auto | ពេលវេលាផ្លាស់ប្តូរពីស្ថានភាពអូសបន្លាយទៅស្ថានភាពរង់ចាំ នៅពេលដែលការផ្លាស់ប្តូរគឺដោយស្វ័យប្រវត្តិ |
time_fade_standby_manual | ពេលវេលាផ្លាស់ប្តូរពីស្ថានភាពអូសបន្លាយទៅស្ថានភាពរង់ចាំ នៅពេលដែលការផ្លាស់ប្តូរត្រូវបានបង្កឡើងដោយប្រតិបត្តិការដោយដៃ |
ពន្លឺ_បើក | កម្រិតពន្លឺនៅក្នុងស្ថានភាពដំណើរការ |
ពន្លឺ_អូសបន្លាយ | កម្រិតពន្លឺនៅក្នុងស្ថានភាពអូសបន្លាយ |
ពន្លឺ_រង់ចាំ | កម្រិតពន្លឺនៅក្នុងស្ថានភាពរង់ចាំ |
ambient_luxlevel_on | តម្រូវការកម្រិត Ambient Lux Level នៅក្នុងស្ថានភាពដំណើរការ |
ambient_luxlevel_prolong | តម្រូវការកម្រិត Ambient Lux Level នៅក្នុងស្ថានភាពអូសបន្លាយ |
ambient_luxlevel_standby | ទាមទារកម្រិត Ambient Lux Level នៅក្នុងស្ថានភាព Standby |
និយតករ_kiu | មេគុណអាំងតេក្រាលនៃនិយតករពន្លឺ PI នៅពេលបង្កើនទិន្នផល |
និយតករ_kid | មេគុណអាំងតេក្រាលនៃនិយតករពន្លឺ PI នៅពេលកាត់បន្ថយទិន្នផល |
និយតករ_kpu | មេគុណសមាមាត្រនៃនិយតករពន្លឺ PI នៅពេលបង្កើនទិន្នផល |
និយតករ_kpd | មេគុណសមាមាត្រនៃនិយតករពន្លឺ PI នៅពេលកាត់បន្ថយទិន្នផល |
និយតករ_ភាពត្រឹមត្រូវ | ភាពត្រឹមត្រូវនៃនិយតករពន្លឺ PI |
រចនាសម្ព័ន្ធទាំងពីរត្រូវបានប្រើសម្រាប់ការរក្សាទុក និងស្ដារស្ថានភាព LC រវាងការកំណត់ឡើងវិញ។ មុខងារ LC ភាគច្រើនត្រូវបានអនុវត្តនៅក្នុងជង់ ដូច្នេះព្រឹត្តិការណ៍ភាគច្រើនត្រូវបានប្រើសម្រាប់ការរក្សាទុកស្ថានភាព និងគោលបំណងព័ត៌មាន។ កម្មវិធីប្រើប្រាស់ព្រឹត្តិការណ៍ sl_btmesh_evt_lc_server_lin-ear_output_updated_id ដើម្បីធ្វើបច្ចុប្បន្នភាពស្ថានភាព LED យោងតាមតម្លៃលទ្ធផល LC ដែលបង្កើតដោយឧបករណ៍បញ្ជាពន្លឺដោយផ្អែកលើលក្ខណៈសម្បត្តិ LC ស្ថានភាព និងការអានឧបករណ៍ចាប់សញ្ញាដែលបានទទួល។ បន្ទាប់មក មុខងារមិត្តភ័ក្តិត្រូវបានចាប់ផ្តើម ដើម្បីបើកមុខងារមិត្តភ័ក្តិដែលបានអនុវត្តនៅក្នុងជង់។ បន្ទាប់ពីការចាប់ផ្តើមបានជោគជ័យ សំណើមិត្តភក្តិពី Low Power Nodes អាចត្រូវបានទទួលយក។ មុខងារមិត្តភ័ក្តិភាគច្រើនត្រូវបានអនុវត្តក្នុងជង់ ដូច្នេះបន្ទាប់ពីការចាប់ផ្ដើមមានតែព្រឹត្តិការណ៍ព័ត៌មានមួយចំនួនប៉ុណ្ណោះដែលអាចត្រូវបានលើកឡើងទៅកម្មវិធីតាមរយៈមុខងារហៅត្រឡប់ដែលត្រូវគ្នា៖
- sl_btmesh_friend_on_friendship_established: មិត្តភាពត្រូវបានបង្កើតឡើង។ កម្មវិធីបង្ហាញ "មិត្ត" នៅលើ WSTK LCD និង/ឬនៅក្នុងកំណត់ហេតុ UART ។
- sl_btmesh_friend_on_friendship_terminated៖ មិត្តភាពត្រូវបានបញ្ចប់។ កម្មវិធីបង្ហាញ "NO LPN" នៅលើ WSTK LCD និង/ឬនៅក្នុងកំណត់ហេតុ UART ។
បន្ទាប់មក ម៉ូដែល Server Setup និង Scene Server ត្រូវបានចាប់ផ្តើម។ ឥរិយាបថម៉ាស៊ីនមេ Scene ត្រូវបានអនុវត្តនៅក្នុងជង់ ដូច្នេះកម្មវិធីទទួលបានតែព្រឹត្តិការណ៍ព័ត៌មានប៉ុណ្ណោះ។ ម៉ាស៊ីនមេ Scene រំលឹកស្ថានភាព Light LC ដោយស្វ័យប្រវត្តិ ហើយបង្កើតព្រឹត្តិការណ៍ sl_btmesh_evt_generic_server_state_recall_id ដើម្បីជូនដំណឹងដល់ម៉ូដែលផ្សេងទៀតនូវអ្វីដែលរដ្ឋត្រូវបានរក្សាទុកជាមួយកន្លែងកើតហេតុ។ ថ្នាំងពន្លឺចុះឈ្មោះមុខងារហៅត្រឡប់មកវិញសម្រាប់ម៉ូដែលនីមួយៗដែលគាំទ្រ។ នេះត្រូវបានធ្វើដោយការហៅមុខងារ mesh_lib_ge-neric_server_register_handler() ។ មុខងារនេះមានប៉ារ៉ាម៉ែត្រចំនួនប្រាំ៖ លេខសម្គាល់គំរូ សន្ទស្សន៍ធាតុ មុខងារកម្មវិធីដោះស្រាយសំណើអតិថិជន មុខងារគ្រប់គ្រងការផ្លាស់ប្តូរស្ថានភាពម៉ាស៊ីនមេ និងមុខងារដោះស្រាយការហៅទូរសព្ទរបស់រដ្ឋម៉ាស៊ីនមេ។
ថ្នាំងពន្លឺចុះឈ្មោះឧបករណ៍ដោះស្រាយសម្រាប់ម៉ូដែលខាងក្រោមនៅក្នុងម៉ាស៊ីនមេពន្លឺ៖
- Generic On Off Server
- ថាមពលទូទៅបិទម៉ាស៊ីនមេ
- ម៉ាស៊ីនបម្រើពេលវេលាផ្លាស់ប្តូរលំនាំដើមទូទៅ
- ម៉ាស៊ីនបម្រើពន្លឺពន្លឺ
- ម៉ាស៊ីនបម្រើដំឡើងពន្លឺភ្លើង
- ម៉ាស៊ីនមេកម្រិតទូទៅ (នៅលើធាតុចម្បង)
ថ្នាំងពន្លឺចុះឈ្មោះអ្នកដោះស្រាយសម្រាប់ម៉ូដែលខាងក្រោមនៅក្នុង Light CTL Server៖
- ម៉ាស៊ីនមេ CTL ពន្លឺ
- ពន្លឺ CTL Setup Server
- ម៉ាស៊ីនមេសីតុណ្ហភាព CTL ស្រាល (នៅលើធាតុបន្ទាប់បន្សំ)
- ម៉ាស៊ីនមេកម្រិតទូទៅ (នៅលើធាតុបន្ទាប់បន្សំ)
ថ្នាំងពន្លឺចុះឈ្មោះអ្នកដោះស្រាយសម្រាប់ម៉ូដែលខាងក្រោមនៅក្នុង Light LC Server៖
- បើកម៉ាស៊ីនមេទូទៅ (នៅលើធាតុបន្ទាប់បន្សំ)
នៅផ្នែកខាងម៉ាស៊ីនមេ បណ្ណាល័យសំណាញ់ដំណើរការដូចខាងក្រោម។ នៅពេលដែលសំណើទូទៅណាមួយពីអតិថិជនត្រូវបានទទួល ព្រឹត្តិការណ៍ sl_btmesh_evt_generic_server_client_request_id ត្រូវបានលើកឡើង។ កម្មវិធីបន្ទាប់មកហៅមុខងារ mesh_lib_ge-neric_server_event_handler ពីបណ្ណាល័យ mesh ហើយឆ្លងកាត់ព្រឹត្តិការណ៍ជាប៉ារ៉ាម៉ែត្រ។ បណ្ណាល័យ Mesh ឌិកូដលេខសម្គាល់គំរូពីព្រឹត្តិការណ៍ និងហៅមុខងារហៅត្រឡប់មកវិញដែលបានចុះឈ្មោះសម្រាប់ម៉ូដែលនោះ។ សម្រាប់អតីតample នៅក្នុងថ្នាំងពន្លឺ សំណើបិទបើកទូទៅនឹងហៅមុខងារហៅត្រឡប់មកវិញ onoff_request() មុខងារ onoff_request() ត្រូវបានហៅនៅពេលណាដែលសំណើបិទ/បើកត្រូវបានទទួលទាំងពីថ្នាំងប្តូរមួយ ឬពីកម្មវិធីស្មាតហ្វូន។ នេះគឺជាបំណែកនៃកូដនៅក្នុងថ្នាំងពន្លឺដែលបើក និងបិទភ្លើង។ ប្រសិនបើសំណើមិនបញ្ជាក់ពេលវេលាផ្លាស់ប្តូរ ឬពន្យាពេលទេ នោះស្ថានភាពពន្លឺត្រូវបានផ្លាស់ប្តូរភ្លាមៗ។ ជាជម្រើស អតិថិជនអាចស្នើសុំការពន្យារពេល និង/ឬពេលវេលាផ្លាស់ប្តូរ ដែលមានន័យថាការផ្លាស់ប្តូរមិនកើតឡើងភ្លាមៗនោះទេ។ ក្នុងករណីនោះ កម្មវិធីថ្នាំងពន្លឺចាប់ផ្តើមកម្មវិធីកំណត់ម៉ោងទន់ជាមួយនឹងការពន្យារពេលដែលបានផ្តល់ឱ្យ។ ស្ថានភាពពន្លឺមិនត្រូវបានផ្លាស់ប្តូរទេ រហូតទាល់តែកម្មវិធីកំណត់ម៉ោងទន់ផុតកំណត់។ សំណើពន្លឺពន្លឺត្រូវបានគ្រប់គ្រងក្នុងមុខងារ lightness_request()។ សំណើពន្លឺរួមមានប៉ារ៉ាម៉ែត្រនៃប្រភេទ uint16 ដែលបង្ហាញពីពន្លឺនៃពន្លឺនៅលើមាត្រដ្ឋាន 0 - 65535 ។ ឧ។ample កូដប្រើម៉ូឌុលទទឹងជីពចរ (PWM) ដើម្បីជំរុញ LEDs ។ PWM ត្រូវបានអនុវត្តដោយប្រើកម្មវិធីកំណត់ម៉ោង 16 ប៊ីត ហើយតម្លៃពន្លឺដែលបានស្នើសុំត្រូវបានគូសវាសដោយផ្ទាល់ទៅនឹងតម្លៃនៃការចុះឈ្មោះប្រៀបធៀប/ចាប់យកកម្មវិធីកំណត់ម៉ោង។ សម្រាប់អតីតample តម្លៃ 32768 នឹងមានលទ្ធផល 32768/65536 ~ 50% brightness / PWM វដ្តកាតព្វកិច្ច។ វដ្តកាតព្វកិច្ចនៃសញ្ញា PWM ត្រូវបានបង្ហាញនៅលើ LCD ដើម្បីឱ្យវាងាយស្រួលក្នុងការប្រៀបធៀបពន្លឺដែលបានស្នើសុំ និងពន្លឺដែលត្រូវបានកំណត់បច្ចុប្បន្ននៅក្នុងថ្នាំងពន្លឺ។ ស្ថានភាពទូទៅ On Off ត្រូវបានចងជាមួយនឹងស្ថានភាពពន្លឺពន្លឺ។ នេះមានន័យថា ប្រសិនបើពន្លឺត្រូវបានបិទជាមួយនឹងសំណើរបើក/បិទ តម្លៃពន្លឺចុងក្រោយត្រូវបានរក្សាទុកដោយកម្មវិធី ហើយត្រូវបានទាញយកមកវិញបន្ទាប់ពីកម្មវិធីទទួលបានសំណើរបើក/បិទដែលបើកភ្លើង។ ប្រសិនបើពន្លឺត្រូវបានកំណត់ទៅ 0 ដោយប្រើសំណើពន្លឺ ស្ថានភាពបើក/បិទទូទៅត្រូវបានកំណត់ទៅបិទ។ ប្រសិនបើពន្លឺត្រូវបានកំណត់ទៅជាតម្លៃវិជ្ជមាន ស្ថានភាពបិទ/បើកទូទៅត្រូវបានកំណត់ទៅ ON ។ ពន្លឺអាចត្រូវបានផ្លាស់ប្តូរផងដែរដោយប្រើសំណើកម្រិតទូទៅដែលគ្រប់គ្រងនៅក្នុងមុខងារ pri_level_request() ។ សំណើកម្រិតទូទៅរួមបញ្ចូលប៉ារ៉ាម៉ែត្រនៃប្រភេទ int16 ដែលបង្ហាញពីកម្រិតពន្លឺ។ ការបំប្លែងពីកម្រិតទៅជាពន្លឺគឺធ្វើឡើងដោយបន្ថែម 32768 ទៅតម្លៃកម្រិត។ សំណើ CTL ពន្លឺត្រូវបានគ្រប់គ្រងក្នុងមុខងារ ctl_request()។ សំណើ CTL រួមបញ្ចូលប៉ារ៉ាម៉ែត្របីដែលបង្ហាញពីពន្លឺនៃពន្លឺ សីតុណ្ហភាពពណ៌ និង delta UV ។ ប៉ារ៉ាម៉ែត្រពីរដំបូងគឺប្រភេទ uint16 ហើយទីបីគឺប្រភេទ int16 ។ សីតុណ្ហភាពពណ៌ពិតប្រាកដ និង delta UV ត្រូវបានបង្ហាញនៅលើ WSTK LCD នៅក្រោមពន្លឺ។ សីតុណ្ហភាពពណ៌ត្រូវបានកំណត់ដោយ spec ទៅមាត្រដ្ឋាន 800 – 20000 K។ ដែនកំណត់អាចត្រូវបានផ្លាស់ប្តូរដោយ ctl_setup_request() ជាមួយនឹងប្រភេទនៃសំណើដែលបានកំណត់ទៅ ctl_temperature_range។ តម្លៃលំនាំដើមសម្រាប់រដ្ឋ CTL អាចត្រូវបានផ្លាស់ប្តូរដោយប្រើ ctl_setup_request() ជាមួយនឹងប្រភេទនៃសំណើដែលបានកំណត់ទៅ ctl_default ។
អ្នកវិភាគបណ្តាញ
Network Analyzer គឺជាកម្មវិធីចាប់យកកញ្ចប់កម្មវិធី ឌិកូដ និងកម្មវិធីមើលឃើញ ហើយជាផ្នែកមួយនៃ Silicon Labs Simplicity Studio។ Net-work Analyzer មានការគាំទ្រសម្រាប់ Bluetooth LE និង Bluetooth mesh packet capture ហើយកំណែចុងក្រោយបំផុតរបស់ Simplicity Studio ក៏មានឧបករណ៍ឌិកូដដើម្បីឌិកូដ Bluetooth LE និង mesh traffic ផងដែរ។ សូមមើល AN1317៖ ឧបករណ៍វិភាគបណ្តាញសម្រាប់ Bluetooth Low Energy និង Mesh សម្រាប់ព័ត៌មានបន្ថែម។ EFR32 SoCs មានចំណុចប្រទាក់ Packet Trace Interface (PTI) ដែលបង្ហាញចរាចរវិទ្យុទាំងអស់ដែលបានផ្ញើ និងទទួលដោយឧបករណ៍ EFR32 ជាក់លាក់ ហើយអ្នកវិភាគបណ្តាញអាចចាប់យកចរាចរនេះ។ នៅលើ EFR32 មុខងារ PTI អាចត្រូវបានបើក ឬបិទនៅកម្រិតប្រភពកូដ ដូច្នេះវាអាចត្រូវបានបើកកំឡុងពេលអភិវឌ្ឍន៍ ហើយក្រោយមកអាចត្រូវបានបិទសម្រាប់កម្មវិធីផលិត។ Silicon Labs Wireless Starter Kits (WSTKs) គាំទ្រការចាប់យកកញ្ចប់ព័ត៌មាន PTI ទាំងតាមរយៈ USB ដែលមានប្រយោជន៍សម្រាប់ការចាប់យកកញ្ចប់ព័ត៌មានពី WSTKs ពីរបីក្នុងពេលតែមួយ ឬតាមរយៈការតភ្ជាប់អ៊ីសឺរណិត។ ការតភ្ជាប់អ៊ីសឺរណិតក៏ផ្តល់នូវការចូលប្រើ PTI ហើយមុខងារនេះអនុញ្ញាតឱ្យបង្កើត និងបំបាត់កំហុសបណ្តាញ WSTKs និងបរិស្ថានសាកល្បងខ្នាតធំសម្រាប់សំណាញ់ប៊្លូធូស។ មធ្យោបាយងាយស្រួលបំផុតដើម្បីចាប់ផ្តើមវគ្គ Network Analyzer សម្រាប់កម្មវិធីជាក់លាក់មួយគឺត្រូវចុចកណ្ដុរស្ដាំលើគម្រោង ជ្រើសរើស Profile ហើយបន្ទាប់មកជ្រើសរើសគោលដៅអ្នកវិភាគបណ្តាញ។ ចាប់ផ្តើមអ្នកវិភាគបណ្តាញ Silicon Labs
Bluetooth Mesh Stack និងកម្មវិធីសម្រាប់ស្មាតហ្វូន
Silicon Labs ក៏ផ្តល់នូវជង់សំណាញ់ប៊្លូធូស និងកម្មវិធីយោងសម្រាប់ស្មាតហ្វូនផងដែរ។ កម្មវិធីនេះអាចត្រូវបានប្រើដើម្បីផ្តល់ឧបករណ៍ប៊្លូធូសដែលមានសមត្ថភាពសំណាញ់ជាថ្នាំងដែលជាផ្នែកមួយនៃបណ្តាញសំណាញ់ប៊្លូធូស ក៏ដូចជាកំណត់រចនាសម្ព័ន្ធថ្នាំង បង្កើតក្រុម និងបោះផ្សាយការកំណត់ការជាវសម្រាប់ថ្នាំង។ នៅពេលសរសេរឯកសារនេះ កម្មវិធីគាំទ្របណ្តាញរូបវ័ន្តមួយ ក្រុមច្រើន និងគំរូសំណាញ់ពន្លឺ ប៉ុន្តែកម្មវិធីនឹងត្រូវបានអាប់ដេតជានិច្ចសម្រាប់មុខងារ និងមុខងារថ្មីៗ។ ដោយសារស្មាតហ្វូននៅពេលសរសេរឯកសារនេះមិនគាំទ្រសំណាញ់ប៊្លូធូសទេនោះ Silicon Labs ក៏ផ្តល់ជង់សំណាញ់ប៊្លូធូសសម្រាប់ទូរស័ព្ទផងដែរ។ ជង់សំណាញ់គឺចាំបាច់សម្រាប់ទូរស័ព្ទដើម្បីអាចផ្តល់ កំណត់រចនាសម្ព័ន្ធ និងគ្រប់គ្រងថ្នាំងសំណាញ់ប៊្លូធូសលើអ្នកកាន់ GATT ។ រូបខាងក្រោមបង្ហាញពីស្ថាបត្យកម្ម និងទំនាក់ទំនងរវាងជង់ប៊្លូធូសនៅលើប្រព័ន្ធប្រតិបត្តិការទូរស័ព្ទ និងជង់សំណាញ់ប៊្លូធូស Silicon Labs ក៏ដូចជារបៀបដែលកម្មវិធីទាក់ទងនឹងរឿងនេះ។ ជង់សំណាញ់ប៊្លូធូសនឹងមានជាបណ្ណាល័យគោលពីរសម្រាប់អ្នកអភិវឌ្ឍន៍កម្មវិធីទូរស័ព្ទ។ កម្មវិធីយោងដែលអនុវត្តជង់សំណាញ់ប៊្លូធូស ការផ្តល់ ការកំណត់រចនាសម្ព័ន្ធ និងការគ្រប់គ្រងឧបករណ៍មាននៅលើ Google Play និង Apple App Stores ។ ទាក់ទងការិយាល័យលក់ Silicon Labs ក្នុងតំបន់របស់អ្នកសម្រាប់ព័ត៌មានបន្ថែម។បណ្តុំប៊្លូធូស និងស្ថាបត្យកម្មកម្មវិធីនៅលើស្មាតហ្វូន
ស្ទូឌីយោភាពសាមញ្ញ
ការចូលដំណើរការដោយចុចមួយដងទៅកាន់ MCU និងឧបករណ៍ឥតខ្សែ ឯកសារ សូហ្វវែរ បណ្ណាល័យកូដប្រភព និងច្រើនទៀត។ មានសម្រាប់ Windows, Mac និង Linux!ផលប័ត្រ IoT
www.silabs.com/IoT SW/HW
www.silabs.com/simplicity គុណភាព
www.silabs.com/quality ការគាំទ្រ និងសហគមន៍
www.silabs.com/community
ការបដិសេធ
Silicon Labs មានបំណងផ្តល់ជូនអតិថិជននូវឯកសារចុងក្រោយបំផុត ត្រឹមត្រូវ និងស៊ីជម្រៅនៃគ្រឿងកុំព្យូទ័រ និងម៉ូឌុលទាំងអស់ដែលមានសម្រាប់អ្នកអនុវត្តប្រព័ន្ធ និងកម្មវិធីដែលប្រើប្រាស់ ឬមានបំណងប្រើប្រាស់ផលិតផល Silicon Labs ។ ទិន្នន័យលក្ខណៈ ម៉ូឌុល និងគ្រឿងកុំព្យូទ័រដែលអាចប្រើបាន ទំហំអង្គចងចាំ និងអាសយដ្ឋានអង្គចងចាំ សំដៅលើឧបករណ៍ជាក់លាក់នីមួយៗ ហើយប៉ារ៉ាម៉ែត្រ "ធម្មតា" ដែលបានផ្តល់អាច និងធ្វើខុសគ្នានៅក្នុងកម្មវិធីផ្សេងៗ។ កម្មវិធី ឧamples ដែលបានពិពណ៌នានៅទីនេះគឺសម្រាប់គោលបំណងបង្ហាញតែប៉ុណ្ណោះ។ Silicon Labs រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរដោយមិនមានការជូនដំណឹងបន្ថែមចំពោះព័ត៌មានផលិតផល លក្ខណៈបច្ចេកទេស និងការពិពណ៌នានៅទីនេះ ហើយមិនផ្តល់ការធានាចំពោះភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មានដែលបានរួមបញ្ចូលនោះទេ។ ដោយគ្មានការជូនដំណឹងជាមុន Silicon Labs អាចធ្វើបច្ចុប្បន្នភាពកម្មវិធីបង្កប់ផលិតផលក្នុងអំឡុងពេលដំណើរការផលិតសម្រាប់ហេតុផលសុវត្ថិភាព ឬភាពជឿជាក់។ ការផ្លាស់ប្តូរបែបនេះនឹងមិនផ្លាស់ប្តូរលក្ខណៈបច្ចេកទេស ឬដំណើរការរបស់ផលិតផលនោះទេ។ Silicon Labs នឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់
ព័ត៌មានដែលបានផ្តល់នៅក្នុងឯកសារនេះ។ ឯកសារនេះមិនបញ្ជាក់ ឬផ្តល់អាជ្ញាប័ណ្ណច្បាស់លាស់ណាមួយក្នុងការរចនា ឬបង្កើតសៀគ្វីរួមបញ្ចូលគ្នាណាមួយឡើយ។ ផលិតផលមិនត្រូវបានរចនាឡើង ឬត្រូវបានអនុញ្ញាតឱ្យប្រើប្រាស់នៅក្នុងឧបករណ៍ FDA Class III ណាមួយឡើយ កម្មវិធីដែលតម្រូវឱ្យមានការយល់ព្រមពីទីផ្សារមុនរបស់ FDA ឬប្រព័ន្ធជំនួយជីវិត ដោយគ្មានការយល់ព្រមជាលាយលក្ខណ៍អក្សរជាក់លាក់ពី Silicon Labs ។ “ប្រព័ន្ធទ្រទ្រង់ជីវិត” គឺជាផលិតផល ឬប្រព័ន្ធណាមួយដែលមានបំណងគាំទ្រ ឬទ្រទ្រង់ជីវិត និង/ឬសុខភាព ដែលប្រសិនបើវាបរាជ័យ វាអាចត្រូវបានគេរំពឹងថានឹងបណ្តាលឱ្យមានរបួស ឬស្លាប់យ៉ាងធ្ងន់ធ្ងរ។ ផលិតផល Silicon Labs មិនត្រូវបានរចនាឡើង ឬអនុញ្ញាតសម្រាប់កម្មវិធីយោធាទេ។ ផលិតផល Silicon Labs មិនត្រូវស្ថិតក្រោមកាលៈទេសៈណាដែលត្រូវប្រើប្រាស់ក្នុងអាវុធប្រល័យលោក រួមទាំង (ប៉ុន្តែមិនកំណត់ចំពោះ) អាវុធនុយក្លេអ៊ែរ អាវុធជីវសាស្ត្រ ឬគីមី ឬមីស៊ីលដែលមានសមត្ថភាពបញ្ជូនអាវុធបែបនេះឡើយ។ Silicon Labs បដិសេធរាល់ការធានាច្បាស់លាស់ និងបង្កប់ន័យ ហើយនឹងមិនទទួលខុសត្រូវ ឬទទួលខុសត្រូវចំពោះការរងរបួស ឬការខូចខាតដែលទាក់ទងនឹងការប្រើប្រាស់ផលិតផល Silicon Labs នៅក្នុងកម្មវិធីដែលគ្មានការអនុញ្ញាតបែបនេះឡើយ។ ចំណាំ៖ ខ្លឹមសារនេះអាចមានពាក្យប្រមាថមើលងាយ ដែលឥឡូវលែងប្រើហើយ។ Silicon Labs កំពុងជំនួសពាក្យទាំងនេះជាមួយនឹងភាសារួមបញ្ចូលនៅពេលណាដែលអាចធ្វើទៅបាន។ សម្រាប់ព័ត៌មានបន្ថែម សូមចូលទៅកាន់ www.silabs.com/about-us/inclusive-lexicon-project
ព័ត៌មានពាណិជ្ជសញ្ញា
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® និង Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember®, Energy Micro, និមិត្តសញ្ញា Energy Micro និងបន្សំរបស់វា, “ឧបករណ៍បញ្ជាមីក្រូដែលងាយស្រួលប្រើបំផុតរបស់ពិភពលោក”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, Gecko OS, Gecko OS Studio, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY®, Telegesis, Telegesis Logo®, USBXpress®, Zentri, និមិត្តសញ្ញា Zentri និង Zentri DMS, Z-Wave® និងផ្សេងទៀតគឺជាពាណិជ្ជសញ្ញា ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ Silicon Labs។ ARM, CORTEX, Cortex-M3 និង THUMB គឺជាពាណិជ្ជសញ្ញា ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ ARM Holdings ។ Keil គឺជាពាណិជ្ជសញ្ញាចុះបញ្ជីរបស់ ARM Limited ។ Wi-Fi គឺជាពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ Wi-Fi Alliance។ ផលិតផល ឬម៉ាកយីហោផ្សេងទៀតទាំងអស់ដែលបានលើកឡើងនៅទីនេះ គឺជាពាណិជ្ជសញ្ញារបស់អ្នកកាន់រៀងៗខ្លួន។
Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
សហរដ្ឋអាមេរិក
គេហទំព័រ www.silabs.com
ឯកសារ/ធនធាន
![]() |
ការបង្ហាញការបង្ហាញពន្លឺសំណាញ់ប៊្លូធូស SILICON AN1299 [pdf] ការណែនាំអ្នកប្រើប្រាស់ AN1299, ការបង្ហាញពន្លឺសំណាញ់ប៊្លូធូស, ការបង្ហាញពន្លឺសំណាញ់, ការបង្ហាញពន្លឺ |