مضخات الأنسولين ، الرقائق الدقيقة الواضحة ، وراديو محدد بالبرنامج

عكس مضخة الأنسولين الهندسة للعلاج DIY

منذ حوالي ثلاث سنوات ، سمعت عن موقع ويب يقدم مكافأة لقربه الكبير من قلبي: الاتصالات الهندسية العكسية بمضخة الأنسولين. لقد ساعدت بالفعل في إنشاء نظام لابنتي تدعى Loop ، بمضخة مدترونية أقوم من خلالها بإجراء اتصالات هندسية عكسية (تم فك تشفير معظم بروتوكول اتصالات Medtronic بواسطة Ben West باستخدام Carelink USB ، واكتشفت ترددات الراديو وقمت ببعض الأعمال الإضافية على بروتوكول). لكن المضخة Medtronic كانت بحاجة إلى الإغلاق خلال الجمباز لعدة ساعات. بدا التصميم الأنبوبي لمضخة Omnipod مثيرة للاهتمام بالنسبة لي ، وكان لدي كل الأدوات اللازمة للعمل.

يتكون نظام Omnipod من مضخة صغيرة تستخدم مرة واحدة تسمى وحدة (pod) ووحدة تحكم (PDM).



نظرًا لأن PDM يتصل بالوحدة عن طريق الراديو ، ولا تحتوي الوحدة على واجهة مضمّنة ، فهذا يعني أنها مسيطر عليها بشكل كامل. هناك إمكانية للتكامل التام مع Loop ، باستخدام RileyLink فقط أو نسخته المعدلة.

عيّن James Wedding مكافأة ، وجذب الكثير من الاهتمام ، ثم الأشخاص المناسبين الذين ساعدوا في العمل.

راديو البرمجيات المعرفة


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

تشير وثائق لجنة الاتصالات الفيدرالية (FCC) الخاصة بـ PDM ، RBV-019 ، إلى أن الجهاز يرسل في النطاق MHz 433. بعد تكوين برنامج حقوق السحب الخاصة للاستماع في نطاق 433 ميغاهيرتز ، تظهر الإشارات التالية عند إصدار الحالة من PDM:



كما اكتشفت أخيرًا ، يشير هذان الخطان اللامعان إلى نوع معين من التشكيل يُسمى مفتاح إزاحة التردد أو FSK. هذا يعني أن تردد الإشارة يختلف باختلاف المعلومات المرسلة. يتم إرسال البت 1 كتردد أعلى (الخط العلوي) ، ويتم إرسال 0 بتردد أقل قليلاً (الخط السفلي). باستخدام أداة المعاينة ، يمكننا تحليل البيانات للتعرف بشكل أوضح على 1 و 0. فيما يلي عرض موسع للغاية للرسالة الأولى:



كتبت سيناريو بيثون لاستخراج هذه البتات حتى نتمكن من النظر إليها كحزم كاملة.



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

تحتاج إلى تصفح طبقة أخرى قبل الحصول على بيانات الدُفعات الفعلية. لا يمكنك إرسال بياناتك عبر الراديو بنفس الطريقة تمامًا مثل البتات الأصلية ، لأن المتلقي يستخدم انتقالات للمزامنة في الوقت الذي ينتظر فيه البت التالي. إذا كان لديك مجموعة طويلة من الأصفار أو تلك ، فقد يخرج جهاز الاستقبال عن المزامنة. لذلك ، تستخدم الاتصالات الراديوية عادةً الترميز للتحقق من وجود انتقالات كافية. تستخدم اتصالات Omnipod ما يسمى ترميز مانشستر . يتم تشفير كل بت في جزئين. 1 يتم ترميزه بالرقم 10 ، ويتم ترميز 0 برقم 01.

استغرق الأمر وقتًا طويلاً لمعرفة ذلك ، وكانت هناك الكثير من النظريات على قناة openomni في سلاك حيث حاولنا تكرار البتات الأصلية. حقق كل من Mark Brighton و Dan Caron و @ larsonlr بعض النجاح باستخدام RFCat و Ti Stick لالتقاط الحزم. كتب Evarist Kurgio في النهاية أداة تدعى rtlomni ، ويستخدم جهاز استقبال rtl-sdr USB للاستماع إلى الحزم وفك تشفيرها ، والتي تبين أنها مريحة للغاية وموثوقة أكثر من الطرق المعتمدة على TI Stick.

فك تشفير الحزمة


بعد تلقي البتات الفعلية ، بدأنا في دراسة بنية الحزمة. استنادًا إلى البتات التي تغيرت بين الوحدات النمطية المختلفة والفرق المختلفة ، أنشأنا بنية تبدو كما يلي:



CRC8


الراديو بعيد عن وسيلة نقل مثالية. هناك العديد من مصادر التداخل المختلفة التي تجعل جهاز الاستقبال يسمع 1 عند إرسال 0 ، والعكس صحيح. من المهم معرفة متى حدث ذلك ، لذلك تستخدم معظم البروتوكولات المجموع الاختباري ، وغالبًا ما يطلق عليه CRC. يحسب المستقبِل اتفاقية حقوق الطفل عند تلقي البيانات ، وتشمل البايتة الأخيرة من الرزمة اتفاقية حقوق الطفل المحسوبة بواسطة المرسل. إذا لم تتطابق ، يتجاهل جهاز الاستقبال الحزمة وينتظر إعادة الإرسال.

يستخدم بروتوكول Omnipod اتفاقية حقوق الطفل القياسية 8 بت. عندما وجدنا له ، قررنا أننا كنا قريبين جدًا من فهم الرسائل. كم كنا نعرف ...

الرسائل ، CRC16


بعض الرسائل كبيرة جدًا بحيث لا يمكن احتواؤها في حزمة واحدة ، بحيث يتم تقسيمها إلى عدة حزم. بدأنا بتجميع تنسيق الرسالة ولاحظنا مجموعة أخرى من البتات في نهاية كل رسالة ، والتي تبدو وكأنها اتفاقية حقوق الطفل ذات 16 بت. لكنه كان غريبا: 5 من 16 بت لم يتم ضبطها. لقد جربنا العديد من الطرق المختلفة لمعرفة كيف يتم ترميز هذا ، ولكن لا شيء يعمل.

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

مرت عدة أشهر دون جدوى. أخيرًا ، في شتاء عام 2016 ، ذكرت عضو في المجموعة تحت الاسم المستعار @ lorelai أنها قد نسخت البرنامج الثابت من شريحة ARM أكبر إلى PDM وبدأت عملية التفكيك المملة: قبول تعليمات وحدة المعالجة المركزية وتحويلها إلى رمز يمكن قراءته بواسطة الإنسان وأسماء وظيفية. لقد قامت بعمل رائع اكتشف الطرق المختلفة التي تم استخدامها لنقل البيانات.

نظرت إلى أحد الإجراءات غير المعنونة ولاحظت أنه يشبه التنفيذ القياسي لحساب CRC من الجدول. وكان الجدول القيم لاتفاقية حقوق الطفل 16 بت القياسية. كتبت تنفيذي الخاص على الجداول ، وتم اختباره مثل اتفاقية حقوق الطفل العادية. ثم نظرت بعناية في كيفية كتابة الوظيفة. يبدو تنفيذ CRC العادي كما يلي:

while (len--) { crc = (crc << 8) ^ crctable[((crc >> 8) ^ *c++)]; } 

بدا تنفيذها مثل هذا ::

 while (len--) { crc = (crc >> 8) ^ crctable[((crc >> 8) ^ *c++)]; } 

لاحظ الفرق؟ إن ما كان من المفترض أن يكون عامل تبديل لليسار الأيسر قد تم تشفيره بطريقة ما على أنه تحول صحيح. هذا خطأ لا يوجد سبب لإعاقة خوارزمية CRC الخاصة بك ، لأن هذا يجعل من الصعب تحديد الرسائل التالفة.

عدنا في العملية! واستأنفوا العمل على فك تشفير الرسائل ، وتسجيل جلسات من PDM لتوصيل البلعات [المخدرات] ، وقواعد مؤقتة [معدل Basal المؤقت يحدد زيادة أو نقصان في تسليم الأنسولين - تقريبا. حارة] ، تعليق الايداع ، الخ

استخدام رقم واحد


كانت جميع فرق توصيل الأنسولين تحتوي على 4 بايتات من البيانات في بداية الرسالة ، والتي بدت وكأنها شكل من أشكال التشفير. مرة أخرى ، جربنا العديد من الطرق المختلفة لتفسيرها وتحليلها في سياق الرسائل التي تم إرسالها فيها ، ولكنها لم تكن موجودة في اتفاقية حقوق الطفل (وأحيانًا رأينا نفس وحدات البايت الأربع حتى في الرسائل المختلفة). وأحيانا رأينا الصورة تكرر نفسها. بدا الأمر ، كجزء من بروتوكول لمنع إعادة إنتاج البيانات. في بروتوكولات أخرى ، تسمى وظيفة مماثلة nonce .

أحد الخيارات التي اعتبرناها هي تسجيل قاعدة رسائل لتشغيل الأوامر المعطاة. حتى لو كان عنوان كل وحدة نمطية مختلفًا ، فقد عرفنا الآن كيفية إنشاء اتفاقية حقوق الطفل ، حتى نتمكن من أخذ النسخة السابقة من الأمر ووضع العنوان الجديد في الرسالة وإعادة فرزها. هذا nonce فقط منعنا من استخدام هذه الاستراتيجية. بغض النظر عن الأمر ، قبلت الوحدة فقط nonce التالي في التسلسل ، ولم نكن نعرف كيفية إنشاء nonce التالي.

ولكن! بعد كل شيء ، لدينا البرامج الثابتة PDM decompiled ، يمكننا فقط أن ننظر هناك! لذلك ، درسنا البرامج الثابتة PDM ، وتتبعت توليد الرسائل في التعليمات البرمجية ووجدنا أين يجب أن تكون هذه البايتات الأربعة. ولكن بدلاً من الطريقة التي تحسب بعض رموز التشفير ، وجدنا للتو أربعة أحرف INS. . ما هذا الهراء؟!؟! حسنًا ، بطريقة ما ، يجب تحديث منطقة الرسائل هذه لاحقًا في خط الأنابيب.

كان هناك رقاقة أخرى على الحركة الديمقراطية الشعبية ، أقرب إلى الراديو. كان نفس الشريحة التي تم استخدامها في الوحدات ، مع معرف SC9S08ER48 ، الذي لم يتم توثيقه على شبكة الإنترنت. ربما تم إجراؤه على الطلب من Insulet. ربما يمكننا إزالة البرامج الثابتة من هذه الشريحة. لسوء الحظ ، تم حظر الشريحة ، مما حال دون نسخ البرامج الثابتة.



تباطأ العمل مرة أخرى ... كان مثل طريق مسدود حقيقي. لقد بذلنا كل جهودنا العقلية في هذا المجال ، ولم يكن لدينا أي خيوط جيدة في الرياضيات وراءه. تم حظر شريحة ER48 ، التي (ربما) أسرارها ، ومن الصعب العثور على أي معلومات عامة من شأنها أن تساعد في كسرها.

الأشعة السينية


في محاولة لفهم ER48 ، اقترح بعض أعضاء مجتمع Slack أخذ الأشعة السينية. كان الأمر رائعًا حقًا ، لكن لسوء الحظ ، لم يفتح أي فرص جديدة.


لقطة عامة


لقطة مفصلة

تشريح الجثة وإطلاق النار


قرر دان كارون اللجوء إلى الباحث ، الدكتور سيرجي سكوروبوغاتوف من جامعة كامبريدج بالمملكة المتحدة. قرأ دان أن لديه خبرة في استخراج الشفرة من الرقائق المقفلة ، وأقنعه بإلقاء نظرة على مشكلتنا. أجرى الدكتور Skorobogatov البحوث في مجال استخدام SEM (المسح المجهر الإلكتروني) للهندسة العكسية للدوائر الدقيقة. اقترح أن ذلك ممكن ، لكنه سيكون مكلفًا ، ويتطلب معدات باهظة الثمن ولا يضمن نتيجة. وافق جو موران ، الذي بدأ مؤخرًا استخدام Loop بعد أن التقينا في hackathon في Nightscout في خريف عام 2016 ، على المساعدة في المشروع. واتفق مع شركة وادي السيليكون ، وهي شركة نانولاب تكنولوجيز ، على فتح وتصوير الرقائق ، كما تفضل بتمويل عمل نانولاب والدكتور سكوروبوغاتوف (وكذلك وحداته الشخصية).

طلب الدكتور Skorobogatov Nanolab لتطبيق تقنيات التصوير المختلفة لمعرفة ما إذا كان من الممكن كسر الحماية مع الأساليب المعروفة غير الغازية أو شبه الغازية. نتيجة لذلك ، ظهرت العديد من الصور ، بعضها جميل للغاية. هذه هي الصور المجهرية البصرية لمصفوفة السيليكون.


منظر عام للدائرة الصغيرة تحت المجهر الضوئي


منظر عام للدائرة الصغيرة تحت المجهر الضوئي

كما تم التقاط صور لمناطق محددة من المصفوفة باستخدام مجهر مسح إلكتروني. مع الفولتية المختلفة ، وإعداد السطح المختلفة والمعدات المختلفة.


SEM صورة من خلايا فلاش. لا تظهر البيانات

لسوء الحظ ، لم تظهر أي من هذه الصور المحتويات الفعلية لذاكرة الفلاش.

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

في نهاية المطاف ، وقعت NDA مؤسسة Nightscout ، وتحملت مسؤولية منع الكشف غير المصرح به عن طرق ونتائج استخراج الذاكرة.

كانت نتيجة هذا الاتفاق والعمل مقالاً لا يصدق كتبه الدكتور سيرجي سكوروبوغاتوف ، وكذلك رمز البرنامج الثابت. منذ المرة الأولى كانت هناك بعض الأخطاء في الكود ، ولكن هذا كان كافيا للبدء. في Nightscout Spring Hackathon ، لجأ جو إلى اللاعبين إذا كان أي شخص يرغب في القيام بالتفكيك. لم يرفع أحد يديه. إن تحويل إرشادات المعالج إلى شيء يمكن فهمه هو عمل شاق ، وقلة قليلة من الناس يعرفون كيفية القيام بذلك. حاولت الخوض في المجمّع باستخدام وثائق وحدة المعالجة المركزية ، لكنني حققت القليل جدًا وكنت خائب الأمل. طلب الآخرون بتفاؤل رمز البرنامج الثابت مع توقعات التقدم السريع ، ثم أدركوا نطاق وتعقيد المهمة - وسقطت بهدوء.


SC908 سبيل المثال تعليمات التفكيك

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

في النهاية ، انضم إلينا كين شيريف ، وهو خبير في هندسة الأجهزة العكسية ، وقام بتسريع العملية بشكل كبير. معًا ، انتهى كل من Joe و Ken بترجمة رمز كاف للعثور على دالة تشفر nonce. حدث هذا في سبتمبر 2017.



RileyLink وحلقة


لقد قمنا بتحديث البرامج النصية Python الخاصة بـ openomni ، ولكن حان الوقت الآن للتركيز على RileyLink + iOS ، لذلك بدأت العمل على OmniKit وتحديثات البرامج الثابتة ل RileyLink. اعتقدت أن لدينا أساسيات البروتوكول ، وكان الباقي مجرد تفاصيل. مرة أخرى ، التقليل تماما من مقدار ما لم يأت بعد.



اضطررت إلى كتابة البرامج الثابتة الجديدة التي تعالج تعديل وترميز الوحدة النمطية. اضطررت أيضًا إلى إعادة كتابة كيف تتحدث شيبتان على RL مع بعضهما البعض من أجل معالجة الأصفار ، حيث كانت الأصفار في Medtronic هي الطرف الخاص لعلامة الرزم. تم إعادة تصميم جزء كبير من حلقة لدعم مضخات متعددة ، وكذلك واجهات جديدة لدعم الاقتران ، وإلغاء تنشيط ، ومعالجة الأخطاء. لحسن الحظ ، وضعت Nate Racklift أساسا متينا في حلقة لجعل هذا كل شيء ممكن.

وفي الوقت نفسه ، استمر العمل على فهم شكل الفرق. تم توثيق كل شيء بعناية على ويكي openomni ، أكثر الوثائق شمولية للبروتوكول. قام Joe و Evarist و Elke Jäger بعمل رائع حقًا بمرور الوقت في فك تشفير الرسائل وتحديث الصفحات. ساهم العديد من أعضاء قناة Slack في التقاط حزم PDM والوحدة النمطية للمساعدة في مجهودات فك الترميز الشاملة.

كانت عملية فك التشفير مهمة ممتعة ، مع الكثير من الانتصارات الصغيرة ، حيث أن كل مكون من مكونات كل فريق يقوم بفك التشفير ، وأحببت حقًا العمل على هذا الجزء ، مضيفًا رمزًا تدريجيًا إلى Loop. في أبريل 2018 ، شاركت في Slack بأنني فعلت "القنية الرئيسية المقترنة عبر iPhone + RL وفقًا للجدول الأساسي المبرمج ، ثم أصيبت 5 وحدات بالمرض".

تم الانتهاء من البرامج الثابتة RL 2.0 في يوليو 2018 ، وقد ذهبت معها شحنات جديدة بالفعل. كان من المأمول أن يتم استخدام هذه اللوحات مع Loop و Omnipod ، لكن الهوائي البالغ 915 ميجاهرتز كان سيئًا للغاية بحيث لا يعمل بشكل فعال عند 433 ميجاهرتز.

تقدمت عملية فك التشفير والتنفيذ بشكل كبير خلال الصيف ، وتقترب Loop من الأداء تدريجياً. لقد فعل جو الشيء المذهل من خلال إعطائي التمويل ، لذلك تركت وظيفتي اليومية وأركز على هذا المشروع ، وفي النهاية انضممت إلى فريق Tidepool الرائع. بالطبع ، في مجال صناعة الأدوات اليدوية والتنظيم التشريعي للمعدات الطبية ، كان هناك المزيد من الأحداث التي لن أغطيها ، لكن كان صيفًا ممتعًا للغاية!

الصارخون


عند ظهور المزيد من الوظائف في برنامج التشغيل ، قمت بتوصيلها بـ Loop ، مما أدى إلى تشغيل القدرة على تكوين التسليم تلقائيًا في الوقت المحدد. في هذه المرحلة ، غالبًا ما يتم الحصول على وحدات "براقة" عندما وجدت بعض عمليات الفحص الداخلية للوحدة مشكلة وتوقف عن تقديم الأنسولين.

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

حلقة العمل!


في 3 تشرين الأول (أكتوبر) 2018 ، ارتد جو وحدة Loop المدارة وأصبح أول مستخدم Loop Omnipod ، على الرغم من أنه لم يخبرني على الفور لأنه يعلم أنني سأشعر بالقلق. عندما أخبرني ، ما زلت قلقًا. لقد رأينا كيف عملت الوحدة ، وفهمت الوظيفة ، وتم اختبار الخوارزمية الأساسية لفترة طويلة ، ولكن لا يزال ...



بعد شهر ، في hackathon من Nightscout في نوفمبر 2018 ، قرر العديد من المغامرين تجربة ذلك لأنفسهم ، وأصبحوا أيضًا جزءًا من مجموعة اختبار مغلقة صغيرة ستنمو لأكثر من 30 شخصًا قبل نشر الرمز.

لسوء الحظ ، ما زلنا نواجه "صرخات" الوحدة النمطية ، والتي تحدث غالبًا قبل الانتهاء من ثلاثة أيام كاملة من الاستخدام ، وقارننا بعناية أوامر Loop مع عينات PDM. في هذه العملية ، كان Elke مفيدًا بشكل خاص: لقد كتب نصيًا لفحص الأوامر تلقائيًا مع الإصدارات الأصلية. بدأت أشعر بالقلق من أن التشغيل المتقطع للوحدات كان بسبب زيادة متطلبات البطارية للاتصالات كل خمس دقائق.


حنفيات منظم الجهد في الوحدة النمطية ، يتم حفرها من خلال البلاستيك الخاص باللوحة الخلفية ، على superglue

لذلك ، بدأت في قياس الجهد الكهربائي للوحدة باستخدام Arduino ، وكتابة البيانات وحفظها في قاعدة بيانات محلية للتصور. قارنت الحركة الديمقراطية الشعبية وحلقة.


تغيير طويل الأجل في وحدة امدادات التيار الكهربائي

لسوء الحظ ، تحول هذا أيضًا إلى طريق مسدود ؛ باستخدام PDM وحقن كمية كبيرة من الأنسولين ، كان بإمكاني إحضار الوحدة إلى جهد كهربي أقل مما كانت عليه خلال الحياة الكاملة لوحدة Loop ، ولم أستطع جعل الوحدة "تصرخ". يبدو أن التوتر لم يكن مشكلة ، يجب أن يكون هناك شيء آخر.


RileyLinks مع 955 ميغاهيرتز (يسار) و 433 ميغاهيرتز هوائيات الملف (يمين)

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

كان لدي العديد من الهوائيات المرنة بتردد 433 ميغاهرتز التي يمكن توصيلها بالداخل من العلبة RL. غالبًا ما تظهر أداء أفضل في بعض السيناريوهات ، ولكن ليس في حالات أخرى ؛ غير موثوق بها للغاية. عندما وصلت إلى البكرة ، أظهر الأداء الجيد بشكل متسق للغاية وعلى نطاقات رائعة للغاية. حان الوقت لتقديم قضية جديدة ل RileyLink.

مع وجود هوائي جديد وبعض التحسينات التي قللت من الرسائل مع الاستمرار في إجراء التعديلات كل 5 دقائق ، أصبحت الصراخ نادرة جدًا. يمكن مقارنتها بالاستخدام المعتاد للوحدات النمطية مع PDM. خلال الـ 7500 ساعة الماضية من الاختبار في الوقت الفعلي ، تم إكمال 94٪ من الوحدات دون فشل.

الاختبار والتوثيق


نمت مجموعة الاختبار ببطء: انضم مستخدمون جدد باستمرار إلى النظام ، والذين يمكنهم من خلال نظرة جديدة تقييم الأجزاء التي تبدو مربكة. وضعت هذه الاختبارات مع الكثير من وحدات مبهرج وقدم مساهمة كبيرة جدا في تحسين أداء حلقة مع Omnipod. في الأساس ، أرسلوا تقارير عن المشاكل وسجلات العمل.

تحتوي هذه التقارير على سجل للرسائل التي يمكن تحليلها باستخدام أداة من تصميم Elke. إنه يعطي فكرة إذا حصلنا على أي أوامر مشوهة ، ويسمح لك أيضًا بجمع إحصائيات حول أجزاء معينة من تفاعل Loop مع الوحدات النمطية.

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

في النهاية ، انضمت كاتي ديسيمون إلى مجموعة الاختبار. بدأت إعادة هيكلة رئيسية لـ loopdocs.org مع وثائق حول استخدام Loop مع أجهزة متعددة. كان الانتظار لنسخة Loop التي عملت مع Omnipod مرتفعًا بشكل لا يصدق ، وبدون توثيق جيد ، كان من الواضح أننا سنكتنف نفس الأسئلة.

حلقة جديدة الميزات


يتطلب التكامل مع Omnipod إعادة التفكير في بعض عناصر الواجهة وإضافة عناصر تحكم جديدة. لا تقوم الوحدة بالإبلاغ عن البطارية ، ولا يستطيع المستخدم فعل الكثير بتكلفة منخفضة في حالة حدوث ذلك ، لذلك فإن عرض عنصر واجهة مستخدم مستوى البطارية غير منطقي. بالإضافة إلى ذلك ، بدون واجهة مستخدم على المضخة ، يجب أن يكون المستخدم قادرًا على إلغاء البلعة بسرعة. أيقونة الدبابة تصور دبابة مدترونيك ، لذلك أردنا إعادة تشكيلها. بفضل بول Forgione لتطوير شعار الوحدة ، والذي يظهر الآن مستوى الخزان.



شكر


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

الملاحظات


أود أن أذكر يواكيم أورنشتيت كواحد من المساهمين في فك تشفير openomni ، وكذلك خالق التكامل الأول مع omnipod. قام ببناء جهاز يستخدم التعرف الضوئي على الأحرف (OCR) لاستخراج البيانات من PDM ، وتوصيل أزرار الأرقام إلى PDM الفعلي من خلال متحكم آخر. من الصعب توسيع نطاق هذا النهج ، لكنه ذكي للغاية ويتجاوز العديد من المشكلات التي تعين علينا التعامل مع حل قائم على الطاقة المتجددة. أنا معجب حقًا بكيفية تعامله مع المشكلة وإعداد العمل لجزء صغير جدًا من الوقت الذي يستغرقه تشغيل الجهاز مع Loop.

Source: https://habr.com/ru/post/ar450962/


All Articles