Stap 12: [TCP]: laat een client te maken!
De client (Raspberry Pi in ons geval), waarmee de gegevens worden ontvangen van de server (onze pct. in ons geval) krijgt gegevens naar de Pi (seriële commando's die worden uitgevoerd op de Arduino) verzenden en ontvangen van gegevens terug (Sensor lezingen en feedback direct van de Arduino. De regeling aangesloten toont de relatie tussen de drie.
De Python Wiki TcpCommunication artikel toont aan dat het zo eenvoudig om dergelijke communicatie met een paar lijnen van code met behulp van de ingebouwde socket-module. We hebben een programma op de PC en een ander programma op de Pi.
We zullen werken met interrupts. Leer dat meer in de uitleg stap over hen. Lees er over buffers ook.
Nu, kunnen we lezen de gegevens die we hebben met behulp van data=s.recv(BUFFER_SIZE), maar het zal worden hoeveel tekens die we hebben gedefinieerd met lege beten. Kunnen we interrupts gebruiken? Een andere vraag: zal de buffer leeg of zal het wachten op de server voor het verzenden van meer gegevens in die geval de server/client een timeout uitzondering gooien zal?
Laat dat één filter tegelijk aan te pakken. Voordat we dat doen, heb ik dit artikel Wikipedia dat lijsten TCP- en UDP-poorten gebruikt opgezocht. Na een snelle blik heb ik besloten dat dit project op poort 12298 communiceren zal omdat deze niet wordt gebruikt door het besturingssysteem en de Lokale Servicediensten.