Отправить массив байтов на последовательный порт в поток вывода

когда я хочу отправить массив байтов в поток последовательного порта с помощью java, на целевом устройстве я получаю другой результат!!!

byte[] sendingPack = new byte[7];
    sendingPack[0] = 0x6E;
    sendingPack[1] = 0x55;
    sendingPack[2] = (byte) 0x0D;
    sendingPack[3] = (byte) (1 & 0x000000FF);
    sendingPack[4] = 0x01;
    sendingPack[5] = 0x0D; 
    sendingPack[6] = (byte) 0xAA;

    getSendBuffer().getOutputStream().write(sendingPack);

sending array : byte[]{0x6E,0x55,0x0D,0x01,0x01,0x0D,0xAA} 
receive result array : 6E 55 0D 0A 01 01 0D 0A AA 

на терминале CodeVisionAVR я получаю "0A"!! Как я могу решить эту проблему??


person Saeed Hashemi    schedule 17.01.2016    source источник
comment
@Действительно так же, как это 110 85 13 10 1 1 13 10 -86   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps Я не могу отправить шестнадцатеричный код в выходной поток   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps на самом деле я поставил все в шестнадцатеричном формате, после того как результат отправки устройства изменился   -  person Saeed Hashemi    schedule 17.01.2016
comment
Давайте продолжим обсуждение в чате.   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps Я отправляю 6E 55 0D 01 01 0D AA и результат 6E 55 0D 0A 01 01 0D 0A AA   -  person Saeed Hashemi    schedule 17.01.2016
comment
Кто находится на принимающей стороне? Как он читает байты? Дайте больше информации в своем посте.   -  person greenapps    schedule 17.01.2016
comment
@greenapps с терминалом на CodeVisionAVR   -  person Saeed Hashemi    schedule 17.01.2016
comment
have 0A plussage. Пожалуйста, опишите, что происходит лучше. Вы позволяете нам отлаживать слишком много. Вы могли бы гораздо лучше сказать, что происходит и где.   -  person greenapps    schedule 17.01.2016
comment
@greenapps, когда я отправляю 6E 55 0D 01 01 0D AA, должен ли я получать 6E 55 0D 01 01 0D AA, а не 6E 55 0D 0A 01 01 0D 0A AA   -  person Saeed Hashemi    schedule 17.01.2016


Ответы (1)


Терминал, вероятно, находится в режиме чтения текста, а не в режиме двоичного чтения.

0x0A, который вставляется после каждого отправляемого вами 0x0D, представляет собой преобразование возврата каретки.

Терминал преобразует "\r" в "\r\n". Он добавляет символ перевода строки к каждому возврату каретки.

Терминал преобразует каждый 0D в 0D 0A.

Этот же feature можно найти в протоколе ftp. Вы сообщаете своему клиенту, как передавать файлы: в текстовом или бинарном режиме.

person greenapps    schedule 17.01.2016