Använda knappen för att kontrollera LED på pcDuino med Java (3 / 5 steg)
Steg 3: Exempelkod
Exempelkoden GPIO kontroll klass visas nedan:paketet com.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
allmän klass GPIO_Pin {
privata sträng modeURI = "/ sys/enheter/virtuella/misc/gpio/mode /";
privata sträng statusURI = "/ sys/enheter/virtuella/misc/gpio/stift /";
privata int pin = 0;
offentliga statisk sista sträng hög = "1", låg = "0", INPUT = "0", OUTPUT = "1", INPUT_PU = "8".
offentliga GPIO_Pin (int pin) {
modeURI += "gpio" + stift;
statusURI += "gpio" + stift;
This.PIN = pin;
}
offentliga GPIO_Pin (String pin) {
Slutföra sökvägar
modeURI += "gpio" + stift;
statusURI += "gpio" + stift;
This.PIN = Integer.parseInt(pin);
}
Public int getPin() {
returnera pin;
}
public void overrideURI (String uri) {
modeURI = uri + "-läge/gpio" + pin;
statusURI = "pin/gpio" uri + pin;
}
public void setMode (String läge) {
writeToFile(getModeURI(), -läge);
}
public void set (sträng statlig) {
writeToFile(getStatusURI(), statligt);
}
public void setHIGH() {
writeToFile(getStatusURI(), hög);
}
public void setLOW() {
writeToFile(getStatusURI(), låg);
}
public void setModeINPUT() {
writeToFile(getModeURI(), ingång);
}
public void setModeOUTPUT() {
writeToFile(getModeURI(), utgång);
}
public void setModeINPUT_PU() {
writeToFile(getModeURI(), INPUT_PU);
}
offentliga sträng getModeURI() {
återvända modeURI;
}
offentliga sträng getStatusURI() {
återvända statusURI;
}
offentliga sträng getPinMode() {
försök {
BufferedReader läsare = nya BufferedReader (nya FileReader(getModeURI()));
Sträng data = reader.readLine();
Reader.Close();
returnera data;
} fånga (IOException e) {
}
gå tillbaka "";
}
offentliga sträng getPinStatus() {
försök {
BufferedReader läsare = nya BufferedReader (nya FileReader(getStatusURI()));
Sträng data = reader.readLine();
Reader.Close();
returnera data;
} fånga (IOException e) {
}
gå tillbaka "";
}
privata void writeToFile (String URI, strängdata) {
försök {
Fil = nya File(URI);
File.Delete();
Fil newFile = nya File(URI);
newFile.createNewFile();
FileWriter författare = nya FileWriter(URI);
Writer.write(data);
Writer.Close();
} fånga (IOException e) {
e.printStackTrace();
}
}
}
Provningsmetod:
paketet com.test;
allmän klass Test {
offentliga statisk void main (String [] args) kastar InterruptedException {
GPIO_Pin ledpin = ny GPIO_Pin(8);
GPIO_Pin buttenpin = ny GPIO_Pin(9);
ledpin.setModeOUTPUT();
buttenpin.setModeINPUT();
medan (sant) {
IF("1".equals(buttenpin.getPinStatus()))
ledpin.setHIGH();
annat
ledpin.setLOW();
Thread.Sleep(4);
}
}
}