2016-12-26 43 views
0

在一个项目中,一个NOIR pi相机并通过java和eclipse工作。当相机开始预览时需要打开IR-LED。所以在新班级中使用pi4j来打开和关闭LED。但是当在相机面板的源代码中将其称为pi4j类时,则相机未启动。这是什么问题raspbbery pi pi4j无法通过v4l2(相机驱动程序)

pi4j类:

import com.pi4j.io.gpio.*; 

public class gpio_prg { 

     private static GpioPinDigitalOutput pin; 
     private GpioController gpio; 

    public void out(int bcmn, boolean state){ 
     System.out.println("gpio controler"); 
       gpio = GpioFactory.getInstance(); 
     if(bcmn == 29){ 
         if(state){ 
          System.out.println("gpio pin"); 
          pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, "MyLED", PinState.HIGH); 
           pin.setShutdownOptions(true, PinState.LOW); 
           System.out.println("--> GPIO NOIR LED state should be: ON"); 
         }else{ 
           pin.low(); 
           System.out.println("--> GPIO NOIR LED state should be: OFF"); 
         } 
       } 
     } 

错误:

wiringPiSetup: Must be root. (Did you forget sudo?) 

回答

0

问题与Python源解决:

改变Java类:

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class gpio_prg { 
    public void out() throws IOException, InterruptedException{ 
     String command = "python /home/pi/noirLedControl.py"; 
     Process proc = Runtime.getRuntime().exec(command); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
     System.out.print("led status = "); 
     System.out.println(reader.readLine()); 
     proc.waitFor(); 
     } 
} 

noirLedControl.py

import RPi.GPIO as GPIO 

f = open('ledstatus', 'r') 
s = 3 
s = f.read() 
f.close() 
GPIO.setwarnings(False) 
GPIO.setmode(GPIO.BCM) 
GPIO.setup(21, GPIO.OUT) 
if(s == '0'): 
    GPIO.output(21, GPIO.LOW) 
    print "off" 
    s = 1 
else: 
    GPIO.output(21, GPIO.HIGH) 
    print "on" 
    s = 0 

f = open('ledstatus', 'w') 
f.write(str(s)) 
f.close() 

所以现在的问题是关于Java类的回报reader.readline()空。并导致开机和关机无效,但目前在终端运行python /home/pi/noirLedControl.py。 我的java库版本是“1.8.0_122-ea”,所以我通过两个java SE 1.8和1.7运行我的项目,问题没有解决。和os是debian 8 每个人都知道什么是问题?

相关问题