Tengo un dispositivo al que intento conectar a través de un socket, y de acuerdo con el manual, necesito el "carácter STX de hex 02".Cómo obtengo el carácter STX de hex 02
¿Cómo puedo hacer esto usando C#?
Tengo un dispositivo al que intento conectar a través de un socket, y de acuerdo con el manual, necesito el "carácter STX de hex 02".Cómo obtengo el carácter STX de hex 02
¿Cómo puedo hacer esto usando C#?
Puede utilizar un Unicode carácter de escape: \u0002
convertir el valor Integer
de 2 a un char
:
char cChar = (char)2;
puede incrustar el STX dentro de una cadena de este modo:
byte[] myBytes = System.Text.Encoding.ASCII.GetBytes("\x02Hello, world!");
socket.Send(myBytes);
Solo un comentario a la respuesta de GeoffM (No tengo suficientes puntos para comentar de la manera correcta).
Nunca debe incrustar STX (u otros caracteres) de esa manera con solo dos dígitos.
Si el siguiente carácter (después de "\ x02") era un dígito hexadecimal válido, eso también se analizaría y sería un desastre.
string s1 = "\x02End";
string s2 = "\x02" + "End";
string s3 = "\x0002End";
Aquí, s1 es igual a ".nd", ya 2E es el carácter de punto, mientras que S2 y S3 igual STX + "Fin".
\x02
es el código STX puede comprobar the ASCII Table
checkFinal = checkFinal.Replace("\x02", "End").ToString().Trim();
dentro de una cadena, claramente el Unicode format is best, pero para el uso como un byte, este enfoque funciona:
byte chrSTX = 0x02; // Start of Text
byte chrETX = 0x03; // End of Text
// etc...