سؤال

أنا أتساءل لماذا لا يوفر .NET Framework أي طرق إدارية للعمل مع برامج تشغيل USB. من كل ما قرأته، لا يزال يتعين عليك الاتصال في نظام التشغيل Windows API واستخدام التنظيم و Pinvoke وكل ذلك حماقة لا يريده أي من مبرمجات الولايات المتحدة القيام به. لماذا تقوم .NET بتقديم طرق للتواصل مع المنافذ التسلسلية ولكن ليس منافذ USB؟ أصبح USB أكثر استخداما على نطاق واسع في أن المنافذ التسلسلية الآن، أليس كذلك حان الوقت لأنهم أدمجوا ذلك في الإطار؟

هل كانت مفيدة؟

المحلول

مثل جميع الميزات الأخرى في .NET Framework، يتعلق الأمر بالتكلفة مقابل المكافأة. مع كل إصدار من .NET يتعين على أصحاب اتخاذ قرارات مؤلمة للغاية للميزات. هناك ببساطة العديد من الطلبات / يريد Satsify لهم جميعا. تلك التي يتم اختيارها تحتاج إلى توفير قيمة واضحة بتكلفة معقولة.

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

نصائح أخرى

USB هو مجرد حافلة. تعتمد الطريقة التي تتواصل بها إلى الجهاز على رقاقة على الجانب الآخر من الحافلة. لا توجد طريقة موحدة للتحدث مع جميع الأجهزة.

إذا كان موفر جهاز USB يرغب في فضح الجهاز بطريقة قياسية (معظمها يتوافق مع المعايير لحفظ التكاليف على التطوير والوثيقة وتعليم العملاء حول واجهات برمجة التطبيقات الخاصة بهم)، يمكن لمبرمجي سائقين كتابة برامج تشغيل تجعل الجهاز متاحا العديد من واجهات برمجة التطبيقات المختلفة (تخزين ضخم، WIA، DirectShow، المنفذ التسلسلي الظاهري، بلوتوث، جهاز واجهة الإنسان، إلخ). مرة أخرى، نظرا لأن برامج تشغيل موحدة تتعرض بالفعل لنظام التشغيل Windows API، فلا حاجة ل .NET للتحدث إلى الأجهزة مباشرة.

إذا كنت تتطلع إلى واجهة مع جهاز USB متوافق مع HID قد نلقي نظرة على cc.usbhid.. وبعد انها قديمة وسيئة ولكن قد تحصل على الذهاب في الاتجاه الصحيح. قد يكون هناك المزيد من المشاريع الناضجة المتاحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top