Websocket zur Sensordatenuebermittlung - TXT Controller

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Lari
Beiträge: 9
Registriert: 06 Jan 2020, 23:22

Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Lari » 06 Jan 2020, 23:29

Hallo,
ich habe eine Fabrik von Fischertechnik.
Ich wuerde gerne auf den TXT-Controllern ein Programm haben, welches ueber eine Websocket Daten der Sensoren und Motoren sendet an einen Webserver.
Als konkretes Beispiel: Eine JSON-Nachricht, wenn zum Beispiel eine Lichtschranke gebrochen wird.
Habt ihr Ideen wie man so etwas angehen koennte?
Ich stehe ein bisschen auf dem Schlauch und ein paar Ansaetze wuerden mir sehr weiterhelfen!
Vielen Dank!
Lari


Lari
Beiträge: 9
Registriert: 06 Jan 2020, 23:22

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Lari » 08 Jan 2020, 23:59

Thanks for your answer! I will look into it, looks exactly like what I need :)

Torsten
Beiträge: 181
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Torsten » 11 Jan 2020, 11:19

Hallo Lari,
Lari hat geschrieben:
06 Jan 2020, 23:29
Ich wuerde gerne auf den TXT-Controllern ein Programm haben, welches ueber eine Websocket Daten der Sensoren und Motoren sendet an einen Webserver.
Als konkretes Beispiel: Eine JSON-Nachricht, wenn zum Beispiel eine Lichtschranke gebrochen wird.
Falls Du nicht unbedingt auf ROBOPro angewiesen bist, könntest Du auch Python verwenden (das wird ja seit kurzem standardmäßig auf dem TXT mitgeliefert). Für Python gibt auch bereits JSON-Encoder/Decoder und Websockets sind sowie immer dabei.

Viele Grüße
Torsten


Lari
Beiträge: 9
Registriert: 06 Jan 2020, 23:22

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Lari » 11 Jan 2020, 17:12

Danke fuer eure Antworten!
Lari hat geschrieben:
06 Jan 2020, 23:29
Falls Du nicht unbedingt auf ROBOPro angewiesen bist, könntest Du auch Python verwenden (das wird ja seit kurzem standardmäßig auf dem TXT mitgeliefert). Für Python gibt auch bereits JSON-Encoder/Decoder und Websockets sind sowie immer dabei.
@Thorsten: Ja Python ware eigentlich eine ziemlich gute Option. Mein Problem ist nur, dass ich schon mehrere komplexe Scripts in ROBOPro habe und diese dann umschreiben muesste. Was ich im Moment noch vermeiden will.
Oder gibt es eine Moeglichkeit das ROBOPro Programm und ein Python scribt gleichzeitig laufen zu lassen?
Ich will eigentlich nur ganz simple den Status von den Motoren und Sensoren bekommen.

Torsten
Beiträge: 181
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Torsten » 11 Jan 2020, 18:28

Hallo Lari,
Lari hat geschrieben:
11 Jan 2020, 17:12
Oder gibt es eine Moeglichkeit das ROBOPro Programm und ein Python scribt gleichzeitig laufen zu lassen?
es ist leider nicht möglich, ROBOPro und Python (ftrobopy) gleichzeitig zu verwenden, da der Serverprozess auf dem TXT (TxtControlMain) über Websockets nur die Verbindung zu einem Programm zulässt.

Viele Grüße
Torsten

vleeuwen
Beiträge: 1102
Registriert: 31 Okt 2010, 22:23

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von vleeuwen » 11 Jan 2020, 21:55

I agree with Torsten,
Python and RoboPro can't easy be combined. It looks like that the internal fischertechnik TXT Berkeley-socket is limit to one client.
However there are some solutions.
All in the line of how the TXT MotorIO and his FRoboPy is operating, namely socket based communication.
Because RoboPro has the option of the user defined elements (SLI's), you can think about the next strategies:
*)
A SLI that add dedicated Web Socket server functionality to your RoboPro application.
This with the functionality of transmitting relevant parts of the TA (transfer area) to the subscript clients and/or receiving TA data and fill it in into the TA.
The web socket can do this text base (Json, XML) or binary (compressed?). The last will be faster.
Web socket is programming language independent, so you can use a client a Python or a html/Jscript or other languages that has a web socket library.
That is what I do in my proof of concept.
*)
A SLI that add dedicated Berkely-socket server support to your RoboPro application.
This with the functionality of transmitting relevant parts of the TA (transfer area) to the subscript clients and/or receiving TA data and fill it in into the TA.
This solution is also langage independent, so Python can be used at the client side. If you make use of relevant parts of the TA definition, and adapt parts of the FtRoboPy, the client interface is already their.

====================Google translate, for what it is ===========================================================
Ik ben het eens met Torsten,
Python en RoboPro kunnen niet eenvoudig worden gecombineerd. Het lijkt erop dat de interne fischertechnik TXT Berkeley-socket beperkt is tot één client.
Er zijn echter enkele oplossingen.
Alles in lijn met hoe de TXT MotorIO en zijn FRoboPy werken, namelijk socket-gebaseerde communicatie.
Omdat RoboPro de optie van de door de gebruiker gedefinieerde elementen (SLI's) heeft, kunt u nadenken over de volgende strategieën:
*)
Een SLI die speciale Web Socket serverfunctionaliteit toevoegt aan uw RoboPro-toepassing.
Dit met de functionaliteit van verzenden van relevante delen van de TA (overdrachtsgebied) naar de subscriptclients en / of het ontvangen van TA-gegevens en deze invullen in de TA.
De websocket kan deze tekstbasis (Json, XML) of binair (gecomprimeerd?) Uitvoeren. De laatste zal sneller zijn.
Websocket is onafhankelijk van de programmeertaal, dus u kunt een client gebruiken een Python of een html / Jscript of andere talen met een websocketbibliotheek.
Dat is wat ik doe in mijn proof of concept.
*)
Een SLI die speciale [url = https://en.wikipedia.org/wiki/Berkeley_sockets]Berkely-socket] Berkely-socket [/ url] serverondersteuning toevoegt aan uw RoboPro-applicatie.
Dit met de functionaliteit van het verzenden van relevante delen van de TA (overdrachtsgebied) naar de subscript-clients en / of het ontvangen van TA-gegevens en deze in te vullen in de TA.
Deze oplossing is ook langage-onafhankelijk, zodat Python aan de clientzijde kan worden gebruikt. Als u relevante delen van de TA-definitie gebruikt en delen van de FtRoboPy aanpast, is de clientinterface er al.

Je suis d'accord avec Torsten,Python et RoboPro ne peuvent pas être facilement combinés. Il semble que le socket fischertechnik TXT Berkeley interne soit limité à un client.Cependant, il existe des solutions.Tout dans la ligne de fonctionnement du TXT MotorIO et de son FRoboPy, à savoir la communication par socket.Parce que RoboPro a l'option des éléments définis par l'utilisateur (SLI), vous pouvez penser aux stratégies suivantes:
*)SLI qui ajoute une fonctionnalité de serveur [url = https: //nl.wikipedia.org/wiki/WebSocket] Web Socket [/ url] dédiée à votre application RoboPro.Ceci avec la fonctionnalité de
transmettant les parties pertinentes de l'AT (zone de transfert) aux clients abonnés et / ou recevoir des données TA et les remplir dans le TA.Le socket web peut faire cette base de texte (Json, XML) ou binaire (compressé?). Le dernier sera plus rapide.La socket Web est indépendante du langage de programmation, vous pouvez donc utiliser un client Python ou html / Jscript ou d'autres langages disposant d'une bibliothèque de socket Web.C'est ce que je fais dans ma [url = viewtopic.php? F = 8 & t = 5705 & sid = e51d1aa19c573085fc766a051cfce870 # p42158] preuve de concept [/url].
*)Un SLI qui ajoute la prise en charge du serveur dédié [url = https://en.wikipedia.org/wiki/Berkeley_sockets] Berkely-socket [/url] à votre application RoboPro.Ceci avec la fonctionnalité de transmettre les parties pertinentes de l'AT (zone de transfert) aux clients en indice et / ou de recevoir les données TA et de les remplir dans l'AT.Cette solution est également indépendante du langage, donc Python peut être utilisé côté client. Si vous utilisez des parties pertinentes de la définition TA et adaptez des parties de FtRoboPy, l'interface client est déjà la.

Ich stimme torsten zuPython und RoboPro können nicht einfach kombiniert werden. Es sieht so aus, als ob die interne fischertechnik TXT Berkeley-Buchse auf einen Client beschränkt ist.Es gibt jedoch einige Lösungen.Alles im Einklang mit der Funktionsweise des TXT MotorIO und seines FRoboPy, nämlich der buchsenbasierten Kommunikation.Da RoboPro über die Option der benutzerdefinierten Elemente (SLIs) verfügt, können Sie über die nächsten Strategien nachdenken:
*)
Eine SLI, die Ihrer RoboPro-Anwendung dedizierte Web Socket -Serverfunktionen hinzufügt.Dies mit der Funktionalität von , relevante Teile des TA (Übertragungsbereich) an die tiefgestellten Clients zu übertragen und / oder TA-Daten empfangen und in den TA eintragen.Der Web-Socket kann diese Textbasis (Json, XML) oder Binärdatei (komprimiert?). Der letzte wird schneller sein.Web Socket ist programmiersprachenunabhängig. Sie können also einen Client verwenden, der über eine Python- oder HTML / J-Skript- oder eine andere Sprache mit einer Web Socket-Bibliothek verfügt.Das mache ich in meinem [url = https: //forum.ftcommunity.de/viewtopic.php?F=8 & t = 5705 & sid=e51d1aa19c573085fc766a051cfce870#p42158] Proof of Concept [/url].
*)
Eine SLI, die Ihrer RoboPro-Anwendung dedizierte Berkely-Socket - Serverunterstützung hinzufügt. Dies mit der Funktionalität, relevante Teile des TA (Übertragungsbereich) an die tiefgestellten Clients zu senden und / oder TA-Daten zu empfangen und in den TA einzufügen.Diese Lösung ist auch sprachunabhängig, sodass Python auf der Clientseite verwendet werden kann. Wenn Sie relevante Teile der TA-Definition verwenden und Teile des FtRoboPy anpassen, ist die Client-Schnittstelle bereits vorhanden.

Torsten
Beiträge: 181
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Torsten » 11 Jan 2020, 23:06

Yes, I agree, this would be a possible solution to the problem of combining RoboPro and Python. However it would involve some C/C++ programming as well.

Best,
Torsten

vleeuwen
Beiträge: 1102
Registriert: 31 Okt 2010, 22:23

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von vleeuwen » 11 Jan 2020, 23:42

Certainly, SLI's are C/C++ project
(Embedded) CivetWeb also.
But is no low level C/C++ coding.
It differ not so much from Python and the Eclipse development environment is very helpful.

Lari
Beiträge: 9
Registriert: 06 Jan 2020, 23:22

Re: Websocket zur Sensordatenuebermittlung - TXT Controller

Beitrag von Lari » 14 Jan 2020, 22:28

Thank you all for your responses! :)
I think I will just rewrite the robo pro files, seems for me the best and easiest way and I will get more controll.

Antworten