www.mikrocontroller.net

Forum: PC-Programmierung VB.Net Serialport öffnen


Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

also, ich bin erst mal blutiger Anfänger was Basic betrifft, deswegen 
nicht gleich hauen. Ich habe auch schon kräftig gegoogelt und mir MSDN 
angeschaut.
Aber so richtig schlau bin ich nicht geworden. Nun zu meinem Problem:

ich versuche mich gerade an einer Windows-Forms-Anwendung.
Ich kann nun einen serialport aus der Toolbox in das Forms-Fensteer 
ziehen und alle Einstellungen dran vornehmen.

Schaue ich jedoch in den Code, kann ich vom Serialport nix entdecken.
Das eigenschaftsfenster vom Serialport sagt mir dass der Port den Namen 
'SerialPort1' hat.
wie kann ich nun diesen Port öffnen?
Mit 'My.Computer.Ports.OpenSerialPort(SerialPort1)' scheint es nicht zu 
funktionieren?!

kann mir jemand helfen Licht ins Dunkel zu bringen?

Gruß, Jürgen

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab ja jetzt nicht so den Plan, aber verwende Visual Studio 2008.
Die com-Klasse ist glaub ich veraltet, also nicht das was ich suche...

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Imports System.Text    ' <=== !



    Sub SendSerialData01xxxx(ByVal data As String)
        Dim enc As Encoding = Encoding.GetEncoding(1252)
        ' Send strings to a serial port.
        Using com1 As IO.Ports.SerialPort = _
        My.Computer.Ports.OpenSerialPor("COM1",2400,IO.Ports.Parity.None,8)
            com1.Encoding = enc
            com1.Write(data)
        End Using
    End Sub


   probiere es aus!

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es zuviel verlangt das Du selbst auf der Seite suchst?

Dann findest Du auch RS232 per API-Call
http://www.devtrain.de/news.aspx?artnr=711


http://www.gssg.de/net_serport.htm

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mike (Gast)

http://www.gssg.de/net_serport.htm

Das Teil kannte ich auch noch nicht.
Hat eigentlich alles was man braucht.
..glaube aber es werden nur Datenwerte bis 127Dez,7FHex
gesendet.
Werde es mal testen.

P.S. als Neuling ist es nicht einfach im Netzdurcheinander das richtige
zu finden,zu verstehen und zu testen.

Gruß

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich hab es hinbekommen.
ich habe einfach in mein Form den Serialport aus der Toolbox 
hereingezogen und die Einstellungen im Eigenschaftsfenster vorgenommen.
Damit wird es wohl automatisch mit initalisiert beim Programmstart, man 
sieht es nur nicht im Code.

Mit 'serialportname.Open()' wird der Port geöffnet, keine Ahnung warum 
es nicht auf Anhieb geklappt hat.

Später werde ich auch die Variante ausprobieren, wo der Port direkt im 
Code von mir initalisiert wird, vorerst reicht mir es aber so wie es 
ist.
Das brauche ich spätestens dann, wenn im Form die Einstellungen gemacht 
werden sollen.

Danke Juppi, man findet tatsächlich viel, aber meist ohne Erklärung mit 
Endloscode. Beispielsweise verstehe ich deinen geposteten Code nicht.

Ich bin halt Anfänger und sollte eigentlich mit den Basics anfangen wie 
zB. Konsolenanwendungen, aber in dem Punkt bin ich wohl unvernünftig :-)

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aufruf

SendSerialData01xxxx("123456273")

oder

Dim Daten  as String
Daten="123456"
SendSerialData01xxxx(Daten)

wenn das Deklariert wird können Bytes gesendet werden
Imports System.Text    ' <=== !

SendSerialData01xxxx(CHr(byte) 80%

Wenn du ein Empfänger hast ,an der seriellen.
dann wirst du merken das du sonst nur
Bytes bis 127 Dez /7F Hex sendest.

Melde dich wenn es soweit ist.

Gruß

Autor: Ascii (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe eine Frage zum Senden über die serielle Schnittstelle. Ich 
möchte den Wert 100 versenden: SerialPort1.Write(100).
Wird die 100 als Hex-Zahl versendet oder wird jede einzelne Ziffer im 
ASCII-Format gesendet, sprich 0x313030?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> SerialPort1.Write(100)
Von der Schreibweise her würd ich sagen, du sendest 100d/64h, also ein 
kleines 'd'.
Wenn du "100" ausgeben willst, musst du entweder parsen, oder die 
String-Entsprechung ausgeben.

Bin jetzt nicht ganz sicher, wie das geht, ich verwende C#, und die o.g. 
Funktionen hab ich bis jetzt noch nicht gebraucht.

Es könnte beispielsweise in etwa so gehen:

SerialPort1.Write((100).ToString)

Bin aber wie gesagt nicht sicher. Wenn du das .NET SDK installiert hast, 
bekommst du die Hilfedatei zum Framework, da steht dann ToString/Parse 
und auch weitere Konvertierungsfunktionen drin...

Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.