Kirim array byte pada aliran keluaran port serial

ketika saya ingin mengirim array byte pada aliran port serial dengan Java, pada perangkat tujuan saya menerima hasil yang berbeda !!!

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 

di terminal CodeVisionAVR saya menerima "0A"!! bagaimana saya bisa mengatasi masalah ini??


person Saeed Hashemi    schedule 17.01.2016    source sumber
comment
@Memang sama seperti ini 110 85 13 10 1 1 13 10 -86   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps Saya tidak bisa mengirim heksadesimal dalam aliran keluar   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps sebenarnya saya memasukkan semua dalam heksadesimal, setelah hasil pengiriman perangkat berubah   -  person Saeed Hashemi    schedule 17.01.2016
comment
Mari kita melanjutkan diskusi ini dalam chat.   -  person Saeed Hashemi    schedule 17.01.2016
comment
@greenapps saya kirim 6E 55 0D 01 01 0D AA dan hasilnya 6E 55 0D 0A 01 01 0D 0A AA   -  person Saeed Hashemi    schedule 17.01.2016
comment
Siapa yang berada di pihak penerima? Bagaimana cara membaca byte? Berikan info lebih lanjut di postingan Anda.   -  person greenapps    schedule 17.01.2016
comment
@greenapps sedikit pun terminal di CodeVisionAVR   -  person Saeed Hashemi    schedule 17.01.2016
comment
have 0A plussage. Tolong jelaskan apa yang terjadi dengan lebih baik. Anda membiarkan kami melakukan debug terlalu banyak. Anda bisa mengetahui dengan lebih baik apa yang terjadi dan di mana.   -  person greenapps    schedule 17.01.2016
comment
@greenapps ketika saya mengirim 6E 55 0D 01 01 0D AA, haruskah saya menerima 6E 55 0D 01 01 0D AA dan bukan 6E 55 0D 0A 01 01 0D 0A AA   -  person Saeed Hashemi    schedule 17.01.2016


Jawaban (1)


Terminal mungkin dalam mode membaca teks dan bukan dalam mode membaca biner.

0x0A yang dimasukkan setelah setiap 0x0D yang Anda kirim adalah konversi pengangkutan kembali.

Terminal mengubah "\r" menjadi "\r\n". Itu menambahkan karakter umpan baris ke setiap pengangkutan kembali.

Terminal mengubah setiap 0D menjadi 0D 0A.

feature yang sama ini dapat ditemukan di protokol ftp. Anda memberi tahu klien Anda cara mentransfer file: dalam mode teks atau biner.

person greenapps    schedule 17.01.2016