10. marts 2003 - 16:59Der er
7 kommentarer og 1 løsning
Arbejde med porte i C/C++
Jeg vil gerne til at udvide min horisont med C++, så jeg tænkte på, om der var en mulighed for at få nogle gode begynder tutorials til hvordan man arbejder med porte (serial, com eller whatever);
Benytter du Windows har du det problem at du ikke har direkte adgang til ring 0 altså hardwaren. Det du så gør er at enten køre synkron eller asynkron "kommunikation". Nu ved jeg ikke hvor meget C++ du har programmeret i Windows, men en god idé er at lære noget om tråde også.
Rent teknisk snakker du med (i NT,2k,XP) kernen. Du kalder kernen og be'r den om at oprette en forbindelse til f.eks. en com port. Når den har fået tildelt non-paged pool og oprettet en device object og du får så derved tildelt et HANDLE.
Det næste man så gør er at be kernen om at læse eller skrive data til porten. Dette gøres med ReadFile() eller WriteFile() Igen er det et kald til kernen. Du fortæller f.eks. at du gerne vil sende en streng på x antal bytes. Du kalder derfor WriteFile(....).. Forskellen fra kernen og brugerens område er så at din memory manager. Omdanner din request til noget som hedder en IRP. Irp Request Packet :) Det samme gælder ReadFile().
Når du er færdig med din com port så luk den igen med CloseHandle()...
Hvis du gerne vil vide mere om Kernel og User32 så sig til
Jeg ønsker tutorials om emnet. Jeg ønsker ikke viden til specifikke spørgsmål, men simpelthen tutorials der giver en grundig gennemgang i hvor man begynder osv. Jeg ønsker tutorials til både windows og unix/linux.
Det er en del nemmere i UNIX/LINUX i forhold til Windows for Microsoft har defineret en synes jeg speciel arkitektur... Desværre vil jeg sige at det er svært at finde noget om Windows hvor jeg også synes det er nemmere at finde noget fra UNIX/LINUX... Jeg skal nok kigge rundt og se om jeg kan finde noget
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.