System.IO.Ports.SerialPort - يمكن تكوين IOCTL_SERIAL_SET_WAIT_MASK؟

StackOverflow https://stackoverflow.com/questions/628161

  •  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 / استدعاء على دلل النظام.

وكنت لا تزال ترغب في معرفة ما اذا كان يمكنني الحصول على حول القضايا التي أجريتها مع الطبقة الصافية.

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