Announcement

Collapse
No announcement yet.

Wie "IRP_MJ_Device_Control" Befehle schreiben? C#

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie "IRP_MJ_Device_Control" Befehle schreiben? C#

    Hi,

    bin fast neuling in der C# programmirung und hab jetzt die Aufgabe ein Comport gerät nach daten abzufragen bzw. zu versenden und die Daten in eine Excel Tabelle einzufügen.
    Das mit Excel ist kein Problem und geschafft habe ich auch den Comport anzusprechen.
    Nun zum Problem: Es gibt eine möglichkeit den Comport gerät in einen bestimmten Modus zu versetzen (in den PC modus). Erst damit ist es mögliche Antworten vom Gerät erhalten zu können, sonst sendet man nur und nicht kommt zurück. Hab hier auch die nötigen Daten abgefangen nur kann ich sie nicht wirklich anwenden.

    Code:
    0  	IRP_MJ_CREATE  	DOWN  	TRUE  	0x0  	43 00 4C 00 53 00 31 00 77 00 2E 00 65 00 78 00 65 00 00 00   	C.L.S.1.w...e.x.e...  	
    1 	IRP_MJ_CREATE 	UP 	FALSE 	0x0 	
    2 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate) 	DOWN 	FALSE 	0x0 	
    3 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate) 	UP 	TRUE 	0x0 	80 25 00 00  	€%.. 	
    4 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control) 	DOWN 	FALSE 	0x0 	
    5 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control) 	UP 	TRUE 	0x0 	00 00 08  	... 	
    6 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters) 	DOWN 	FALSE 	0x0 	
    7 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters) 	UP 	TRUE 	0x0 	1A 00 00 1A 11 13  	...... 	
    8 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information) 	DOWN 	FALSE 	0x0 	
    9 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information) 	UP 	TRUE 	0x0 	00 00 00 00 00 00 00 00 19 00 00 00 19 00 00 00  	................ 	
    10 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate) 	DOWN 	FALSE 	0x0 	
    11 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate) 	UP 	TRUE 	0x0 	80 25 00 00  	€%.. 	
    12 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control) 	DOWN 	FALSE 	0x0 	
    13 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control) 	UP 	TRUE 	0x0 	00 00 08  	... 	
    14 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters) 	DOWN 	FALSE 	0x0 	
    15 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters) 	UP 	TRUE 	0x0 	1A 00 00 1A 11 13  	...... 	
    16 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information) 	DOWN 	FALSE 	0x0 	
    17 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information) 	UP 	TRUE 	0x0 	00 00 00 00 00 00 00 00 19 00 00 00 19 00 00 00  	................ 	
    18 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate) 	DOWN 	TRUE 	0x0 	80 25 00 00  	€%.. 	
    19 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate) 	UP 	FALSE 	0x0 	
    20 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_RTS: Set RTS) 	DOWN 	FALSE 	0x0 	
    21 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_RTS: Set RTS) 	UP 	FALSE 	0x0 	
    22 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR) 	DOWN 	FALSE 	0x0 	
    23 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR) 	UP 	FALSE 	0x0 	
    24 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control) 	DOWN 	TRUE 	0x0 	00 02 07  	... 	
    25 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control) 	UP 	FALSE 	0x0 	
    26 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters) 	DOWN 	TRUE 	0x0 	1A 00 00 1A 11 13  	...... 	
    27 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters) 	UP 	FALSE 	0x0 	
    28 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information) 	DOWN 	TRUE 	0x0 	01 00 00 00 40 00 00 00 19 00 00 00 19 00 00 00  	....@........... 	
    29 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information) 	UP 	FALSE 	0x0 	
    30 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts) 	DOWN 	TRUE 	0x0 	FF FF 00 00 01 00 00 00 2C 01 00 00 00 00 00 00 00 00 00 00  	ÿÿ...... 	...........
    31 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts) 	UP 	FALSE 	0x0 	
    32 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_PURGE: Purge requests) 	DOWN 	TRUE 	0x0 	0C 00 00 00  	.... 	
    33 	IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_PURGE: Purge requests)
    34  	IRP_MJ_WRITE  	DOWN  	TRUE  	0x0  	02 39 39 35 34 31 20 20 20 03 31 33 0D 0A   	.99541   .13..  	
    35 	IRP_MJ_WRITE 	UP 	TRUE 	0x0 	02 39 39 35 34 31 20 20 20 03 31 33 0D 0A  	.99541   .13.. 	
    36 	IRP_MJ_READ 	DOWN 	FALSE 	0x0 	
    37 	IRP_MJ_READ
    
    
    
    
    


    wie und was muss ich mit C Sharp zum Gerät verschicken damit der obrige Code dort angelangt ??

    Danke im Vorraus!!

  • #2
    Also ich bin zwar nicht der Profi in Sachen ansprechen von Comport's, nutze aber in einer Applikation einen um Daten die von einen Transponderlese Gerät stammen auszulesen. Dafür nutze ich einfach ein System.IO.Ports.SerialPort Objekt. Von dem ich dann mit
    Code:
    this.comport.ReadLine()
    mir die Daten hole.

    Ich hab es zwar noch nicht versucht aber mit der
    Code:
    this.comport.WriteLine()
    Methode müsstest du deinem Gerät auch Daten schicken können.

    Hoffe dass dir das einen Denkanstoß gibt.....

    mfg

    cArrow25

    Comment


    • #3
      Danke,
      hab einen Write Befehl entdeckt womit man das gerät ansprechen kann.

      Comment

      Working...
      X