michastro
Posts: 12
Joined: Fri Jan 09, 2015 12:17 pm

Utilisation d'un convertisseur USB/RS232

Sat Apr 08, 2017 9:12 pm

Bonjour,
J'ai un adaptateur USB/RS232 sur mon PI3. En Python, le code suivant fait clignoter la led (donc envoi de données):

Code: Select all

ser = serial.Serial(
            
    port='/dev/ttyUSB0',
    baudrate = 9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)
counter=0
          
      
while 1:
    ser.write('Write counter: \n')
    time.sleep(1)
    counter += 1
Par contre sous FPC avec l'unit synaser, le même code ne marche pas:

Code: Select all

  ser:=TBlockSerial.Create;
  ser.Connect('/dev/ttyUSB0');
  ser.config(9600,8,'N',0,false,true);
  while true do
  begin
     ser.SendString('Write counter: \n');
     Sleep(1000);
  end;
Je m'arrache les cheveux car je ne vois pas de différences!!
Des idées?
Merci

danjperron
Posts: 3391
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Utilisation d'un convertisseur USB/RS232

Sat Apr 08, 2017 11:26 pm

Peut être un lien pour savoir c'est quoi FPC.

Federal Power Commission. Fruity pad controller .........

Ok C'est free Pascal. Wow cela fait au moins 20 ans que je n'ai pas programmé en Pascal. Pourtant j'ai fait des instruments avec ce language.

danjperron
Posts: 3391
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Utilisation d'un convertisseur USB/RS232

Sat Apr 08, 2017 11:46 pm

La grosse différence c'est le Hard handshake qui est ON en pascal. Hum je me demande si le Pi transmet quelque chose?Je ne pense pas alors change le True pour False

Mukatai
Posts: 38
Joined: Wed Oct 23, 2013 7:57 am

Re: Utilisation d'un convertisseur USB/RS232

Sun Apr 09, 2017 8:28 pm

Salut,

Que dis la variable LastErrorDesc de ton objet ser après chaque étape ?

Sinon as-tu testé le code ci-dessous qui semble fonctionnel sous linux ?
http://forum.lazarus.freepascal.org/ind ... ic=12063.0

Notamment : LinuxLock:= False;

@+

michastro
Posts: 12
Joined: Fri Jan 09, 2015 12:17 pm

Re: Utilisation d'un convertisseur USB/RS232

Sun Apr 09, 2017 9:51 pm

pour danjperron, effectivement false parait plus judicieux
Sinon le LastErrorDesc est OK au premier coup sur le connect, mais ensuite j'ai un:
"Port owned by other process"
Donc en fait cela marche au premier lancement de programme, mais plus ensuite. Contrairement à d'autres OS, le port série n'est pas fermé en tuant le programme!!! J'ai rajoutant un CloseSocket en sorti de programme, et là bingo, ça marche à tous les coups. Demain je teste des échanges avec le boitier de gestion du télescope pour voir si tout marche bien.
Merci

michastro
Posts: 12
Joined: Fri Jan 09, 2015 12:17 pm

Re: Utilisation d'un convertisseur USB/RS232

Mon Apr 10, 2017 8:32 am

Bonjour,
Victoire!! Je communique avec mon interface de télescope. Merci pour votre aide.
En résumé, 1: il faut bien avoir le hardflow à false
2: bien refermé le port à la fermeture du programme sinon il faut redémarrer le PI3 pour pouvoir le réutiliser (pourquoi, ça c'est encore un mystère).

Michel

Return to “Français”