2015-02-18 3 views
0

Мне нужно, чтобы байты управляющего символа STX (02h) добавлялись к потоку, который мне нужно отправить на плату контроллера.Как получить байты управляющего символа в Java

Как получить байты управляющего символа STX в Java?

+1

бы это сообщение помочь вам? http://stackoverflow.com/questions/5513144/converting-char-to-byte –

+0

STX - это один символ в ASCII, не представленный буквальным «STX». –

ответ

2

Байт управляющего символа зависит от кодировки, используемой на плате контроллера. Для ASCII:

new String("\u0002").getBytes(StandardCharsets.US_ASCII); 

Обратите внимание, что если вы пишете символы в выходной поток, вы должны обернуть его с Writer, который сконфигурирован с правильной кодировкой:

OutputStream controllerOutputStream; 
Charset controllerCharset = StandardCharsets.US_ASCII; // probably ASCII 
Writer controllerWriter = new OutputStreamWriter(controllerOutputStream, controllerCharset); 

controllerWriter.append('\u0002'); // append a single character 
+0

Это может работать или не работать в зависимости от используемой по умолчанию кодировки вашей платформы и используется ли плата контроллера. – RealSkeptic

+0

Во-первых, это 'getBytes()', а не 'toBytes()'. Во-вторых, не в 'utf-16'. – RealSkeptic

+0

@AdrianLeonhard - Это сработало - THANX !!! На плате используются стандартные символы ASCII. –