Tämän selostuksen tarkoituksena on kuvata työvaiheet, joilla Palmin ja Windows XP-käyttöjärjestelmässä ajettavan serverin välille saadaan muodostettua USB-tiedonsiirtoyhteys. Kyseessä on samantapainen ohjelma kuin ohjeessa http://www.cs.helsinki.fi/u/mihaasia/ohtu/javausb/, mutta tässä versiossa EI käytetä Java-kielistä serveriohjelmaa, eikä JNI:tä, vaan kaikki ohjelmat ovat pelkästään C-kielisiä. Syynä tähän on se, että Windowsissa JNI:tä testattaessa ei Java suostunut lukemaan natiivia kirjastoa jostakin syystä. Kirjaston lataaminen saattaa kyllä myöhemmin onnistua, mutta varmuuden vuoksi kirjoitin nyt testiohjelmat sitten C:llä. Koko vastaajan päähän tuleva ohjelmahan on hyvin yksinkertainen (yksi nappula tms.), joten koko tämä ohjelmahan on tarvittaessa mahdollista kirjoittaa pelkästään C:llä tai C++:lla (ilman Javaa) ja saada toimimaan sekä Windowsissa, että GNU/Linuxissa. Jos ohjelma kirjoitetaan pelkästään C:llä, voi käyttöliittymän luontiin käyttää esim. winapia, mutta mieluiten jotakin alustariippumatonta kirjastoa, kuten GTK+:ta, Qt:ta, wxWidgets:ia, tms.
Selostuksessa on mukana kaikki tarvittava lähdekoodi. HUOM! Tiedostot eivät välttämättä ole samoja kuin edellisessä selostuksessa, vaikka tiedostonimet ovatkin samat, joten ne kannattaa ladata uudelleen. Osa tiedostoista voi myös näyttää hieman hassuilta jos niitä katsoo vaikkapa selaimella, koska rivien sisennykset eivät mene muutamilla riveillä aivan kohdilleen. Syynä tähän on varmaan se, että olen muokannut tiedostoja useilla eri editoreilla, joista osa on kirjoittanut tab:it välilyönteinä ja osa ei.
Tämä ohjeen osa on vielä keskeneräinen. Toistaiseksi voit noudattaa ohjeita jotka löytyvät osoitteesta http://libusb-win32.sourceforge.net/#installation. Asensin kirjaston ja laiteajurin Windows XP:ssä ja sain ne 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.
Anna projektille nimeksi USB. Valitse projektin tyypiksi Simple Application.
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.
Ohjelma löytyy projektin Debug-hakemistosta, jonne se ilmestyy kääntämisen jälkeen. Siirrettyäsi ohjelman palmiin, on kaikki Palmin pääsä valmista ja voimme ryhtyä kääntämään tietokoneelle tulevaa C-kielistä serveri-ohjelmaa.
Käynnistä asennusohjelma ja suorita asennus.
Luo uusi tyhjä C-projekti. Anna projektille nimeksi vaikkapa USBServerProject. Tallenna projekti jonnekin. Itse loin Dev-Cpp-hakemistoon oman kansion projekteille, mutta kuten kuvasta näkyy, projekti tuli tallennettua ohjelman oletuksena tarjoamaan Dev-Cpp:n päähakemistoon.
Kirjasto löytyy lataamasi libusb-win32-device-bin-0.1.1.2.1-hakemiston alla olevan lib-hakemiston alla olevasta gcc-hakemistosta.
Hakemisto include löytyy lataamasi libusb-win32-device-bin-0.1.1.2.1-hakemiston alta. Lisää se projektisi Include Directories-joukkoon.