Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta

[es] :: .NET :: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta

[ Pregleda: 2156 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta31.07.2012. u 16:11 - pre 142 meseci
Da li je moguce procitati stanje pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta iz C#? Ako je izvodljivo, moze neko usmerenje odakle da krenem. Najvise me zanima citanje stanja pinova CTS (Clear to send), i RTS (Request to send).

Procitao sam par tekstova na netu oko USB uarta, i ako sam dobro razumeo pinovi CTS, i RTS mogu da imaju samo dva stanja. To je stanje 1, ili 0 (true, ili false). Kada primamo informacije na RX pinu, CTS ima stanje 0. Kada CTS ima stanje 0 to znaci da je u toku prenos podataka (RX prima informacije), i ne mogu se poslati nove informacije preko TX pina (slicno je i sa RTS pinom).

Potrebno mi je da iz programa u svakom trenutku mogu da proverim stanje pinova. Svaki pin treba da bude predstavljen jednom bool promenljivom. Na primer bolRx, bolTX, bolCTS, bolRTS...

Ako bolRX promenljiva ima stanje true (1), to govori da se u tom trenutku vrsi prenos podataka. Posto cu proveru stanja pinova vrsiti na 1 sec, na formi cu imati indikatore koji vizuelno prikazuju stanje pinova (kao LED diode na USB uart plocici).

[Ovu poruku je menjao unisoft dana 31.07.2012. u 17:30 GMT+1]
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 06:15 - pre 142 meseci
Pozdrav. Ja sam radio u VB i koristio sam samo Rx i Tx linije.
U okruženju imaš da ubaciš kontrolu serial port. Imas u Properties da definišeš koji COM port ćeš koristiti. stop bite, data bite itd.
Da bi je koristio moraš otvoriti port.

Code:
SerialPort.Open()
// prenos podataka
SerialPort.Close()


 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 09:16 - pre 142 meseci
Citat:
mish_ns:
Pozdrav. Ja sam radio u VB i koristio sam samo Rx i Tx linije.
U okruženju imaš da ubaciš kontrolu serial port. Imas u Properties da definišeš koji COM port ćeš koristiti. stop bite, data bite itd.
Da bi je koristio moraš otvoriti port.

Znao sam da ces mi to reci :).... Meni nije problem komunikacija sa USB uart-om. Problem mi predstavlja citanje stanje pinova USB uart-a. Stanje Rx i TX pina mogu da znam da li se koriste tako sto bih postavio dve globalne bool promenljive na nivou klase. bolTx promenljiva bi imala vrednost TRUE sve dok se vrsi emitovanje podatka sa racunara, dobija vrednost FALSE kada se zavrsi emitovanje, isto tako bi bilo i sa bolRx. Kada se detektuje prijem informacija u dogadjaju DataRecive od SerialPort kontrole promenljiva bolRx imala bi vrednost True, i obrnuto.

Sada ti je jasno sta meni treba. Cesto se desava da u toku emitovanja informacija preko USB uarta do uredjaja koji je sa njim povezan, da i sam uredjaj nesto emituje. Kada se to desi menjaju se stanja odredjenih pinova. U tom trenutku treba prekinuti sa slanjem informacija, procitati informacije koje salje uredjaj, izvrsiti odredjenu akciju ako se to zahteva, i nastaviti sa emitovanjem informacija od mesta na kome smo stali.


[Ovu poruku je menjao unisoft dana 02.08.2012. u 10:29 GMT+1]
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 12:16 - pre 142 meseci
Hmm...a da li si probao nesto da odradis sa PinChanged eventom...mislim da se tako zove nisam dugo koristio kontrolne signale... :)
 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 12:40 - pre 142 meseci
Citat:
mish_ns:
Hmm...a da li si probao nesto da odradis sa PinChanged eventom...mislim da se tako zove nisam dugo koristio kontrolne signale... :)


Hvala na ideji :). Ni u jednom trenutku se nisam setio da testiram taj event, mozda je namenjen bas za ono sto meni treba. Moracu prvo malo da guglam, i pregledam dokumentaciju za ovaj event u msdn biblioteci pa cemo da vidimo sta moze da se uradi. Sve ovo bi bilo lako da se radi LPT-om :D. Problemi nastaju zato sto sam slab na ovom polju, tek sam poceo da proucavam komunikaciju sa eksternim uredjajima. Zbog toga slabo poznajem klase, i dogadjaje koji se koriste za komunikaciju.
 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 13:02 - pre 142 meseci
Vec posle prve pretrage msdn biblioteke za Event PinChanged pronasao sam ono sto mi treba. U odgovoru postavljam link... ako se jos neko nadje u sl. situaciji kao ja :0.

MSDN Library - C# PinChanged Enumeration

Primer za primenu clanova moze da bude napisan ovako...

Code:

c# SerialPort PinChanged event handling

in_port.PinChanged += new SerialPinChangedEventHandler(port_PinChanged);
    
static void port_PinChanged(object sender, SerialPinChangedEventArgs e)
    {

        if (e.EventType == SerialPinChange.Break)
        {
            // 
        }
        else if (e.EventType == SerialPinChange.CDChanged)
        {
            //
        }
        else if (e.EventType == SerialPinChange.CtsChanged)
        {
            //
        }
        else if (e.EventType == SerialPinChange.DsrChanged)
        {
           //
        }
        else if (e.EventType == SerialPinChange.Ring)
        {
          // 
        }
    }


Code:

opis clanova

.CtsChanged
The Clear to Send (CTS) signal changed state. 
This signal is used to indicate whether data can be sent over the serial port.
.DsrChanged
The Data Set Ready (DSR) signal changed state. 
This signal is used to indicate whether the device on the serial port is ready to operate.
.CDChanged
The Carrier Detect (CD) signal changed state. 
This signal is used to indicate whether a modem is connected to a working phone line and a data carrier signal is detected.
.Ring
A ring indicator was detected.
.Break
A break was detected on input.


mish_ns puno hvala na pomoci . Ja bih se najverovatnije bez tvoje pomoci 1-2 meseca rasturio od citanja dokumentacije SerialPort kontrole, dok ne bih dosao do informacija koje su mi potrebne da napisem resenje za problem koji imam. Tnx!!!

[Ovu poruku je menjao unisoft dana 02.08.2012. u 14:23 GMT+1]
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta02.08.2012. u 14:00 - pre 142 meseci
Ništa...tu smo da pomognemo koliko možemo... i znamo. :)
POZDRAV
 
Odgovor na temu

[es] :: .NET :: C# citanje stanja pinova (RX, TX, CTS, RTS, DTR, DCD, DSR) USB uarta

[ Pregleda: 2156 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.