COM port - jednotlivé vstupy/výstupy   otázka

VB.NET, I/O operace

Zdravím,

chtěl bych se zeptat jestli je možné pomocí komponenty SerialPort ovládat jednotlivé výstupy a číst hodnoty z jednotlivých vstupů COMportu. Předtím (ve VB6) jsem to dělal pomocí knihovny RSCOM.dll Kdy jsem napsal např "DTR 1" a na výstupu DTR se objevila log. 1.

Díky za případné odpověďi

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S tím jsem si taky kdysi hrál :D Vím, že takto jde zapínat dtr a rts (jako booleanovské vlastnosti) a testovat cts, nic složitějšího jsem tam nedělal. Ovšem na začátku je nutno zapnout komponenetu serialport: serialport1.Open. Ale taky mám na někoho v tom více zběhlejšího otázku: můžu tohle provádět, když mám Com jako redukci z USB?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já bych řek že jo. Když připojím redukci USB>RS232 tak se to přihlásí jako klasickej sériovej port. Dají se měnit vlastnosti (rychlost, parita apod).

Můžu se mrknout jestli to funguje, mám převodník a program ve VB6...

Tak to funguje. Jednotlivý porty (nebo alespoň RST, který jsem testoval) jdou zapnout. V tom bych problém neviděl :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jo? to je dobře, nevěděl jsem, jestli do toho mám investovat

nahlásit spamnahlásit spam 0 odpovědětodpovědět

http://mylms.ic.cz/page/ost_com_nazev.ht... << tady si můžeš prohlédnout jak to vypadá ve Správci počítače když připojíš převodník. Objeví se ti tam prostě COM port.

Ovšem, dávej si pozor, převodník (ten můj asi za 250Kč) dává pouze napětí +-5V což je dost málo (klasický COM mám +-11V). Takže třeba na naprogrmování procesoru to nestačí (nevybudí reset na ATmeloj). Musí se použít pro převod úrovní MAX232!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takže se to teda dá udělat takhle?

'nastavuji výstupy
SerialPort1.RtsEnable = True
SerialPort1.DtrEnable = True

'čtu vstupy
RXD = SerialPort1.ReceivedBytesThreshold

Ale nenašel jsem další vstupy (pokud jsem teda to čtení napsal správně), jak jsou pojmenovaný?.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Receivedbytesthreshold jsem nepoužíval. Buď jsem si jen připojil diodu na dtr-gnd a tlačítko na rts-cts a pak jsem dělal různé šílené prográmky (:D) za využití serialport1.ctsholding, nebo jsem posílal řetězce stringů na zařízení ZUS 32 tuším přes WriteLine. Jinak jsem čtení moc neprováděl. Podle knížky Využití rozhraní PC (Burkhard Kainka) jsou jednotlivé piny u klasického 9vývodu: 1-DCD vstup, 2-RxD vstup, 3-TxD výstup, 4-DTR výstup, 5-gnd(ground), 6 DSR vstup, 7-RTS výstup, 8-CTS vstup, 9-RI vstup.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jj, to vím jak jsou piny na konektoru. Mě jde o to jak z nich číst a zapisovat hodnotu.

Pomocí knihovny RSCOM.dll jsem to dělal takto:

'Nastavení vstupů
DTR 1  'na výstupu DTR je log. 1
RTS 1  'na výstupu RTS je log. 1

'Čtení vstupů
If RXD = 1 then PinRXD = True else PinRXD = False

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já jsem používal jen CTSholding, v EE tam jsou také CDholding a DSRholding... Snad vyzkoušet nějakou funkci read, je jich tam hodně...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback