Optisk dataoverførsel til en microcontroller - Danmarks Tekniske ...
Optisk dataoverførsel til en microcontroller - Danmarks Tekniske ...
Optisk dataoverførsel til en microcontroller - Danmarks Tekniske ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Applett<strong>en</strong> er inddelt således, at nogle overordnede<br />
paneler indeholder andre paneler. Dette hjælper med <strong>til</strong><br />
at organisere knapper i blokke og blokke i sektioner,<br />
så det er forholdsvist let at rykke rund på grupper af<br />
knapper – eller slå dem <strong>til</strong> og fra som man ønsker.<br />
Applett<strong>en</strong> har <strong>en</strong> Container, hvor i panelerne er placeret<br />
(se illustration 17). Ind<strong>en</strong> i container<strong>en</strong> er placeret to<br />
paneler – én <strong>til</strong> at blinke med data (outputPanel) og én <strong>til</strong><br />
at tage imod input (controlPanel). D<strong>en</strong> første udgøres af<br />
et objekt af DataPanel-klass<strong>en</strong>, og d<strong>en</strong> and<strong>en</strong> indeholder<br />
paneler <strong>til</strong> at styre blinke-signalerne. S<strong>en</strong>ere vil der blive<br />
oprettet et userPanel, hvor bruger<strong>en</strong> kan kommunikere<br />
data <strong>til</strong> wavecardet via et tekstfelt og nogle knapper;<br />
m<strong>en</strong> ind<strong>til</strong> videre er der blot et debugPanel i controlPanel.<br />
debugPanel indeholder yderligere paneler med Swing-kompon<strong>en</strong>ter a la knapper, slidere, tekst-<br />
labels mm. Disse simple kompon<strong>en</strong>ter er placeret i paneler udelukk<strong>en</strong>de for at adskille dem i<br />
grupper. For <strong>en</strong> mere detaljeret g<strong>en</strong>nemgang af brugerinterfacets paneler h<strong>en</strong>vises <strong>til</strong><br />
kildekod<strong>en</strong> for metod<strong>en</strong> createGUI, hvor opsætning<strong>en</strong> af de <strong>en</strong>kelte paneler er inddelt i blokke<br />
af kode for at gør det mere overskueligt.<br />
Bruger<strong>en</strong>s handlinger registreres vha. Action- og ChangeList<strong>en</strong>ers. Her g<strong>en</strong>nemgås d<strong>en</strong><br />
overordnede idé med et eksempel på <strong>en</strong> List<strong>en</strong>er i debugPanel, der er føjet <strong>til</strong> <strong>en</strong> kompon<strong>en</strong>t<br />
som i eksemplet med dutycycleSlider herunder.<br />
periodSlider.addChangeList<strong>en</strong>er ( new ChangeList<strong>en</strong>er() {<br />
public void stateChanged(ChangeEv<strong>en</strong>t e) {<br />
outputPanel.setDutycycle(dutycycleSlider.getValue());<br />
dutycycleValueLabel.setText("ON-time:" + outputPanel.getDutyHigh() +<br />
"ms OFF-time:" + outputPanel.getDutyLow() + "ms");<br />
}<br />
} );<br />
Tabel 6: Handlinger ved ændring af dutycycleSlider.<br />
Til at lytte og reagere på kompon<strong>en</strong>ters hændelser b<strong>en</strong>yttes konstruktioner af anonyme indre<br />
klasser, hvorved implem<strong>en</strong>tering af de krævede metoder jf. d<strong>en</strong> pågæld<strong>en</strong>de List<strong>en</strong>ers<br />
interface undgås. Man bør dog være opmærksom på at de indre klasser ikke ligger inde i<br />
selve d<strong>en</strong> ydre klasse (TestApplication.java), m<strong>en</strong> indlæses hver for sig. Det tager længere tid,<br />
des flere klasser der skal indlæses, hvorfor eksempalvis større brugergrænseflader ikke bør<br />
b<strong>en</strong>ytte sig af d<strong>en</strong>ne metode. I stedet kan man lade d<strong>en</strong> ydre klasse implem<strong>en</strong>tere<br />
ChangeList<strong>en</strong>er, så kun <strong>en</strong> klasse indlæses, og derfor vises applett<strong>en</strong> hurtigere.<br />
De rester<strong>en</strong>de List<strong>en</strong>ers ligner d<strong>en</strong> forgå<strong>en</strong>de og vil ikke blive beskrevet yderligere her. Der<br />
h<strong>en</strong>vises <strong>til</strong> kildekod<strong>en</strong> bagerst i rapport<strong>en</strong> (bilag D.1.1) eller d<strong>en</strong> vedlagte DVD.<br />
Illustration 17: Panelers placering.<br />
Applett<strong>en</strong>s såkaldte look-and-feel ændres <strong>til</strong> udse<strong>en</strong>det for det operativsystem, som bruger<strong>en</strong><br />
anv<strong>en</strong>der, for at give bruger<strong>en</strong> <strong>en</strong> fornemmelse af at kunne g<strong>en</strong>k<strong>en</strong>de brugerinterfacet.<br />
Knapper, sliders, tekstfelter mv. vil fremstå som de, der som standard b<strong>en</strong>yttes af systemet.<br />
Test-applikation 25