9.3. الكابل والإطار

إن أدنى طبقتين في الحزمة هما الأسهل في أخذهما كأمر مسلّم به على الكاميرا، لأن كل ما تفعلانه يحدث داخل الشريحة وتتولاهما الكاميرا دون تدخل أي شيفرة Python. ومع ذلك فهما تستحقان جولة مختصرة، لأنهما توضحان ما الذي تعنيه "الشبكة المحلية" وأين يبدأ الحد الفاصل مع بقية البنية التحتية.

9.3.1. الطبقة الفيزيائية

الطبقة السفلى هي الإرسال الإشاري الفعلي -- الأسلاك أو الألياف الضوئية أو موجات الراديو التي تحمل البتات بين جهازين. فإيثرنت عبر كابلات الأزواج الملتوية يرمّز كل بت كانتقال جهد بمعدل ثابت. أما Wi-Fi فيُضمّن البتات نفسها على حامل راديوي في نطاق 2.4 GHz أو 5 GHz. وكلاهما يُنتج دفقًا من الأرقام الثنائية بين قطعتين من العتاد؛ وكلاهما من نوع التفاصيل التي تتولاها رقاقة الكاميرا دون أن تضطر البرمجيات للتفكير فيها.

من منظور البرنامج النصي المكتوب بـ Python، تكون الطبقة الفيزيائية إما "الوصلة فعّالة" أو "الوصلة معطّلة". وتُبلّغ وحدة network عن تلك الحالة من خلال دالتها isconnected() على واجهة Wi-Fi، ومن خلال حالة الوصلة على واجهة إيثرنت السلكية. وفيما عدا ذلك، يبقى كل ما تفعله هذه الطبقة مخفيًا.

9.3.3. ما الذي تُتيحه الكاميرا

تمتلك الكاميرا عنوان MAC لكل واجهة شبكية تمتلكها -- عنوان Wi-Fi إن كانت الكاميرا تدعم اللاسلكي، وعنوان إيثرنت إن كانت اللوحة تحوي المنفذ المقابل. وتمنح وحدة network الوصول إليه من خلال network_interface.config("mac") على أي كائن واجهة يستخدمه التطبيق، عندما يحتاج إلى قراءة العنوان. وبعض التطبيقات تحتاج إلى ذلك، مثلًا لتسجيل الجهاز لدى نظام لإدارة الأساطيل. وفيما عدا ذلك، فهذا هو المفتاح الوحيد الذي تتركه طبقة الوصلة لـ Python.

أما كل ما عدا ذلك -- التأطير، وحركة MAC الفعلية على السلك أو في الأثير، والتفاوض بين الكاميرا ونقطة الوصول حول أي قناة ومعدل يُستخدمان -- فيحدث بالكامل داخل العتاد اللاسلكي أو عتاد إيثرنت. وتتناول الصفحة التالية الموضع الوحيد الذي يكون فيه للبرنامج النصي المكتوب بـ Python رأيٌ في طبقة الوصلة: إخبار الكاميرا بأي شبكة تنضم إليها.