- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: MSComm Problem

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.05.2006
    Beiträge
    74

    MSComm Problem

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo

    Ich brauche Hilfe bei dem auslesen von Texten die von der C-Control an den Pc geschickt werden.
    Das Programm welches den Text am Com Port empfangen soll ist mit VisualBasic geschrieben.(MSCom)

    Hier der Code.





    Private Sub Form_Load()

    With MSComm1
    .CommPort = 1
    .Settings = "9600,N,8,1"
    .PortOpen = True
    .
    End With
    End Sub

    Private Sub MSComm1_OnComm()

    Select Case MSComm1.CommEvent
    Case comOverrun: MsgBox "Datenverlust!"
    Case comRxOver: MsgBox "Datenverlust!"
    Case comEvReceive: Text1.Text = MSComm1.Input

    End Select
    End Sub


    Leider bekomme ich im Textfenster 1 michts angezeigt.
    Ich habe schon ausprobiert Texte vom Pc zu senden das funktioniert einwandfrei.
    Wisst ihr vieleicht was ich Falsch mache oder könnt ihr mir weiterhelfen ich komme echt nicht weiter .

    Danke im Vorraus.

    Pablo

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.03.2004
    Alter
    75
    Beiträge
    487
    Welche VB-Version verwendest Du?
    Dein Programm sieht dem Beispiel von
    http://www.the-starbearer.de/Praxis/...232/MSCOMM.htm
    sehr ähnlich. Auf welche Werte hast du die anderen Parameter (InBufferSize ,OutBufferSize, RThreshold, SThreshold) eingestellt? Die Beschreibung der Parameter findest du unter dem angegebenen link.
    Versuch für den Empfang auch mal ein anderes Programm, z.B.
    http://www.ubasics.com/adam/electron...software.shtml
    Zum Testen kannst Du eine exe-Datei des Programms HAT herunterladen. Den source-code dazu gibts dort auch.

    Gruß, Günter

    Wußte gar nicht, dass der MsgBox-Befehl auch ohne Klammern funktioniert.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    07.05.2006
    Beiträge
    74
    Hallo Günter
    Danke für deine Antwort !!

    Ich benutze VB 6.0

    Ich habe einen Code gefunden mit dem es bis jetzt funktioniert.

    Private Sub Form_Load()
    ' Fire Rx Event Every x Bytes
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    ' When Inputting Data, Input y Bytes at a time
    MSComm1.InputLen = 1
    MSComm1.Settings = "9600,N,8,1"
    ' Open COM1
    MSComm1.CommPort = 1
    MSComm1.PortOpen = True
    End Sub

    Private Sub MSComm1_OnComm()
    Dim sData As Variant

    If MSComm1.CommEvent = comEvReceive Then
    sData = MSComm1.Input

    empfang = StrConv(sData, vbUnicode)

    Text1.Text = Text1.Text + empfang


    End If
    End Sub




    Kannst du mir vieleicht den Teil nochmal erkären.
    Ich verstehe das mit dem nicht richtig.

    " Dim sData As Variant "

    Genauseo wie dieser Code Teil.

    empfang = StrConv(sData, vbUnicode)

    Ich were dir sehr dankba wenn du mir die beiden Teile kurz erklären könntest.

    PAblo

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.03.2004
    Alter
    75
    Beiträge
    487
    Hallo,
    genau weiß ich das auch nicht, aber ein Versuch:

    Auf Deinem PC, auf dem das VB-Programm läuft, ist wahrscheinlich Unicode für die Behandlung von Text-Zeichen eingestellt. Wie praktisch auf allen neueren Windows-PCs.
    Unicode kodiert ein Textzeichen mit 2 Byte statt mit nur einem Byte wie im alten ASCII-Code. Dadurch können z.B. mehr Sonderzeichen oder auch japanische Schriftzeichen codiert werden.
    Deinem funktionierenden Empfangsprogramm ist die Art der Codierung erst mal egal, da es die ankommenden Zeichen im Datentyp „Variant“ ablegt. Dieser Datentyp ist eigentlich ein Text-Array, und wird von VB immer verwendet wenn kein spezieller Datentyp wie z.B. Byte, Integer usw. festgelegt wurde. Übrigens sehr speicheraufwendig.
    Damit der Inhalt der Variant-Variablen „sData“ auf Deinem Unicode-Rechner angezeigt werden kann, verwandelt man sie mit der Funktion StrConv() in das darstellbare Unicode-Textzeichen „empfang“.

    Also so in etwa

    Gruß, Günter

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad