User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/actividad_3.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
teaching:ie0117:actividad_3

This is an old revision of the document!


Actividad 3

Esta actividad consiste en la instalación de un programa que no es parte de debian. También se utilizan los primeros programas sencillos de python.

Preguntas de la actividad

  • Cuál es la diferencia entre instalar un programa que es parte de Debian y uno que no?
  • En qué consiste el proceso de compilación?
  • Qué significa instalar un programa en los directorios de sistema? Y en el directorio de usuario (instalación local)?
  • Por qué es más conveniente instalar un programa en el directorio de usuario?
  • Para que sirve xstow? Cómo se puede usar para realizar una instalación en un directorio de usuario?
  • Qué es YARP? Cómo se instala? Cómo se usan sus utilidades básicas?
  • Qué es una red de YARP?
  • Qué es procesamiento paralelo? Cómo puedo usar YARP para implementar procesamiento paralelo?
  • En qué consiste un programa sencillo de python?
  • Cómo comunico programas en python usando YARP?

Temas tentativos a cubrir

  • xstow
  • Variables de entorno importantes para compilación y detección de programas ejecutables
  • Proceso de compilación (en general)
  • yarp
  • Comunicación entre computadoras
  • Redes de computadoras
  • Abstracción de redes de computadoras usando Yarp.
  • Cmake, autotools, Makefiles, PREFIX
  • Python primer vistazo.
  • YARP desde python.

Instrucciones

  • Instale xstow. Siga el link siguiente para las instrucciones: Using xstow for local installations
  • Instale yarp. Siga el link siguiente para las instrucciones: Installing YARP in debian
  • Siga las instrucciones del profesor y los asistentes para la prueba de los programas yarp read, yarp write, yarpserver3 y yarp connect
  • Al finalizar esta práctica asegurese de que yarp read, yarp write y yarpserver3 no están corriendo más. (Usando Ctrl-c y para estar más seguro use “ps ax”

YARP Write with Python

  • Escriba el siguiente programa en un archivo llamado: my_yarp_write.py
#!/usr/bin/python

import sys
import yarp as y
from yarp import BufferedPortBottle as buffport 

y.Network.init()
output_port=buffport()
output_port.open("/keyboard/out")

exit=False
while not exit:
  a=raw_input()
  if a=="exit":
      exit=True
  print a
  bottle=output_port.prepare()
  bottle.clear()
  bottle.addString(a)
  output_port.write()
  • A este archivo active la bandera de ejecución.
  • Abra una consola y ejecute “yarpserver3”. Deje esta consola corriendo.
  • Abra una nueva consola y en el directorio donde almacenó el programa anterior ejecute el programa anterior:
cd ~/mi_directorio_python
./my_yarp_write.py
  • Abra una nueva consola y ejecute un yarp read:
yarp read /read
  • Conecte ambos módulos:
yarp connect /keyboard/out /read
  • Introduzca texto en la consola que está ejecutando my_yarp_write.py
  • Cancele la ejecución de todos los programas anteriores (ctrl-c en cada consola)

Módulo de procesamiento con python y yarp: Sumador

  • Escriba el siguiente programa en un archivo llamado: my_summer.py
import yarp as y
y.Network.init()
input=y.BufferedPortBottle()
output=y.BufferedPortBottle()
input.open("/summer/in")
output.open("/summer/out")
While True:
  inputbottle=input.read(False)
  if inputbottle:
    outputnumber=inputbottle.get(0).asDouble()+inputbottle.get(1).asDouble()
    outputbottle=output.prepare()
    outputbottle.clear()
    outputbottle.addDouble(outputnumber)
  else:
    y.Time.delay(0.001)
  • Ejecute yarpserver3, el programa que acaba de escribir, un yarp read y un yarp write conectados a los puertos correspondientes del programa anterior.
  • En el yarp write usted puede escribir “10 10” y en la consola con yarp read usted puede ver el resultado de la suma.

Python QT

sudo apt-get install libqt4-dev   qt4-dev-tools python-qt4-dev pyqt4-dev-tools libtclap-dev
import sys
from PyQt4 import QtGui,QtCore
app=QtGui.QApplication(sys.argv)
main_widget=QtGui.QWidget()
button=QtGui.QPushButton("test", main_widget)
main_widget.show()
main_widget.setWindowTitle("test application")
def testprint():
   print "Works"
QtCore.QObject.connect(button,QtCore.SIGNAL("clicked()"),testprint)
sys.exit(app.exec_())

Evaluación

Yarp debe ser compilado correctamente y debe correr correctamente en la consola.

cuestionario

~~DISCUSSION~~

teaching/ie0117/actividad_3.1461002503.txt.gz · Last modified: 2022/09/20 00:08 (external edit)