Bir RC522 okuyucusundan bazı RFID kartlarının UID'sini almak için bir Raspberry Pi kullanıyorum. Çalıştığım python betiği: https://github.com/mxgxw/MFRC522-pythonJava - Python komut dosyasını çalıştırın ve sürekli çıkışı izleyin
Çeşitli nedenlerden dolayı, bu kimlikleri Java'da işlemek zorundayım.
En uygun çözüm, python betiğini çalıştırmak ve sonuçta Java'ya okumaktır. Sorun, Python kodunun sürekli çıktısını, , yani vermesini, kartın kimliğini okuyucuya takıldığı zaman kartın kimliğine basacak ve sadece bir kullanıcının komutunda sona erecektir.
daha uygundur gibi programı çalıştırmak ve ben aday değil eğer tabii boş olan Java (anında sonuç geri okumayı Şu anda, senaryoyu yürütmek için bir ProcessBuilder kullanıyorum ancak öyle görünüyor okuyucuya bir kart). Ben sürekli işlemini başlatmak için bir süre (doğru) döngü kodu uygulamadan denedim - ama bu işe yaramazsa:
import java.io.*;
public class PythonCaller {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// set up the command and parameter
String pythonScriptPath = "/home/pi/MFRC522-python/Read.py";
String[] cmd = new String[3];
cmd[0] = "sudo";
cmd[1] = "python"; // check version of installed python: python -V
cmd[2] = pythonScriptPath;
// create runtime to execute external command
ProcessBuilder pb = new ProcessBuilder(cmd);
// retrieve output from python script
pb.redirectError();
while(true){
Process p = pb.start();
System.out.println("Process Started...");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
int ret = new Integer(in.readLine()).intValue();
System.out.println("value is : "+ret);
}
}
}
konsol penceresinde çıktı boştur - hayır atılan istisnalar veya println en.
Her türlü yardım büyük bir takdirle karşılanacaktır!
Teşekkür
DÜZENLEME - Ben atılan hiç bir şey varsa görmek için bir try/catch kodumu çevrili ettik ve
Merhaba, yardımlarınız için şimdiye kadar teşekkürler! Çözümünüzü çoğaltdım ve test.py için mükemmel bir şekilde çalışıyor - gerçek programla değiştirilmeye devam etmek, yine de "Proses Başla ..." dışında bir şey göstermiyor ..... Çünkü komut satırından Read.py komutunu çalıştırırsanız sorun çıkarmadan istediğiniz çıktıyı üretir ...... – MWoot
Hayal kırıklığına uğramış bir çözüm yolladım ama cevabınızı kaldırıyorum çünkü bu bana hala çok yararlı ipuçları veriyor, teşekkürler! – MWoot