martes, 8 de diciembre de 2015

Gui básica con Glade y Gladevcp integrada a Gmoccapy


Lo primero y bastante importante es saber como funciona la Gui Gmoccapy para lo cuál se debe entender el código de python que contiene todas las instrucciones de funcionamiento y el archivo .glade que integra los componentes de glade y gladevcp con python.


Visitar la wiki de gmoccapy para mas información.

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Gmoccapy

En los lugares marcados con recuadros de diferentes colores se puede agregar Gui's personalizadas.

- Recuadro color azul es llamado box_left.

- Recuadro color verde es llamado box_custom_1.

- Recuadro color rojo es llamado box_custom_2.

- Recuadro color morada es llamado box_custom_3.

- Recuadro color naranja es llamado box_custom_4.

- Recuadro color marrón es llamado box_right.

Existen otros que se los puede reemplazar como es en el caso de usar gmoccapy  plasma.





- Recuadro de color negro box_coolant_and_spindle, contiene a box_cooling y box_spindle.

- Recuadro de color azul es box_cooling.

- Recuadro de color naranja es box_spindle.

- Recuadro de color rojo es box_vel_info.

Nota: Tool information es reemplazado por Signals y lo que se hace es colocar el archivo glade que se desee reemplazando en frm_tool_info que es una parte de todo el box_tool_and_code_info (Tool information, Gcode y Program).

Las dos siguientes es para agredar pestañas ya sea en la pantalla donde se visualiza el código G (ntb_preview) o en donde se puede visualizar en modo completo (ntb_user_tabs).




Nota: Para poder entender de mejor manera se recomienda ver la configuración de los archivos .ini de gmoccapy.


La interfáz que se creará es para poder leer la temperatura de una impresora 3D reemplazando esta Gui con la antigua 3D.Temps.panel.xml (pyvcp) usada en la Interfáz gráfica de Axis en CRAMPS.

Correr Glade (Instalación)

glade-3

Primero se guardará con el nombre ReadTemp.glade y se irá guardando constantemente para evitar perdidas del trabajo si se cerrara glade.

- Crear Ventana
- Agregar Frame
- Agregar Vertical Box ->6
- Agregar Horizontal Box -> 2 saltando un Vertical Box










- Agregar Label en la parte izquiera de los Horizontal Box creados y HAL Label en la parte derecha de los Horizontal Box creados.

- Agregar HAL Hbar -> 3 en los Vertical Box restantes.




Terminado esto se procede a configurar los componentes agregados.

- En window1 no se modificará nada.
- En frame1 se modificará el nombre y la alineación de la etiqueta para centarla.



- En la etiqueta de Frame 1 se renombrará el componente y asignará el título que va a aparecer



En la alineación del Frame se cambiarán unos parámetros para dar mejor presentación.




Con esto quedará de la siguiente forma:



En mi caso acostumbro a renombrar todos los nombres de los componentes.

- vbox1 -> ReadTemp_vbx
- hbox1 -> Extruder_lbl_hbx
- hbox2 -> Bed_lbl_hbx
- hbox3 -> Extruder2_lbl_hbx

Los nombres pueden ser cualquiera los uso asi porque lbl representa a label; y vbx o hbx a vertical box y horizontal box. Lo demás es para darse cuenta que ese hbox pertenece a extruder o bed, etc.

Ahora viene la parte más importante y es la de dar nombre correcto a los componentes Hal Label y HAL_Hbar que se van a usar con el archivo .hal de CRAMPS.hal, los nombres pueden ser cuailquiera pero luego se los debe conectar con el archivo .hal.

- hal_hbar1 -> E0_Temp
- hal_hbar2 -> Bed_Temp
- hal_hbar3 -> E1_Temp

Lo mismo se realiza con las etiquetas, al final quedá de la siguiente forma.


El último paso es configurar las etiquetas y las barras horizontales que darán la lectura de temperatura.

Para las etiquetas deshabilitar expand y darles un título. Para los Horizontal box tambien deshabiltar el expand.




Para las etiquetas Hal se dará un formato de Hal pin type: 1 en la parte de configuración. Se lo realiza para que pueda recibir datos flotantes.

Para las barras horizontales también deshabilitar Expand, forzar la altura, ancho y cambiar la escala.



Terminado todo el diseño quedará algo así:



No hay que preocuparse que al ejecutar el archivo glade con gladevcp se verá que la venta se rescala al tamaño máximo configurado en el ancho y alto de las barras horizontales. Intentar cambiar los valores de ancho y alto para que se note la diferencia (force height, force width). Guardar.

Ejecutando gladevcp mostrado en el anterior tutorial se obtiene.







Donde se puede apreciar que se ha dimensionado la ventana al tamaño asignado por las barras horizontales.

Creando el archivo .hal para poder vincular los componentes de gladevcp con las señales de machinekit (linuxcnc).

# Include your customized HAL commands here
# Run on Gmoccapy with gladevcp panel 

net e0.temp.set  => ReadTemp.Extruder_Hal_lbl
net e0.temp.meas => ReadTemp.E0_Temp
net bed.temp.set  => ReadTemp.Bed_Hal_lbl
net bed.temp.meas => ReadTemp.Bed_Temp

guardar con cualquier nombre ejemplo 3D.postgui.hal


Si se mira el archivo.hal de CRAMPS se crean las señales e0.temp.set, e0.temp.meas donde el primero da el valor que se esta usando de PID y el segundo indica el valor que el ADC esta leyendo. Lo mismo para las demás señales.

Cuando se haya añadido el archivo .hal creado al archivo .ini de la CRAMPS se podrá ejecutar el archivo glade integrado en este caso a la GUI gmoccapy_lcd7 modificada por mi para pantallas lcd de 7 pulgadas con resolución de 800x480. gmoccapy_lcd7.


En el archivo .ini de CRAMPS se cambiaría lo siguiente:

[DISPLAY]

# Name of display program, e.g., tkemc
#DISPLAY = tkemc
#DISPLAY = gscreen
#DISPLAY = axis
DISPLAY = gmoccapy_lcd7

EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -x {XID} ReadTemp.glade

Se añade el archivo glade creado al box_right de gmoccapy explicado en la parte superior y anteriores tutoriales.

[HAL]

# The run script first uses halcmd to execute any HALFILE
# files, and then to execute any individual HALCMD commands.

# list of hal config files to run through halcmd
# files are executed in the order in which they appear

HALFILE =        CRAMPS.hal

# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD =               save neta

POSTGUI_HALFILE =       3D.postgui.hal

En este caso el archivo anterior donde se unen las señales hal con glade se lo llamo de la misma forma que el designado en CRAMPS. se debe agregar el archivo .hal y .glade en la misma carpeta donde se encuentran los otros archivos de CRAMPS en la beaglebone black.

El resultado es el siguiente:


Gmoccapy_lcd7 se ha modificado para que presente el archivo glade que captura box_right, solo cuando se realizá un full screen, ya que al ser menor la resolución se distorciona los iconos si se abriera con el panel principal mas el archivo glade.

Sin la opción de pantalla completa de gmoccapy desaparece el cuadro de lectura de temperatura para que no ocurra lo anteriormente explicado.



Si se quiere utilizar la configuración CRAMPS hay que deshabilitar el audio del hdmi en /boo/uEnv.txt.


Si se desea comprobar las aplicaciones en la computadora donde se esta diseñando solo es necesario ir a la carpeta de gmoccapy donde se guardan las configuraciones de gmoccpay y agregar el diseño dentro de la misma carpeta. No olvidarse de correr el scripts de linuxcnc si se copia a la carpeta de configuración de linuxcnc, caso contrario que e use Machinekit correr con machinekit y copiar a la carpeta de configuración de machinekit donde se encuentre gmoccapy.

Resultados con gmoccapy modificando en mi caso está en ~/linuxcnc-mirror/configs/sim/gmoccapy/gmoccapy.ini.

Esta es la ruta donde se deben guardar los archivos .glade o python u otros, tambien se puede crear un carpeta en  ~/linuxcnc-mirror/configs/ y guardar ahi los archivos con los que querramos explorar. En este ejemplo no se usa el archivo .hal ya que no hay lectura ADC como en el caso de la Beaglebone Black que esta configurado en el archivo .CRAMPS con un archivo python. Este es solo de simulación para poder ver como esta quedando el diseño de glade con gmoccapy; en el caso de querer usar gmoccapy_lcd7 en el PC, descargar de github y copiar a las carpetas bin, share de la ruta  ~/linuxcnc-mirror los archivos correspondientes. Utilizar en display gmoccapy_lcd7.

[DISPLAY]

DISPLAY = gmoccapy

EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -x {XID} ReadTemp.glade


Como se ve no hay cambios al estar sin full screen y con full screen se mantiene la ventana de box_right. No mide la temperatura al solo usar el archivo .glade.


Para obtener el archivo glade en una ventana separada se escribe lo siguiente.

[DISPLAY]

DISPLAY = gmoccapy

EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -g 64x697+0+0 ReadTemp.glade

Donde  se define anchoxaltura+desplazamiento X+desplaamiento Y



Utilizando gmoccapy_lcd7 en PC.

cd gmoccapy_lcd7/
cp bin/gmoccapy_lcd7 ~/linuxcnc-mirror/bin/
chmod a+x ~/linuxcnc-mirror/bin/gmoccapy_lcd7
cp -r share/gmoccapy_lcd7/ ~/linuxcnc-mirror/share/
sudo apt-get update
sudo apt-get install matchbox
sudo cp keyboard-cnc.xml /usr/share/matchbox-keyboard
sudo chmod a+x /usr/share/matchbox-keyboard/keyboard-cnc.xml


Se obtiene los mismo resultados que el anterior, con esto ya se puede comenzar a ver cuales son los cambios que e han hecho de la gmoccapy, tento en el archivo .glade como python (gmoccapy_lcd7 y gmoccapy en bin).

En este link ARM.BeagleBone.CRAMPS.tar.xz se podrá descargar la carpeta CRAMPS que contiene todos los archivos incluido ReadTemp.glade creado en este tutorial.


No hay comentarios.:

Publicar un comentario