2010-06-15 47 views

Respuesta

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

puede incrustar cualquier carácter Unicode con el \u de escape:

"this ends with ctrl-z \u001A" 
1

Al enviar caracteres a un dispositivo, se necesita traducción de la representación de cadena interna. Esto se conoce como Encoding - un codificador traduce la cadena en una matriz de bytes.

Consultando el Unicode Character Name Index, encontramos el carácter SUBSTITUTE - 0x001A en la sección C0 Controls and Basic Latin (Puntuación ASCII). Para agregar un CTRL-Z a una cadena interna de C#, agregue un código unicode character escape sequence (\u001a).

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

Cualquier codificación utilizada para la traducción antes de la salida al dispositivo (por ejemplo salida utilizando StringWriter), se traducirá esta a ASCII Ctrl-Z.

2

Está claro por otras respuestas que Ctrl + Z tiene el código ASCII 26; en general, las combinaciones Ctrl + [letra] tienen código ASCII igual a 1+ [letra] - 'A', es decir, Ctrl + A tiene código ASCII 1 (\ x01 o \ u0001), Ctrl + B tiene código ASCII 2, etc.

Cuestiones relacionadas