mikrocontroller.net

Forum: PC-Programmierung Einfacher Sende-Button seriell


Autor: Jens Borgmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe mir gerade VB Express 2005  runtergeladen und mache gerade meine
ersten Schritte in V.
Möchte folgendes ausprobieren.
Soll einfach nur ein button sein, der auf Knopfdruck einen
bestimmte Zeichenfolge über die serielle Schnittstelle ausgibt.
Hintergrund: Beamer kann man unter anderem über die serielle
Schnittstelle ansteuern.Alle Befehle der Fernbedienung ( HEX-Format )
stehen im Handbuch.

Gruß
Jens

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal, ob es in der Toolbox unter "Komponenten" den "SerialPort"
gibt. Den kannst du verwenden.

MFG

Kai

Autor: Jens Borgmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

den habe ich bereits gefunden.
Aber wie verwende ich den ?
Mein erstes Programm war so ein sound-modul a la Raab.
Doppelklick auf den Button, den code ( aus dem Internet kopiert )
reingeschrieben , noch ne declaration ( auch kopiert ) drübergesetzt.
Fertig und eigentlich nix pogrammiert
Kann also nicht so scher sein.
Was ich suche ,ist der Befehl, den ich dem button zuordenen muß, damit
er was rausgibt.

Gruß

Jens

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doppelklick: war vollkommen richtig :)

Es gibt auch noch mehr "Events" diese siehst du wenn du beim
Eigenschaftenfenster auf den "Blitz" klickst ..

Was hinter den Kulissen passiert, braucht dich eigentlich nicht zu
interessieren ...

Hier dennoch eine Erklärung. Für den Event Clicked (oder wie er heisst)
wird ein Eventhandler generiert (eben die Methode die aufgerufen wird).
Ausserdem fügt Visual Studio automatisch zum Event Clicked die
Verbindung zum EventHandler hinzu. Das erkennst du an einer Zeile
button1.Clicked += NAmeEventhandler (oder so ähnlich). Somit ist dann
der Event mit der EventHandling Routine verbunden.

Aber wie gesagt - das Ganze braucht dich nicht zu interessieren - darum
gehts ja im Endeffekt :)

Autor: Andreas Menge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber um den seriellen Port einzubinden, muss ich ja nun in die event
methoden quellcode einfügen? also ihm sagen was ich zB an den Beamer
oder in meinem Fall will ich einem microcontroller binär codes senden
0001 usw.. das heißt also integerzahlen 0-9. habt ihr dafür beispiele?
wäre sehr dankbar bin auch anfänger mit visual basic.. habe jedoch mit
borland schon erfahrungen mit objektorientierter programmierung,
bekomme hier jedoch keine serielle schnittstelle angesteuert.

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich weiss gehts folgendermaßen:

Von der Toolbar die Komponente SerialPort auf die Form werfen. Du
bekommst dann ein Objekt namens serialPort1.

Diesem weist du dann die entsprechenden Einstellungen zu:

serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.DtrEnable = false;
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.PortName = "COM3";
serialPort1.StopBits = System.IO.Ports.StopBits.One;

Die entsprechenden Einstellungen wirst du dem Handbuch des Beamers
entnehmen.

daraufhin öffnest du mittels
serialPort1.Open();
den eigentlichen seriellen Anschluss mit den Einstellungen, die du oben
gesetzt hast.

Nun kannst du mittels:
byte[] bs = new byte[5];
bs[0] = 0xff;
bs[1] = 0x30;
...
die einzelnen bytes in ein array schreiben und das dann mittels

serialPort1.Write(bs, 0, 5);

zum Beamer schicken. In unserem fall würde er jetzt also
1111 1111 0000 0011 ...
an den Beamer schicken

Ich weiss leider nicht wie die Befehle für den Beamer aussehen (nur ein
Byte oder mehrere, ...)

Autor: Andreas Menge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke danke..
habe das jetzt in den Private Sub von Form1_Load geschrieben?
jedoch meckert er bei der Deklaration von byte [] bs = new byte[2];
kennt visual das nicht oder mach ich noch irgendwas falsch?
und beim senden SerialPort1.Write(bs, 0, 1); bedeutet, dass er den
array 0 und 1 sendet? also hier 0xff = ? und 0x30 = 0 ?

Autor: swiqwiojde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du Visual Studio C++ oder Visual Basic? Es klingt mehr nach Basic.

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er schreibt von Visual Basic Express 2005. Also VB Code.
Mein Code ist C# Code. Evtl. geht hier die Array Initialiserung etwas
anders. Ich hatte noch nie mit VB.NET zu tun, kann also hier nicht
weiterhelfen. Das hier sollte jedoch helfen:
http://www.galileocomputing.de/openbook/vb_net/msv...

Write(bs, 0, 1) ... den Befehl hättest du aber schon in der MSDN
nachschlagen können, aber warum denn wenn man eh hier alles vorgekaut
bekommt.

Er ist definiert als:
Write(byte[], offset, length).

kurzum: sende vom byte array, das angegeben wird, ab dem byte mit der
nummer "offset" und zwar soviele bytes wie in "length" stehen.
Er würde also 1 Byte senden (und zwar das erste).

Autor: Andreas Menge (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
sorry dann habe ich das wohl falsch interpretiert.. natürlich nutze ich
dann auch lieber visual c++. das ist borland dann doch ähnlicher. nun
habe ich alle deine anweisungen befolgt und wollte nun folgendes
testen.
Habe einfach eine neue windows form anwendung erstellt und in dem
vorhanden Form1 ein Button1 erstellt. Bei Click auf diesen Button soll
nun an den COM 1 Port eine 1 also binär oder in byte zu sprechen 0x31
gesendet werden. Doch beim kompilieren kommen wieder nur
deklarationsfehler. Aller anfang ist doch schwer.
Als Anlage habe ich die Form1.h datei beigefügt.. vllt habe ich auch
einfach nur an der falschen Stelle den Quelltext eingefügt? aber wenn
ich das richtig verstanden habe ist das der CLick Event Abschnitt.

mfg und bitte nicht an mir verzweifeln g

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers mal mit C# ...
;)

Das ist imho der beste Weg zu beginnen, wenn du ein wenig C/C++
sprichst.

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.