/ Forside/ Teknologi / Udvikling / C/C++ / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
Sætte et ben "høj" på comporten
Fra : z1terapi
Vist : 781 gange
45 point
Dato : 30-05-05 08:04

Hej
Jeg er ved at lave et lille Windowsprogram i .MFC
Jeg sender og modtager data på comporten, men det hele skal afhænge af et kontrolsignal jeg modtager fra den tilkoblede part. Er det på RTS signalet jeg skal modtage(ben 7) eller hvad?
Det næste spørgsmål er så hvordan?
Jeg har kigget i diverse koder, og fundet dette: dcb.fRtsControl = RTS_CONTROL_ENABLE;
Hvis det er det jeg skal bruge, hvordan bruger jeg det så? Hvad gør det?
Håber nogen kan hjælpe. har ikke mere end 45 point
Mvh Thomas

 
 
Kommentar
Fra : Benjamin.Hansen


Dato : 30-05-05 09:30

Hejsa
Jeg har ikke læst det hele igennem men du kan måske finde dit svar i dette dokument http://www.educatorscorner.com/media/Exp87.pdf
Som beskriver serrielkommunikation..
mvh Benjamin

Kommentar
Fra : Yumatci


Dato : 30-05-05 12:22

Det du vil koble til kan du sætte til pin 7 på com porten og så kan du også hvis det er nødvendigt sætte det til pin 5 som er jord forbindelse! Med dcb.fRtsControl = RTS_CONTROL_ENABLE og dcb.fRtsControl = RTS_CONTROL_DISABLE kan du så tænde og slukke for pin 7 så når du bruger dcb.fRtsControl = RTS_CONTROL_ENABLE så tænder du for strømmen og der kommer lidt strøm ud kan ikke huske hvormeget men du kan bruge et voltmeter! og når du så bruger dcb.fRtsControl = RTS_CONTROL_DISABLE så lukker du for strømmen igen! Håber det var det du skulle bruge! ellers kan du så ikke prøve at forklare lidt mere om hvad det er du f.eks vil koble til com-porten?

Hilsen Yumatci

Kommentar
Fra : z1terapi


Dato : 30-05-05 13:58

Hej
Kan man bruge RTS_CONTROL_ENABLE til kontrol om der kommer signal ind.
Mit problem er at jeg får først et læsesignal på ben 7 eller 8(er ikke lige sikker på hvilken en af dem)
og derefter skal jeg så læse hvad der bliver sendt til mig. Det er signalet som afgør at der skal læses.
Thomas

Accepteret svar
Fra : BertelBrander

Modtaget 45 point
Dato : 30-05-05 20:13
Kommentar
Fra : z1terapi


Dato : 31-05-05 08:36

Ja, den skal vente. Der skal først ske noget efter der er kommet et "readsignal"(Benet bliver sat høj).
/Thomas

Godkendelse af svar
Fra : z1terapi


Dato : 31-05-05 13:56

Tak for svaret BertelBrander. Jeg har lukket tråden på ITdoktor

                        

Kommentar
Fra : BertelBrander


Dato : 31-05-05 19:55

Er problemet løst eller ...

Kommentar
Fra : z1terapi


Dato : 31-05-05 22:17

Jeg har ikke testet endnu, bare læst om funktionerne(GetComState, SetComState). Det ser meget lovende ud. Hvis det går helt gal, vender jeg tilbage. Men indtil videre, siger jeg tusind tak for hjælpen.
mvh Thomas

Kommentar
Fra : z1terapi


Dato : 31-05-05 22:28

Meeeen...Hvis du har et eksempel til hvordan jeg kan tjekke om linien bliver sat høj, vil jeg da meget gerne se det.
mvh Thomas

Kommentar
Fra : BertelBrander


Dato : 31-05-05 23:02

Du kan bruge dette til at vente på CTS:

#include <stdio.h>
#include <windows.h>

int main(void)
{
DCB dcb;
HANDLE ComPort = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

GetCommState(ComPort, &dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.fRtsControl = RTS_CONTROL_ENABLE;
dcb.fErrorChar = TRUE;
dcb.fParity = TRUE;
dcb.Parity = ODDPARITY;
dcb.fAbortOnError = TRUE;
dcb.fOutxCtsFlow = 1;
SetCommState(ComPort, &dcb);

SetCommMask(ComPort, EV_CTS);

DWORD Event;
while(1)
{
WaitCommEvent(ComPort, &Event, 0);
printf("%08X\n", Event);
}

CloseHandle(ComPort);

return 0;
}


Du kan bruge GetCommState til at læse om porten er høj eller lav.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste