OpenCores
URL https://opencores.org/ocsvn/phr/phr/trunk

Subversion Repositories phr

[/] [phr/] [trunk/] [doc/] [informe-tesis/] [reports/] [PPS/] [maximiq/] [desarrollo phr-gui-v01/] [desarrollo-gui-v01.tex] - Diff between revs 220 and 223

Show entire file | Details | Blame | View Log

Rev 220 Rev 223
Line 13... Line 13...
\ProvidesPackage{reporte-phr}
\ProvidesPackage{reporte-phr}
\usepackage{reporte-phr}
\usepackage{reporte-phr}
 
 
% Para el titulo
% Para el titulo
\def\logo{./img/title/phr_logo.pdf}
\def\logo{./img/title/phr_logo.pdf}
\def\producto{Interfáz gráfica de usuario\par \vspace{0.5ex} PHR GUI v0.1}
\def\producto{Interfaz gráfica de usuario\par \vspace{0.5ex} PHR GUI v0.1}
\title{Desarrollo de la interfaz gráfica}
\title{Desarrollo de la interfaz gráfica}
%\author{Maximiliano Quinteros}
%\author{Maximiliano Quinteros}
\def\docver{0.9}
\def\docver{0.9}
\date{Abril de 2013}
\date{Abril de 2013}
 
 
Line 29... Line 29...
 
 
\section{Primeras pruebas}
\section{Primeras pruebas}
 
 
Se reconocía la necesidad de facilitar el uso del software xc3sprog debido a que éste funciona en un terminal y puede necesitar de varios argumentos). Sobre todo porque la PHR está diseñada para estudiantes que se inician con los lenguajes de descripción de hardware.
Se reconocía la necesidad de facilitar el uso del software xc3sprog debido a que éste funciona en un terminal y puede necesitar de varios argumentos). Sobre todo porque la PHR está diseñada para estudiantes que se inician con los lenguajes de descripción de hardware.
 
 
Surgió la idea de realizar una interfáz gráfica de usuario (GUI) que sea capáz de correr en sistemas Linux y Windows, y se eligió un lenguaje de programación: Python.
Surgió la idea de realizar una interfaz gráfica de usuario (GUI) que sea capaz de correr en sistemas Linux y Windows, y se eligió un lenguaje de programación: Python.
 
 
El proceso comenzó haciendo pequeñas pruebas para analizar las opciones disponibles.
El proceso comenzó haciendo pequeñas pruebas para analizar las opciones disponibles.
 
 
\subsection{Interfáz gráfica}
\subsection{Interfaz gráfica}
 
 
Se buscaba hacer algo aprovechando recursos de licencias libres. En cuanto a la interfaz gráfica se analizaron las siguientes librerias:
Se buscaba hacer algo aprovechando recursos de licencias libres. En cuanto a la interfaz gráfica se analizaron las siguientes librerias:
\begin{enumerate}
\begin{enumerate}
\item GTK
\item GTK
\item Qt
\item Qt
Line 45... Line 45...
\item \textbf{WxWidgets -- Elegida!}
\item \textbf{WxWidgets -- Elegida!}
\end{enumerate}
\end{enumerate}
 
 
Y se eligió por ésta última por su portabilidad, e integración con librerías nativas de los distintos sistemas operativos.
Y se eligió por ésta última por su portabilidad, e integración con librerías nativas de los distintos sistemas operativos.
 
 
En el caso de MS Windows hizo falta instalar al interprete python el módulo \emph{wxPython}. Primero se usó la versión 3.0.0 (la última versión) pero luego de un tiempo se detectó un funcionamiento erratico con Windows XP, por lo cual se pasó a la versión 2.9.5 y no se tuvieron mas problemas.
En el caso de MS Windows hizo falta instalar al interprete python el módulo \emph{wxPython}. Primero se usó la versión 3.0.0 (la última versión) pero luego de un tiempo se detectó un funcionamiento errático con Windows XP, por lo cual se pasó a la versión 2.9.5 y no se tuvieron mas problemas.
 
 
Para el desarrollo con wxPython se encontró el software \emph{wxGlade} que permite un desarrollo rápido de la aplicación (RAD) ya que el usuario dibuja la interfaz y luego la exporta en forma de código de Python. Luego quedan por escribir los handlers para los eventos.
Para el desarrollo con wxPython se encontró el software \emph{wxGlade} que permite un desarrollo rápido de la aplicación (RAD) ya que el usuario dibuja la interfaz y luego la exporta en forma de código de Python. Luego quedan por escribir los handlers para los eventos.
 
 
\begin{center}
\begin{center}
\includegraphics[width=0.45\textwidth]{./img/etapa01.png}
\includegraphics[width=0.45\textwidth]{./img/etapa01.png}
\end{center}
\end{center}
 
 
\subsection{Independencia del intérprete}
\subsection{Independencia del intérprete}
Para el caso de la ejecución de un script de Python en GNU/Linux no existen complicaciones puesto que las distribuciones cuentan con el intérprete ya instalado. No ocurre lo mismo con el sistema Windows.
Para el caso de la ejecución de un script de Python en GNU/Linux no existen complicaciones puesto que las distribuciones cuentan con el intérprete ya instalado. No ocurre lo mismo con el sistema Windows.
 
 
Para no tener que instalar el interprete en cada computadora donde se desee usar PHR GUI se recurrió al módulo de Python denominado \emph{py2exe} que genera archivos de distribución. Este modulo lee el script de interés y lo procesa para generar un directorio (denominado \emph{dist}) en donde ubica un archivo ejecutable (\texttt{.exe}) y librerias asociadas al mismo.
Para no tener que instalar el interprete en cada computadora donde se desee usar PHR GUI se recurrió al módulo de Python denominado \emph{py2exe} que genera archivos de distribución. Este modulo lee el script de interés y lo procesa para generar un directorio (denominado \emph{dist}) en donde ubica un archivo ejecutable (\texttt{.exe}) y librerías asociadas al mismo.
 
 
\begin{center}
\begin{center}
\includegraphics[width=0.55\textwidth]{./img/etapa02.png}
\includegraphics[width=0.55\textwidth]{./img/etapa02.png}
\end{center}
\end{center}
 
 
Line 74... Line 74...
 
 
En el próximo paso se busca una solución amigable a la distribución de PHR GUI.
En el próximo paso se busca una solución amigable a la distribución de PHR GUI.
 
 
\subsection{Instalador}
\subsection{Instalador}
 
 
Para generar el instalador se recurrio a NSIS\footnote{http://nsis.sourceforge.net/Main\_Page}.
Para generar el instalador se recurrió a NSIS\footnote{http://nsis.sourceforge.net/Main\_Page}.
 
 
\begin{quote}
\begin{quote}
NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
\end{quote}
\end{quote}
 
 
Line 96... Line 96...
 
 
Esto instala de forma silenciosa las librerías que el modulo py2exe no incluye al momento de compilar por incompatibilidades de la licencia.
Esto instala de forma silenciosa las librerías que el modulo py2exe no incluye al momento de compilar por incompatibilidades de la licencia.
 
 
\end{description}
\end{description}
 
 
Asi se obtuvo el archivo NSIS con el que finalmente se hizo el instalador.
Así se obtuvo el archivo NSIS con el que finalmente se hizo el instalador.
 
 
\begin{center}
\begin{center}
\includegraphics[width=0.6\textwidth]{./img/etapa03.png}
\includegraphics[width=0.6\textwidth]{./img/etapa03.png}
\end{center}
\end{center}
 
 
\section{Desarrollo de la GUI en Windows}
\section{Desarrollo de la GUI en Windows}
Debido a que Windows presentaba una mayor cantidad requisitos en cuanto a desarrollo y portabilidad se inició el desarrollo de PHR GUI en este sistema operativo.
Debido a que Windows presentaba una mayor cantidad requisitos en cuanto a desarrollo y portabilidad se inició el desarrollo de PHR GUI en este sistema operativo.
 
 
A continuacion un diagrama bosquejando el proceso hasta la obtención del instalador.
A continuación un diagrama bosquejando el proceso hasta la obtención del instalador.
 
 
\begin{center}
\begin{center}
\includegraphics[width=0.9\textwidth]{./img/diseno.png}
\includegraphics[width=0.9\textwidth]{./img/diseno.png}
\end{center}
\end{center}
 
 
Line 135... Line 135...
\begin{enumerate}
\begin{enumerate}
\item Respecto de la interacción con xc3sprog:
\item Respecto de la interacción con xc3sprog:
        \begin{enumerate}
        \begin{enumerate}
        \item Añadir soporte para programar con archivos MCS además de BIT.
        \item Añadir soporte para programar con archivos MCS además de BIT.
        \item Solucionar la indicación de los archivos en Windows cuando la ruta incluye dos puntos (':').
        \item Solucionar la indicación de los archivos en Windows cuando la ruta incluye dos puntos (':').
        \item Crear una ventana de configuración en la cual se pueda elegir la ruta al xc3sprog (podria estar en el PATH), y que además permita elegir el comando que se ejecuta para cada evento, haciendolo compatible para distintas versiones de xc3sprog.
        \item Crear una ventana de configuración en la cual se pueda elegir la ruta al xc3sprog (podría estar en el PATH), y que además permita elegir el comando que se ejecuta para cada evento, haciéndolo compatible para distintas versiones de xc3sprog.
        \item Dar la opción para elegir libreria libre o propietaria.
        \item Dar la opción para elegir librería libre o propietaria.
        \item Detectar y corroborar un archivo de configuración al inicio (o en cualquier momento).
        \item Detectar y corroborar un archivo de configuración al inicio (o en cualquier momento).
        \item Procesar la salida de xc3sprog para brindar mensajes mas claros.
        \item Procesar la salida de xc3sprog para brindar mensajes mas claros.
        \end{enumerate}
        \end{enumerate}
\item Respecto de la usabilidad:
\item Respecto de la usabilidad:
        \begin{enumerate}
        \begin{enumerate}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.