2016-07-18 10 views
0

Ich bin ein Neuling mit Chipkartenlesern. Ich habe ein ACR1252u gekauft und bin bei der Deaktivierung des Summers und der LED stecken geblieben. Ich habe diesen Code versucht: https://the--semicolon.blogspot.it/p/this-is-simple-way-to-restart-your.html?showComment=1468833507200Wie können wir den Smartcard-Lesersummer ausschalten?

public void turnOffBuzzer() 
     { 
       retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_SHARED, Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol); 
       byte data= 0x00 ; 
       byte[] control = new byte[] { 0xE0, 0x00, 0x00, 0x28, 0x01 }; 
       uint value = BitConverter.ToUInt32(control, 0); 
       byte receivedBytes = new byte(); 
       int pcbBytesReturned = 0; 
       long status = Card.SCardControl(hCard, value, ref data, 1,ref receivedBytes , 1, ref pcbBytesReturned); 
       MessageBox.Show(status.ToString()); 
     } 

aber Status gibt mir 1 nicht 0

Antwort

0

Umm Ich habe herausgefunden, wie seine Arbeits!

Für den Summer ausschalten:

retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_SHARED, 
        Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol); 

      Byte[] setBuzzerLoud = new Byte[6]; 
      setBuzzerLoud[0] = 0xE0; 
      setBuzzerLoud[1] = 0x00; 
      setBuzzerLoud[2] = 0x00; 
      setBuzzerLoud[3] = 0x21; 
      setBuzzerLoud[4] = 0x01; 
      setBuzzerLoud[5] = 0x77; 
      uint pcBytesReturned = 0; 
      Byte[] RecieveBuff = new Byte[64]; 
      uint controlcode = 3225264; 
      int status = Card.SCardControl(hCard, controlcode, ref setBuzzerLoud[0], 6, ref RecieveBuff[0], RecieveBuff.Length, ref pcBytesReturned); 

      MessageBox.Show(status.ToString()); 

für die LED ausgeschaltet:

retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_SHARED, 
       Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol); 

      Byte[] setLEDOFF = new Byte[6]; 
      setLEDOFF[0] = 0xE0; 
      setLEDOFF[1] = 0x00; 
      setLEDOFF[2] = 0x00; 
      setLEDOFF[3] = 0x21; 
      setLEDOFF[4] = 0x01; 
      setLEDOFF[5] = 0x79; 
      uint pcBytesReturned = 0; 
      Byte[] RecieveBuff = new Byte[64]; 
      uint controlcode = 3225264; 
      int status = Card.SCardControl(hCard, controlcode, ref setLEDOFF[0], 6, ref RecieveBuff[0], RecieveBuff.Length, ref pcBytesReturned); 

      MessageBox.Show(status.ToString()); 

Für die RF Ausschalten:

retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_SHARED, 
      Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol); 

      Byte[] setRFOff = new Byte[6]; 
      setRFOff[0] = 0xE0; 
      setRFOff[1] = 0x00; 
      setRFOff[2] = 0x00; 
      setRFOff[3] = 0x23; 
      setRFOff[4] = 0x01; 
      setRFOff[5] = 0x80; 
      uint pcBytesReturned = 0; 
      Byte[] RecieveBuff = new Byte[64]; 
      uint controlcode = 3225264; 
      int status = Card.SCardControl(hCard, controlcode, ref setRFOff[0], 6, ref RecieveBuff[0], RecieveBuff.Length, ref pcBytesReturned); 

      MessageBox.Show(status.ToString()); 

Das Interessante daran ist der Steuercode wo ich den C++ Code debugged habe, der in der Verbindung erwähnt wird, um sie für diesen Chipkartenleser zu finden:

DWORD controlcode = SCARD_CTL_CODE(3500); 

Der Escape-Code wurde auf Seite 41/77 geschrieben.

SCARD_CTL_CODE (3500)

Das einzige Problem ist, wie die Einstellungen ohne die rfid auf dem Kartenleser auszuschalten. Ich habe auch einen Artikel gefunden, der über das Ändern einiger Registrierungsschlüssel in den usb-Parametern spricht, die ich es auch versuchen werde. Jeder, der mir dabei helfen kann, würde mich auch freuen.

Fertig! Genießen Sie

Verwandte Themen