Dobrý den,
snažím se vytvořit aplikaci komunikující po rs232 s mikroprocesorem, bohužel jsem v programování začátečník.
Našel jsem si i tutoriál, konkretně tohle http://www.kuligowski.pl/java/rs232-in-java-for-windows,1 , nicméně při kompilaci hlásí chyby, tak nevim co mam dělat.
Fórum › Java
Komunikace po sériové lince
když si to po sobě čtu, snad se nebudete zlobit, když to trochu upřesním, prostě bych potřeboval poradit kód, který tu komunikaci zvládne(nemusí nutně vycházet z toho linku, co jsem vložil, ale na té knihovně RXTX asi jo, jestli jsem to dobře pochopi tak to ve windows ani jinak nejde), nikde neni tak dobře okomentovaný kód, abych rozuměl všemu a uměl si to přizpůsobit pro svoje potřeby.
A čemu nerozumíte třeba na tomto příkladu http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port ?
Nainstalovat to podle návodu z toho tvého linku ....
Jestli to máš ve Windows, tak je to ještě napsané zde: http://rxtx.qbang.org/wiki/index.php/Installation_for_Windows.
Něco děláš špatně. "Nainstaloval" jsem, zkopíroval příklad do TwoWaySerialComm.java souboru (přes Notepad :smile1: ) a bez problémů přeložil. Za 2 minuty hotovo. Ještě se podívej, jestli máš knihovnu crtdll.dll (měla by být v System32 adresáři).
Tak jsem si to zkusil. A samozřejmě mi to funguje. Jenom jsem opravil takovou "drobnost", na kterou mě NetBeans hned upozornily, a to: změnil jsem jméno zdrojového souboru podle třídy, kterou obsahuje (což bych považoval za zcela základní znalost). A pak ještě nemám COM3, ale USB převodník na COM4, takže pak už to šlapalo jak hodinky.
Ten soubor jsem neopravoval, ale pouze přejmenoval (Main.java -> TwoWaySerialComm.java). Změnu portu z COM3 na COM4 snad nepovažuješ za opravu. Možná by nebylo od věci napsal, jaké chyby ti to hází. A za jakých okolností ti je to hází. A jestli ses podíval, zda-li máš knihovnu crtdll.dll v windows\system32.
Aj bych ti rád poradil, ale chyba "nám to nedělá" se hledá těžko. Jenom jsem zkusil umazat RXTXcomm.jar a vypisuje to podobné chyby (možná i stejné). Zkus si vypsat PATH (v cmd), aby si viděl, kde máš "tu správnou Javu", já tam mám asi 3 a přes aktualizace si to žije vlastním životem :smile1: .
To Bicek : http://rxtx.qbang.org/wiki/index.php/Discovering_available_comm_ports
To Ghulas : Předpokládám, že
je .class neboli se překlad zdařil. No vida a pak, že to nejde :smile1:. Takže bude chyba nejspíš v nějakém nastavení v NetBeans http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_NetBeans.nějaký soubor
To liborb : Chápu - obsazený port nelze otevřít a stačí odchytit vyjímku. Jen jsem si myslel, že bych to mohl zjistit bez otevření portu a byl jsem překvapen, že metody k tomu určené nefungují. Zkusil jsem i příklad uvedený prvním příspěvku tohoto vlákna od Pavla a ani tam při testování volnosti portu metoda
nefungovala a program skončil až vyjímkou. :smile13:portIdentifier.isCurrentlyOwned()
To liborb : Tak sem si dal trochu práce a vyzkoušel jsem knihovnu pod linuxem - ubuntu. Při testování obsazených portů jsem narazil již při zjišťování názvů dostupných zařízení - knihovna mi vyhodila vyjímku a vypsala chybu
Totéž platilo i pro zadání názvu zařízení ručně, takže k použití metody "isCurrentlyOwned()" jsem se vůbec nedostal - teda u obsazených portů. U těch volných vše samozřejmě proběhlo, ale z této zkušenosti soudím, že pro rxtx knihovnu nemá cenu testovat obsazenost portů - stačí odchytat vyjímky.Error creating lock file
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Přenos po sériové lince — založil Petr
Jednosměrný přenos po sériové lince — založil bigpeta1
Sériové spojení "se neudrží" — založil fatalwir
Sériové číslo - Online — založil Swin
Seriove vs paralelni zapojeni — založil Taufic
Moderátoři diskuze