Forum: PC-Programmierung VB.Net Serialport öffnen


von pacer (Gast)


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

von Mike (Gast)


Lesenswert?


von pacer (Gast)


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...

von juppi (Gast)


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!

von Mike (Gast)


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

von juppi (Gast)


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ß

von pacer (Gast)


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 :-)

von juppi (Gast)


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ß

von Ascii (Gast)


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?

von Ralf (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.