inferrød port

Tags:    c++

<< < 12 > >>
Jeg har tænkt mig at lave et program som bruger inferrød netværk, men kan ikke finde ud af hvilken port, som jeg skal forbinde til?
jeg har lavet et trådløst netværk med windows xp, og valgt vært, hvor jeg får oplyst "Infrarød port (IRDA1-0)", er det så IRDA1-0 jeg skal oprette forbindelse til, eller er det COM*, hvis det sidste, hvilken comport er det så jeg skal forbinde til?
desuden har jeg prøvet at tilgå både IRDA1-0 og COM (1-3), uden nogle resultater med nedenstående kode. så vil høre om hvor min fejl er, og hvad skal jeg gøre for at komme i kontakt med min inferrøde port?
Fold kodeboks ind/udKode 




Jeg kender ikke ret meget til IrDA/inferrød kommunikation.

Så vidt jeg ved kan du enten bruge CreateFile til at åbne porten og så sende og modtage på samme måde som når du f.ex. snakker med et modem.

Men IrDA er en hel protokol, så hvis du skal snakke med andre IrDA enheder skal du bruge IrSock, dvs. snakke på samme måde som
andre sockets.

Du kan læse lidt her:
http://www.cswl.com/whiteppr/tech/irdatips.html
Og her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnirda/html/irdawp.asp



Jeg kender ikke ret meget til IrDA/inferrød kommunikation.

Så vidt jeg ved kan du enten bruge CreateFile til at åbne porten og så sende og modtage på samme måde som når du f.ex. snakker med et modem.

Men IrDA er en hel protokol, så hvis du skal snakke med andre IrDA enheder skal du bruge IrSock, dvs. snakke på samme måde som
andre sockets.

Du kan læse lidt her:
http://www.cswl.com/whiteppr/tech/irdatips.html
Og her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnirda/html/irdawp.asp

Men vil det sige at jeg skal bruge:
HANDLE ComPort = CreateFile("IRDA1-0", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
eller hvad?
og skal jeg også konfigurere nettet på windows altså under netværkssteder hvis jeg ikke ønsker at bruge en speciel protocol?



Det tror jeg ikke.

Hvis du vil bruge CreateFile skal du vist bruge COM1
Men som sagt ved jeg ikke noget om IrDA



Det tror jeg ikke.

Hvis du vil bruge CreateFile skal du vist bruge COM1
Men som sagt ved jeg ikke noget om IrDA

Er der så en metode til at se om jeg sender noget? udover at kigge på porten, hvis man så kan se inferrød :D
Altså så jeg kan kontrollere om det fungerer med COM1 etc.

[Redigeret d. 26/04-05 22:13:36 af Andreas]



Jeg tror at du skal sende til en anden PC, eller sætte et spejl op foran porten og så modtage det du sender.



Jeg tror at du skal sende til en anden PC, eller sætte et spejl op foran porten og så modtage det du sender.

Jeg har fået det til at fungere nu, men jeg forstår ikke hvorfor jeg modtager det samme som jeg sender...?
desuden så er jeg ved at prøve at modtage data fra mit gameboy via infrarød, men modtager intet... gør jeg noget galt? eller bruger de to forskellige bølgelængder? hvis det sidste, kan jeg så få min port til at opfange de bølgelængder?



Hvis ikke du skulle modtage det du sender hvad skulle du så modtage?
Hvad snakker dit program med?
Bruger du CreateFile med Com1 ?

Jeg tror ikke du kan ændre bølgelængde, men jeg tror også at de bruger samme bølgelængde. Du skal nok prøve at ændre på Baud-raten. Prøv med 9600, 19200, 57600 og 115200, det er de mest benyttede.



Ved nærmere eftertanke...
Ved inferrød sender og modtager man på samme bølgelængde, så man kan ikke sende og modtage på samme tid, og alt det man sender vil man også modtage.
Hvis begge ender forsøger at sende på samme tid vil der opstå en konflikt, og man modtager ikke det samme som man har sendt. Så når man sender må man også modtage og checke om der modtages det samme som der sendes, ellers er der konflikt, og så må man stoppe.



Ved nærmere eftertanke...
Ved inferrød sender og modtager man på samme bølgelængde, så man kan ikke sende og modtage på samme tid, og alt det man sender vil man også modtage.
Hvis begge ender forsøger at sende på samme tid vil der opstå en konflikt, og man modtager ikke det samme som man har sendt. Så når man sender må man også modtage og checke om der modtages det samme som der sendes, ellers er der konflikt, og så må man stoppe.

Jeg har fået den til i en while lykke at tjekke om der er kommet nogen meddelelse med ReadFile(), men jeg modtager intet, og jeg sætter mit gameboy op til den inferrøde port når den er i loop lykke, dvs. at jeg kan være sikker på at modtage det (tror jeg da).
desuden så når jeg sender noget via porten så modtager jeg det igen, som du sagde at man ville.
jeg har desuden også prøvet med 9600, 19200, 57600 og 115200 uden resultat.
jeg bruger CreateFile med COM3.
min kode er her:
Fold kodeboks ind/udKode 

Er der andet jeg kan gøre for at modtage, har jeg lavet en fejl, er det umiligt eller hvad?

[Redigeret d. 27/04-05 20:44:04 af Andreas]



Det burde virke.
Hvordan får du din Gameboy til at sende?
Hvis jeg finder lidt tid senere vil jeg prøve om jeg kan få det til at virke.



<< < 12 > >>
t