Arduino Android USB-seriell kommunikation med OTG kabel (9 / 11 steg)
Steg 9: Lägga till koder i UI-element
Jag har bifogat komplett java fil Serial_monitor.java först ladda ner det och jämföra det med dessa små kod segment.
Först skapar vi har alla våra UI-element och bibliotek variabler
Knappen btOpen, btClose, btWrite;
EditText etWrite;
TextView tvRead;
Spinner spBaud;
Kryssrutan cbAutoscroll;
Physicaloid mPhysicaloid; initiera bibliotek
Nästa, i onCreate metod kan vi initiera dessa variabler har vi skapat
btOpen = (knappen) findViewById(R.id.btOpen);
btClose = (knappen) findViewById(R.id.btClose);
btWrite = (knappen) findViewById(R.id.btWrite);
etWrite = (EditText) findViewById(R.id.etWrite);
tvRead = (TextView) findViewById(R.id.tvRead);
spBaud = (Spinner) findViewById(R.id.spBaud);
cbAutoscroll = (CheckBox)findViewById(R.id.autoscroll);
mPhysicaloid = ny Physicaloid(this); ställa in ramen för biblioteket
nu vi kan visa krävs UI element på skärmen, ringer jag en metod för att göra detta
Att metoden tar booleska argument som anger väder app är ansluten till Arduino eller inte
setEnabledUi(false); inte ansluten till Arduino så falskt
setEnabledUi metoden att ställa in UI-element på skärmen
privata void setEnabledUi (boolean på) {
IF(on) {/ / om ansluten till enheten
btOpen.setEnabled(false); dölja knappen Öppna (redan öppnat)
spBaud.setEnabled(false); dölja baudvärde selector
cbAutoscroll.setEnabled(false); dölja autoscroll
btClose.setEnabled(true); Visa knappen Stäng
btWrite.setEnabled(true); Visa skicka-knappen
etWrite.setEnabled(true); Visa edittext fält
} annat {/ / om inte är ansluten till enheten
btOpen.setEnabled(true); Visa öppna knappen
spBaud.setEnabled(true); Visa baudvärde selector
cbAutoscroll.setEnabled(true); Visa autoscroll
btClose.setEnabled(false); dölja knappen Stäng (redan stängt)
btWrite.setEnabled(false); Dölj skicka-knappen
etWrite.setEnabled(false); dölja edittext fält
}
}
Nu vi visas allt som behövs, kan nu vi lägga åtgärder till våra knappar.
lyssnaren metod för öppna knappen, i denna metod vi täcker baudvärde Anger, autoscroll alternativet och ansluta till enheten.
public void onClickOpen (Visa v) {
Ange baudvärde baserat på spinner
String baudtext = spBaud.getSelectedItem().toString(); Hämta text från spinner
switch-sats att kontrollera baudhastighet
växel (baudtext) {
fallet "300 baud":
mPhysicaloid.setBaudrate(300);
bryta;
fallet "1200 baud":
mPhysicaloid.setBaudrate(1200);
bryta;
fallet "2400 baud":
mPhysicaloid.setBaudrate(2400);
bryta;
fallet "4800 baud":
mPhysicaloid.setBaudrate(4800);
bryta;
fallet "9600 baud":
mPhysicaloid.setBaudrate(9600);
bryta;
fallet "19200 baud":
mPhysicaloid.setBaudrate(19200);
bryta;
fallet "38400 baud":
mPhysicaloid.setBaudrate(38400);
bryta;
fallet "576600 baud":
mPhysicaloid.setBaudrate(576600);
bryta;
fallet "744880 baud":
mPhysicaloid.setBaudrate(744880);
bryta;
fallet "115200 baud":
mPhysicaloid.setBaudrate(115200);
bryta;
fallet "230400 baud":
mPhysicaloid.setBaudrate(230400);
bryta;
fallet "250000 baud":
mPhysicaloid.setBaudrate(250000);
bryta;
standard: / / standard är 9600
mPhysicaloid.setBaudrate(9600);
}
IF(mPhysicaloid.Open()) {/ / försöker att ansluta till enheten och om enheten är ansluten
setEnabledUi(true);
IF(cbAutoscroll.isChecked()) {/ / om automatisk rullning valdes
tvRead.setMovementMethod (nya ScrollingMovementMethod());
}
Läs lyssnare, när nya data tas emot från Arduino lägga till textvy
mPhysicaloid.addReadListener (nya ReadLisener() {
public void påLäs (int storlek) {
byte [] buf = nya byte [storlek];
mPhysicaloid.read (buf, storlek);
tvAppend (tvRead, Html.fromHtml ("< font color = blue >" + nya String(buf) + "</fon t >")); lägga till data till text viiew
}
});
} annat {
Fel vid anslutning
Toast.makeText (detta, "Kan inte öppna", Toast.LENGTH_LONG).show();
}
}
tvAppend metod att skriva mottagna data till Textview
Handler mHandler = ny Handler();
privata void tvAppend (TextView-tv, CharSequence text) {
slutliga TextView ftv = tv.
sista CharSequence ftext = text;
mHandler.post (nya Runnable() {
public void run() {
FTV.append(ftext); lägga till text i textvy
}
});
}
Avlyssnare för knappen Stäng
public void onClickClose (Visa v) {//when Stäng-knappen trycks
IF(mPhysicaloid.Close()) {//close anslutningen till arduino
mPhysicaloid.clearReadListener(); Avmarkera Läs lyssnaren
setEnabledUi(false); ställa in UI följaktligen
}
}
Listeener för skicka-knappen
public void onClickWrite (Visa v) {/ / när Skicka knapp är prressed
String str = etWrite.getText () .toString () + "\r\n"; få text från EditText
IF(Str.length() > 0) {
byte [] buf = str.getBytes(); konvertera sträng till byte-array
mPhysicaloid.write (buf, buf.length); skriva data till arduino
}
}
Det är allt allt är klar bara Anslut telefonen och köra programmet bör installera och öppna.