mikrocontroller.net

Forum: PC-Programmierung RS232 DCD abfragen


Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi leute kennt jemand ein Programm mit dem man die Änderungen am DCD 
eingang der RS232 abfragen kann bzw. hat kann mir jemand sagen wie ich 
den DCD in Visual Basic oder C++ abfragen kann um ihn dann 
aufzuzeichnen? Am besten wären ein paar codeschnipsel mit dennen ich 
dies realisieren kann! es gibt ja MSComm Control das ich in VB 
integrieren kann allerdings glaub ich ist das viel zu langsam!

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
 zum Einen kannst du es mit VB und dem MSCOMM machen,
Schnittstelle öffnen und beim Wechsel des DCD bekommst du ein Event:
Private Sub MSComm1_OnComm()

   Select Case MSComm1.CommEvent
       Case comEventBreak  ' A Break was received.
           Label1.Caption = "Break"
       Case comEventCDTO   ' CD (RLSD) Timeout.
           Label1.Caption = "CD Timeout"
       Case comEventCTSTO  ' CTS Timeout.
           Label1.Caption = "CTS Timeout"
       Case comEventDSRTO  ' DSR Timeout.
           Label1.Caption = "DSR Timeout"
       Case comEventFrame  ' Framing Error
           Label1.Caption = "Frame Error"
       Case comEventOverrun    ' Data Lost.
           Label1.Caption = "Data Lost"
       Case comEventRxOver ' Receive buffer overflow.
           Label1.Caption = "RX Overflow"
       Case comEventRxParity   ' Parity Error.
           Label1.Caption = "Parity Error"
       Case comEventTxFull ' Transmit buffer full.
           Label1.Caption = "TX Full"
       Case comEventDCB    ' Unexpected error retrieving DCB
           Label1.Caption = "DCB Error"
           
       'events
        Case comEvSend '1 Send event.
        Case comEvReceive '2 Receive event.  
        Case comEvCD '5 Change in carrier detect line.
            If MSComm1.CDHolding = True Then
          ' hier dann deinen Code
             End If
        Case comEventTxFull
    End Select

wie schnell das ganze ist, musst du testen.

oder du schaust mal hier:

http://winlirc.sourceforge.net/de/

da findest du den Quellcode für einen IR Empfänger, der an DCD hängt.
Das sollte dann schon schnell genug sein. Ist in C++.

mfg
Thomas

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Winlirc hab ich bereits ausprobiert und funktioniert super hab das
Programm auch etwas erweitert so dass von winlirc direkt andere
Programme oder Aktionen ausgeführt werden.

Allerdings finde ich nicht heraus wo direkt im Programm die RS232
abgefragt wird also ob der Eingang 1 oder 0 ist, so kann ich nicht
herausfinden welche Bitfolge am DCD ankommt.

Habe einen IR Empfänger am DCD hängen und möchte die gesendeten Codes
aufzeichnen um diese dann später mal in einen µC auszuwerten zu
vergleichen und dann einen dementsprechenden Ausgang am µC zu setzen

Also es muss schon relativ schnell gehen!

Gibt es einen Befehl in C++ mit dem man die RS232 abfragen kann?

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MSComm1_OnComm() wird nicht aufgerufen wenn sich an DCD was ändert

Ich öffne den Port erst per Button

Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.SThreshold = 0
MSComm1.InputLen = 0
MSComm1.PortOpen = True


End Sub


Trotzdem wird nichts aufgerufen wenn ich signale mit meiner 
Fernbedienung sende

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du die FernbedienungsCodes haben willst, dann wird das mit MSCOMM 
nix.


Ich würde es ganz anders machen:

Lass den Winlic laufen, der kann ja schon alles.

dann schreib eine eine kleine Anwendung, die sich via Winsock draufhängt

http://winlirc.sourceforge.net/de/developer.html

und schon hast du alles was du brauchst.

sobald ein Code erkannt wurde, bekommst du diesen in hex.

Der host ist deine locale IP und der Port 8765

für winsock und vb bekommst du 10000000 Beispiele im Netz

cu
Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich seh grad,

http://winlirc.sourceforge.net/de/vb.html

da ist sogar das fertige VB Sample

viel spass

thomas

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort auch ne gute idee aber wie gesagt, ich arbeite 
bereits mit Winlirc und dass funktioniert auch wunderbar! Macht z.B. bei 
Winamp ein Lied weiter oder so zeug.

Allerdings möchte ich nichts am PC steuern sondern möchte einen µC, 
dessen einer Eingang an einem IR Empfänger hängt, so programmieren, dass 
er komplett eigenständig läuft! Also ohne PC. Also ich drücke auf der TV 
Bedienung etwas und der µC setzt dementsprechend einen Ausgang!

Dazu muss ich jedoch die Codes wissen! um mir dann irgendwie ein 
Programm zu schreiben dass die Codes auswertet und dementsprechend einen 
Ausgang setzt!

Ja und da stellt sich die Frage ob man die Codes irgendwie aufzeichnen 
kann um dann eben ein Programm für den µC zu schreiben oder ob es sowas 
ähnliches wie Winlirc für den µC gibt!

Hat jemand schonmal sowas gemacht?

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Codes siehst du auch, wenn du den IR empfänger ans Oszi hängst.

Oder den Hexcode vom Winlirc in Binär umrechnen.

kannst dir auch mal das anschauen:

http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%...

da hängt der IR empfänger am µC, Sourcecode ist glaub ich auch dabei

oder da:

http://www.mikrocontroller.com

unter download gibt es auch sourcen für das decodieren von IR signalen

thomas

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut danke!!!

Das von Igor hab ich mir bereits angesehn. Bin aber beim versuch die USB 
ausgabe herauszulöschen und dann anstatt des USBs die Pins anzusteuern 
gescheitert

aber gut ich sollte nun genug informationen haben. Danke Thomas für die 
super unterstützung!!

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.