سؤال

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

  1. استقبال الملفات من أجهزة البلوتوث (ما يصل إلى جهازين في نفس الوقت)
  2. عرض جميع أجهزة البلوتوث في النطاق
  3. إرسال الملفات إلى أجهزة البلوتوث
  4. البحث عن أجهزة البلوتوث ونقل الملفات في نفس الوقت

نحن نعمل على نظام التشغيل Windows XP.

لقد قمت ببعض البحث ويبدو أن هناك 3 مجموعات رئيسية:

BlueSoleil

على موقع BlueSoleil، في قسم SDK الخاص بهم، يبدو أنه يذكر اتصالًا واحدًا فقط مدعومًا، وهو أمر غير جيد بوضوح.

شبابيك

يبدو أنه يدعم وحدة بلوتوث واحدة فقط، وهو ما يعني على الأرجح أننا لا نستطيع تلبية جميع متطلباتنا.

ويدكوم

باهظة الثمن وربما مبالغة؟واجهة برمجة التطبيقات الأكثر تعقيدًا؟أفكار؟

فيما يتعلق بـ SDK لـ C#، كنت أبحث في Franson Bluetools، هل استخدم أي شخص واجهة برمجة التطبيقات هذه؟

شكرًا

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

المحلول

أولاً، إخلاء المسؤولية، أنا المشرف على مكتبة 32feet.NET.:-)

لقد قمت للتو بالتحقق، وفي نظام XP باستخدام مكدس Microsoft (باستخدام جهاز دونجل واحد)، يمكنني في نفس الوقت تلقي جهازي OBEX PUTs واكتشاف الأجهزة أيضًا.وذلك باستخدام فئة ObexListener الخاصة بـ 32feet.NET وطريقة BluetoothClient.DiscoverDevices.لإرسال OBEX PUTs، يمكن للمرء استخدام فئة ObexWebRequest الخاصة به.لإجراء اتصالات متوازية متعددة مع ObexListener، كان لدي عدة سلاسل رسائل تستدعي طريقة GetContext() الخاصة بها.

لذلك ربما يكون الأمر أبسط مما كنا نعتقد..

لقد قمت باختباره أيضًا مع خادم OBEX الخاص بـ Andy Hume باستخدام مكتبة Brecham.Obex الخاصة به، ويعمل الاستقبال المتزامن بشكل جيد هناك أيضًا.متوفر منها http://32feet.net/files/folders/objectexchange/entry6511.aspx.

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

ما هي المشكلة مع العينات؟وقت الترجمة أو وقت التشغيل؟على مكدس MSFT أو Widcomm؟المتابعة عند http://32feet.net/forums/37.aspx إذا كنت تفضل.

نصائح أخرى

حان الوقت لشرح ما قمنا به بالضبط ...

2 دونجل لماذا؟

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

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

المكتبة التي استخدمناها

وبعد الكثير من التجارب والتفكير، انتهى بنا الأمر إلى الاختيار مكتبة الاتصالات اللاسلكية من إطار عمل BT.

وهو يدعم Widcomm وWindows وBlueSoleil ومكدس Toshiba.وهو يدعم جميع العناصر التي نحتاجها من جانب الخادم، وهو منتج تجاري مدعوم جيدًا ويعمل بشكل مثالي دون أخطاء.

أي كومة؟

حسنا، هذا أمر معقد.لا يدعم أي من الحزم 2 دونجل في نفس الوقت.لذا فإن الخيار الوحيد هو تشغيل دونجل واحد على مكدس واحد والآخر على مكدس آخر.هذا هو المكان الذي تكون فيه مكتبة WCL مفيدة!

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

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

لذا...لدينا وحدة دونجل واحدة تم ضبطها على Widcomm للمسح مرارًا وتكرارًا، ووحدة دونجل واحدة تم ضبطها على Microsoft للتعامل مع عمليات نقل الملفات فقط (للداخل والخارج).

الحصول على 2 دونجل للعمل

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

المشكلة الوحيدة هي أن هذه وحدات دونجل widcomm ونحن بحاجة إلى وحدة دونجل واحدة على مكدس Windows.لا يتعرف Windows على هذه الأجهزة باعتبارها أجهزة دونجل لـ Windows، لذا لن يقوم بتسجيلها في مكدس Windows.لذا...هذا هو الاختراق الذي يمكنك إجراؤه على ملف bt.inf لجعله يتعرف على الدونجل لنظام التشغيل Windows.بعد ذلك، تحتاج إلى تبديل برامج التشغيل لأحد أجهزة الدونجل لتشغيلها على برامج تشغيل Windows، وبذلك تكون قد انتهيت من كل شيء.

ملخص

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

جرب هذا: 32 قدم.نت.بدءًا من الإصدار 2.4، فإنها تدعم مكدس Widcomm بالإضافة إلى مكدس Windows.

بالمناسبة:لماذا تحتاج إلى العمل مع اثنين من الدونجل في نفس الوقت؟عادةً ما يستطيع الدونجل الفردي التعامل مع ما يصل إلى 7 أجهزة متصلة في وقت واحد.

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