USB-tiedonsiirto Palmin ja tietokoneella olevan Java-ohjelman välillä

Tämä selostus näyttää miten Palm-kämmentietokoneen ja tietokoneella pyörivän Java-ohjelman välillä voidaan siirtää tietoa USB-piuhan yli molempiin suuntiin. Selostuksessa käydään läpi kaikki tarvittavat vaiheet ja kaikki tarvittava lähdekoodi (sekä Java-, että C-kielinen) tiedonsiirron aikaansaamiseksi:

Tässä on aika monta eri vaihetta, joten käsitellään niitä vähän tarkemmin. libusb on kirjasto jota käytämme USB-tiedonsiirtoon. Se on saatavilla GNU/Linuxille, Max OS X:lle ja BSD:eille. Windowsille on olemassa myös oma versionsa LibUsb-Win32. GNU/Linuxille libusb:n asentaminen on todella suoraviivaista. Se voi olla jopa valmiiksi järjestelmässäsi, joten sitä ei ole edes välttämättä tarvetta asentaa. Jos asentaminen on tarpeen, se onnistuu ehkä helpoiten käyttämällä järjestelmäsi pakentinhallintatyökaluja. Tietenkin on mahdollista myös ladata ja asentaa se manuaalisesti kirjaston kotisivulta käsin. Windows-version, eli LibUsb-Win32:n asentaminen vaikuttaisi olevan hieman hankalampaa, sillä pelkkä kirjaston asentaminen ei riitä, vaan lisäksi täytyy käyttää erillistä, kirjaston mukana tulevaa ohjelmaa (jonkinlaisen) laiteajurin tekemiseen. Ensin käsittelemme libusb:n asentamisen GNU/Linux:iin, sitten Windows XP:en.


I libusb-kirjaston asentaminen GNU/Linuxiin

Helpoin ja nopein tapa libusb:n asennetamiseen on luultavasti käyttää järjestelmäsi paketinhallintaohjelmaa. Samalla voit helposti tarkastaa onko kirjasto jo asennettuna järjestelmässäsi ja jos se on, mikä sen versio on. Alla olevassa kuvassa on esimerkki graafisesta pakentinhallintaohjelmasta Ubuntussa. Huomaa, että tässä selostuksessa käytetään libusb:n versiota 0.1-4, ei siis versiota 1.0. Luultavasti olisi parempi käyttää uudempaa 1.0-versiota, mutta tässä yhteydessä on käytetty vanhempaa versiota, ja uuden version käyttö voi edellyttää joitakin muutoksia koodiin, joita ei ole vielä ehditty testaamaan. Samoin windowsin versio kirjastosta näyttäisi olevan melko vanha, eikä siksi ehkä sisällä kaikkea uudemman version toiminnallisuutta.

kuva23


II libusb-kirjaston asentaminen Windows XP:en

Tämä ohjeen osa on vielä keskeneräinen. Toistaiseksi voit noudattaa ohjeita jotka löytyvät osoitteesta http://libusb-win32.sourceforge.net/#installation. Olen testannut asennusprosessia nopeasti Windows XP:ssä ja saanut sen toimimaan noita ohjeita noudattamalla. Huomaa, että filteriä ei ilmeisesti tarvitse asentaa! Itse asensin sen turhaan, koska en lukenut ohjeita ensimmäisellä kerralla tarpeeksi huolellisesti. Tätä ohjeen osaa voi tarkentaa myöhemmin, jos on tarvis.


1. C-kielinen Palm-ohjelma ja USB-funktiot, jotka siirretään Palmiin

Käynnistä Garnet OS Development Suite ja luo uusi projekti.

kuva2

Anna projektille nimeksi vaikkapa USB. Valitse projektin tyypiksi Simple Application.

kuva6

Lataa alla olevat neljä tiedostoa koneellesi, kopioi ne ja liitä src-hakemistoon. Kaksi tiedostoista on uusia, kaksi korvaa jo olemassaolevat tiedostot.


Lataa alla oleva tiedosto koneellesi, kopioi se ja liitä projektin rsc-hakemistoon. Tiedosto korvaa jo olemassaolevan tiedoston.



Käännä projekti, jos se ei käänny automaattisesti tallentamisen jälkeen. Voit testata ohjelmaa emulaattorilla jos haluat. Siirrä se lopuksi oikeaan Palmiin Palm Desktop-ohjelmalla.

2. C-kielinen USB-tiedonsiirto-kirjasto tietokoneen päähän, JNI-luokka ja Java-kielinen Serveri tietokoneeseen

Huomaa, että tätä osaa ei ole vielä testattu Windowsissa. Lataa alla olevat tiedostot koneellesi:



Kytke palmi tietokoneen USB-porttiin. Siirry komentorivillä hakemistoon, jonne tallensit yllä olevat tiedostot. Anna komentoriviltä käskyt jotka on listattu seuraavassa tiedostossa: commands1.txt. Korvaa ylimmän rivin gcc-käskyssä include-hakemistojen paikat oikeisiin polkuihin järjestelmässäsi. Käynnistä palmista luomasi USB-ohjelma. (Huomaa, että ohjeessa on jätetty näyttämättä miten USB.h-tiedoston luonti on tehty. Se on tehty automaattisesti javah-ohjelmalla. Myöhemmin ohjeeseen voi lisätä tästä asiaa).


3. Testaa

kuva7

kuvaalku

kuvadate

kuvatime

kuvahello

kuvagb

kuva8


Aina kun painat palmissa jotakin näppäintä, lähetetään USB:n yli merkkijono jonka serveri ottaa vastaan. Jos merkkijono on DATE, sereri lähettää päivämäärän takaisin palmiin. Jos se on TIME, serveri lähettää kellonajan. Jos se on GREETINGS, serveri lähettää tervehdystekstin ja palvelinkoneen hostnamen. Jos se on SHUTDOWN, palvelin lähettää hyvästit ja sulkemisajan ja sulkee itsensä.

Ohje ei ole valitettavasti vielä kovin yksityiskohtainen...