Paso 3: Código de ejemplo
A continuación se muestra el código de clase de control GPIO:paquete com.test;
importación java.io.BufferedReader;
Import java.io.File;
Import java.io.FileReader;
Import java.io.FileWriter;
importación java.io.IOException;
clase GPIO_Pin {}
privado String modeURI = "/ sys/dispositivos/virtual/misc/gpio/mode /";
privado statusURI de cadena = "/ sys/dispositivos/virtual/misc/gpio/pin /";
int privados pin = 0;
público estático final cadena alta = "1", bajo = "0", entrada = "0", salida = "1", INPUT_PU = "8";
público GPIO_Pin (int pin) {}
modeURI += "gpio" + pin;
statusURI += "gpio" + pin;
this.pin = pin;
}
público GPIO_Pin (pin de cadena) {}
Finalizar las rutas del archivo
modeURI += "gpio" + pin;
statusURI += "gpio" + pin;
this.pin = Integer.parseInt(pin);
}
público int getPin() {}
volver el perno;
}
público void overrideURI (String uri) {}
modeURI = "modo/gpio", uri + pin;
statusURI = uri, "pin/gpio" + pin;
}
público void setMode (modo cadena) {}
writeToFile(getModeURI(), modo);
}
público conjunto vacío (estado de la cadena) {}
writeToFile(getStatusURI(), estado);
}
público void setHIGH() {}
writeToFile(getStatusURI(), HIGH);
}
público void setLOW() {}
writeToFile(getStatusURI(), baja);
}
público void setModeINPUT() {}
writeToFile(getModeURI(), entrada);
}
público void setModeOUTPUT() {}
writeToFile(getModeURI(), salida);
}
público void setModeINPUT_PU() {}
writeToFile(getModeURI(), INPUT_PU);
}
público String getModeURI() {
volver modeURI;
}
público String getStatusURI() {
volver statusURI;
}
público String getPinMode() {
trate de {}
BufferedReader lector = new BufferedReader (new FileReader(getModeURI()));
String datos = reader.readLine();
Reader.Close();
devolver datos;
} catch (IOException e) {}
}
volver "";
}
público String getPinStatus() {
trate de {}
BufferedReader lector = new BufferedReader (new FileReader(getStatusURI()));
String datos = reader.readLine();
Reader.Close();
devolver datos;
} catch (IOException e) {}
}
volver "";
}
{} privado void writeToFile (URI de la cadena, cadena de datos)
trate de {}
Archivo = new File(URI);
File.Delete();
Archivo Archivo_nuevo = new File(URI);
newFile.createNewFile();
FileWriter escritor = new FileWriter(URI);
Writer.Write(Data);
Writer.Close();
} catch (IOException e) {}
e.printStackTrace();
}
}
}
Código de prueba:
paquete com.test;
clase pública {prueba}
el principal vacío estático público (String [] args) lanza InterruptedException {}
GPIO_Pin ledpin = nuevo GPIO_Pin(8);
GPIO_Pin buttenpin = new GPIO_Pin(9);
ledpin.setModeOUTPUT();
buttenpin.setModeINPUT();
mientras que (verdad) {}
if("1".Equals(buttenpin.getPinStatus()))
ledpin.setHIGH();
otra cosa
ledpin.setLOW();
Thread.Sleep(4);
}
}
}