Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[ASK-JAVA] komunikasi serial - read write

salam kenal master2 java...

saya mau melakukan komunikasi dengan serial port. pengiriman data dilakukan dengan bbrp step.
1. kirim data 181 [dec], jika dijawab b5 [hex]. maka ke step 2. jika gagal ulangi dari step 1.
2. kirim data 171 [dec], jika dijawab ab [hex]. maka ke step 3. jika gagal ulangi dari step 1.
3. kirim data 00 [dec], jika dijawab 00 [hex]. maka ke step 4. jika gagal ulangi dari step 1.
4. kirim data 10 [dec], jika dijawab 0a [hex]. maka ke step 5. jika gagal ulangi dari step 1.
5. kirim data ff,ff,ff,ff,00,00,00,00

kalau proses pengiriman data melalui serial port, bisa kah dilakukan berulang2 menggunakan pengulangan FOR spt dibawah ini ...?

int iLF;
int LF [] = new int [300];

public void Proses_1() throws IOException {
for (iLF = 0; iLF < 4; iLF++){
output.write(LF[iLF]);
output.flush();
System.out.println("get : " + window.txtBlackBoxData.getText() + Integer.toHexString(LF[iLF]) );

count_0To3 = window.txtBlackBoxData.getText();

if (count_0To3 == null)
No_Echo();
else
for (iLF = 4; iLF < 14 ; iLF++){
output.write(LF[iLF]);
output.flush();
}
}
}

ini untuk menangkap feedback

public void serialEvent(SerialPortEvent event) {
    switch (event.getEventType()) {
        case SerialPortEvent.BI:
        case SerialPortEvent.OE:
        case SerialPortEvent.FE:
        case SerialPortEvent.PE:
        case SerialPortEvent.CD:
        case SerialPortEvent.CTS:   //Clear to send.
        case SerialPortEvent.DSR:   //Data set ready.
        case SerialPortEvent.RI:
        case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
            break;
        case SerialPortEvent.DATA_AVAILABLE:
        byte[] readBuffer = new byte[1];

            try {
                while (input.available() > 0) {
                int numBytes = input.read(readBuffer);

                //Convert a byte array to a Hex string
                for (int R = 0; R < readBuffer.length; R++) {
                   
                    String HexPrint = Integer.toString(
                        (readBuffer[R] & 0xff) + 0x100, 16).substring(1);
                    window.txtBoxData.append(HexPrint);
                    System.out.println("# # # # #");
                    System.out.println("Hex :  " + HexPrint);
                   }                
                }
                System.out.print(new String(readBuffer));   
            }
            catch (IOException e) {
                System.out.println(e);
            }
        break;
    }
}

mohon pencerahannya master2, terima kasih :)



Tanggapan

  • apa pertanyaan saya sulit utk dimengerti...?
    yg paham, share donk ilmunya. kasih clue dan pencerahannya donk :)
  • edited May 2013
    ndak paham komunikasi serial, dan kagak pernah koding java juga :D
    kalo C/C++ , pascal , delphi ... pernah ... tapi penerapannya beda dengan java
    soalnya langsung pake IN / OUT assembly

    kemungkinan yg pernah newuser atau admin ... soalnya mereka yg lebih ngerti java
    tapi kayanya lagi pada sibuk ama kerjaan ... :D
  • ooo begitu, btw makasih atas comment-nya mas :)

    #sambil menunggu comment2 dari master2 java lainnya :D
Sign In or Register to comment.