-
Notifications
You must be signed in to change notification settings - Fork 0
/
LoRaAlıcı.java
87 lines (72 loc) · 2.66 KB
/
LoRaAlıcı.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.volans.volansyeristasyonu;
import com.fazecast.jSerialComm.SerialPort;
import java.io.OutputStream;
public class LoRaAlıcı {
private SerialPort serialPort;
public LoRaAlıcı(String portAdi) {
serialPort = SerialPort.getCommPort(portAdi);
serialPort.setBaudRate(9600);
serialPort.setNumDataBits(8);
serialPort.setNumStopBits(1);
serialPort.setParity(SerialPort.NO_PARITY);
//port açma
if (serialPort.openPort()) {
System.out.println("Port başarıyla açıldı.");
} else {
System.err.println("Port açılamadı.");
}
}
// Modülü alıcı moduna ayarlar
public void alıcıModunaGec() {
if (serialPort.isOpen()) {
KomutGönder("AT+MODE=RX\r\n");
bekle(1000);
} else {
System.err.println("Port açık değil. Alıcı moduna geçilemiyor.");
}
}
// Belirli bir süre bekler
private void bekle(int milisaniye) {
try {
Thread.sleep(milisaniye);
} catch (InterruptedException kesintiHatasi) { //bir thread uykudayken başka therad tarafından kesintiye uğraması hatası
kesintiHatasi.printStackTrace();
}
}
// porta komut gönderir
private void KomutGönder(String komut) {
try {
OutputStream portCikisi = serialPort.getOutputStream();//seri porttan çıkış akışını alır.
portCikisi.write(komut.getBytes());
portCikisi.flush();
} catch (Exception hata) {
hata.printStackTrace();
}
}
// Gelen verileri okur
public void gelenVerileriOku() {
if (serialPort.isOpen()) {
byte[] gelenVeri = new byte[serialPort.bytesAvailable()]; //porttan gelen verileri okumk için dizi oluşturur.
serialPort.readBytes(gelenVeri, gelenVeri.length);//gelen verileri okur.
System.out.println("Gelen Veri: " + new String(gelenVeri)); //gelen verileri ekrana yazdırır.
} else {
System.err.println("Port açık değil. Veri okunamıyor.");
}
}
//portu kapatır
public void kapat() {
if (serialPort != null && serialPort.isOpen()) {
serialPort.closePort();
System.out.println("Port başarıyla kapatıldı.");
}
}
public static void main(String[] args) {
LoRaAlıcı loraAlıcı = new LoRaAlıcı(/*port adı*/);
// Alıcı moduna geç
loraAlıcı.alıcıModunaGec();
// Gelen verileri oku
loraAlıcı.gelenVerileriOku();
// İşlem bittikten sonra seri portu kapat
loraAlıcı.kapat();
}
}