System.IO.Ports.SerialPort - يمكن تكوين IOCTL_SERIAL_SET_WAIT_MASK؟
-
06-07-2019 - |
سؤال
ولقد كنت تحاول أن تتعلم قليلا حول كيفية صافي (3.5) تتفاعل مع المنفذ التسلسلي خلال فئة System.IO.Ports.SerialPorts
من خلال كتابة ويندوز صغير تطبيق نماذج لجمع بيانات المتصل عرض من مودم خارجي القديم.
ولقد اختبرت أن المودم يدعم عرض المتصل. باستخدام المعجون أو برنامج Hyperterminal يمكنني تكوين المودم لجمع بيانات المتصل عرض (باستخدام AT#CID=1
الأوامر، التي وجدت <لأ href = "http://ftp.mtnsys.com/Pages/howto/htmdmtst.htm" يختلط = "نوفولو noreferrer "> هنا )، وعندما يرن الهاتف، ويتم عرض البيانات. في إطار المحطة الطرفية، يبدو مثل هذا:
RING
DATE = 0308
TIME = 2045
NMBR = 01234567890
RING
ويبدو لي C # تطبيق لتكوين المودم بنجاح ويعرض RING
رسالة عندما يرن الهاتف. ومع ذلك، فإنه لم يعرض بيانات هوية المتصل.
في محاولة لفهم لماذا يحدث هذا، وأنا مقارنة الإجراءات التي اتخذتها مختلف العملاء التي يتم التقاطها باستخدام سسنترنلس <لأ href = "http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx" يختلط = "نوفولو noreferrer"> Portmon .
والفرق الأساسي يبدو في تكوين اتصال. ويشمل بلدي C # تطبيق السطر التالي، الذي المعجون وبرنامج Hyperterminal لا؛
0.00000307 callerID.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR RXFLAG CTS DSR RLSD BRK ERR RING
وكما أفهم، IOCTL_SERIAL_SET_WAIT_MASK
هي قائمة شاملة من أنواع الرسائل لتصفية.
وهكذا، ثلاثة أسئلة:
هل من الممكن أن المعلومات هوية المتصل يتم قمعها من قبل IOCTL_SERIAL_SET_WAIT_MASK
؟
وإذا كان الأمر كذلك، كيف يمكنني تكوينه لإظهار معلومات هوية المتصل؟ لا يبدو لتكون في متناول من خصائص الطبقة.
إذا كنت لا يمكن تكوينه، هو خياري الوحيد للالتفاف على هذا أن يكتب لي المجمع الخاص إلى وظائف النظام على مستوى منخفض السيطرة على المنفذ التسلسلي؟
وما أفهمه من منفذ الاتصالات التسلسلية أساسي جدا، لذلك أتوقع أنا بعيدا في تشخيصي. أي توجيه تلقى بامتنان.
المحلول
وكنت بعيدا مع تشخيصي.
ويبدو أن طريقة WriteLine
لم ينتهي الأوامر يرسل مع فاصل خط تتوقع جهاز المودم.
وكان كل ما يلزم للقيام إضافة حرف إرجاع إلى الأوامر أبعث، وإرسالها باستخدام طريقة Write
.
والاعتذار عن إضاعة الوقت أحد.
نصائح أخرى
ولقد وجدت هذا على MSDN الذي يبدو وكأنه مثال لائق من كيفية الوصول إلى المنفذ التسلسلي عبر P / استدعاء على دلل النظام.
وكنت لا تزال ترغب في معرفة ما اذا كان يمكنني الحصول على حول القضايا التي أجريتها مع الطبقة الصافية.