CE (versio 3) tukee neljää ajurityyppiä: native, stream interface, USB ja NDIS.



Samankaltaiset tiedostot
Toiseksi kone pitää olla yhteydessä Pocket PC:hen esim. Microsoftin ActiveSync:lla (esim. USB-liitännän kautta).

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla.

Yhteydensaantiongelmien ja muiden ongelmien ratkaisuita

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Ohjelmoinnin perusteet Y Python

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen

CUDA. Moniydinohjelmointi Mikko Honkonen

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Ohjelmoinnin perusteet Y Python

Harjoitustyö: virtuaalikone

Ohjelmoinnin perusteet Y Python

AALTO-VALVONTALAITE TST5102

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

Käyttöjärjestelmät: prosessit

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Ohjelmoinnin perusteet Y Python

S11-09 Control System for an. Autonomous Household Robot Platform

TIDOMAT smartone versio 2.1. GSM-modeemin asennus smartone keskusyksikköön

Topfield Altair -tiedostojen siirto-ohjelman asennus ja

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla

Ulkoiset laitteet. Asiakirjan osanumero: Tässä oppaassa kerrotaan lisävarusteina saatavien ulkoisten laitteiden käytöstä.

DumpDbox-ohjelmiston asennus- ja käyttöohjeet Sisällys

LHV325 Ohjelmoinnin perusteet. WorkBook. Jussi Tapio Kuosa

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

Liitäntäkaapelin CA-42 pika-asennusohje

Ohjelmoinnin perusteet Y Python

Topfield USB-laiteajurin ja päivitystyökalun asennus

Ulkoiset laitteet. Asiakirjan osanumero: Tässä oppaassa kerrotaan lisävarusteena saatavien ulkoisten laitteiden käytöstä.

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

WBelectronics. Infinity USB Phoenix - Käyttöohje

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

COMET-MAKSULAITTEEN LATAAMINEN MINIUSB-KAAPELIA KÄYTTÄMÄLLÄ

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA

Xerox Device Agent, XDA-Lite. Pika-asennusopas

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

JOVISION IP-KAMERA Käyttöohje

Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta

HUOM! Latauskaapelia ei saa kytkeä laitteeseen ennen hyväksytyn maksuprosessin suorittamista! Kirjaudu

Puhelinnumeroiden lataaminen laitteesta tietokoneelle

1 Muutokset piirilevylle

Bluetooth-yhteyden vianmääritys EV3:ssa

Mobiililaitteiden ja sovellusten tietoturvallisuus mihin tulee kiinnittää huomiota?

Luento 5. Timo Savola. 28. huhtikuuta 2006

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Garmin laitteiden ohjelmistopäivitys

Garmin Astro ohjelmistopäivitys

Käyttöohje. Sida 1. BRT-12 Battery Replacement Tool

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

Monipuolinen esimerkki

CEM DT-3353 Pihtimittari

Hammastankohissin modernisointi. Heikki Laitasalmi

2 Konekieli, aliohjelmat, keskeytykset

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

iloq P10S.10/20 -ohjelmointilaite Käyttöohje

Useimmin kysytyt kysymykset

Ulkoiset laitteet. Asiakirjan osanumero: Tässä oppaassa esitellään lisävarusteena saatavien tietokoneen ulkoisten laitteiden käyttöä.

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Microsoft Visual Studio 2005

Windows 8.1:n vaiheittainen päivitysopas

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

NÄIN OTAT F-SECURE SAFEN KÄYTTÖÖN

Ohje WILE 200 PC-ohjelman käyttöön

Ohjelmoinnin perusteet Y Python

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {

Käytettäväksi QR-koodin lukulaitteen/lukijan kanssa yhteensopivien sovellusten kanssa

Apuohjelmat-valikko. Paperinkäsittely. Huolto. Vianmääritys. Ylläpito. Hakemisto

Arduino ohjelmistokehitys

3 TAPAA KATSELLA OHJAUSPANEELIA - 1

Keskellä ruutua kuvan yläpuolella linkki on call diabeteksen hallintaohjelmisto. Klikkaa sitä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Nokia latausliitäntäkaapeli CA-126

lizengo Asennusopas Windows: in kopioiminen

erasmartcardkortinlukijaohjelmiston

Ohjelmoinnin perusteet Y Python

Alkuun HTML5 peliohjelmoinnissa

SISÄLLYSLUETTELO RC-436

Ohjelmoinnin perusteet Y Python

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

Loppukäyttäjän ohje Asennus- ja käyttöohje Mac

Aloittaminen: Miten e-kirja lainataan?

TeleWell ISDN TA 128 USB. Asennusohje (Tämä ohje ei sovellu aiemmalle ISDN TA 128 USB mallille)

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Luento 4 Aliohjelmien toteutus

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

LASERJET PRO 500 COLOR MFP. Pikaopas M570

Transkriptio:

Laiteajurissa rutiineja laitteen luku/kirjoitus ovat toteutetaan mm. (Haikala, laitteen Järvinen) ohjauksessa : tarvittavat rutiinit ja tietorakenteet. Tällaisia LAITEAJURIT ohjausrutiini alustus (esim. WINDOWS päätteen ominaisuuksien CE:SSÄ asetus) Ajuri laitteeseen liittyvät keskeytykset käsittelevä rutiini (huom: windowsissa sanomajono joka etusijalla laitteistokeskeytyksen kutsua ei tehdä suoraan) Windows ladataan on Windows isäntäsovelluksen CE:ssä yksinkertaisesti prosessiavaruuteen. DLL (dynamic link library = dynaaminen kirjasto), CE (versio 3) tukee neljää ajurityyppiä: native, stream interface, USB ja NDIS. CE:ssä asennettavat Alustassa on jo kahdenlaisia valmiina laitteet. olevat laitteita, käsittävät joihin voidaan näytön, tehdä kosketuspaneelin, ajureita: alustassa äänen, jo sarjaportin, valmiina olevat ja tai Asennettavat tulostimen, flash:ssa. näppäimistön, laitteet ovat CE-laitteesta LED:n, akun ja erillisiä PC kortti käyttäjän socket:n. asennettavia Nuo driverit laitteita, sijaitsevat joita ROM:ssa voi Natiivit käyttää ajurit esim. kaapelin kautta (esim. USB). käyttäjä CE muut tekoon ajurit natiiviajurit ajurit vaaditaan paitsi toteutetaan Windows LED- ja akkuajurit CE:ssä joko staattisina Platform (.lib) on (.lib Builder, toteutettu ) tai joka dynaamisina.dll-kirjastoina. on maksullinen kirjastoina Natiivien ohjelmisto. (.dll). ajurien Kaikki mukana. ovat yleensä ns. pysyviä ajureita eli niitä ei muunnella liikkuvat laitteiston Natiivit Suodatinajurit Nämä ajurit jakavat (stream yhteisen interface rajapinnan. drivers) sarjaporttiajurin haluttaisiin liittää skanneri tai joku muu erikseen Tätä mallia asennettava käytetään laite. kun Tätä esim. käytetään laitteeseen Näihin ajureihin pääsee tapauksessa. monesti kiinni jonkin sovelluksen kautta: esim. jos kytkettäisiin myös GPSlaite, Ajureiden voitaisiin lukeminen/kirjoittaminen avata automaattisesti (Boling, GPS:n sovellus. esim. Ajureihin päästään käsiksi I/O funktioilla: CreateFile, 2001) Tällä CreateFile metodilla voidaan aukaista laite. Funktio vaatii parametrikseen ReadFile, WriteFile kolmekirjaimisen CloseHandle. lyhenteen, COM ACM esim.: sarjaporttiajuri laitteen WAV CON = audio Konsoliajuri Audio kompressori aalto ajuri hallinta 1

kielletty Ajureita voidaan kirjoitus/luku aukaista -oikeuksilla. erilaisilla pääsyehdoilla: vain luku, vain kirjoitus, kirjoitus/luku tai WriteFile ReadFile Kun laite on avattu, voidaan lähettää dataa siihen WriteFile funktiolla. Stream Kun Device.exe laite interface-typpisen on lataa avattu, tämän voidaan tyyppisen ajurin lukea tekeminen ajurin dataa (lataa siitä (Boling, ReadFile tosin 2001) myös funktiolla. Funktioita XXX_Init stream-ajurissa (tässä XXX = esim. COM = sarjaportti): muun tyyppisiäkin ajureita). XXX_Deinit XXX_Open XXX_Close = kun ladataan muistiin. XXX_Read pois muistista. XXX_Write avataan CreateFile-funktiolla. XXX_Seek ajuri suljetaan sovelluksesta CloseHandle-funktiolla. XXX_IOControl ReadFile-funktiolla XXX_PowerDown WriteFile-funktiolla ajuria. XXX_PowerUp = kutsutaan, = kutsutaan, = kun kun sovellus kun kun järjestelmä sovellus kutsuu kutsuu ajetaan SetFilePointer-funktiolla ajetaan DeviceIoControl-funktiolla ylös. alas. ajuria. ajuria. DWORD Kun ajuri XXX_Init(DWORD ladataan ensimmäistä dwcontext) kertaa, suoritetaan Parametrissa rekisterissä muunkin aktiivinen arvon, (jos dwcontext kuten sovelluksessa esim. voi olla 0. käytetään Jos osoitin dwcontext merkkijonoon, RegisterDevice-funktiota, ei osoita joka mihinkään, on ajurin dwcontext se aktiivinen silloin ole voi avain luvun. Jos avain). ajuri epäonnistuu Ajurin pitää alustamisessa, vastata Init-kutsuun sen pitäisi siten asettaa että Init oikea palauttaa virhekoodi 0:sta SetLastErrorfunktiolla useimmiten 0:n, peruuttaa ja device.exe) Init voi funktio myös ajurin palauttaa yrittäessa latauksen minkä silloin ja ladata ottaa 0:n. tahansa ajuria ajurin Jos muistiin, laitteistohallinta 0:sta aktiivisen poikkeavan huomaa avaimen (device että arvon pois Init takaisin manager rekisteristä. funktio palauttaa ainakaan poikkeavan saada Laitteistoajuri toteutettava viedä ajureissa, laitteistohallintaan. laitteistoa joilla olio-kohtaisesti. voi edustavan olla Tyypillisesti monta struktuurin ilmentymää voidaan osoite, laitteiston (ladattu joka sisältää useamman kahvan (device tietoa kerran), laitteiston context ajurin handle) tilasta. tilankäsittely avulla Niissä on Kun DWORD ajuri XXX_Deinit(DWORD ladataan pois muistista, hdevicecontext) suoritetaan parametrin Parametri hdevicecontext avulla voidaan laitteistokontekstin päätellä, mikä instanssi arvo, ajurista joka palautetaan ladataan pois XXX_Init muistista. funktiossa. Ajurin Ko. XXX_Init XXX_Deinit 2

laitteen pitäisi tämän alas. funktion jälkeen toimia niin, että se vapauttaa varaamansa muistin ja ajaa Kun XXX_Open. DWORD sovellus XXX_Open(DWORD tai toinen ajuri kutsuu hdevicecontext, funktiota CreateFile DWORD AccessCode, avatakseen DWORD ajuria, suoritetaan Ensimmäinen parametrit saavat on Init-funktiosta arvokseen suoraan palautunut CreateFile laitteistokonteksti. kutsun dwdesiredaccess AccessCode ShareMode) ja FILE_SHARE_WRITE). (luku/kirjoitus dwsharemode parametrien tai vain Laitteistoajuri luku) arvot. ja ShareMode:lla Parametri voi kieltäytyä AccessCode:lla laitteiston aukaisemasta jakoa ilmaistaan (FILE_SHARE_READ laitetta pääsy palauttamalla laitteeseen tai ja ajuri Palautettava hyväksyy funktion avauksen, arvo palauttaa on osoitin XXX_Open avoimeen 0:sta laitteistokontekstin poikkeavan arvon. struktuuriin. Jos ajuri 0:n. Jos voidaan ladata vain kerran mustiin, ko. arvo on sama kuin ensimmäinen parametri. suoritetaan DWORD Kun sovellus XXX_Close(DWORD XXX_Close. tai toinen ajuri (joka hopencontext) avannut ajurin) kutsuu funktiota CloseHandle, palautetaan laitteistokontekstin Parametri hopencontext kutsussa. datan varaaman) on Ajurin osoitin pitäisi avoimeen ja ajaa vapauttaa laite laitteistokontekstin alas. varaamansa kaiken struktuuriin, muistin joka (tai DWORD Kun sovellus XXX_Read(DWORD tai toinen ajuri hopencontext, kutsuu funktiota LPVOID ReadFile, pbuffer, suoritetaan Parametri hopencontext on osoitin avoimeen laitteistokontekstin DWORD struktuuriin, Count) pitäisi Open on kopioitu. kutsussa. Kolmas Toinen parametri Count osoitin on em. kutsuvan puskurin laitteiston koko tavuissa. puskuriin, Jos tapahtuu minne joka luettu virhe, palautetaan palautuu asettaa oikea virhekoodi käyttämälllä SetLastError funktiota ja palauttaa -1. Jos data Osoittimen 0, oikeellisuutta ajuri ei lue dataa. voidaan testata funktioilla ajurin BOOL Parametrit IsBadWritePtr(LPVOID IsBadCodePtr(FARPROC IsBadReadPtr(const ovat osoitin, jota testataan lp, lpfn) *lp,, UINT UINT ucb) ja luku/kirjoitus ucb) except funktiossa osoittimen poikkeuskäsittelyrakenteeseen. testataan, käytön, joten että aina osoitin kun on osoitinta validi. Koodi Kuitenkin (pbuffer) voisi olla käytetään, pääsyoikeus testeissä silloin malliltaan kannattaa puskurin voi muuttua koko. esim. koodi kesken Jokaisessa laittaa try em. seuraavanlaista: XXX_Open XXX_Close XXX_Read 3

{ DWORD XXX_Read(DWORD dwbytesread; hopencontext, LPVOID pbuffer, DWORD Count) //testataan if(isbadreadptr(pbuffer, SetLastError(ERROR_INVALID_PARAMETER); osoitinta dwcount)) return -1; //asetetaan virheilmoitus try except(exception_execute_handler) { dwbytesread = InternalRead(pBuffer, dwcount); SetLastError(ERROR_INVALID_PARAMETER); } } return return dwbytesread; -1; Kun DWORD sovellus XXX_Write(DWORD kutsuu funktiota hopencontext, WriteFile, suoritetaan Parametrit laitteeseen ovat kirjoitetun samoja datan kuin tavujen edellä olevassa määrän LPVOID XXX_Open tai -1 virheen pbuffer, funktiossa. sattuessa. DWORD Funktio Count) palauttaa Kun suoritetaan DWORD sovellus XXX_Seek(DWORD tai ajuri kutsuu hopencontext, funktiota SetFilePointer long Amount, käsitellessään WORD Type) laitteiston kahvaa, Open Parametri (Type) paikasta), kutsussa. on hopencontext FILE_BEGIN FILE_END Amount (etsii (etsitään on laitteen sama osoitin laitteen kuin lopusta). avoimeen SetFilePointer alusta laitteistokontekstin käsin), parametrissa FILE_CURRENT struktuuriin, välitetty (etsii koko. sen joka hetkisestä Tyyppi palautetaan tallennetaan, DWORD Kun systeemi XXX_PowerDown(DWORD jotta keskeyttää, se voidaan kutsutaan palauttaa. hdevicecontext) XXX_PowerDown:ia. Ajuri ajetaan alas ja sen tila XXX_Write XXX_Seek XXX_PowerDown 4

Parametri aikana SetInterruptEvent, Prototyyppi: ei voida hdevicecontext tehdä joka Win32 kertoo on API Init-funktiosta kernelille, kutsuja. Windows että palautunut ajurin CE keskeytyspalvelusäie sallii laitteistokonteksti. vain yhden funktion, odottaa. Tämän funktion BOOL Parametri SetInterruptEvent(DWORD idint on poikkeuksen numero. idint) uudestaan DWORD Kun systeemi XXX_PowerUp(DWORD ylös jatkaa, sen kutsutaan tila asetetaan hdevicecontext) XXX_PowerUp:ia. samaksi kuin ylösajoa Kun tämä ennen. funktio suoritetaan ajuri ajetaan Parametri XXX_PowerDown:ssa, hdevicecontext funktion Init-funktiosta aikana ei voida palautunut tehdä Win32 laitteistokonteksti. API kutsuja. Kuten voidaan kun Koska laite monet käyttää tai sovellus laitteistoajurit kutsuu -funktiota eivät DeviceIOControl käytä käsiteltäessä luku (Read), funktiota. ajuria. kirjoitus Prototyyppi: Funktiota (Write) XXX_IOControl tai etsi (Seek) kutsutaan, toimintoja, dwlenin, DWORD XXX_IOControl(DWORD PBYTE hopencontext pbufout, osoitin hopencontext, dwlenout, avoimeen laitteistokontekstin PDWORD pdwactualout) dwcode, struktuuriin, PBYTE pbufin, joka DWORD Open Parametri dwcode on laitteistokohtainen arvo, ilmoittaa miksi kutsu palautetaan tarvitse suoritettiin. Parametrissa dwlenin pbufin määritelty osoittaa em. puskuriin datan pituus. jossa on Parametrissa data joka välitetään pbufout laitteelle. kutsutaan puskuriin. dwlenout on määritelty em. datan pituus. Puskuriparametreissä on osoitin vietyyn koodeja). välttämättä DeviceIOControl-funktiota olla validia puskurin (riippuu osoitetta ajurista, vaan onko niissä siihen voidaan määritelty käyttää ns. 0:ia IOCTL- kun ei pituus Parametrissa osoite DWORD-tyyppiseen arvoon, josta saadaan kirjoitetun datan kutsussa. onnistui käyttämällä vietyyn ja FALSE funktiota puskuriin muussa SetLastError. (output tapauksessa. buffer). Jos Ajurin virhe pitäisi sattuu, palauttaa ajurin pitäisi TRUE jos palauttaa funktion virhekoodi suoritus käyttää avulla ohjelmisto Struktuuri voidaan OEM:stä ja sisältää I/O lähettää joka kontrolli tietoja tarvitsee komentoja (IOCTL IOCTL:stä yksilöivän = suoraan structure ja miten laitetunnisteen. laitteelle. and sitä voi I/O Platform käyttää. Control IOCTL code) Jos Builder, koodi sinulla on on joka koodi bittimaski, tiedossa jota maksullinen voidaan jonka parametrin taas IOCTL pystyt koodeja, dwcode kohdistamaan voit avulla käsitellä laitteeseesi ko. laitteen niinä XXX_IOControl IOCTL eri I/O koodin -kontrollikäskyjä. funktion (=I/O-kontrollikäskyn). aikana, Funktiolla jossa DeviceIOControl voit lukea laitteesi XXX_PowerUp XXX_IOControl IOCTL 5

1443-1 LÄHTEET Käyttöjärjestelmät, Programming Microsoft Ilkka Windows Haikala, CE, Hannu-Matti second edition, Järvinen, 2001, 1994 Douglas Boling, ISBN 0-7356- 6