Seite 1 von 1
Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 17:36
von funkheld
Hallo, guten Tag.
Ich möchte bitte gesendete Daten auswerten.
Wie geht das bitte ?
In data kommt vom Clienten der Text : "trottle,0.5", der dann ausgewertet werden soll für unten.
Code: Alles auswählen
while True:
data =con.recv(BUFFER_SIZE)
.....
befehl=...........soll der String "trottle" sein
wert=.... soll Float 0.5 sein
if not data: break
if (befehl) == 'trottle':
vessel.control.throttle = wert
Danke.
Gruss
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 18:09
von noisefloor
Hallo,
Strings kennen eine `split` Methode. Die wäre für dich hier hilfreich.
Gruß, noisefloor
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 18:25
von funkheld
Danke , es funktioniert schon etwas.
-------------------
a = 'trottle,0.5'
print a.split(",")
--------------------
Es kommt : ['trottle', '0.5']
Wie kann ich jetzt bitte die beiden je einer Variablen zuweisen nach dem es wie oben angekommen ist?
Kannst du mir oben das bitte einmal so schreiben?
Danke.
Gruss
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 19:25
von Sirius3
@funkheld: es sieht so aus, als ob Du auf rohen TCP-Streams arbeitest; so funktioniert das aber nicht. Da kann man nicht einfach `recv` aufrufen und hoffen, dass eine Nachricht ankommt. Du brauchst ein Protokoll. Im einfachsten Fall irgendwas Zeilenbasiertes. Dann nimmt man aber keine Sockets sondern läßt sich ein Fileobjekt mit makefile geben.
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 20:31
von noisefloor
Hallo,
Wie kann ich jetzt bitte die beiden je einer Variablen zuweisen nach dem es wie oben angekommen ist?
@funkheld: du versendest Daten über Sockets und weiß nicht, wie man per Index auf Listen zugreift? Kann eigentlich nicht sein... das sind absolute Grundlagen von Python...
Gruß, noisefloor
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 21:52
von funkheld
Ich habe dazu keine Listen gebraucht.
Gruss
PS: Du fährst ein Auto und weisst nicht aus welchen Material die Kurbelwelle ist ?
Das sind absolute Grundlagen wenn man ein Auto fährt. :K :K :K
Re: Gesendete Daten auswerten ?
Verfasst: Samstag 3. März 2018, 22:09
von noisefloor
Hallo,
@funkheld: der Vergleich ist echter Bullshit... Passender wäre, die fährst Auto, ohne die grundlegenden Verkehrsregeln zu kennen.
Python hat eine handvoll Datentypen, eine davon sind Listen. Das gehört zu den absoluten Grundlagen und wird in _jedem_ Tutorial behandelt. Indexzugriff ist der grundlegenden Weg zum Arbeiten mit Listen, dass kommt noch vor Iteration über Listen.
Wenn du das nicht kannst, dann hast du a) beim Lernen definitiv was verpasst und b) wenn du es nicht lernst, dann kannst du nie nie nie Python effektiv nutzen. Also bitte einmal zurück zum Grundlagentutorial und den Abschnitt über Listen lesen:
https://docs.python.org/3.5/tutorial/in ... html#lists
Das brauchst du, weil das kommt immer und immer und immer wieder.
Gruß, noisefloor
Re: Gesendete Daten auswerten ?
Verfasst: Sonntag 4. März 2018, 16:20
von funkheld
Du hast recht mit deinen Listen....
Ich möchte damit andeuten , das dieses Python zig...mal mehr im Kasten der Sprache hat, als man als man als Nutzer braucht.
Das Auto besteht aus zig...Tausend Teilen, bis zum Kurbelwellenmaterial kommt auch nicht hin.
Gruss
Re: Gesendete Daten auswerten ?
Verfasst: Sonntag 4. März 2018, 16:32
von __deets__
Hinkende vergleiche hin oder her - wenn ich diesen post hier lese und dann den anderen in dem du diese Daten augenscheinlich selbst erzeugst - dann frage ich mich wozu überhaupt das ganze Socket-Gehummse machst. Du bekommst die Daten vom Kerbal Space Server. Warum wertest du die da nicht direkt aus statt noch mal eine überflüssige Schleife zu drehen?
Re: Gesendete Daten auswerten ?
Verfasst: Sonntag 4. März 2018, 19:26
von funkheld
Den krpc-Server kannst du nur Daten senden und von ihn Daten anfordern. Die du dann selber zerlegen musst um diese auszuwerten.
Er arbeitet nur mit Python , C++, C# oder Lua zusammen.
https://krpc.github.io/krpc/getting-started.html
In Purebasic habe ich mir ein Client aufgebaut zu Python , von da hole ich die Daten ab.
Dieser Cleint arbeitet nur mit dem krpc-Server:
conn = krpc.connect(name='Sub-orbital flight',
address='127.0.0.1',
rpc_port=1000, stream_port=1001)
Dieser Server im Python-Programm arbeitet arbeitet mit dem Purabasic-Clienten:
TCP_IP = '127.0.0.1'
TCP_PORT = 5000
Code: Alles auswählen
import time
import krpc
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 5000
BUFFER_SIZE = 64
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
con, addr = s.accept()
conn = krpc.connect(name='Sub-orbital flight',
address='127.0.0.1',
rpc_port=1000, stream_port=1001)
Gruss
Re: Gesendete Daten auswerten ?
Verfasst: Sonntag 4. März 2018, 20:24
von __deets__
Ah. Dann verstehe ich zwar immer noch nicht, warum du irgendeine Verarbeitung in Python machst, wenn eigentlic Pure-Basic genutzt werden soll. Aber die doppelte Serverei ist dann nachvollziehbar.
Re: Gesendete Daten auswerten ?
Verfasst: Sonntag 4. März 2018, 22:28
von funkheld
Ganz einfach.
Dieses krPC für Kerbal wird als System für : Python,C++,C# und Lua geliefert.
Ich habe das System Python gewählt weil ich Lua nicht kenne und C zu kompliziert ist.
Aber mit Purebasic kann ich schneller eine Grafikdarstellung herstellen von den Daten und kann ruckzuck einen Server oder Clienten basteln mit Events.
Gruss