Conexión TCP a datos puros con Blender Python
network-programming puredata (1)
Necesito ayuda para descifrar mi código para enviar información de Blender a través de una conexión TCP a Pure Data. Tengo una superficie con una bola rodando sobre ella y necesito agarrar la velocidad de la bola y sus colisiones para enviarla a TCP a Pd con el fin de convertir los datos en audio de procedimiento.
He estado buscando formas posibles de hacerlo y debido a mi muy limitado conocimiento de python y codificación hasta el momento (recién comencé), me resulta muy difícil ver qué está pasando.
Ahora aquí está mi pregunta:
Sé que puedo enviar una simple cadena de código escribiendo esto en Blender, que funcionó para mí:
import socket
host =''127.0.0.1''
port = 50007
msg = ''345;''
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host,port))
s.send(msg.encode())
Y sé que puedo hacer este código para obtener, por ejemplo, las coordenadas de mi objeto:
import bge
def main():
cont = bge.logic.getCurrentController()
owner = cont.owner
vel = owner.getVelocity()
x = (vel [0])
y = (vel [1])
z = (vel [2])
print (x+y+z)
main()
Lo que necesito averiguar es cómo insertar esa información en my.send para poder recibirla en Pure Data. He visto sitios web sobre cómo hacer que esto funcione pero no he encontrado lo que necesitaba. Me pregunto si alguien tiene algunas buenas fuentes que podrían interesarle, o si alguien sabe cómo integrar mi owner.getVelocity () en el mensaje tcp.
EDITAR:
Creo que lo resolví por mi cuenta, estoy obteniendo mi flujo de datos en PD ahora.
si alguien está interesado, este es el código:
import bge
import socket
cont = bge.logic.getCurrentController()
owner = cont.owner
vel = owner.getVelocity()
x = (vel [0])
y = (vel [1])
z = (vel [2])
added = x+y+z
print (added)
tsr = str(added)
tsr += '';''
host = ''127.0.0.1''
port = 50007
msg = ''123456;''
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send(tsr.encode())
s.shutdown(0)
s.close()
¡gracias por tu tiempo!
Andreas