[RESOLU]Communication Port COM

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: [RESOLU]Communication Port COM

Message par GallyHC »

Bonjour,

J'avais fait ce code alors si ça peut aidé quelqu'un ^^ (j'avais commencer pour qu'il soit multi-OS, mais pas encore tester sur Linux) :

Code : Tout sélectionner

#SERIAL_PORTCOM_MIN = 1
#SERIAL_PORTCOM_MAX = 127

CompilerSelect #PB_Compiler_OS
  CompilerCase #PB_OS_Windows
    #PortName = "COM"
  CompilerCase #PB_OS_Linux
    #PortName = "/dev/ttyS"
  CompilerCase #PB_OS_MacOS
    #PortName = #Null$
    End
CompilerEndSelect

Procedure SERIAL_FindPort()
;
;
;
  Define.i i, j, iPortCom, iPortBaud
  Define.s sPortCom, sPortBaud = "50;75;110;150;300;600;1200;1800;2400;4800;9600;19200;38400;57600;115200;128000;153600;230400;256000;460800;921600"
  ;
  ;
  ;
  For i=#SERIAL_PORTCOM_MIN To #SERIAL_PORTCOM_MAX
    sPortCom = #PortName + Str(i)
    iPortCom = OpenSerialPort(#PB_Any, sPortCom, 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 512, 512)
    If IsSerialPort(iPortCom)
      CloseSerialPort(iPortCom)
      ;
      Debug sPortCom + " : PASS"
      ;
      For j=0 To CountString(sPortBaud, ";")
        iPortCom = OpenSerialPort(#PB_Any, sPortCom, Val(StringField(sPortBaud, j + 1, ";")), #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 512, 512)
        If IsSerialPort(iPortCom)
          CloseSerialPort(iPortCom)
          Debug ">>>>>>>>>>>>>>> " + StringField(sPortBaud, j + 1, ";") + " Baud PASS"
        EndIf
      Next j
      ;  
    EndIf
  Next i
  
EndProcedure

SERIAL_FindPort()
Cordialement,
GallyHC
Dernière modification par GallyHC le lun. 01/oct./2018 11:44, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: [RESOLU]Communication Port COM

Message par Ekim »

Merci pour ce petit cours) maintenant je comprends mieux :wink:
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: [RESOLU]Communication Port COM

Message par venom »

Tu voulais communiquer avec quel module ?







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: [RESOLU]Communication Port COM

Message par GallyHC »

Bonjour,

En gros c'été pour faire un hyper-terminal car j'avais besoin de communiquer avec par exemple des switch 3Com, ect... (j'avais déjà fait la partie de décodage VT100).

Voila en gros ce que cela donne pour le moment (si un jour j'ai le temps ^^.....) :
Image

GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: [RESOLU]Communication Port COM

Message par venom »

Ah oui
Sympa l'interface GallyHC, un peu "oldscool" 8)






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: [RESOLU]Communication Port COM

Message par Ollivier »

Euh... Question !

C'est l'USB tout seul qui peut être vu comme un port série ? Ou bien c'est le matériel que l'on connecte qui va s'officialiser "authentique port série" ?
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: [RESOLU]Communication Port COM

Message par Marc56 »

Ollivier a écrit :C'est l'USB tout seul qui peut être vu comme un port série ? Ou bien c'est le matériel que l'on connecte qui va s'officialiser "authentique port série" ?
C'est un des 127 ports port usb que Windows va faire reconnaitre comme un port série normal (COM1 à 127)
Ceci grâce au driver que tu installes (sous Windows) et qui doit correspondre au chipset situé dans le périphérique distant (ex: carte Arduino) ou dans le câble lui-même (ex: FTDI).
Windows affectera ensuite un port COMxx à chaque nouvelle connexion permettant ainsi de piloter plusieurs périphériques ensembles, sans te soucier des adresses comme on devait le faire en changeant la position des jumpers sur les cartes séries.
Tu peux parfois via Windows fixer ce numéro de port si ton application ne sais pas le détecter à chaque connexion.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: [RESOLU]Communication Port COM

Message par Ollivier »

Merci pour ton complément d'information (info en page 1). J'ai posé cette question, parce que sur le plan technique, un port USB, fait circuler ses données en série. Et en relisant les fréquences (en bauds), qui sont nettement supérieures aux fréquences standard RS232, je me suis demandé si une substitution logicielle n'avait pas été créée pour traiter directement un port USB comme un port série ancestral.
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: [RESOLU]Communication Port COM

Message par Marc56 »

Ollivier a écrit :Merci pour ton complément d'information (info en page 1). J'ai posé cette question, parce que sur le plan technique, un port USB, fait circuler ses données en série. Et en relisant les fréquences (en bauds), qui sont nettement supérieures aux fréquences standard RS232, je me suis demandé si une substitution logicielle n'avait pas été créée pour traiter directement un port USB comme un port série ancestral.
La bande passante est partagée ce qui fait qu'un périphérique à 300 bauds ne ralentira pas les autres.
Il y a une puce qui règle la sérialisation et le partage. Pour le programmeur c'est donc transparent.
https://fr.wikipedia.org/wiki/Universal ... e_passante
C'est aussi pour cela qu'il existe des câbles Série/USB pour connecter directement des périphéries série sans passer par une carte.
Le chipset est alors dans la prise elle-même
https://www.ftdichip.com/Products/Cable ... Serial.htm
Répondre