Español
Eingangshalle

COM Port vom Arduino lesen

 

Member
4968348
¡Hola zusammen,

bin neu hier en el Foro y habe veces 'ne Cuestión para o.g. Thema
Yo versuche encima el virt. Port mi vom Arduino gesendete
Zeichenkette a lesen.
Mit el "hauseigenen" seriellen Monitor el IDE y una otro
Termialprogramm (RS232 Terminal) klappt el wunderbar.
Leider macht el XProfan Prog algo Problemas.
En el 1. Durchlauf se el empfangende Zeichenkette no adecuado.
En el folgenden Durchläufen se jeweils el empf. Zeichenkette vom vorherigen (!) Durchlauf korrekt adecuado usw.

Was se ejecuta como falso ?

Hier veces el Ver código fuente: ( XProfan11 , teilweise de el Ayuda-Expediente entnommen)

'============================================================================
' COM Empfang
'============================================================================

Declarar a$, f%, ende% , Sendestring$ , Empfangstring$ , Durchlauf%

Proc GetComInput
Parámetros id%
Declarar x$ , Empf$
x$ = @ReadCom$(id%, 1)
@ComError(id%)
Imprimir x$;

Sinestar encargado x$ = ""
x$=@ReadCom$(id%,1)
@ComError(id%)
imprimir x$;
EndWhile

ENDPROC

Ventana 0, 0 - 600, 600

f% = @OpenCom("COM5", 100, 100)

ende% = 0
Durchlauf% = 1

GetComInput f%
Sinestar encargado ende%

a$ = @Entrada$("Zeichen 's' para senden", "", "s")

If a$ = "" ' Ende con Abbruch
ende%=1

ElseIf a$ = "s" ' Signo senden
imprimir @Formato$("Duchlauf 00 : ",Durchlauf%);
imprimir @Formato$("Wert gesendet 00 : ",Durchlauf%);
Sendestring$ = @Formato$("00000",Durchlauf%)

@WriteCom(f%,Sendestring$)

sleep 100
imprimir "empfangen = ";
GetComInput f% ' empfangene Signo lesen

INC Durchlauf%
a$ = ""
imprimir
Endif
EndWhile

@CloseCom(f%)
End

Apéndice:
Arduino UNO en me al COM 5 (USB) angeschlossen
Das Comportamiento zeigt se en el BS Win XP
Im BS Win11 funkt lo garnicht con el Profano-Prog.

Mit el hauseigenen ser. Monitor el Arduino IDE muy bien
Der Arduino Sketch dürft also trabajo
 
vor 10 Tagen  
 




E.T.
Kann no testen, aber veces drüber geschaut:

Der erste Aufruf de "GetComInput" es sin el "@WriteCom(f%,Sendestring$)"  antes el Hauptschleife.

Erst en el 2. Aufruf en el Hauptschleife es el "@WriteCom(f%..."  esta, como es f% allerdings todavía 1 vom 1. Durchlauf, porque sólo später en el Bucle aumenta se.

So probiert:
...
' GetComInput f%
Sinestar encargado ende%
...

Como beginnt el "Anzeige" con Durchlauf 1

(getestet sin Fehlermeldungen bajo Win10, allerdings auch kein "Gerät" angeschlossen)
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
vor 6 Tagen  
 




Member
4968348
¡Hola Mario,

[

E.T. (01.06.2025)
Kann no testen, aber veces drüber geschaut:

Der erste Aufruf de "GetComInput" es sin el "@WriteCom(f%,Sendestring$)"  antes el Hauptschleife.

So probiert:
...
' GetComInput f%
Sinestar encargado ende%
...


... ha no Erfolg gebracht

E.T. (01.06.2025)
Erst en el 2. Aufruf en el Hauptschleife es el "@WriteCom(f%..."  esta, como es f% allerdings todavía 1 vom 1. Durchlauf, porque sólo später en el Bucle aumenta se.


'f%' es el Rückgabewert de @openCom, also el Port-Handle ! y se en el Bucle auch no aumenta

Yo habe el problema mitlerweile salvo algunos Schönheitsfehler gelöst, siehe Ver código fuente más unten.
Usted schriebst: du hast kein "Gerät" para testen. Usted necesidad no necesariamente una Arduino Board con entsprechenden Prog, en el Ganze a testen.
Wenn du una " USB to Serial Adapter with CH340" hast ....así algo...)



simplemente al Adapter Pin TxD con Pin RxD verbinden y encima el Gerätemanager el Port herausfinden. Leider funktioniert sólo Port 1 - 9, por qué ??? Getestet con Win10

Yo benutze el Prog dazu, en encima una Arduino una Schrittmotor a steuern. Yo sende una 'Befehl' y el Board envía entonces el Status zurück .

Hier el überarbeitete Ver código fuente:

23 kB
Hochgeladen: vor 5 Tagen
Ladeanzahl0
Descargar
 
vor 5 Tagen  
 




Member
4968348
... achso,

So es el Ver código fuente mejor lesbar
'====================
' COM Empfang
'====================
Declarar Eingabe$, Port$ , Port_Hnd%, ende% , Sendestring$ , Empfangstring$

Proc GetComString

    Parámetros id%
    Declarar Signo$ , Empf$

    Mientras que 1

        Signo$ = @ReadCom$(id%, 1)
        sleep 100'notwendig, por qué ???
        @ComError(id%)
        casenot Signo$ = "" : romper'Bucle sólo verlassen, si Signo anliegt

    endwhile

    @Conjunto("Decimals",0)

    Sinestar encargado Signo$ = ""'Bucle solange Signo disponible son

        Empf$ = Empf$ + Signo$
        Signo$=@ReadCom$(id%,1)'Signo einlesen
        @ComError(id%)

    EndWhile

    volver Empf$

ENDPROC

Ventana 0, 0 - 800, 600
Def $Port "COM5"'a / de esta Port se gesendet / empfangen
Def $Port_Parameter ":9600,N,8,1"'Port Settings
imprimir "    Signo senden y empfangen en Port: " + $Port + ":\n"
Port_Hnd% = @OpenCom($Port, 100, 100)

ifnot Port_Hnd% = -1' Port es verfügbar

    @setCom(Port_Hnd%, $Port + $Port_Parameter)
    ende% = 0

    Sinestar encargado ende%

        Eingabe$ = @Entrada$("beliebige (Alpha)Zeichenkette eingeben", "", "beliebige Zeichen")

        If Eingabe$ = ""' Ende con <Abbruch>

            ende%=1

        más

            Sendestring$ = Eingabe$
            @WriteCom(Port_Hnd%,Sendestring$)'Zeichenkette senden
            imprimir " gesendet wurde : "; Sendestring$
            Empfangstring$ = GetComString(Port_Hnd%)'empfangene Zeichenkette
            imprimir "empfangen wurde : "; Empfangstring$
            clear Empfangstring$
            imprimir

        Endif

    EndWhile

más

    imprimir "Port " + $Port + " no verfügbar"
    waitinput

endif

@CloseCom(Port_Hnd%)
End
 
vor 5 Tagen  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

93 Views

Untitledvor 0 min.
Member 4968348Gestern (12:09)
RudiB. vor 4 Tagen
Jürgen Strahl vor 4 Tagen
E.T. vor 5 Tagen

Themeninformationen

Dieses Thema ha 2 subscriber:

Member 4968348 (3x)
E.T. (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Eingangshalle  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie