csi --- مستشعرات الكاميرا

وحدة csi هي الواجهة الحديثة كائنية التوجه لمستشعر (مستشعرات) الكاميرا على OpenMV Cam. يُمثَّل كل مستشعر فيزيائي بمثيل CSI، لذا يمكن للوحات التصوير متعددة الأطياف التي تقرن مستشعر لون مع مستشعر حراري أو مستشعر أحداث أن تشغّل كل واحد منها بشكل مستقل عبر تمرير قيمة cid مختلفة إلى المُنشئ. أما الكاميرات أحادية المستشعر فتنشئ مثيلاً واحداً من CSI.

يمتلك كائن CSI تكوين المستشعر الكامل -- تنسيق البكسل، وحجم الإطار / النافذة، والتعريض / الكسب / موازنة اللون الأبيض، والانعكاس والقلب الأجهزة، ونمط اختبار شريط الألوان، وساعة معدل الإطارات، ومنطقة الاهتمام للتعريض التلقائي، وأوامر ioctl الخاصة بكل شريحة. تُلتقط الإطارات باستخدام CSI.snapshot()، التي تُرجع كائن image.Image مدعوماً بمخزن الإطارات.

تحل هذه الوحدة محل وحدة sensor القديمة (التي كانت تعرض الوظائف نفسها كدوال على مستوى الوحدة مرتبطة بمستشعر واحد مخفي). ينبغي للبرامج الجديدة أن تستخدم CSI.

مثال على الاستخدام:

import csi

# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000)  # skip frames

# Take pictures.
while(True):
    csi0.snapshot()

الاستخدام مع asyncio

حلقة CSI.snapshot() الحاجبة أعلاه لا تتعاون مع حلقة أحداث asyncio -- فبينما تنتظر snapshot الإطار التالي، تتجمد كل دالة تعاونية أخرى في البرنامج. للسماح لحلقة الالتقاط بالتعايش مع أعمال متزامنة أخرى (عميل UART، أو مراقب زر، أو مهمة شبكة)، غلّف CSI بمحوّل صغير يحوّل snapshot إلى دالة تعاونية ملائمة لـ await عبر استطلاع snapshot(blocking=False) والتنازل لحلقة الأحداث بين عمليات الفحص:

import asyncio
import csi


class AsyncCSI:
    def __init__(self, *args, **kwargs):
        self._csi = csi.CSI(*args, **kwargs)

    def __getattr__(self, name):
        return getattr(self._csi, name)

    async def snapshot(self):
        while True:
            img = self._csi.snapshot(blocking=False)
            if img is not None:
                return img
            await asyncio.sleep_ms(0)

يقوم __getattr__ بإعادة توجيه كل سمة أخرى (reset و pixformat و framesize ومقابض المستشعر) إلى CSI الأساسي بحيث يكون الغلاف بديلاً جاهزاً للاستبدال. كما يبدأ أول استدعاء غير حاجب التقاط DMA للكاميرا إن لم يكن قيد التشغيل بالفعل، فلا حاجة إلى أي تهيئة إضافية.

ثم تندمج حلقة الالتقاط في برنامج asyncio أكبر كمجرد دالة تعاونية أخرى:

async def capture_loop(cam):
    while True:
        img = await cam.snapshot()
        # process img here

async def main():
    cam = AsyncCSI()
    cam.reset()
    cam.pixformat(csi.RGB565)
    cam.framesize(csi.QVGA)

    asyncio.create_task(some_other_task())
    await capture_loop(cam)

asyncio.run(main())

لا يزال إعداد framebuffers مهماً في هذا الشكل -- إذ يجعل وضع المخزن المفرد snapshot(blocking=False) يُرجع None حتى يُلتقط الإطار التالي، بينما يخفف التخزين المزدوج أو الثلاثي من ذلك بحيث يجد الغلاف عادةً إطاراً مخزَّناً في انتظاره عند أول استطلاع. راجع تتويج AsyncCSI في درس asyncio التعليمي للحصول على الشرح الكامل.

الصنف CSI -- واجهة مستشعر الكاميرا

يُستخدَم الصنف CSI للتحكم في مستشعر الكاميرا.

class csi.CSI(cid: int = -1, delays: bool = True, fflush: bool = True, stream: bool | None = None)

إنشاء كائن للتواصل مع مستشعر الكاميرا. على اللوحات التي تحتوي على مستشعرات متعددة، يمكن اختيار كائن CSI معين عبر تمرير cid مثل csi.LEPTON لاختيار وحدة مستشعر FLIR Lepton. إذا كانت قيمة cid تساوي -1 فسيُختار المستشعر الأساسي (وهو عادةً وحدة كاميرا ملونة على اللوحات متعددة المستشعرات).

إذا كانت قيمة delays هي False فستُعطَّل جميع فترات تأخير زمن الاستقرار في برنامج تشغيل csi. افتراضياً، يُؤخّر برنامج تشغيل المستشعر بعد إعادة التعيين / تغيير الوضع لمنع إرجاع إطارات تالفة عبر CSI.snapshot. يتيح لك تعطيل فترات التأخير تجميع التحديثات وتطبيق تأخير واحد في النهاية قبل استدعاء CSI.snapshot.

إذا كانت قيمة fflush هي False فسيُعطَّل التفريغ التلقائي لمخزن الإطارات المذكور في CSI.framebuffers. وهذا يزيل أي حد زمني على الإطارات في طابور (fifo) مخزن الإطارات.

تحدد قيمة stream ما إذا كان هذا الكائن CSI هو مصدر التدفق المُرسَل إلى IDE. إذا كانت None (الافتراضي) فسيصبح الكائن CSI مصدر التدفق فقط إذا كان المستشعر الأساسي (غير المساعد). مرّر True لإجبار هذا الكائن CSI على أن يكون مصدر التدفق، أو أي قيمة خاطئة لترك مصدر التدفق الحالي دون تغيير.

الطرق

reset(hard: bool = True) None

تهيئة مستشعر الكاميرا. تُجري إعادة تعيين أجهزة عبر تبديل إشارة RESET على GPIO لوحدة الكاميرا إذا كانت قيمة hard هي True. ينبغي ضبط hard على false عند إعادة تعيين مستشعرات الكاميرا المساعدة التي تشترك في إشارة RESET على GPIO نفسها مع الوحدة الأساسية.

shutdown(enable: bool) None

يضع الكاميرا في وضع طاقة أقل من وضع السكون (لكن يجب إعادة تعيين الكاميرا عند إيقاظها).

sleep(enable: bool) None

يضع الكاميرا في وضع السكون إذا كانت قيمة enable هي True. وإلا، يوقظها مجدداً.

flush() None

ينسخ محتويات مخزن الإطارات الحالي إلى معاينة IDE. استدعِ هذا بعد آخر CSI.snapshot إذا انتهى البرنامج النصي حتى يعرض IDE الإطار الأخير.

snapshot(time: int = -1, frames: int = -1, blocking: bool = True, image: image.Image | None = None) image.Image | None

يلتقط صورة باستخدام الكاميرا ويُرجع كائن image.Image.

إذا مُرِّرت قيمة time و/أو frames فستحجب snapshot لذلك العدد من المللي ثانية في time و/أو عدد الإطارات الملتقطة من الكاميرا في frames. يمكن استخدام كلتا الوسيطتين في الوقت نفسه. بعد انقضاء time و/أو frames ستُرجع snapshot القيمة None.

يمكن أن تكون قيمة blocking هي False لتفعيل السلوك غير الحاجب الذي يجعل snapshot تُرجع None عندما لا تكون الصورة التالية من الكاميرا جاهزة بدلاً من الانتظار.

يمكن أن تكون قيمة image كائن image.Image آخر لتحديثه بالصورة الجديدة الملتقطة من الكاميرا بدلاً من إرجاع كائن image.Image جديد. تُستبدَل محتويات الصورة السابقة عبر نسخة عميقة.

إذا كانت CSI.auto_rotation مُفعَّلة فستُرجع هذه الطريقة كائن image.Image مُدوَّراً بالفعل.

width() int

يُرجع عرض دقة المستشعر.

height() int

يُرجع ارتفاع دقة المستشعر.

cid() int

يُرجع معرّف شريحة وحدة الكاميرا. قارِنه بأي من csi.OV2640 أو csi.OV5640 أو csi.OV7670 أو csi.OV7690 أو csi.OV7725 أو csi.OV9650 أو csi.MT9V022 أو csi.MT9V024 أو csi.MT9V032 أو csi.MT9V034 أو csi.MT9M114 أو csi.BOSON320 أو csi.BOSON640 أو csi.LEPTON أو csi.HM01B0 أو csi.HM0360 أو csi.GC2145 أو csi.GENX320ES أو csi.GENX320 أو csi.PAG7920 أو csi.PAG7936 أو csi.PAJ6100 أو csi.FROGEYE2020 أو csi.SOFTCSI.

readable() bool

يُرجع True إذا كانت هناك صورة جاهزة لإرجاعها عبر CSI.snapshot بحيث لا يحجب استدعاء snapshot.

pixformat(pixformat: int | None = None) int | None

يضبط تنسيق البكسل لوحدة الكاميرا على أحد القيم csi.GRAYSCALE أو csi.RGB565 أو csi.BAYER أو csi.YUV422 أو csi.JPEG (على OV2640/OV5640 فقط).

يُرجع تنسيق البكسل الحالي إذا استُدعي دون وسائط.

framesize(framesize: int | Tuple[int, int] | None = None) int | None

يضبط حجم الإطار لوحدة الكاميرا على أحد ثوابت الحجم (مثل csi.QVGA و csi.VGA و csi.HD وغيرها --- راجع قسم الثوابت).

بدلاً من ذلك، يمكنك تمرير حجم إطار مخصص كصف (w, h). عند استدعاء CSI.snapshot سيُقيَّم حجم الإطار المخصص وفق قواعد DMA. عموماً، يجب أن تكون أحجام الإطارات من مضاعفات 8 بكسلات و/أو 16 بايت.

يُرجع حجم الإطار الحالي إذا استُدعي دون وسائط.

framerate(rate: int | None = None) int | None

يضبط معدل الإطارات بالهرتز لوحدة الكاميرا.

يُرجع معدل الإطارات الحالي إذا استُدعي دون وسائط.

ملاحظة

تعمل CSI.framerate عبر إسقاط الإطارات المستقبَلة من وحدة الكاميرا للحفاظ على معدل الإطارات عند المعدل المحدد أو دونه. افتراضياً، ستعمل الكاميرا بأقصى معدل إطارات. إذا كانت مُطبَّقة لمستشعر الكاميرا المعين، فستقلل CSI.framerate أيضاً معدل إطارات مستشعر الكاميرا داخلياً لتوفير الطاقة وتحسين جودة الصورة عبر زيادة تعريض المستشعر. قد تتعارض CSI.framerate مع CSI.auto_exposure على بعض الكاميرات.

window(roi: Tuple[int, int] | Tuple[int, int, int, int] | None = None) Tuple[int, int, int, int] | None

يضبط دقة الكاميرا على منطقة فرعية من الدقة الحالية. roi هو صف (x, y, w, h). يمكنك أيضاً تمرير (w, h) وستُتمركز النافذة.

يُرجع صف (x, y, w, h) الحالي إذا استُدعي دون وسائط.

gainceiling(gainceiling: int) bool

يضبط سقف كسب صورة الكاميرا على أحد القيم 2 أو 4 أو 8 أو 16 أو 32 أو 64 أو 128.

يُرجع True عند النجاح و False عند الفشل.

brightness(brightness: int) bool

يضبط سطوع صورة الكاميرا.

يُرجع True عند النجاح و False عند الفشل.

contrast(contrast: int) bool

يضبط تباين صورة الكاميرا.

يُرجع True عند النجاح و False عند الفشل.

saturation(saturation: int) bool

يضبط تشبع صورة الكاميرا.

يُرجع True عند النجاح و False عند الفشل.

quality(quality: int) bool

يضبط جودة ضغط JPEG لصورة الكاميرا. من 0 إلى 100.

يُرجع True عند النجاح و False عند الفشل.

ملاحظة

للكاميرات OV2640/OV5640 فقط.

colorbar(enable: bool) bool

يفعّل وضع شريط الألوان (True) أو يعطّله (False). الوضع الافتراضي هو الإيقاف.

يُرجع True عند النجاح و False عند الفشل.

auto_gain(enable: bool, gain_db: float | None = None, gain_db_ceiling: float | None = None) None

تفعّل قيمة enable التحكم التلقائي في الكسب (True) أو تعطّله (False). تبدأ الكاميرا بتشغيل التحكم التلقائي في الكسب.

إذا كانت قيمة enable هي False فيمكنك ضبط كسب ثابت بالديسيبل عبر gain_db.

إذا كانت قيمة enable هي True فيمكنك ضبط أقصى سقف كسب بالديسيبل عبر gain_db_ceiling لخوارزمية التحكم التلقائي في الكسب.

ملاحظة

تحتاج إلى إيقاف موازنة اللون الأبيض أيضاً إذا أردت تتبع الألوان.

gain_db() float

يُرجع قيمة كسب الكاميرا الحالية بالديسيبل.

auto_exposure(enable: bool, exposure_us: int = -1) None

تفعّل قيمة enable التحكم التلقائي في التعريض (True) أو تعطّله (False). تبدأ الكاميرا بتشغيل التحكم التلقائي في التعريض.

إذا كانت قيمة enable هي False فيمكنك ضبط زمن تعريض ثابت بالميكروثانية عبر exposure_us.

ملاحظة

تتسم خوارزميات التعريض التلقائي للكاميرا بالتحفظ في مقدار تعديلها لقيمة التعريض، وتتجنب عموماً تغيير قيمة التعريض كثيراً. بدلاً من ذلك، تغيّر قيمة الكسب كثيراً للتعامل مع تغير الإضاءة.

exposure_us() int

يُرجع قيمة تعريض الكاميرا الحالية بالميكروثانية.

auto_whitebal(enable: bool, rgb_gain_db: Tuple[float, float, float] | None = None) None

تفعّل قيمة enable موازنة اللون الأبيض التلقائية (True) أو تعطّلها (False). تبدأ الكاميرا بتشغيل موازنة اللون الأبيض التلقائية.

إذا كانت قيمة enable هي False فيمكنك ضبط كسب ثابت بالديسيبل للقنوات الحمراء والخضراء والزرقاء على التوالي عبر rgb_gain_db.

ملاحظة

تحتاج إلى إيقاف التحكم في الكسب أيضاً إذا أردت تتبع الألوان.

rgb_gain_db() Tuple[float, float, float]

يُرجع صفاً (r, g, b) لقيم كسب الكاميرا الحالية للأحمر والأخضر والأزرق بالديسيبل.

auto_blc(enable: bool, regs: List[int] | None = None) None

يضبط معايرة مستوى السواد التلقائية (BLC) على الكاميرا.

تمرّر قيمة enable إما True أو False لتشغيل BLC أو إيقافها. عادةً ما تريد دائماً إبقاء هذا قيد التشغيل.

إذا كانت قيمة regs معطّلة فيمكنك ضبط قيم سجلات BLC يدوياً من استدعاء سابق لـ CSI.blc_regs.

blc_regs() List[int]

يُرجع سجلات BLC للمستشعر كقائمة من الأعداد الصحيحة. للاستخدام مع CSI.auto_blc.

hmirror(enable: bool | None = None) bool | None

يفعّل وضع الانعكاس الأفقي (True) أو يعطّله (False). الوضع الافتراضي هو الإيقاف.

يُرجع الإعداد الحالي إذا استُدعي دون وسائط.

vflip(enable: bool | None = None) bool | None

يفعّل وضع القلب الرأسي (True) أو يعطّله (False). الوضع الافتراضي هو الإيقاف.

يُرجع الإعداد الحالي إذا استُدعي دون وسائط.

transpose(enable: bool | None = None) bool | None

يفعّل وضع التبديل (التبديل بين المحاور) (True) أو يعطّله (False). الوضع الافتراضي هو الإيقاف.

  • vflip=False, hmirror=False, transpose=False -> دوران بمقدار 0 درجة

  • vflip=True, hmirror=False, transpose=True -> دوران بمقدار 90 درجة

  • vflip=True, hmirror=True, transpose=False -> دوران بمقدار 180 درجة

  • vflip=False, hmirror=True, transpose=True -> دوران بمقدار 270 درجة

يُرجع الإعداد الحالي إذا استُدعي دون وسائط.

auto_rotation(enable: bool | None = None) bool | None

يفعّل وضع الدوران التلقائي (True) أو يعطّله (False). الوضع الافتراضي هو الإيقاف.

يُرجع الإعداد الحالي إذا استُدعي دون وسائط.

ملاحظة

تعمل هذه الطريقة فقط عندما يكون لدى OpenMV Cam وحدة imu مُركَّبة، وتُفعَّل تلقائياً.

framebuffers(count: int | None = None) int | None

يضبط عدد مخازن الإطارات المستخدمة لاستقبال بيانات الصورة. افتراضياً، ستحاول OpenMV Cam تخصيص أقصى عدد من مخازن الإطارات يمكنها. تحدث إعادة التخصيص كلما استُدعيت CSI.pixformat أو CSI.framesize أو CSI.window.

تختار قيمة count التي تساوي 1 (مخزن مفرد) أو 2 (مخزن مزدوج) أو 3 (مخزن ثلاثي) وضع الالتقاط المقابل. مرّر 4 أو أكثر لوضع برنامج التشغيل في وضع طابور الفيديو حيث تُصفّ count من المخازن --- وهو مفيد لتسجيل الفيديو على بطاقة SD. عند إسقاط إطار، تُمسح جميع مخازن الإطارات باستثناء المخزن النشط بحيث تُرجع CSI.snapshot دائماً إطاراً حديثاً.

يُرجع العدد الحالي إذا استُدعي دون وسائط.

special_effect(effect: int) bool

يضبط التأثير الرقمي الخاص (إما csi.NORMAL أو csi.NEGATIVE).

يُرجع True عند النجاح و False عند الفشل.

lens_correction(enable: bool, radi: int, coef: int) bool

enable القيمة True للتفعيل و False للتعطيل. radi نصف القطر الصحيح للبكسلات المراد تصحيحها. coef قوة التصحيح.

يُرجع True عند النجاح و False عند الفشل.

vsync_callback(cb: Callable[[int], None] | None = None) Callable[[int], None] | None

يسجّل دالة رد النداء cb لتُنفَّذ (في سياق المقاطعة) كلما أنتجت وحدة الكاميرا إطاراً جديداً (لكن قبل استقبال الإطار).

تأخذ cb وسيطة واحدة، وتُمرَّر إليها الحالة الحالية لدبوس vsync بعد تغيّرها.

يُرجع دالة رد النداء المسجّلة إذا استُدعي دون وسائط. مرّر أي قيمة غير قابلة للاستدعاء لمسح دالة رد النداء.

frame_callback(cb: Callable[[], None] | None = None) Callable[[], None] | None

يسجّل دالة رد النداء cb لتُنفَّذ (في سياق المقاطعة) كلما أنتجت وحدة الكاميرا إطاراً جديداً وأصبح الإطار جاهزاً للقراءة عبر CSI.snapshot.

لا تأخذ cb أي وسائط. استخدم هذا لجدولة قراءة إطار لاحقاً عبر micropython.schedule().

يُرجع دالة رد النداء المسجّلة إذا استُدعي دون وسائط. مرّر أي قيمة غير قابلة للاستدعاء لمسح دالة رد النداء.

ioctl(request: int, *args) Any

ينفّذ طلباً خاصاً بالمستشعر. request هو أحد ثوابت IOCTL_*؛ تعتمد الوسائط الموضعية المتبقية والقيمة المُرجَعة على الطلب. الطلبات المدعومة مُجمَّعة حسب عائلة المستشعر أدناه.

عام (أي مستشعر):

ioctl(IOCTL_SET_READOUT_WINDOW, (x, y, w, h))

ioctl(IOCTL_SET_READOUT_WINDOW, (w, h))

يضبط نافذة قراءة المستشعر. تزيد النافذة الأصغر من معدل الإطارات على حساب مجال الرؤية.

ioctl(IOCTL_GET_READOUT_WINDOW)

يُرجع نافذة القراءة الحالية كصف (x, y, w, h).

ioctl(IOCTL_SET_TRIGGERED_MODE, enable)

يفعّل (True) أو يعطّل (False) الوضع المُشغَّل بالمقاطعة (triggered mode) على MT9V034.

ioctl(IOCTL_GET_TRIGGERED_MODE)

يُرجع حالة الوضع المُشغَّل بالمقاطعة الحالية كقيمة bool.

ioctl(IOCTL_SET_FOV_WIDE, enable)

عندما تكون True، يوجّه framesize() للتحسين لصالح مجال الرؤية بدلاً من معدل الإطارات.

ioctl(IOCTL_GET_FOV_WIDE)

يُرجع حالة التحسين لمجال الرؤية الحالية كقيمة bool.

ioctl(IOCTL_SET_NIGHT_MODE, enable)

يفعّل (True) أو يعطّل (False) "الوضع الليلي" للمستشعر للإضاءة المنخفضة. على OV7725 و OV5640 فقط.

ioctl(IOCTL_GET_NIGHT_MODE)

يُرجع حالة الوضع الليلي الحالية كقيمة bool.

ioctl(IOCTL_GET_RGB_STATS)

يُرجع صفاً رباعياً من إحصائيات قنوات RGB الخام (r, gb, gr, b) المقروءة من المستشعر (تُستخدم عادةً لضبط موازنة اللون الأبيض).

OV5640 FPC -- التركيز التلقائي:

ioctl(IOCTL_TRIGGER_AUTO_FOCUS)

يبدأ مسحاً للتركيز التلقائي على وحدة OV5640 FPC.

ioctl(IOCTL_PAUSE_AUTO_FOCUS)

يوقف مؤقتاً مسح تركيز تلقائي قيد التقدم.

ioctl(IOCTL_RESET_AUTO_FOCUS)

يعيد تعيين موضع التركيز التلقائي إلى الافتراضي.

ioctl(IOCTL_WAIT_ON_AUTO_FOCUS)

ioctl(IOCTL_WAIT_ON_AUTO_FOCUS, timeout_ms)

يحجب حتى ينتهي مسح التركيز التلقائي الحالي. القيمة الافتراضية لـ timeout_ms هي 5000 إذا حُذفت.

FLIR Lepton:

ioctl(IOCTL_LEPTON_GET_WIDTH)

يُرجع عرض صورة Lepton بالبكسل.

ioctl(IOCTL_LEPTON_GET_HEIGHT)

يُرجع ارتفاع صورة Lepton بالبكسل.

ioctl(IOCTL_LEPTON_GET_RADIOMETRY)

يُرجع نوع Lepton (إشعاعي القياس أو لا) كعدد صحيح.

ioctl(IOCTL_LEPTON_GET_REFRESH)

يُرجع معدل تحديث Lepton بالهرتز.

ioctl(IOCTL_LEPTON_GET_RESOLUTION)

يُرجع دقة محول ADC في Lepton بالبتات.

ioctl(IOCTL_LEPTON_RUN_COMMAND, cmd)

ينفّذ أمراً من FLIR Lepton SDK. cmd هو معرّف الأمر ذو 16 بت المُعرَّف بواسطة SDK.

ioctl(IOCTL_LEPTON_SET_ATTRIBUTE, attr_id, payload)

يكتب سمة من Lepton SDK. attr_id هو معرّف السمة ذو 16 بت؛ و payload هو bytes/bytearray يجب أن يكون طوله من مضاعفات 16 بت.

ioctl(IOCTL_LEPTON_GET_ATTRIBUTE, attr_id, words)

يقرأ سمة من Lepton SDK. attr_id هو معرّف السمة ذو 16 بت؛ و words هو عدد الكلمات ذات 16 بت المراد قراءتها. يُرجع bytearray.

ioctl(IOCTL_LEPTON_GET_FPA_TEMP)

يُرجع درجة حرارة مصفوفة المستوى البؤري في Lepton بالدرجات المئوية.

ioctl(IOCTL_LEPTON_GET_AUX_TEMP)

يُرجع درجة الحرارة المساعدة في Lepton بالدرجات المئوية.

ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled)

ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled, high_temp_enabled)

يبدّل Lepton بين خرج AGC وخرج درجة الحرارة المباشر. تُفعّل measurement_enabled=True خرج درجة الحرارة المباشر. تختار راية high_temp_enabled الاختيارية نطاق درجة الحرارة المرتفعة.

ioctl(IOCTL_LEPTON_GET_MODE)

يُرجع صفاً ثنائياً (measurement_enabled, high_temp_enabled).

ioctl(IOCTL_LEPTON_SET_RANGE, (min_celsius, max_celsius))

يضبط نطاق درجة الحرارة المُسقَط على 0..255 عند تفعيل وضع القياس.

ioctl(IOCTL_LEPTON_GET_RANGE)

يُرجع نطاق (min_celsius, max_celsius) الحالي.

Himax HM01B0 -- كشف الحركة:

ioctl(IOCTL_HIMAX_MD_ENABLE, enable)

يفعّل (True) أو يعطّل (False) كتلة كشف الحركة على المستشعر في HM01B0.

ioctl(IOCTL_HIMAX_MD_WINDOW, (x, y, w, h))

ioctl(IOCTL_HIMAX_MD_WINDOW, (w, h))

يضبط نافذة كشف الحركة على HM01B0.

ioctl(IOCTL_HIMAX_MD_THRESHOLD, threshold)

يضبط عتبة كشف الحركة (0 -- 255).

ioctl(IOCTL_HIMAX_MD_CLEAR)

يمسح مزلاج مقاطعة كشف الحركة.

ioctl(IOCTL_HIMAX_OSC_ENABLE, enable)

يفعّل (True) أو يعطّل (False) المذبذب الداخلي في HM01B0.

Prophesee GENX320 -- مستشعر الأحداث:

ioctl(IOCTL_GENX320_SET_BIASES, preset)

يطبّق إعداداً مسبقاً للانحياز. preset هو أحد ثوابت GENX320_BIASES_*.

ioctl(IOCTL_GENX320_SET_BIAS, bias, value)

يضبط انحيازاً واحداً. bias هو أحد ثوابت GENX320_BIAS_*؛ و value هو الإعداد الصحيح.

ioctl(IOCTL_GENX320_SET_AFK, enable)

ioctl(IOCTL_GENX320_SET_AFK, enable, freq_low_hz, freq_high_hz)

يضبط مرشح مكافحة الوميض. enable هي قيمة منطقية؛ وتضبط وسيطات التردد الاختيارية نطاق تمرير المرشح.

ioctl(IOCTL_GENX320_SET_STC, mode)

ioctl(IOCTL_GENX320_SET_STC, mode, arg1[, arg2])

يضبط مرشح التباين المكاني-الزماني. mode هو أحد ثوابت GENX320_STC_*؛ وما يصل إلى وسيطتين إضافيتين تعتمدان على الوضع.

ioctl(IOCTL_GENX320_SET_MODE, mode)

ioctl(IOCTL_GENX320_SET_MODE, mode, evt_res)

يبدّل المستشعر بين وضعي الإطار والأحداث. mode هو أحد ثوابت GENX320_MODE_*. لوضع الأحداث، evt_res هو طول محور الصف لمخزن الأحداث المُمرَّر إلى IOCTL_GENX320_READ_EVENTS.

ioctl(IOCTL_GENX320_READ_EVENTS, buf)

يقرأ الأحداث إلى buf، وهو ndarray من نوع uint16 بالشكل (EVT_res, 6) حيث EVT_res هو قوة للعدد اثنين بين 1024 و 65536. الأعمدة هي:

  • [0] -- نوع الحدث (PIX_OFF_EVENT / PIX_ON_EVENT / مُشغِّل).

  • [1] -- ثوانٍ.

  • [2] -- مللي ثانية.

  • [3] -- ميكروثانية.

  • [4] -- إحداثي x.

  • [5] -- إحداثي y.

يُرجع عدد الأحداث المكتوبة.

ioctl(IOCTL_GENX320_READ_EVENTS_RAW)

يُرجع كائن image.Image يحتوي على إطار الأحداث الخام من GENX320.

ioctl(IOCTL_GENX320_CALIBRATE, iterations, sigma)

يوقف البكسلات التي يزيد ضجيجها عن sigma من الانحرافات المعيارية عن التوزيع الطبيعي. iterations هو العدد الصحيح لتمريرات المعايرة. يُرجع عدد البكسلات المعطّلة.

color_palette(palette: int | None = None) int | None

يضبط لوحة الألوان المستخدمة لأشياء مثل تحويل FLIR Lepton من تدرج الرمادي إلى RGB565 أو تصوّر أحداث GENX320. أحد القيم image.PALETTE_RAINBOW و image.PALETTE_IRONBOW، و(عند الدعم) image.PALETTE_DEPTH أو image.PALETTE_EVT_DARK أو image.PALETTE_EVT_LIGHT.

يُرجع الإعداد الحالي إذا استُدعي دون وسائط.

__write_reg(address: int, value: int) None

يكتب القيمة value إلى سجل الكاميرا عند العنوان address.

ملاحظة

راجع ورقة بيانات الكاميرا للحصول على معلومات السجل.

__read_reg(address: int) int

يقرأ سجل الكاميرا عند العنوان address.

ملاحظة

راجع ورقة بيانات الكاميرا للحصول على معلومات السجل.

الدوال

csi.devices() List[int]

يُرجع قائمة بمعرّفات شرائح المستشعرات المكتشفة.

الثوابت

csi.BINARY: int

تنسيق بكسل BINARY (خريطة بت). كل بكسل بحجم 1 بت. مفيد لتخزين الأقنعة؛ ويمكن استخدامه مع image.Image().

csi.GRAYSCALE: int

تنسيق بكسل GRAYSCALE (Y من YUV422). كل بكسل بحجم 8 بتات.

csi.RGB565: int

تنسيق بكسل RGB565. كل بكسل بحجم 16 بت (5 بتات أحمر، 6 بتات أخضر، 5 بتات أزرق).

csi.BAYER: int

تنسيق بكسل صورة RAW BAYER.

csi.YUV422: int

تنسيق بكسل YUV422. يُخزَّن كل بكسل كقيمة Y بتدرج رمادي بحجم 8 بت متبوعة بقيم لون U/V متناوبة بحجم 8 بت مشتركة بين قيمتي Y (Y1, U, Y2, V, ...). تعمل بعض طرق معالجة الصور فقط مع YUV422.

csi.JPEG: int

وضع JPEG. تُخرج وحدة الكاميرا صور JPEG مضغوطة. استخدم CSI.quality للتحكم في جودة JPEG. يعمل فقط للكاميرات OV2640/OV5640.

csi.OV2640: int

تُرجع CSI.cid هذه القيمة للكاميرا OV2640.

csi.OV5640: int

تُرجع CSI.cid هذه القيمة للكاميرا OV5640.

csi.OV7670: int

تُرجع CSI.cid هذه القيمة للكاميرا OV7670.

csi.OV7690: int

تُرجع CSI.cid هذه القيمة للكاميرا OV7690.

csi.OV7725: int

تُرجع CSI.cid هذه القيمة للكاميرا OV7725.

csi.OV9650: int

تُرجع CSI.cid هذه القيمة للكاميرا OV9650.

csi.MT9V022: int

تُرجع CSI.cid هذه القيمة للكاميرا MT9V022.

csi.MT9V024: int

تُرجع CSI.cid هذه القيمة للكاميرا MT9V024.

csi.MT9V032: int

تُرجع CSI.cid هذه القيمة للكاميرا MT9V032.

csi.MT9V034: int

تُرجع CSI.cid هذه القيمة للكاميرا MT9V034.

csi.MT9M114: int

تُرجع CSI.cid هذه القيمة للكاميرا MT9M114.

csi.BOSON320: int

تُرجع CSI.cid هذه القيمة للكاميرا BOSON 320x256.

csi.BOSON640: int

تُرجع CSI.cid هذه القيمة للكاميرا BOSON 640x512.

csi.LEPTON: int

تُرجع CSI.cid هذه القيمة للكاميرات LEPTON1/2/3.

csi.HM01B0: int

تُرجع CSI.cid هذه القيمة للكاميرا HM01B0.

csi.HM0360: int

تُرجع CSI.cid هذه القيمة للكاميرا HM0360.

csi.GC2145: int

تُرجع CSI.cid هذه القيمة للكاميرا GC2145.

csi.GENX320ES: int

تُرجع CSI.cid هذه القيمة للكاميرا GENX320 (عينة هندسية).

csi.GENX320: int

تُرجع CSI.cid هذه القيمة للكاميرا GENX320.

csi.PAG7920: int

تُرجع CSI.cid هذه القيمة للكاميرا PAG7920.

csi.PAG7936: int

تُرجع CSI.cid هذه القيمة للكاميرا PAG7936.

csi.PAJ6100: int

تُرجع CSI.cid هذه القيمة للكاميرا PAJ6100.

csi.FROGEYE2020: int

تُرجع CSI.cid هذه القيمة للكاميرا FROGEYE2020.

csi.SOFTCSI: int

تُرجع CSI.cid هذه القيمة لكاميرا CSI البرمجية.

csi.NORMAL: int

الوضع العادي لـ CSI.special_effect.

csi.NEGATIVE: int

الوضع السالب لـ CSI.special_effect.

csi.QCIF: int

دقة 176x144 لمستشعر الكاميرا.

csi.CIF: int

دقة 352x288 لمستشعر الكاميرا.

csi.QSIF: int

دقة 176x120 لمستشعر الكاميرا.

csi.SIF: int

دقة 352x240 لمستشعر الكاميرا.

csi.QQQVGA: int

دقة 80x60 لمستشعر الكاميرا.

csi.QQVGA: int

دقة 160x120 لمستشعر الكاميرا.

csi.QVGA: int

دقة 320x240 لمستشعر الكاميرا.

csi.VGA: int

دقة 640x480 لمستشعر الكاميرا.

csi.HQVGA: int

دقة 240x160 لمستشعر الكاميرا.

csi.HVGA: int

دقة 480x320 لمستشعر الكاميرا.

csi.WVGA: int

دقة 720x480 لمستشعر الكاميرا MT9V034.

csi.WVGA2: int

دقة 752x480 لمستشعر الكاميرا MT9V034.

csi.SVGA: int

دقة 800x600 لمستشعر الكاميرا.

csi.XGA: int

دقة 1024x768 لمستشعر الكاميرا.

csi.WXGA: int

دقة 1280x768 لمستشعر الكاميرا MT9M114.

csi.SXGA: int

دقة 1280x1024 لمستشعر الكاميرا. يعمل فقط للكاميرات OV2640/OV5640.

csi.SXGAM: int

دقة 1280x960 لمستشعر الكاميرا MT9M114.

csi.UXGA: int

دقة 1600x1200 لمستشعر الكاميرا. يعمل فقط للكاميرات OV2640/OV5640.

csi.HD: int

دقة 1280x720 لمستشعر الكاميرا.

csi.FHD: int

دقة 1920x1080 لمستشعر الكاميرا. يعمل فقط للكاميرا OV5640.

csi.QHD: int

دقة 2560x1440 لمستشعر الكاميرا. يعمل فقط للكاميرا OV5640.

csi.QXGA: int

دقة 2048x1536 لمستشعر الكاميرا. يعمل فقط للكاميرا OV5640.

csi.WQXGA: int

دقة 2560x1600 لمستشعر الكاميرا. يعمل فقط للكاميرا OV5640.

csi.WQXGA2: int

دقة 2592x1944 لمستشعر الكاميرا. يعمل فقط للكاميرا OV5640.

csi.IOCTL_SET_READOUT_WINDOW: int

يضبط نافذة القراءة. راجع CSI.ioctl.

csi.IOCTL_GET_READOUT_WINDOW: int

يجلب نافذة القراءة. راجع CSI.ioctl.

csi.IOCTL_SET_TRIGGERED_MODE: int

يضبط الوضع المُشغَّل بالمقاطعة لـ MT9V034. راجع CSI.ioctl.

csi.IOCTL_GET_TRIGGERED_MODE: int

يجلب حالة الوضع المُشغَّل بالمقاطعة لـ MT9V034. راجع CSI.ioctl.

csi.IOCTL_SET_FOV_WIDE: int

يفعّل CSI.framesize للتحسين لصالح مجال الرؤية بدلاً من معدل الإطارات. راجع CSI.ioctl.

csi.IOCTL_GET_FOV_WIDE: int

يُرجع ما إذا كانت CSI.framesize تُحسّن لصالح مجال الرؤية بدلاً من معدل الإطارات. راجع CSI.ioctl.

csi.IOCTL_TRIGGER_AUTO_FOCUS: int

يشغّل التركيز التلقائي على وحدة الكاميرا OV5640 FPC. راجع CSI.ioctl.

csi.IOCTL_PAUSE_AUTO_FOCUS: int

يوقف مؤقتاً التركيز التلقائي (أثناء تشغيله) لوحدة الكاميرا OV5640 FPC. راجع CSI.ioctl.

csi.IOCTL_RESET_AUTO_FOCUS: int

يعيد تعيين التركيز التلقائي إلى الافتراضي لوحدة الكاميرا OV5640 FPC. راجع CSI.ioctl.

csi.IOCTL_WAIT_ON_AUTO_FOCUS: int

ينتظر انتهاء التركيز التلقائي على وحدة الكاميرا OV5640 FPC. راجع CSI.ioctl.

csi.IOCTL_SET_NIGHT_MODE: int

يشغّل الوضع الليلي أو يوقفه. يقلل معدل الإطارات لزيادة التعريض ديناميكياً. راجع CSI.ioctl.

csi.IOCTL_GET_NIGHT_MODE: int

يُرجع ما إذا كان الوضع الليلي مُفعَّلاً. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_WIDTH: int

يُرجع عرض دقة صورة FLIR Lepton بالبكسل. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_HEIGHT: int

يُرجع ارتفاع دقة صورة FLIR Lepton بالبكسل. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_RADIOMETRY: int

يُرجع نوع FLIR Lepton (إشعاعي القياس أو لا). راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_REFRESH: int

يُرجع معدل تحديث FLIR Lepton بالهرتز. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_RESOLUTION: int

يُرجع دقة محول ADC في FLIR Lepton بالبتات. راجع CSI.ioctl.

csi.IOCTL_LEPTON_RUN_COMMAND: int

ينفّذ أمراً ذا 16 بت من FLIR Lepton SDK. راجع CSI.ioctl.

csi.IOCTL_LEPTON_SET_ATTRIBUTE: int

يضبط سمة لـ FLIR Lepton من FLIR Lepton SDK. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_ATTRIBUTE: int

يجلب سمة لـ FLIR Lepton من FLIR Lepton SDK. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_FPA_TEMP: int

يجلب درجة حرارة مصفوفة المستوى البؤري (FPA) في FLIR Lepton بالمئوية. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_AUX_TEMP: int

يجلب درجة الحرارة المساعدة (AUX) في FLIR Lepton بالمئوية. راجع CSI.ioctl.

csi.IOCTL_LEPTON_SET_MODE: int

يضبط برنامج تشغيل FLIR Lepton على وضع تكون فيه كل بكسل قيمة درجة حرارة. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_MODE: int

يُرجع ما إذا كان وضع القياس مُفعَّلاً لمستشعر FLIR Lepton. راجع CSI.ioctl.

csi.IOCTL_LEPTON_SET_RANGE: int

يضبط نطاق درجة الحرارة المُسقَط على قيم البكسل في وضع القياس. راجع CSI.ioctl.

csi.IOCTL_LEPTON_GET_RANGE: int

يُرجع نطاق درجة الحرارة المستخدم لوضع القياس. راجع CSI.ioctl.

csi.IOCTL_HIMAX_MD_ENABLE: int

يتحكم في مقاطعة كشف الحركة على HM01B0. راجع CSI.ioctl.

csi.IOCTL_HIMAX_MD_WINDOW: int

يضبط نافذة كشف الحركة على HM01B0. راجع CSI.ioctl.

csi.IOCTL_HIMAX_MD_THRESHOLD: int

يضبط عتبة كشف الحركة على HM01B0. راجع CSI.ioctl.

csi.IOCTL_HIMAX_MD_CLEAR: int

يمسح مقاطعة كشف الحركة على HM01B0. راجع CSI.ioctl.

csi.IOCTL_HIMAX_OSC_ENABLE: int

يتحكم في المذبذب الداخلي على HM01B0. راجع CSI.ioctl.

csi.IOCTL_GET_RGB_STATS: int

يُرجع إحصائيات RGB من مستشعر الكاميرا. راجع CSI.ioctl.

csi.IOCTL_GENX320_SET_BIASES: int

يضبط انحيازات مستشعر GENX320 على أحد إعدادات GENX320_BIASES_* المسبقة. راجع CSI.ioctl. بعد CSI.reset يطبّق برنامج التشغيل csi.GENX320_BIASES_LOW_NOISE، وليس csi.GENX320_BIASES_DEFAULT --- استخدم هذا الأمر ioctl للتبديل إلى إعداد مسبق مختلف عندما يتطلب التطبيق حساسية أو عرض نطاق أكبر.

csi.GENX320_BIASES_DEFAULT: int

إعدادات ورقة بيانات GenX320 الافتراضية --- حساسية وضجيج وعرض نطاق متوازن للمشاهد العامة.

csi.GENX320_BIASES_LOW_LIGHT: int

مُضبَط لظروف الإضاءة المنخفضة --- خُفِّفت كلتا عتبتي التباين لحساسية أعلى، وخُفِّض FO، وعُطِّل HPF بحيث لا تزال تغيّرات السطوع البطيئة تُسجَّل.

csi.GENX320_BIASES_ACTIVE_MARKER: int

مُضبَط لتتبع مصابيح LED الوامضة عالية التباين (علامات نشطة) --- رُفِعت عتبات التباين بحيث تشغّل الانتقالات الحادة فقط، ورُفِع FO و HPF عالياً لتعظيم عرض النطاق ورفض الانجراف المحيطي البطيء، و REFR=0 بحيث تُلتقط كل حافة وميض.

csi.GENX320_BIASES_LOW_NOISE: int

الإعداد الافتراضي لبرنامج التشغيل --- حساسية أقل من DEFAULT (عتبات تباين مرتفعة) و FO أقل لنشاط أقل في ضجيج الخلفية. الأفضل للمشاهد الثابتة أو البطيئة حيث تطغى الأحداث الزائفة.

csi.GENX320_BIASES_HIGH_SPEED: int

مُضبَط لمشاهد الحركة السريعة --- FO أعلى لعرض نطاق أوسع للبكسل، و HPF أعلى لرفض التغيّرات البطيئة، و REFR أعلى لزمن خمول أطول بعد كل حدث بحيث لا تتشبع القراءة.

csi.IOCTL_GENX320_SET_BIAS: int

يضبط انحياز مستشعر GENX320 واحداً على قيمة DAC. مرّر ثابت GENX320_BIAS_* (csi.GENX320_BIAS_DIFF_OFF أو csi.GENX320_BIAS_DIFF_ON أو csi.GENX320_BIAS_FO أو csi.GENX320_BIAS_HPF أو csi.GENX320_BIAS_REFR) وقيمة DAC صحيحة. كل انحياز مستقل --- استدعِ هذا الأمر ioctl مراراً لتعديل الانحيازات التي تحتاجها فقط بعد تطبيق إعداد مسبق. راجع CSI.ioctl.

csi.GENX320_BIAS_DIFF_OFF: int

عتبة تباين المقارن السالبة --- تتحكم في مقدار ما يجب أن يعتم به البكسل قبل إطلاق csi.PIX_OFF_EVENT. القيمة الأقل = حساسية أكبر (أحداث أكثر).

csi.GENX320_BIAS_DIFF_ON: int

عتبة تباين المقارن الموجبة --- تتحكم في مقدار ما يجب أن يسطع به البكسل قبل إطلاق csi.PIX_ON_EVENT. القيمة الأقل = حساسية أكبر (أحداث أكثر).

csi.GENX320_BIAS_FO: int

تردد القطع منخفض التمرير للبكسل --- يوازن بين عرض نطاق البكسل (السرعة/زمن الاستجابة) ونشاط ضجيج الخلفية. القيمة الأعلى = استجابة بكسل أسرع، وضجيج أكثر.

csi.GENX320_BIAS_HPF: int

تردد القطع عالي التمرير للبكسل --- يرفض تغيّرات السطوع البطيئة. القيمة الأعلى = تصفية تغيّرات أبطأ (تُسجَّل الانتقالات السريعة فقط).

csi.GENX320_BIAS_REFR: int

فترة الخمول للبكسل --- زمن الخمول بعد أن يصدر البكسل حدثاً والذي لا يمكنه خلاله الإطلاق مجدداً. القيمة الأعلى = زمن خمول أطول، وأحداث أقل من بكسل مزدحم.

csi.IOCTL_GENX320_SET_AFK: int

يضبط مرشح مكافحة الوميض (AFK) في GENX320، الذي يرفض الأحداث من البكسلات التي تتبدّل عند نطاق تردد دوري (الإضاءة الفلورية، الشاشات المُشغَّلة بمصابيح LED، إلخ). مرّر enable (1 للتفعيل، 0 للتعطيل)، وعند التفعيل، حواف النطاق بالهرتز: (enable, freq_low_hz, freq_high_hz). راجع CSI.ioctl.

csi.IOCTL_GENX320_SET_STC: int

يضبط وضع مرشح التباين المكاني-الزماني (STC) في GENX320. مرّر ثابت GENX320_STC_* (csi.GENX320_STC_DISABLE أو csi.GENX320_STC_ONLY أو csi.GENX320_STC_TRAIL_ONLY أو csi.GENX320_STC_TRAIL) متبوعاً بالعتبة (العتبات) التي يتطلبها الوضع (بالمللي ثانية). راجع CSI.ioctl.

csi.GENX320_STC_DISABLE: int

يعطّل مرشح STC/التتبع في GENX320 --- يمر كل حدث.

csi.GENX320_STC_ONLY: int

يُبقي الحدث الثاني من سلسلة؛ ويُسقط الحدث الأول وأي أحداث لاحقة. يأخذ معاملاً واحداً، stc_threshold بالمللي ثانية --- تُعتبر الأحداث الواقعة ضمن تلك النافذة من حدث سابق على البكسل نفسه جزءاً من السلسلة نفسها.

csi.GENX320_STC_TRAIL_ONLY: int

يُبقي الحدث الأول من سلسلة؛ ويُسقط الأحداث اللاحقة على البكسل نفسه حتى ينقضي trail_threshold. يأخذ معاملاً واحداً، trail_threshold بالمللي ثانية.

csi.GENX320_STC_TRAIL: int

يُبقي الحدث الأول من سلسلة إضافة إلى الحواف اللاحقة --- يجمع بين csi.GENX320_STC_ONLY و csi.GENX320_STC_TRAIL_ONLY. يأخذ معاملين، stc_threshold و trail_threshold (كلاهما بالمللي ثانية)؛ يتطلب المستشعر بقاء الاثنين ضمن نسبة 13:1 تقريباً.

csi.IOCTL_GENX320_SET_MODE: int

يضبط وضع تشغيل GENX320. مرّر csi.GENX320_MODE_HISTO للمدرج التكراري للأحداث على الشريحة (تتصرف الكاميرا ككاميرا تدرج رمادي عادية عند معدل الإطارات المُكوَّن) أو csi.GENX320_MODE_EVENT متبوعاً بطول محور الصف لـ ndarray الأحداث (قوة للعدد اثنين بين 1024 و 65536) لتدفق الأحداث الخام. راجع CSI.ioctl.

csi.GENX320_MODE_HISTO: int

وضع المدرج التكراري --- تُجمَّع الأحداث على الشريحة في صناديق لكل بكسل ويُبلَّغ عنها كإطار تدرج رمادي بحجم 320x320 عند المعدل المُكوَّن (~20-350 إطاراً في الثانية). تبدو الكاميرا ككاميرا عادية، لذا تعمل جميع روتينات معالجة الصور القياسية مباشرة.

csi.GENX320_MODE_EVENT: int

وضع الأحداث --- يتجاوز المدرج التكراري على الشريحة ويبث الأحداث الخام إلى ndarray من numpy مع طوابع زمنية بالميكروثانية، للتطبيقات التي تحتاج إلى التفاصيل الزمنية الكاملة بدلاً من إطار مُصنَّف مسبقاً.

csi.IOCTL_GENX320_READ_EVENTS: int

يقرأ الأحداث الخام إلى ndarray من نوع uint16 بالشكل (EVT_res, 6) (مع مطابقة EVT_res لحجم المخزن المُمرَّر إلى csi.IOCTL_GENX320_SET_MODE). الأعمدة هي [0] نوع الحدث (csi.PIX_OFF_EVENT و csi.PIX_ON_EVENT و csi.EXT_TRIGGER_RISING/FALLING و csi.RST_TRIGGER_RISING/FALLING)، و [1] الطابع الزمني بالثواني، و [2] المللي ثانية، و [3] الميكروثانية، و [4] إحداثي X (0-319)، و [5] إحداثي Y (0-319). يُرجع عدد الأحداث المكتوبة في المخزن، تاركاً الصفوف الأقدم خارج ذلك العدد دون تغيير. راجع CSI.ioctl.

csi.IOCTL_GENX320_CALIBRATE: int

يعطّل تلقائياً البكسلات الساخنة --- البكسلات التي تطلق بشكل زائف حتى في مشهد ثابت. يبني برنامج التشغيل عدّ ضربات لكل بكسل بحجم 320x320، ويحسب المتوسط والانحراف المعياري، ويعطّل أي بكسل يتجاوز عدّه mean + sigma * stddev. مرّر ميزانية عدّ أحداث (الأحداث المراد إحصاؤها قبل حساب الإحصائيات --- الأعلى = تقدير أكثر موثوقية، وأبطأ؛ ~10000 افتراضي جيد) وقيمة sigma من النوع العائم (الأقل = أكثر عدوانية، ~0.5 افتراضي). يُرجع عدد البكسلات المعطّلة. وجّه الكاميرا أولاً إلى مشهد ثابت بحيث لا تُحسب الأحداث المدفوعة بالحركة ضد بكسلات هي في الواقع سليمة. راجع CSI.ioctl.

csi.IOCTL_GENX320_READ_EVENTS_RAW: int

يُرجع كائن image.Image لإطار أحداث خام من GENX320، مع بقاء الأحداث في الترميز المعبّأ الأصلي للشريحة --- وهو مفيد إذا أردت إعادة توجيه التدفق الخام إلى حاسوب لفك تشفيره دون اتصال بدلاً من معالجته على الكاميرا. راجع CSI.ioctl.

csi.PIX_OFF_EVENT: int

نوع حدث GENX320 (العمود [0]) --- كشف بكسل انخفاضاً في السطوع (عُبِرَت عتبة التباين السالبة). يحمل العمودان [4]/[5] إحداثيي X/Y للبكسل.

csi.PIX_ON_EVENT: int

نوع حدث GENX320 (العمود [0]) --- كشف بكسل زيادة في السطوع (عُبِرَت عتبة التباين الموجبة). يحمل العمودان [4]/[5] إحداثيي X/Y للبكسل.

csi.RST_TRIGGER_RISING: int

نوع حدث GENX320 (العمود [0]) --- مُشغِّل إعادة تعيين البكسل، الحافة الصاعدة. لا يُستخدم X/Y. لا يُولِّده البرنامج الثابت في الوقت الحالي.

csi.RST_TRIGGER_FALLING: int

نوع حدث GENX320 (العمود [0]) --- مُشغِّل إعادة تعيين البكسل، الحافة الهابطة. لا يُستخدم X/Y. لا يُولِّده البرنامج الثابت في الوقت الحالي.

csi.EXT_TRIGGER_RISING: int

نوع حدث GENX320 (العمود [0]) --- رأى دبوس المُشغِّل الخارجي للمستشعر حافة صاعدة. دخل المُشغِّل الخارجي لـ GENX320 موصول بخط مزامنة الإطارات للكاميرا، المُوجَّه أيضاً إلى P10 على المعالج وعلى رأس الدبابيس. لا يُستخدم X/Y.

csi.EXT_TRIGGER_FALLING: int

نوع حدث GENX320 (العمود [0]) --- رأى دبوس المُشغِّل الخارجي للمستشعر حافة هابطة. دخل المُشغِّل الخارجي لـ GENX320 موصول بخط مزامنة الإطارات للكاميرا، المُوجَّه أيضاً إلى P10 على المعالج وعلى رأس الدبابيس. لا يُستخدم X/Y.