أنت تعمل على مشروع يتضمن التواصل مع جهاز I2C. يحتوي هذا الجهاز على متطلبات توقيت محددة وتحتاج إلى التأكد من أن الكود الخاص بك يلبي هذه المتطلبات.

لقد تم إعطاؤك مقتطفًا برمجيًا يحتوي على بعض الثوابت التي تتحكم في توقيت العمليات المختلفة. تحدد الثوابتان `msAwaitChipId` و`msAwaitSelfTest` مقدار الوقت اللازم لانتظار اكتمال عمليات شريحة معينة، بالمللي ثانية. يحدد "readMode" الثابت وضع القراءة الذي سيتم استخدامه عند القراءة من جهاز I2C.

مهمتك هي كتابة طريقة تأخذ نوع العملية كمدخل وتحسب وقت الانتظار المناسب بناءً على الثوابت ووضع القراءة.

توقيع الطريقة هو :
```
int العام الثابت يحسبWaitTime(OperationType OperationType)
```

تم تعريف تعداد `OperationType' بالفعل على النحو التالي:
```جافا
التعداد العام نوع العملية {
    معرف_الرقاقة،
    اختبار ذاتي
}
```

تحتاج إلى تنفيذ طريقة `calculateWaitTime()` لإرجاع وقت الانتظار الصحيح بناءً على نوع العملية والثوابت `msAwaitChipId` و`msAwaitSelfTest` و`readMode`. تنطبق القواعد التالية:
- إذا كان نوع العملية هو `CHIP_ID`، فيجب أن يكون وقت الانتظار مساوياً لـ `msAwaitChipId`.
- إذا كان نوع العملية هو `SELF_TEST`، فيجب أن يكون وقت الانتظار مساوياً لـ`msAwaitSelfTest`.
- إذا كان وضع القراءة هو `READ_MODE.REPEAT`، فيجب مضاعفة وقت الانتظار.

على سبيل المثال، إذا كان `msAwaitChipId` هو 2000، و`msAwaitSelfTest` هو 500، ووضع القراءة هو `READ_MODE.REPEAT`، فإن وقت الانتظار لعملية `CHIP_ID` ​​سيكون 4000 (2000 * 2) ووقت الانتظار لـ ستكون عملية `SELF_TEST` 1000 (500 * 2).
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}