jeudi 8 mai 2014

Attaquer le port série en PowerShell

J'ai justement l'intention de mettre au point une petite interface machine -> homme avec un Arduino.
L'avantage d'Arduino, c'est qu'il est reconnu comme un port série lorsqu'il il est branché sur le PC.

Je peux donc informer mon petit Arduino d'une tâche à réaliser depuis notre programme en m'adressant à lui directement via le port série :-)

Pour mon grand malheur notre programme date de l'age de pierre (code Clipper compilé en 32bit avec Harbor-project, DB en PostgreSql).
Du coup, j'ai régulièrement l'occasion de déléguer certaines tâches directement à des scripts PowerShell... un bon compromis pour interagir avec le système... la où la fonctionnalité n'est pas accessible via Clipper.

Du coup, je me demandais s'il était possible d'adresser facilement le port série depuis un script PowerShell.
La réponse est oui:
Ecriture sur le port-série:
PS> [System.IO.Ports.SerialPort]::getportnames()
COM3
PS> $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
PS> $port.open()
PS> $port.WriteLine("Hello world")
PS> $port.Close()

Lecture sur le port série
PS> $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
PS> $port.Open()
PS> $port.ReadLine()

Souce: Cet article de MSDN


Aucun commentaire: