Antonio Punzon Merino
2015-Sep-23 06:20 UTC
[R-es] Leer datos desde un puerto udp y/o desde un puerto serie
Hola, Soy bastante novato en esto de las comunicaciones. Recibo a través de un puerto udp (también me interesa como se hace a través de puerto serie) datos de gps, profundidad, etc. Querría saber como puedo abrir el puerto y leer la información en streaming He intentado diferentes opciones (scan, file,....) pero no he encontrado la forma. Muchas gracias Antonio [[alternative HTML version deleted]]
Carlos Ortega
2015-Sep-23 08:49 UTC
[R-es] Leer datos desde un puerto udp y/o desde un puerto serie
Hola, Creo que es la primera vez que sale una pregunta de este tipo en la lista. Lo único que conozco de alguien que ha tratado el tema de como interaccionar con hardware con R, se comentó en una reunión del año pasado en el Grupo de R de Madrid y fue sobre cómo interaccionar con Arduino. El video de la charla lo tienes aquí: http://madrid.r-es.org/martes-20-mayo-de-2014/ Saludos, Carlos Ortega www.qualityexcellence.es El 23 de septiembre de 2015, 8:20, Antonio Punzon Merino < antonio.punzon en st.ieo.es> escribió:> > > > Hola, > Soy bastante novato en esto de las comunicaciones. > Recibo a través de un puerto udp (también me interesa como se hace a > través de puerto serie) datos de gps, profundidad, etc. Querría saber como > puedo abrir el puerto y leer la información en streaming > He intentado diferentes opciones (scan, file,....) pero no he encontrado > la forma. > Muchas gracias > > Antonio > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
miguel.angel.rodriguez.muinos en sergas.es
2015-Sep-23 08:49 UTC
[R-es] Leer datos desde un puerto udp y/o desde un puerto serie
Hola Antonio. A ver si esto puede dirigirte en la dirección correcta.... http://tolstoy.newcastle.edu.au/R/help/05/09/12210.html Básicamente hace un scan al puerto en cuestión con algo parecido a esto: scan(file="/dev/ttyS0",n=1,what="character") Un saludo, Miguel. El 23/09/2015 a las 8:20, Antonio Punzon Merino escribió:> > > Hola, > Soy bastante novato en esto de las comunicaciones. > Recibo a trav?s de un puerto udp (tambi?n me interesa como se hace a trav?s de puerto serie) datos de gps, profundidad, etc. Querr?a saber como puedo abrir el puerto y leer la informaci?n en streaming > He intentado diferentes opciones (scan, file,....) pero no he encontrado la forma. > Muchas gracias > > Antonio >________________________________ Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso-confidencialidad
Jorge Tornero - Listas
2015-Sep-23 08:52 UTC
[R-es] Leer datos desde un puerto udp y/o desde un puerto serie
Hola, Antonio: ¡Dichosos barcos! Yo personalmente he encontrado bastantes dificultades con NMEA (y otros) a través de UDP, es un pequeño dolor. Por lo que he visto de R, el problema puede residir en que las opciones posibles para conectar a sockets (socketConnection, make.socket) no contemplan, al menos por lo que he podido ir viendo, la posibilidad de escuchar UDP (aunque alguien lo habra hecho... seguro) No obstante,hay una posible solución, al menos con simulador de GPS funciona (bajo Linux): 1) Hay que instalarse socat (en ubuntu/debian , apt-get install socat) 2) Ahora lo que hacemos es redireccionar el puerto UDP a un fichero de nuestro ordenador, eso sí, truncando cada vez que escribimos en él y así sólo queda la última sentencia recibida: (imaginamos puerto UDp el 10000 y el fichero /home/antares/GPS.txt) socat UDP-LISTEN:10000,reuseaddr,fork open:/home/antares/GPS.txt, create, trunc En otras palabras, socat queda escuchando el puerto de interés, cuando recibe datos crea el fichero GPS.txt si no existe y lo trunca en otro caso, y escribe en él lo recibido por UDP. 3) Ahora, desde R hacemos alguna cosilla para ir leyendo desde ese fichero, para lo que R sí está preparado con scan(), por ejemplo z<-0 nl<-"" nl2<-"" while (z<5){ nl<-scan('/home/antares/GPS.txt',what='character',quiet=TRUE,nlines=1) if (length(nl)>0) { if ((nl!=nl2)==TRUE) { nl2 <- nl print (paste('NMEA - ',nl)) z<-z+1; } } } Como ejemplo y con gpsfeed+ como simulador, funciona, ahora ya otra cosa es ponerlo en práctica y que sea de utilidad... Saludos, Jorge El 23/09/15 a las 08:20, Antonio Punzon Merino escribió:> > > Hola, > Soy bastante novato en esto de las comunicaciones. > Recibo a trav?s de un puerto udp (tambi?n me interesa como se hace a trav?s de puerto serie) datos de gps, profundidad, etc. Querr?a saber como puedo abrir el puerto y leer la informaci?n en streaming > He intentado diferentes opciones (scan, file,....) pero no he encontrado la forma. > Muchas gracias > > Antonio > > [[alternative HTML version deleted]] > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]