2010-06-15 12 views

risposta

3
byte[] buffer = new byte[1]; 
buffer[0] = 26; // ^Z 
modemPort.Write(buffer, offset:0, count:1); 
6

È possibile incorporare qualsiasi carattere Unicode con il \u fuga:

"this ends with ctrl-z \u001A" 
1

Quando si inviano caratteri a un dispositivo, è necessaria la traduzione dalla rappresentazione di stringa interna. Questo è noto come Encoding - un encoder traduce la stringa in una matrice di byte.

Consultando la Unicode Character Name Index, troviamo il personaggio SUBSTITUTE - 0x001A nella sezione C0 Controls and Basic Latin (ASCII punteggiatura). Per aggiungere uno CTRL-Z a una stringa interna C#, aggiungere un codice unicode character escape sequence (\u001a).

String ctrlz = "\u001a"; 
String atcmd = "AT C5\u001a"; 

Qualunque codifica utilizzata per traduzione prima uscita al dispositivo (ad esempio output utilizzando StringWriter), tradurrà questo in ASCII Ctrl-Z.

2

E 'chiaro da altre risposte che Ctrl + Z ha codice ASCII 26; in generale le combinazioni Ctrl + [lettera] hanno il codice ASCII uguale a 1+ [lettera] - 'A' cioè Ctrl + A ha codice ASCII 1 (\ x01 o \ u0001), Ctrl + B ha codice ASCII 2, ecc.

Problemi correlati