1

我正在尝试编程一种dmx controller,因此我得到了一个RaspberryPi,现在我想编写一个程序来控制一个 GPIO pi4j。这个想法是询问应该作为输出的 GPIO,将其保存在 int 中并重用它来告诉pi4j我希望哪个 GPIO 成为输出。

抱歉代码不好:)

我是一个母语为德语的人,所以println都是德语。

System.out.println("GPIO des DMX Outputs :");

BufferedReader br_dmx_out = new BufferedReader(new InputStreamReader(System.in));

int dmx_out = Integer.parseInt(br_dmx_out.readLine());

System.out.println("Der DMX Output GPIO ist also GPIO " + dmx_out);         

// GPIO Controll

String predef = ""+dmx_out;
/*
String def = MessageFormat.format("RaspiPin.GPIO_0{0}",predef);
System.out.println(def);
*/
Pin pin_dmx = "RaspiPin.GPIO_0"+ predef;

GpioController gpio = GpioFactory.getInstance();

GpioPinDigitalOutput dmx_output = gpio.provisionDigitalOutputPin(pin_dmx);

通常你的代码:

GpioPinDigitalOutput dmx_output = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01);

Java 说:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from String to Pin

    at test.main(test.java:44)

我也试过了switch/case,但这也不会

GpioController gpio = GpioFactory.getInstance();

switch(dmx_out)
{
case 2:
    GpioPinDigitalOutput dmx_output = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_02);
    break;

Java的错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    Duplicate local variable dmx_output
    dmx_output cannot be resolved
    dmx_output cannot be resolved

    at test.main(test.java:59)
4

1 回答 1

0

您正在尝试将字符串分配给 Pin 接口。

https://pi4j.com/1.2/apidocs/com/pi4j/io/gpio/Pin.html

要获得它的实现,您可能需要调用PinImpl的构造函数,如下例所示:

https://github.com/Pi4J/pi4j/blob/master/pi4j-gpio-extension/src/main/java/com/pi4j/gpio/extension/mcp/MCP3204Pin.java

于 2019-07-17T08:25:13.590 回答