
Productor-consumidor python3
Publicado por ALEX PATRICIO (2 intervenciones) el 10/04/2018 08:58:28
Hola a todos... me estoy iniciando en el mundo de python y me surgen muchas dudas....
Estoy implementando un proceso que practicamente se refiere a mandar datos de labview a python (6 datos por segundo) mediante comunicacion TCP/IP usando sockets multi hilo python es el servidor... mi problema surge en que los datos ya recibidos dentro del lazo multihilo no se como utilizarlos en otro script.... es decir en el primer script estaria ejecuatandose el socket y recibiendo todos los datos, esos datos quiero pasarlos a otro script para desde ahi generar un hmi para visualizarlos en tiempo real.... estoy utilizando python 3 instalado en una raspberry pi2.
Adjunto el codigo el cual me permite comunicarme con labview mediante sockets: como se puede ver en el codigo los datos de posición y velocidad quiero pasarlos a otro script(ventana) para usarlos desde alla. es decir exportar de este codigo esos datos para usarlos en otro script y graficarlos en tiempo real..
De antemano Gracias por sus respuestas
Saludos
Estoy implementando un proceso que practicamente se refiere a mandar datos de labview a python (6 datos por segundo) mediante comunicacion TCP/IP usando sockets multi hilo python es el servidor... mi problema surge en que los datos ya recibidos dentro del lazo multihilo no se como utilizarlos en otro script.... es decir en el primer script estaria ejecuatandose el socket y recibiendo todos los datos, esos datos quiero pasarlos a otro script para desde ahi generar un hmi para visualizarlos en tiempo real.... estoy utilizando python 3 instalado en una raspberry pi2.
Adjunto el codigo el cual me permite comunicarme con labview mediante sockets: como se puede ver en el codigo los datos de posición y velocidad quiero pasarlos a otro script(ventana) para usarlos desde alla. es decir exportar de este codigo esos datos para usarlos en otro script y graficarlos en tiempo real..
De antemano Gracias por sus respuestas
Saludos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import socket
import time
from _thread import *
import sys
HOST='161.111.120.229'
PORT=8888
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('socket creado correctamente')
try:
s.bind((HOST,PORT))
print('socket esta enlazado correctamente')
except socket.error as e:
print(str (e))
s.listen(10)
print('socket se encuentra esperando conexiones desde clientes')
def clientthread(conn):
# enviamos datos desde raspberry a labview para empezar la conexion
conn.send(str.encode('Bienvenido a raspberry \n'))
time.sleep(2)
conn.send(str.encode('Inicializando conexion \n'))
time.sleep(2)
conn.send(str.encode('Recibiendo datos \n'))
while True:
data=conn.recv(1024).decode() # se reciben desde labview los datos tipo string
dato_listo=(data.split())
velocidadx=(dato_listo[0])
posiciony=(dato_listo[1])
print(velocidadx)
print(posiciony)
time.sleep(0.05)# timepo de espera para recibir datos
#si no se recibe ningun dato se produce un salto
if not data:
break
conn.close()
while True:
conn,addr=s.accept()
print('conexion aceptada de:''\t' +addr[0]+ ':'+str(addr[1]))
#empezar nuevo hilo, toma como argumentos: el nombre de la funcion a ejecutar y tupla de argumentos para la funcion
start_new_thread(clientthread, (conn,))
s.close()
Valora esta pregunta


0