Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Visual basic 2010- com port
Jdi na stránku 1, 2, 3, 4  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 13:59    Předmět: Visual basic 2010- com port Citovat

Zdravím.
Začínám se trochu učit s VB. Nevím jak nastavit v programu com port pro odesílání a příjem dat.
Mám tento kód:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim data As String = TextBox1.Text
Using com11 As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com11")
com11.WriteLine(data)

End Using

End Sub

text z textového pole se mi po stisku tlačítka odešle na port 11.To funguje dobře. Zde je však COM11 pevně nastaven v kódu. Já bych však potřeboval ho umět měnit. tak abych si ho zvolil v jiné části programu a on se mi promítl do tohoto kódu.
Něco jako COM X a X bych přiřazoval různá čísla dle potřeby.
Poradí Někdo? Rolling Eyes
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: po květen 24 2021, 14:29    Předmět: Citovat

Kdyz si ten port nekde nadefinujes jako globalni promennou ti nefunguje?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mihal



Založen: Apr 06, 2005
Příspěvky: 1836
Bydliště: Zilina

PříspěvekZaslal: po květen 24 2021, 16:43    Předmět: Citovat

Matne si spominam že musíš port aj otvoriť. A ten obsah "xxx" daj value toho kde to nastavuješ.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 16:46    Předmět: Citovat

Právě s tou proměnnou mi to nejde, nebo dělám někde chybu.
mihal můžeš nastínit jak s tím value? Jinak v tom kódu se port otevře.
A ještě jedna věc, jde "nějak udělat" aby to odesílalo i znaky s diakritikou?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
petrfilipi



Založen: Sep 13, 2005
Příspěvky: 2643

PříspěvekZaslal: po květen 24 2021, 20:06    Předmět: Citovat

Doporučuji ti prostudocat knihu Bergharda Kainky Využití rozhraní PC pod Windows.
Kniha je na ulozto.cz. Já používat to druhou polovinu knihy pro Delphi a vše funguje k mé naprosté spokojenosti.
PF
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: po květen 24 2021, 20:23    Předmět: Citovat

scorpions-cz napsal(a):
Právě s tou proměnnou mi to nejde, nebo dělám někde chybu.

Problem mas s globalni promennou obecne, nebo v tom ze ti to nefunguje s tim portem? Na prvni pohled nevidim nejaky zrejmy duvod proc by to nemelo fungovat, ale ve VB delam jen dost okrajove, takze ruku do ohne bych za to nedal Smile A nemam jak to ted vyzkouset.

Mrkni treba tady, resi neco podobneho. https://www.vbforums.com/showthread.php?777621-reading-data-from-serial-port
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33860
Bydliště: Bratislava

PříspěvekZaslal: po květen 24 2021, 20:38    Předmět: Citovat

Vo Visual Basicu som v zivote nerobil, ale povedal by som podla syntaxe, ze miesas dokopy dve veci - nazov premennej/objektu:
scorpions-cz napsal(a):
Using com11 As IO.Ports.SerialPort =

a nazov portu:
citace:
My.Computer.Ports.OpenSerialPort("com11")


Takze namiesto nazvu premennej/objektu com11 daj len napr. com (ak to nie je nejake rezervovane slovo). Ten bude vzdy rovnaky.
A nazov portu "com11" je obycajny retazec. Namiesto neho tam mozes dat nazov tej globalnej premennej alebo niecoho ineho, do coho nastavis spravny port.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 20:43    Předmět: Citovat

rnbw
To možná jo, ale pokud se neshoduje název portu s názvem objektu tak to nefunguje Rolling Eyes
oprava Laughing tak to by asi šlo, zkusím to.


Naposledy upravil scorpions-cz dne po květen 24 2021, 20:53, celkově upraveno 2 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
mihal



Založen: Apr 06, 2005
Příspěvky: 1836
Bydliště: Zilina

PříspěvekZaslal: po květen 24 2021, 20:43    Předmět: Citovat

No ja som používal tak 15rokov dozadu MSCOMM32.OCX a port sa nastavoval nejak MSComm1.CommPort = Combo1.Text kde bolo na výber číslo portu ale presný syntax už odvial čas. Matne si spomínam že som s tým tiež zápasil, mal som to dlho cez sériu If ale potom som niekde našiel správny syntax, no, bolo to dávno.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: po květen 24 2021, 20:51    Předmět: Citovat

scorpions-cz napsal(a):
To možná jo, ale pokud se neshoduje název portu s názvem objektu tak to nefunguje Rolling Eyes


V teto ukazce kodu primo od M$ s tim zadny problem nemaji.

Public Function ReceiveSerialDataPort8() As String
' Receive strings from a serial port.
Dim returnStr As String = ""

Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM8", 9600, Parity.None, 8, StopBits.One)
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try

Return returnStr
End Function
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 20:59    Předmět: Citovat

Dík.
Teď jsem to zkoušel podle rnbw a začalo to fungovat.

Dim X As String
X = "com6"
Dim data As String = TextBox1.Text
Using com As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort(X)
com.WriteLine(data)

Ještě jde nějak vyřešit ta diakritika? Laughing
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: po květen 24 2021, 21:37    Předmět: Citovat

Co ti to vlastne posila v hexu kdyz pouzijes diakritiku?
Sedi to podle tohoto?
Nebo tam mas nad 127 jen otazniky nebo nebo podobneho?
https://cs.wikipedia.org/wiki/Windows-1250
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 21:53    Předmět: Citovat

když použiju písmeno s diakritikou, tak je tam ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: po květen 24 2021, 22:05    Předmět: Citovat

Musis to prekodovat.
Zkus to treba pomoci muj_port.Encoding = System.Text.Encoding.GetEncoding(1250)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
scorpions-cz



Založen: Mar 19, 2011
Příspěvky: 1867
Bydliště: Jižní Čechy Dačicko

PříspěvekZaslal: po květen 24 2021, 22:16    Předmět: Citovat

Dík. dneska už do toho čučet nebudu, zítra to zkusím a dám vědět.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3, 4  Další
Strana 1 z 4

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.15 sekund