Compare commits
5 commits
master
...
double_por
Author | SHA1 | Date | |
---|---|---|---|
|
ff85e268e8 | ||
|
f3a83fa7d9 | ||
|
11ad235552 | ||
|
9a7132e922 | ||
|
37b9477567 |
|
@ -7,4 +7,3 @@ Depot du projet de temps reel 4eme année au departement GEI de l'INSA Toulouse.
|
||||||
- software: rassemble les parties logicielles du robot, du chargeur, les bibliotheques et superviseur coté raspberry et l'interface Web
|
- software: rassemble les parties logicielles du robot, du chargeur, les bibliotheques et superviseur coté raspberry et l'interface Web
|
||||||
- doc: contient les sujets de TD et TP
|
- doc: contient les sujets de TD et TP
|
||||||
- aruco_markers: Script de generation des tags (aruco) utilisés sur les robots
|
- aruco_markers: Script de generation des tags (aruco) utilisés sur les robots
|
||||||
|
|
||||||
|
|
|
@ -1,875 +0,0 @@
|
||||||
\documentclass[11pt,a4paper]{paper}
|
|
||||||
|
|
||||||
\usepackage[T1]{fontenc}
|
|
||||||
|
|
||||||
\usepackage{graphicx}
|
|
||||||
\usepackage{amssymb}
|
|
||||||
\usepackage{amstext}
|
|
||||||
\usepackage{amsmath}
|
|
||||||
\usepackage{a4wide,color}
|
|
||||||
\usepackage[utf8]{inputenc}
|
|
||||||
\usepackage[frenchb]{babel}
|
|
||||||
\usepackage{xspace}
|
|
||||||
\usepackage{anysize}
|
|
||||||
\usepackage{tabularx}
|
|
||||||
\usepackage{multirow}
|
|
||||||
\usepackage{fancybox}
|
|
||||||
\usepackage{fancyhdr}
|
|
||||||
\usepackage{bbding}
|
|
||||||
|
|
||||||
\usepackage{multicol}
|
|
||||||
|
|
||||||
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
|
|
||||||
\usepackage{color}
|
|
||||||
\usepackage{float}
|
|
||||||
|
|
||||||
\usepackage[toc,page]{appendix}
|
|
||||||
\usepackage{lscape}
|
|
||||||
|
|
||||||
\usepackage{placeins}
|
|
||||||
|
|
||||||
\usepackage{listingsutf8}
|
|
||||||
%\usepackage{listings}
|
|
||||||
|
|
||||||
\usepackage{todonotes}
|
|
||||||
|
|
||||||
\lstset{% general command to set parameter(s)
|
|
||||||
basicstyle=\footnotesize, % print whole listing small
|
|
||||||
keywordstyle=\color{magenta}\bfseries, % underlined bold black keywords
|
|
||||||
identifierstyle=, % nothing happens
|
|
||||||
commentstyle=\color{black}, % white comments
|
|
||||||
stringstyle=\ttfamily, % typewriter type for strings
|
|
||||||
showstringspaces=false % no special string spaces
|
|
||||||
}
|
|
||||||
|
|
||||||
\lstdefinelanguage{aald}
|
|
||||||
{morekeywords={system, implementation},
|
|
||||||
sensitive=false,
|
|
||||||
morecomment=[l]{//},
|
|
||||||
morecomment=[s]{/*}{*/},
|
|
||||||
morestring=[b]",
|
|
||||||
}
|
|
||||||
|
|
||||||
\usepackage[colorlinks=true]{hyperref}
|
|
||||||
|
|
||||||
\renewcommand{\appendixtocname}{Annexes}
|
|
||||||
\renewcommand{\appendixpagename}{Annexes}
|
|
||||||
|
|
||||||
\usepackage[normalem]{ulem}
|
|
||||||
\usepackage{color}
|
|
||||||
|
|
||||||
\definecolor{Fond}{gray}{0.7}
|
|
||||||
|
|
||||||
\renewcommand{\floatpagefraction}{.99}
|
|
||||||
\renewcommand{\textfraction}{.01}
|
|
||||||
\newcommand{\modif}[1]{\textcolor{red}{\uline{#1}}}
|
|
||||||
|
|
||||||
|
|
||||||
\pagestyle{fancy}
|
|
||||||
\fancyhf{}
|
|
||||||
\fancyhead[RE,RO]{\thepage}
|
|
||||||
\fancyhead[LE]{}
|
|
||||||
\fancyhead[LO]{Programmation et conception de systèmes temps réel -- 4ème année AE et IR}
|
|
||||||
\fancyfoot[LO]{INSA Toulouse -- \today}
|
|
||||||
\fancypagestyle{plain}{%
|
|
||||||
\fancyhf{} % get rid of headers
|
|
||||||
\renewcommand{\headrulewidth}{0pt} % and the line
|
|
||||||
}
|
|
||||||
|
|
||||||
\newenvironment{maliste}%
|
|
||||||
{ \begin{list}%
|
|
||||||
{\ArrowBoldRightStrobe}%
|
|
||||||
{\setlength{\labelwidth}{30pt}%
|
|
||||||
\setlength{\leftmargin}{35pt}%
|
|
||||||
\setlength{\itemsep}{\parsep}}}%
|
|
||||||
{ \end{list} }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\title{{\Huge Projet De Stijl 2.0}
|
|
||||||
{\small : Plateforme pour robots mobiles}\\
|
|
||||||
{\scriptsize Programmation et conception de systémes temps réel -- 4éme année AE/IR}\\
|
|
||||||
{\scriptsize Institut National des Sciences Appliquées de Toulouse}\\
|
|
||||||
---\\
|
|
||||||
Dossier de conception \\
|
|
||||||
{\large Version 2.0.1 (\today)}\\
|
|
||||||
{\scriptsize Référent pédagogique : P.-E. Hladik (\texttt{pehladik@insa-toulouse.fr})}\\
|
|
||||||
---
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\maketitle
|
|
||||||
|
|
||||||
%\begin{table}[htdp]
|
|
||||||
%\caption{Suivi des modifications}
|
|
||||||
%\begin{center}
|
|
||||||
%\begin{tabular}{|c|c|c|p{8cm}|}
|
|
||||||
%\hline
|
|
||||||
%Date & Version & Auteur & Modifications\\
|
|
||||||
%\hline
|
|
||||||
%JJ/MM/12 & 0.3.X & P.-E. Hladik& \\
|
|
||||||
%\hline
|
|
||||||
%\end{tabular}
|
|
||||||
%\end{center}
|
|
||||||
%\label{default}
|
|
||||||
%\end{table}%
|
|
||||||
%\newpage
|
|
||||||
|
|
||||||
%\tableofcontents
|
|
||||||
|
|
||||||
%\newpage
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Introduction}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\label{sec:premier}
|
|
||||||
|
|
||||||
Ce document a pour but de vous apprendre à lire un modèle en AADL et les diagrammes d'activité qui décrivent le comportement des threads. Le document présente le résultat d'une conception réalisée à la va-vite. Cette conception ne prend en considération que la mise en place des communications et la gestion des déplacements du robot ce qui correspond aux fonctionnalités 1, 2, 3, 4, 7, 10 et 12 du cahier des charges fonctionnel.
|
|
||||||
|
|
||||||
Le code initial qui vous est fourni à la première séance de travaux pratiques correspond à l'implémentation de la conception présentée ici.
|
|
||||||
|
|
||||||
Attention, les choix qui ont été faits ne sont pas forcément les meilleurs. Tout ce qui est proposé peut être remis en cause dans la suite du travail. \`A vous d'ajouter, de modifier, de critiquer de manière pertinente cette conception.
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Diagramme de contexte}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
La figure~\ref{fig:contexte} présente le superviseur dans son contexte et ses interactions avec les autres composants de la plate-forme.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.6]{figures_pdf/contexte}
|
|
||||||
\caption{Diagramme de contexte}
|
|
||||||
\label{fig:contexte}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
La webcam produit des données (\texttt{image}) sous la forme d'un tableau d'octets. Le robot reçoit des ordres (\texttt{ordre}) sous la forme d'une chaîne de caractères et retourne une réponse aussi sous la forme d'une chaîne (\texttt{reponse}). Le moniteur envoi un événement (\texttt{connecter serveur}) pour demander la connexion avec le serveur puis établit une communication bi-directionnelle sous la forme d'une flux d'octets (\texttt{inputStream} et \texttt{outputStream}).
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Le travail d'un concepteur : l'analyse fonctionnelle}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
À partir du cahier des charges, le concepteur va analyser chaque fonctionnalité en se demandant quelles sont les données consommées et produites ainsi que les traitement à réaliser. Petit à petit il va ainsi construire l'architecture du programme.
|
|
||||||
|
|
||||||
Dans la suite de ce document, nous ne nous intéresserons qu'aux fonctionnalités 1, 2, 3, 4, 7, 10 et 12 présentées dans le cahier des charges fonctionnel. Votre travail consistera à compléter la conception déjà réalisée pour intégrer l'ensemble des fonctionnalités. Vous pouvez modifier tout ce que vous voulez de cette conception.
|
|
||||||
|
|
||||||
En analysant la fonctionnalité 1, le concepteur produit au brouillon le dessin suivant. Il décrit dans un rectangle blanc la fonction et dans une note sur fond jaune le comportement de la fonction. La flèche en pointillée représente un évènement.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc1}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
Pour intégrer la fonctionnalité 2, le concepteur complète son brouillon avec une nouvelle fonction. Il modifie aussi la première fonction pour que celle-ci produise l'événement {\tt serveur démarré}. L'évènement {\tt ouvrir socket} est produit par le moniteur lorsque l'utilisateur demande la connexion entre le moniteur et le superviseur.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc2}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
Les fonctionnalités 3 et 4 (voir dessin ci-dessous) induisent l'ajout du nouvel évènement {\tt connexion établie}. Une file de messages {\tt messageToMon} est aussi introduite. C'est dans cette file que seront postés les messages à envoyer au moniteur. On remarque l'apparition des flux de données-événement {\tt inputStream} et {\tt oututStream} en provenance et à destination du moniteur.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc3-4}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
|
|
||||||
L'ajout de la fonctionnalité 7 conduit à modifier la fonction de réception pour différencier les actions à réaliser en fonction du type des messages reçus. Un nouvel évènement {\tt ouvrir comRobot} est ainsi ajouté pour signaler une demander de mise en service de la communication avec le robot. On remarque aussi que la file de messages {\tt messageToMon} est maintenant utilisée par une fonction pour envoyer au moniteur le message d'acquittement ou d'échec.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc7}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
La fonction pour démarrer le robot sans watchdog (fonctionnalité 10) suit le même schéma que le fonctionnalité 7. On remarque cette fois que les flux {\tt ordre} et de {\tt réponse} sont utilisés pour communiquer avec le robot. La file de message {\tt messageToMon} a maintenant deux producteurs.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc10}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
La dernière fonctionnalité qui sera traitée dans cette conception introduit deux variables partagées : {\tt mouvement} et {\tt robot démarré}. Le choix fait par le concepteur pour traiter les mouvements consiste à envoyer périodiquement un message de mouvement au robot. Pour cela la fonction lit le mouvement à réaliser dans la variable {\tt mouvement}. Cette variable est mise à jour lorsqu'un message de mouvement est reçu. Cependant, le message ne doit être envoyé que si le robot est démarré, d'où l'ajout de la variable {\tt robot démarré} qui est mise à jour dans la fonction qui démarre le robot.
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/fonc12}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Le travail d'un concepteur : la formalisation}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
\subsection{Identification des threads}
|
|
||||||
Après avoir identifié les fonctions de l'application, le concepteur doit préciser quand l'exécution des fonctions se produit. La première étape consiste à considérer chaque fonction comme un thread. Deux questions se posent alors :
|
|
||||||
\begin{itemize}
|
|
||||||
\item Quel est le type du thread ? Un thread apériodique (noté par un A dans un rond) est un thread dont l'exécution est contrôlé par des événements alors qu'un thread périodique (noté par la valeur de la période dans un rond) aura une exécution qui revient périodiquement.
|
|
||||||
\item Quel est la priorité du thread ? Une règle simple pour les threads périodiques est d'attribuer les priorités par ordre décroissant des périodes, c'est-à-dire qu'un thread sera d'autant plus prioritaire que sa période sera petite. Pour les threads apériodiques, le niveau de priorité va dépendre de la criticité des fonctions.\\
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/thread}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{Raffinage}
|
|
||||||
|
|
||||||
Une seconde étape consiste à avoir un regard critique sur sa conception, par exemple en se demandant s'il est possible de réunir des threads ensembles. Ici, le thread {\tt Etablissement de la communication avec le moniteur} ne peut être appelé qu'après {\tt démarrer serveur}, il est donc possible de les réunir en un seul thread.
|
|
||||||
|
|
||||||
C'est aussi le moment de se demander si toutes les fonctionnalités sont couvertes. Pour cela on reprend chaque fonctionnalité et on vérifie qu'elles sont bien traitées. Ici tout semble correct, bien qu'un doute subsiste pour la gestion des déplacements du robot...
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\subsection{Formalisation}
|
|
||||||
|
|
||||||
Jusqu'ici tout a été réalisé au brouillon par le concepteur, il faut donc maintenant passer à une étape de formalisation pour pouvoir partager le travail réalisé et lever toute ambiguité. Pour cela, l'architecture sera décrite en AADL et le comportement des threads par des diagrammes d'activité UML. Le schéma~\ref{fig:AADL} présente le modèle AADL de l'architecture logicielle.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.5]{figures_pdf/fonc/AADL}
|
|
||||||
\end{center}
|
|
||||||
\caption{Modèle AADL de l'architecture de l'application}
|
|
||||||
\label{fig:AADL}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
Ensuite, pour chacun des threads, un diagramme d'activité UML est utilisé pour décrire son comportement. Les diagrammes ont été produits avec \href{https://www.planttext.com}{https://www.planttext.com} et les codes sources sont disponibles en annexe (disponibles numériquement sur la page moodle).
|
|
||||||
|
|
||||||
\subsection{Thread th\_server}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_server}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_server}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{Thread th\_sendToMon}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_sendToMon}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_sendToMon}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Thread th\_receiveFromMon}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_receiveFromMon}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_receiveFromMon}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{Thread th\_openComRobot}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_openComRobot}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_openComRobot}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{Thread th\_startRobot}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_startRobot}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_startRobot}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{Thread th\_move}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.4]{figures_pdf/activity/th_move}
|
|
||||||
\end{center}
|
|
||||||
\caption{Diagramme d'activité du thread th\_move}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
|
|
||||||
\newpage
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\begin{appendices}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
\section{Diagramme d'activité}
|
|
||||||
\label{ann:diag_act}
|
|
||||||
|
|
||||||
\framebox[\textwidth]{
|
|
||||||
\begin{minipage}{0.9\textwidth}
|
|
||||||
{\bf Remarque :} Cette présentation du diagramme d'activité est tirée du \href{http://laurent-audibert.developpez.com/Cours-UML/}{cours mis en ligne} de Laurent Audibert.
|
|
||||||
|
|
||||||
Elle ne se veut pas exhaustive, mais simplement présenter les éléments nécessaire pour l'activité concernée par ce cours. De plus des éléments non standardisés sont introduit pour facilité l'expression des besoins.
|
|
||||||
\end{minipage}
|
|
||||||
}
|
|
||||||
\vspace{2mm}
|
|
||||||
|
|
||||||
Le diagramme d'activité est un diagramme comportemental d'UML, permettant de représenter le déclenchement d'événements en fonction des états du système et de modéliser des comportements parallélisables (multi-threads ou multi-processus).
|
|
||||||
|
|
||||||
Les diagrammes d'activité permettent de spécifier des traitements à priori séquentiels et offrent une vision très proche de celle des langages de programmation impératifs comme C++ ou Java. Il serait utilisé ici dans ce but.
|
|
||||||
|
|
||||||
\subsection{N{\oe}uds d'activité}
|
|
||||||
|
|
||||||
Une activité modélise un comportement décrit par un séquencement organisé d'unités dont les éléments simples sont les actions. Le flot d'exécution est modélisé par des n{\oe}uds reliés par des arcs (transitions). Le flot de contrôle reste dans l'activité jusqu'à ce que les traitements soient terminés.
|
|
||||||
|
|
||||||
Un n{\oe}ud d'activité est un type d'élément abstrait permettant de représenter les étapes le long du flot d'une activité. Il existe plusieurs familles de n{\oe}uds d'activités :
|
|
||||||
\begin{itemize}
|
|
||||||
\item les n{\oe}uds d'exécutions,
|
|
||||||
\item et les n{\oe}uds de contrôle.
|
|
||||||
\end{itemize}
|
|
||||||
La figure~\ref{fig:noeuds_act} représente les différents types de n{\oe}uds d'activité.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.6]{figures_pdf/noeud_activite}
|
|
||||||
\caption{Représentation graphique des n{\oe}uds d'activité}
|
|
||||||
\label{fig:noeuds_act}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
Le passage d'une activité vers une autre est matérialisé par une transition. Elles sont déclenchées dès que l'activité source est terminée et provoquent automatiquement et immédiatement le début de la prochaine activité à déclencher (l'activité cible). Contrairement aux activités, les transitions sont franchies de manière atomique, en principe sans durée perceptible.
|
|
||||||
|
|
||||||
Les transitions spécifient l'enchaînement des traitements et définissent le flot de contrôle. Elles sont représentées graphiquement par un arc entre deux n{\oe}uds.
|
|
||||||
|
|
||||||
\subsubsection{N{\oe}uds de contrôle}
|
|
||||||
Un n{\oe}ud de contrôle est un n{\oe}ud d'activité abstrait utilisé pour coordonner les flots entre les n{\oe}uds d'une activité.
|
|
||||||
Il existe plusieurs types de n{\oe}uds de contrôle (voir figure~\ref{fig:exe_act}) :
|
|
||||||
\begin{itemize}
|
|
||||||
\item n{\oe}ud initial : Un n{\oe}ud initial est un n{\oe}ud de contrôle à partir duquel le flot débute lorsque l'activité enveloppante est invoquée. Un n{\oe}ud initial possède un arc sortant et pas d'arc entrant.
|
|
||||||
\item n{\oe}ud de fin d'activité : Lorsque l'un des arcs d'un n{\oe}ud de fin d'activité est activé (i.e. lorsqu'un flot d'exécution atteint un n{\oe}ud de fin d'activité), l'exécution de l'activité enveloppante s'achève et tout n{\oe}ud ou flot actif au sein de l'activité enveloppante est abandonné.
|
|
||||||
\item n{\oe}ud de décision : Un n{\oe}ud de décision est un n{\oe}ud de contrôle qui permet de faire un choix entre plusieurs flots sortants. Il possède un arc entrant et plusieurs arcs sortants. Ces derniers sont généralement accompagnés de conditions de garde pour conditionner le choix. L'utilisation d'une garde [else] est recommandée après un n{\oe}ud de décision car elle garantit un modèle bien formé. En effet, la condition de garde [else] est validée si et seulement si toutes les autres gardes des transitions ayant la même source sont fausses.
|
|
||||||
\item n{\oe}ud de fusion : Un n{\oe}ud de fusion est un n{\oe}ud de contrôle qui rassemble plusieurs flots alternatifs entrants en un seul flot sortant. Il n'est pas utilisé pour synchroniser des flots concurrents mais pour accepter un flot parmi plusieurs.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.6]{figures_pdf/exe_act}
|
|
||||||
\caption{Exemple de n{\oe}uds de contrôle}
|
|
||||||
\label{fig:exe_act}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
\subsection{N{\oe}uds d'exécution}
|
|
||||||
|
|
||||||
Un n{\oe}ud d'exécution est un n{\oe}ud d'activité exécutable qui constitue l'unité fondamentale de fonctionnalité exécutable dans une activité. L'exécution d'une action représente une transformation ou un calcul quelconque dans le système modélisé. Les actions sont généralement liées à des opérations qui sont directement invoquées. Un n{\oe}ud d'exécution doit avoir au moins un arc entrant.
|
|
||||||
|
|
||||||
Graphiquement, un n{\oe}ud d'exécution est représenté par un rectangle aux coins arrondis (figure~\ref{fig:exe_act}) qui contient sa description textuelle. Cette description textuelle peut aller d'un simple nom à une suite d'actions réalisées par l'activité. UML n'impose aucune syntaxe pour cette description textuelle, on peut donc utiliser une syntaxe proche de celle d'un langage de programmation particulier ou du pseudo-code.
|
|
||||||
|
|
||||||
|
|
||||||
\paragraph{Ajout de sémantique}
|
|
||||||
Pour faire le lien avec la conception en AADL, nous ajoutons deux actions spécifiques à la gestion des événements. Le caractère \og ? \fg utilisé après le nom d'un événement signifie que l'action est une attente (donc bloquée) sur la réception de cet événement, alors que \og ! \fg signifie sont émission. La figure~\ref{fig:exem_sync} donne un exemple où une activité est en attente (bloquée) de l'événement \texttt{toto} et produit l'événement \texttt{tata}.
|
|
||||||
|
|
||||||
Pour les événements portant une donnée nous ferons suivre le symbole de synchronisation par une liste de variables qui reçoivent les données. Par exemple, {\tt toto?var} signifie que l'action est en attente de l'événement {\tt toto} et qu'à la réception la variable {\tt var} aura pour valeur celle transmise.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=0.6]{figures_pdf/exem_evt}
|
|
||||||
\caption{Exemple de synchronisation}
|
|
||||||
\label{fig:exem_sync}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\newpage
|
|
||||||
\section{Le langage AADL}
|
|
||||||
\label{ann:aadl}
|
|
||||||
|
|
||||||
AADL (Architecture Analysis and Design Language) est un langage de description d'architecture pour les systèmes temps réel. Il peut être indifféremment utilisé en avionique, spatial, robotique, etc. Il a été développé suite aux retours d'expérience sur l'utilisation du langage MethaH et a été standardisé sous l'autorité de le division ASD (Avionics System Division) du SAE (International Society for Automotive Engineers).
|
|
||||||
|
|
||||||
Une première version du standard AADL (SAE AS5506) a été produite en novembre 2004. Celle courante est la 2.0~\cite{AADL:2009} et date de janvier 2009. Depuis des fournitures de documents annexes et d'outils ont été proposés.
|
|
||||||
|
|
||||||
Le langage AADL étant extrêmement riche, il est impossible d'en donner ici une vue exhaustive en quelques pages. Nous ne présentons qu'un sous-ensemble de composants pour ne se focaliser que sur les principaux. Les personnes souhaitant approfondir le sujet peuvent se référer aux notes techniques disponibles sur le site de la SAE ou bien directement accéder au standard.
|
|
||||||
|
|
||||||
Le standard~\cite{AADL:2009} est construit sur le concept de modélisation par composant. Un composant est une entité logicielle permettant de faire un calcul ou de stocker des données. Il peut représenter aussi bien une simple fonction qu'une application complète. Un composant peut être simple ou composé, il est alors dit composite. On distingue habituellement l'interface du composant qui permet de décrire les services qu'il fournit ou requière, de son implémentation qui décrit son fonctionnement interne.
|
|
||||||
|
|
||||||
AADL permet de décrire aussi bien une architecture logicielle que matérielle et de spécifier le moteur d'exécution en terme de t‚ches concurrentes, de synchronisation et d'allocation. Le standard SAE AADL offre :
|
|
||||||
\begin{itemize}
|
|
||||||
\item une spécification du langage avec une syntaxe textuelle ;
|
|
||||||
\item une sémantique et une représentation graphique ;
|
|
||||||
\item un profil UML du SAE AADL ;
|
|
||||||
\item d'une spécification XML/XMI comme format de modèle ;
|
|
||||||
\item et plusieurs annexes détaillant certains points : formalisation du comportement, définition des interfaces avec le C et Ada, extension au modèle d'erreur, etc.\\
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\framebox[\textwidth]{
|
|
||||||
\begin{minipage}{0.9\textwidth}
|
|
||||||
{\bf Remarque :} La description du langage qui en est donnée ci-après est loin d'être exhaustive et certaines libertés ont été prises pour l'adapter aux besoins pédagogiques.
|
|
||||||
|
|
||||||
La suite du document est directement inspirée du \href{http://www.axlog.fr/aadl/presentation\_fr.html}{guide en ligne} fourni par la société Axlog.
|
|
||||||
\end{minipage}
|
|
||||||
}
|
|
||||||
|
|
||||||
\section{Notion de composant et syntaxe}
|
|
||||||
|
|
||||||
|
|
||||||
La description d'une architecture en AADL consiste en la description de ses composants et leur composition sous forme d'une arborescence. Cette description pouvant être contenue dans des fichiers, une base de données, etc.
|
|
||||||
|
|
||||||
|
|
||||||
Chaque composant appartient à une {\bf catégorie}. Ces catégories sont prédéfinies et se décomposent en :
|
|
||||||
\begin{itemize}
|
|
||||||
\item Catégorie matérielle avec les composants : mémoire ({\em memory}) ; périphérique ({\em device}) ; processeur ({\em processor}) ; bus ({\em bus}).
|
|
||||||
\item Catégorie logicielle avec les composants : donnée ({\em data}) ; sousprogramme ({\em subprogram}) ; thread ({\em thread}) ; groupe de threads ({\em thread group}) ; processus ({\em†processs}).
|
|
||||||
\item Catégorie composite avec les composants : système ({\em system}), composant abstrait ({\em abstract}).\\
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Types et implémentation}
|
|
||||||
|
|
||||||
Chaque composant comprend deux parties. La première, \textbf{le type}, correspond à son interface fonctionnelle, c'est-à-dire ce qui est visible pour les autres composants. La seconde, \textbf{l'implémentation}, décrit son contenu : sous-composants, propriétés, connexions, etc.
|
|
||||||
|
|
||||||
Chaque implémentation est associée à un type. À chaque type est associé aucune, une ou plusieurs implémentations. La figure~\ref{fig:type_implementation} donne un exemple de deux types de composants dont le premier est associé à deux implémentations de composants (component implementations). Textuellement, le type est introduit par le mot décrivant le type du composant, alors que l'implémentation est décrite par le type suivi du mot {\em implementation}.
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\begin{minipage}[c]{.46\linewidth}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, out, event, with, not, port},emphstyle=\textbf}
|
|
||||||
\begin{lstlisting}
|
|
||||||
system type1
|
|
||||||
end type1;
|
|
||||||
|
|
||||||
system type2
|
|
||||||
end type2;
|
|
||||||
|
|
||||||
system implementation type1.impl1
|
|
||||||
end type1.impl1;
|
|
||||||
|
|
||||||
system implementation type1.impl2
|
|
||||||
end type1.impl2;
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\caption{Exemple de description de composants}
|
|
||||||
\label{fig:type_implementation}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
L'intérêt de scinder la description d'un composant en type et implémentation est de bien séparer ces deux points de vue. Décrire le type permet à spécifier l'interface du composant, c'est-à-dire exprimer à quoi il ressemble depuis l'extérieur. Alors que l'implémentation en représente l'intérieur. Dans la pratique, la description du type et de l'implémentation peuvent être faites par des personnes différentes, chacune ayant en charge une étape dans le raffinement de la description de l'architecture, du plus haut niveau jusqu'aux moindres détails.
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Les propriétés}
|
|
||||||
|
|
||||||
Chaque composant est caractérisé par des propriétés pouvant prendre des valeurs. Les propriétés sont prédéfinies, c'est-à-dire qu'elles sont identifiées par un nom, un type et la liste des catégories de composants sur lesquelles elles s'appliquent. Par exemple les {\em threads} disposent de propriétés telles que la période, l'échéance ou la durée d'exécution (voir figure~\ref{fig:ex_prop}).
|
|
||||||
|
|
||||||
De nouvelles propriétés et de nouveaux types de propriétés peuvent être définis par l'utilisateur et associés à tout ou partie des catégories de composants. Ce mécanisme de propriétés est un point fort d'AADL en matière d'extensibilité. Gr‚ce à lui, toute notion spécifique au besoin de l'utilisateur peut être prise en compte dans sa description.
|
|
||||||
|
|
||||||
Syntaxiquement, les propriétés sont introduites par le mot {\em properties} suivi d'une liste de propriétés séparées par un point virgule. Les valeurs associées à une propriété sont spécifiées à l'aide de "=>".
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\begin{minipage}[c]{.46\linewidth}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, out, event, with, not, port},emphstyle=\textbf}
|
|
||||||
\begin{lstlisting}
|
|
||||||
thread thread1
|
|
||||||
properties
|
|
||||||
Period => 15 ms;
|
|
||||||
Deadline => 10 ms;
|
|
||||||
end thread1;
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\caption{Exemple d'un {\em thred} avec des propriétés sur sa période et son échéance}
|
|
||||||
\label{fig:ex_prop}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\subsection{Ports et connexions}
|
|
||||||
|
|
||||||
La description des flots de données et de contrôles entre composants se fait par le moyen de {\bf ports} et de {\bf connexions}. Un port est un point d'entrée et de sortie d'un composant, c'est-à-dire une interface par où transitent les données et les événements entre les composants. Une connexion permet de relier deux ports, soit les ports de deux sous-composants, soit le port d'un sous-composant avec le port du composant le contenant. Le type et le sens entre les ports connectés doivent être identiques.
|
|
||||||
|
|
||||||
La figure~\ref{fig:connexion_graph} représente graphiquement des ports avec des connexions et la figure~\ref{fig:connexion} en donne sa syntaxe. Le système contient deux {\em process}, eux-même contenant chacun un {\em thread}. Une succession de {\em ports}, représentés par les triangles, et de connexions, représentées par les lignes, établit une communication entre les deux threads.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/connexion.pdf}
|
|
||||||
\caption{Représentation d'un système et de ses sous-composants}
|
|
||||||
\label{fig:connexion_graph}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, out, event, with, not, port},emphstyle=\textbf}
|
|
||||||
\begin{minipage}[c]{.46\linewidth}
|
|
||||||
\begin{lstlisting}
|
|
||||||
system system1
|
|
||||||
end system1;
|
|
||||||
|
|
||||||
system implementation system1.impl
|
|
||||||
subcomponents
|
|
||||||
p1: process process1.impl;
|
|
||||||
p2: process process2.impl;
|
|
||||||
connections
|
|
||||||
cn: data port p1.outport -> p2.inport;
|
|
||||||
end system1.impl;
|
|
||||||
|
|
||||||
process process1
|
|
||||||
features
|
|
||||||
outport: out data port;
|
|
||||||
end process1;
|
|
||||||
|
|
||||||
process implementation process1.impl
|
|
||||||
subcomponents
|
|
||||||
t1: thread thread1.impl;
|
|
||||||
connections
|
|
||||||
cn: data port t1.outport -> outport;
|
|
||||||
end process1.impl;
|
|
||||||
|
|
||||||
process process2
|
|
||||||
features
|
|
||||||
inport: in data port;
|
|
||||||
end process2;
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\begin{minipage}[c]{.46\linewidth}
|
|
||||||
\begin{lstlisting}
|
|
||||||
process implementation process2.impl
|
|
||||||
subcomponents
|
|
||||||
t2: thread thread2.impl;
|
|
||||||
connections
|
|
||||||
cn: data port inport -> t2.inport;
|
|
||||||
end process2.impl;
|
|
||||||
|
|
||||||
thread thread1
|
|
||||||
features
|
|
||||||
outport: out data port;
|
|
||||||
end thread1;
|
|
||||||
|
|
||||||
thread implementation thread1.impl
|
|
||||||
end thread1.impl;
|
|
||||||
|
|
||||||
thread thread2
|
|
||||||
features
|
|
||||||
inport: in data port;
|
|
||||||
end thread2;
|
|
||||||
|
|
||||||
thread implementation thread2.impl
|
|
||||||
end thread2.impl;
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\caption{Exemple de description de connexions}
|
|
||||||
\label{fig:connexion}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Outils}
|
|
||||||
|
|
||||||
Différentes outils existent pour manipuler le langage AADL. En particulier, l'atelier de développement ouvert TOPCASED~\cite{topcased} fournit un éditeur textuel et graphique du langage, ADELE. De même, OSATE est un outil pour vérifier la syntaxe d'une description AADL. Cependant, ces outils ne sont pas très robuste ni \og user friendly\fg.
|
|
||||||
|
|
||||||
\section{Description des principaux composants}
|
|
||||||
|
|
||||||
\framebox[\textwidth]{
|
|
||||||
\begin{minipage}{0.9\textwidth}
|
|
||||||
{\bf Remarque :} Les principaux composants et éléments de description AADL utilisés pour la conception dans le cadre des TP sont énumérés dans les sections suivantes. Nous nous limitons volontairement à un sous-ensemble et ne respectons pas certaines règles imposées par le standard afin d'en simplifier son utilisation.
|
|
||||||
|
|
||||||
Nous nous limitons aussi à l'expression graphique du langage. Nous ne ferons donc pas de distinction entre type et implémentation et les propriétés seront portées sous forme d'annotations sur les composants.
|
|
||||||
\end{minipage}
|
|
||||||
}
|
|
||||||
|
|
||||||
\subsection{System}
|
|
||||||
\paragraph{Définition} Un {\em system} représente l'assemblage des composants logiciels d'une l'application et de sa plate-forme d'exécution.
|
|
||||||
|
|
||||||
\paragraph{Règles syntaxiques} Un {\em system} peut contenir les déclaration de {\em data}, de {\em port} et de {\em thread}\footnote{Cela n'est pas vrai dans le standard, un système contient normalement des {\em processes} qui contiennent des {\em threads}}.
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[h]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/system.pdf}
|
|
||||||
\caption{Représentation graphique d'un système}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\newpage
|
|
||||||
\subsection{Thread}
|
|
||||||
|
|
||||||
\paragraph{Définition} Un {\em thread} modélise une activité concurrente, c'est-à-dire une unité ordonnançable qui peut être exécutée en concurrence avec un autre {\em thread}. Chaque {\em thread} est représenté par un flot de contrôle séquentiel qui exécute les instructions d'une image binaire produite par un code source. Un thread peut être activé ({\em dispatch}), c'est-à-dire que son exécution est provoquée par un événement qui peut être asynchrone ou périodique.
|
|
||||||
|
|
||||||
\paragraph{Règles syntaxiques} Un {\em thread} peut contenir des déclarations de {\em port}, de {\em requires data access}, et contenir des {\em data}.
|
|
||||||
|
|
||||||
\paragraph{Exécution} Un {\em thread} s'exécute à la suite d'un {\em disptach}. Un tel événement peut se produire périodiquement ou suite à un événement. Dans le cas périodique, le {\em thread} ré-exécute régulièrement le code qui lui est associé. Dans le cas d'un {\em dispatch} sur événement, le code peut faire référence à une attente de cet événement.
|
|
||||||
|
|
||||||
Quand le {\em thread} termine une exécution, il passe dans un état d'attente du prochain {\em dispatch}. Si un événement provoquant un dispatch est en attente, le {\em thread} commence immédiatement une exécution. Les événements de {\em dispatch} sur un événement peuvent être en attente.
|
|
||||||
|
|
||||||
\paragraph{Propriétés} Un {\em thread} aura une propriété décrivant son type d'activation ainsi qu'un niveau de priorité. Dans le cas périodique, une propriété indiquant la période sera ajoutée.
|
|
||||||
|
|
||||||
\begin{center}
|
|
||||||
\begin{minipage}[c]{.46\linewidth}
|
|
||||||
\lstset{inputencoding=utf8/latin1}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, with, not, aadlstring},emphstyle=\textbf}
|
|
||||||
%\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=10pt,numberblanklines= false}
|
|
||||||
\begin{lstlisting}
|
|
||||||
- - Propri\'et\'es liées \`a l'activation
|
|
||||||
Dispatch_Protocol: {Periodic | Aperiodic }
|
|
||||||
Period: time
|
|
||||||
- - Propriété liée à l'ordonnancement
|
|
||||||
Priority: integer
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\end{center}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/thread.pdf}
|
|
||||||
\caption{Représentation graphique d'un {\em thread}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\subsection{Data}
|
|
||||||
|
|
||||||
\paragraph{Définition}
|
|
||||||
|
|
||||||
Un composant de type {\em data} représente une donnée qui peut être accessible et partagée par d'autres composants, ce qui est modélisé par un {\em requires data access}. L'accès concurrent à la donnée partagée est coordonnée par le protocole de partage spécifié par la propriété {\tt Concurrency\_Control\_Protocol} du composant de type {\em data}. Un {\em thread} est considéré comme étant dans une section critique quand il a accès au composant de type {\em data}.
|
|
||||||
|
|
||||||
|
|
||||||
\paragraph{Règles syntaxiques} Un {\em data} peut contenir des déclarations de {\em subprogram access} et les propriétés associées.\\
|
|
||||||
|
|
||||||
\paragraph{Propriétés} Un {\em data} est décrit par son type ainsi que par son protocole d'accès s'il est partagé.
|
|
||||||
|
|
||||||
\begin{center}
|
|
||||||
\begin{minipage}[c]{.8\linewidth}
|
|
||||||
\lstset{inputencoding=utf8/latin1}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, out, event, with, not, port},emphstyle=\textbf}
|
|
||||||
\begin{lstlisting}
|
|
||||||
- - Type de la donnée
|
|
||||||
Type_Source_Name : string
|
|
||||||
- - Protocole d'accès à la donnée
|
|
||||||
Concurrency_Control_Protocol : { Maximum_Priority | Priority_Inheritance |
|
|
||||||
Priority_Ceiling | Spin_Lock | Semaphore}
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\end{center}
|
|
||||||
|
|
||||||
Un ensemble de services standards est fourni pour accéder au {\em data}. Les services {\tt Read\_Data(Data)} et {\tt Write\_Data(Data,Value)} représentent des interfaces pour les fonctions qui réalisent une lecture et écriture de la données du {\em data}. Ces fonctions commencent toujours par une prise de la ressource et se termine par sa libération. La gestion de l'accès concurrent se fait suivant le protocole spécifié. Il est bien sûr possible de définir d'autres services dédiés.
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/data.pdf}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%
|
|
||||||
\subsection{Ports}
|
|
||||||
|
|
||||||
\paragraph{Définition} Les {\em ports} sont les points de connexion entre les différents composants qui peuvent être utilisés pour le transfère du contrôle et des données entre eux. Les {\em ports} sont directionnels, c'est-à-dire qu'un port en sortie ({\em output}) est connecté à un port en entrée ({\em input}). Les ports peuvent passés des données, des événements ou les deux. Les données transférées par les ports sont typées. Du point de vue du code source, les données des {\em ports} sont accesibles comme des variables.
|
|
||||||
|
|
||||||
Trois catégories de {\em ports} sont distinguées :
|
|
||||||
\begin{itemize}
|
|
||||||
\item Les {\em event data ports} sont les {\em ports} à travers lesquels des données sont envoyées et reçues. L'arrivée d'une donnée peut provoquer un événement chez le récepteur. Les données peuvent être mise dans une file. Un {\em event data port} représente les files de messages.
|
|
||||||
\item Les {\em data ports} sont des {\em event data ports} avec une file de taille égale à un pour laquelle seule la dernière valeure est conservée ({\em blackboard}). Par défaut, l'arrivée d'une donnée ne cause pas d'activité. Les {\em data ports} représentent les {\em ports} sans file d'attente qui communiquent des informations, tels que des flux qui sont échantillonnés.
|
|
||||||
\item Les {\em event ports} sont des {\em event data ports} sans contenu de message. Les {\em event ports} représentent des événement discrets dans l'environnement physique, tel que l'appui sur un bouton, une interruption d'horloge ou un événement logique discret comme une alarme.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Les {\em ports} sont directionnels. Un {\em out port} représente une sortie produite par un émetteur, et un {\em in port} représente une entrée requise par un récepteur.
|
|
||||||
|
|
||||||
\paragraph{Règles syntaxiques} Les {\em ports} peuvent être déclarés dans les types des {\em threads} et {\em system}.
|
|
||||||
|
|
||||||
\paragraph{Propriétés} \`A un port est associé au type de données qu'il transporte ainsi que la taille de sa file d'attente et le protocole utilisé pour gérer la file.
|
|
||||||
|
|
||||||
\begin{center}
|
|
||||||
\begin{minipage}[c]{.72\linewidth}
|
|
||||||
\lstset{inputencoding=utf8/latin1}
|
|
||||||
\lstset{emph={system, end, implementation, process, processor, thread, subcomponents, properties, features, reference, applies, to, connections, features, requires, data, access, System, offset, end, behavior, res, preemptable, allocation, task, policy, is, action, period, deadline, resources, tasks, in, out, event, with, not, port, enumeration, aadlstring, aadlinteger},emphstyle=\textbf}
|
|
||||||
\begin{lstlisting}
|
|
||||||
- - Taille de la file de messages, 1 par défaut
|
|
||||||
Queue_Size: aadlinteger 0 .. Max_Queue_Size => 1
|
|
||||||
\end{lstlisting}
|
|
||||||
\end{minipage}
|
|
||||||
\end{center}
|
|
||||||
|
|
||||||
Les {\em event} et {\em event data ports} ont par défaut une file associée avec une taille de 1 qui peut être explicitement changée en modifiant la propriété {\tt Queue\_size}. Les propriétés {\tt Queue\_Size} et {\tt Queue\_Processing\_Protocol} spécifient le comportement de la file.
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/ports.pdf}
|
|
||||||
\caption{Représentation graphique des {\em ports}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%
|
|
||||||
\subsection{Connexions}
|
|
||||||
|
|
||||||
\paragraph{Définition} Une connexion est un lien orienté entre les {\em features} de deux composants qui représente les échanges de données et de contrôle entres les composants. Cela peut être la transmission de contrôle et de données entre des ports de différents {\em threads} ou entre des {\em threads} et un {\em data}.
|
|
||||||
|
|
||||||
\paragraph{Règles syntaxiques} Une connexion doit contenir au moins une source et une destination et respecter le sens de communication des {\em ports}.
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
\includegraphics[scale=.6]{figures_pdf/connexion2.pdf}
|
|
||||||
\caption{Représentation graphique des connexions}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%
|
|
||||||
\newpage
|
|
||||||
\section{Code source des schémas d'activité}
|
|
||||||
|
|
||||||
\begin{multicols}{2}
|
|
||||||
\subsection{Thread th\_server}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
:status = monitor.Open();
|
|
||||||
if (status) then (failed)
|
|
||||||
:print("Unable to start server");
|
|
||||||
stop
|
|
||||||
else (succeed)
|
|
||||||
:monitor.AcceptClient();
|
|
||||||
:serverOk!;
|
|
||||||
stop
|
|
||||||
endif
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}}
|
|
||||||
|
|
||||||
\subsection{Thread th\_sendToMon}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
:serverOK?;
|
|
||||||
while ()
|
|
||||||
:messageToMon?msg;
|
|
||||||
:monitor.Write(msg);
|
|
||||||
endwhile
|
|
||||||
stop
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
|
|
||||||
\subsection{Thread th\_receiveFromMon}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
:serverOk?;
|
|
||||||
while ()
|
|
||||||
:msgRcv = monitor.Read();
|
|
||||||
if (msgRcv.CompareID(MESSAGE_MONITOR_LOST)) then (true)
|
|
||||||
stop
|
|
||||||
else (false)
|
|
||||||
if (msgRcv.CompareID(MESSAGE_ROBOT_COM_OPEN)) then (true)
|
|
||||||
:openComRobot!;
|
|
||||||
else (false)
|
|
||||||
if (msgRcv.CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) then (true)
|
|
||||||
:startRobot!;
|
|
||||||
else (false)
|
|
||||||
if (msgRcv.CompareID(MESSAGE_ROBOT_GO_FORWARD
|
|
||||||
|| msgRcv.CompareID(MESSAGE_ROBOT_GO_BACKWARD
|
|
||||||
|| msgRcv.CompareID(MESSAGE_ROBOT_GO_LEFT
|
|
||||||
|| msgRcv.CompareID(MESSAGE_ROBOT_GO_RIGHT
|
|
||||||
|| msgRcv.CompareID(MESSAGE_ROBOT_STOP)) then (true)
|
|
||||||
:move = msg.GetId();
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
stop
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
|
|
||||||
\subsection{Thread th\_openComRobot}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
while ()
|
|
||||||
:openComRobot?;
|
|
||||||
:err = robot.Open();
|
|
||||||
if (err) then (robot_ok)
|
|
||||||
:msgSend = new Message(MESSAGE_ANSWER_ACK);
|
|
||||||
else
|
|
||||||
:msgSend = new Message(MESSAGE_ANSWER_NACK);
|
|
||||||
endif
|
|
||||||
:messageToMon!msgSend;
|
|
||||||
endwhile
|
|
||||||
stop
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Thread th\_openStartRobot}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
while ()
|
|
||||||
:startRobot?;
|
|
||||||
:msgSend = robot.Write(new Message(MESSAGE_ROBOT_START_WITH_WD));
|
|
||||||
:messageToMon!msgSend;
|
|
||||||
if (msgSend->getId()) then (MESSAGE_ANSWER_ACK)
|
|
||||||
:robotStarted = true;
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
stop
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
|
|
||||||
\subsection{Thread th\_move}
|
|
||||||
{\scriptsize
|
|
||||||
\begin{verbatim}
|
|
||||||
@startuml
|
|
||||||
skinparam monochrome true
|
|
||||||
start
|
|
||||||
:start_period(100 ms);
|
|
||||||
while ()
|
|
||||||
:wait_next_period();
|
|
||||||
if (robotStarted) then (true)
|
|
||||||
:robot.Wirte(new Message(move));
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
stop
|
|
||||||
@enduml
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\end{appendices}
|
|
||||||
|
|
||||||
\bibliographystyle{plain}
|
|
||||||
\bibliography{biblio}
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
|
|
@ -1,647 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2010-05-10 22:15:12 +0200</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>256</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{375.432, 57.1672}</string>
|
|
||||||
<string>{366.3, 84.5651}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>255</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{240.945, 14.1732}, {283.465, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>255</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 type_source_name => Integer\
|
|
||||||
Concurrency_Control_Protocol => Priority_Ceiling}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>253</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>254</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{221.952, 156.244}</string>
|
|
||||||
<string>{250.017, 184.252}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>Width</key>
|
|
||||||
<real>0.25</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{199.531, 184.252}, {115, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>253</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\i\fs24 \cf0 requires data acces}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{310.165, 127.559}, {102.504, 42}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>Vertical</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>252</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 composant de type
|
|
||||||
\i data qui est
|
|
||||||
\i0 partag\'e9
|
|
||||||
\i }</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>251</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{325.51, 111.337}</string>
|
|
||||||
<string>{222.072, 146.266}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>250</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{325.485, 97.4793}</string>
|
|
||||||
<string>{222.098, 92.492}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{207.425, 141.732}, {14.1732, 14.1732}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{99.2126, 127.559}, {127.559, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>9</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Parallelogram</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Pattern</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Thread2}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{207.425, 85.0394}, {14.1732, 14.1732}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 0.5}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-9.53674e-07, 0.499998}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-0.5, 0}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{-4.76837e-07, -0.5}</string>
|
|
||||||
<string>{0.5, -0.499998}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{325.984, 85.0394}, {70.8661, 28.3465}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 data1}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{99.2126, 70.8661}, {127.559, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Parallelogram</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Pattern</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Thread1}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SnapsToGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2012-01-14 17:23:35 +0100</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{69, 1}, {586, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{-6, 0}, {571, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,476 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2012-01-14 18:40:52 +0100</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{162.698, 198.512}, {31, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>405</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qr\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 toto}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>407</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{197.286, 198.512}</string>
|
|
||||||
<string>{204.046, 205.273}</string>
|
|
||||||
<string>{197.286, 212.033}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{190.525, 198.512}, {13.9, 13.5212}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>408</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>406</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>404</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{304.543, 198.512}, {31, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>447</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qr\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 tata}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>449</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{296.611, 198.512}</string>
|
|
||||||
<string>{303.371, 205.273}</string>
|
|
||||||
<string>{296.611, 212.033}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{289.85, 198.512}, {13.9, 13.5212}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>450</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>448</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>446</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{198.425, 184.252}, {99, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>171</integer>
|
|
||||||
<key>Magnets</key>
|
|
||||||
<array>
|
|
||||||
<string>{0, 1}</string>
|
|
||||||
<string>{0, -1}</string>
|
|
||||||
<string>{1, 0}</string>
|
|
||||||
<string>{-1, 0}</string>
|
|
||||||
</array>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>CornerRadius</key>
|
|
||||||
<real>5</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 toto ?\
|
|
||||||
tata !}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2012-01-14 18:47:42 +0100</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{28, 4}, {574, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{0, 0}, {559, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,425 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2012-01-14 18:10:23 +0100</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{257.791, 86.2126}, {115, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>184</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 n\'9cuds de crontr\'f4le}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{371.35, 47.0197}, {21, 21}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>169</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Circle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{366.85, 42.5197}, {30, 30}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>170</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Circle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>168</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{304.984, 47.0197}, {21, 21}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>167</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Circle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{230.465, 42.5197}, {53, 30}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>182</integer>
|
|
||||||
<key>Magnets</key>
|
|
||||||
<array>
|
|
||||||
<string>{0, 1}</string>
|
|
||||||
<string>{0, -1}</string>
|
|
||||||
<string>{1, 0}</string>
|
|
||||||
<string>{-1, 0}</string>
|
|
||||||
</array>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Diamond</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{28.3465, 42.5197}, {99, 36}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>171</integer>
|
|
||||||
<key>Magnets</key>
|
|
||||||
<array>
|
|
||||||
<string>{0, 1}</string>
|
|
||||||
<string>{0, -1}</string>
|
|
||||||
<string>{1, 0}</string>
|
|
||||||
<string>{-1, 0}</string>
|
|
||||||
</array>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>CornerRadius</key>
|
|
||||||
<real>5</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 n\'9cud d'ex\'e9cution}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SnapsToGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2012-01-14 18:24:10 +0100</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{68, 36}, {574, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{0, 0}, {559, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,864 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2010-05-11 14:46:52 +0200</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>262</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>263</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{209.581, 150.471}</string>
|
|
||||||
<string>{132.291, 184.053}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>255</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{28.3469, 184.252}, {141.732, 28.3465}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>262</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Data_type => Integer\
|
|
||||||
Queue_Size => 10}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{421.196, 141.732}, {7.08671, 13.9996}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>260</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>261</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{428.28, 141.732}</string>
|
|
||||||
<string>{435.366, 148.732}</string>
|
|
||||||
<string>{428.28, 155.732}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>259</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>258</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{423.11, 113.386}</string>
|
|
||||||
<string>{430.196, 120.472}</string>
|
|
||||||
<string>{423.11, 127.559}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{423.11, 85.0394}, {7.08667, 14.1732}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>257</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>Group</string>
|
|
||||||
<key>Graphics</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{210.039, 141.732}, {7.08671, 13.9996}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>255</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>256</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{217.124, 141.732}</string>
|
|
||||||
<string>{224.209, 148.732}</string>
|
|
||||||
<string>{217.124, 155.732}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>254</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{211.126, 85.0394}, {7.08667, 14.1732}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>252</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Bezier</string>
|
|
||||||
<key>ShapeData</key>
|
|
||||||
<dict>
|
|
||||||
<key>UnitPoints</key>
|
|
||||||
<array>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{-0.5, 0.5}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{0.5, 2.86102e-06}</string>
|
|
||||||
<string>{-0.5, -0.5}</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Color</key>
|
|
||||||
<dict>
|
|
||||||
<key>b</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>g</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>r</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>250</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{211.126, 113.386}</string>
|
|
||||||
<string>{218.212, 120.472}</string>
|
|
||||||
<string>{211.126, 127.559}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{212.598, 70.8661}, {212.598, 99.0396}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>9</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>CornerRadius</key>
|
|
||||||
<real>5</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{434.7, 141.732}, {111, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 out event data port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{430.196, 113.386}, {84, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>7</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 out event port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{104.598, 141.732}, {103, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>6</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 in event data port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{130.598, 113.386}, {77, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 in event port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{430.196, 85.0394}, {78, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 out data port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{136.598, 85.0394}, {71, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 in data port}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SnapsToGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2012-01-14 17:30:23 +0100</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{171, 3}, {586, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{-6, 0}, {571, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,262 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2010-05-10 23:29:47 +0200</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{129.594, 99.2126}, {155.906, 56.6929}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>CornerRadius</key>
|
|
||||||
<real>5</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 System1}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SnapsToGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2010-05-11 14:03:09 +0200</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{28, 4}, {586, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{0, 0}, {571, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,564 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>CreationDate</key>
|
|
||||||
<string>2010-05-10 22:03:32 +0200</string>
|
|
||||||
<key>Creator</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphDocumentVersion</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>6</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>152</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{422.557, 85.4554}</string>
|
|
||||||
<string>{404.214, 112.97}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>150</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>LineGraphic</string>
|
|
||||||
<key>Head</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>151</integer>
|
|
||||||
<key>Points</key>
|
|
||||||
<array>
|
|
||||||
<string>{209.862, 85.5297}</string>
|
|
||||||
<string>{215.335, 112.896}</string>
|
|
||||||
</array>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>HeadArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>TailArrow</key>
|
|
||||||
<string>0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Tail</key>
|
|
||||||
<dict>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>149</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{340.157, 56.6929}, {184.252, 28.3465}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>150</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Dispatch_protocol => Aperiodic\
|
|
||||||
Priority => 10}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{113.386, 42.5197}, {184.252, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>149</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Align</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Dispatch_protocol => Periodic\
|
|
||||||
Period => 10ms\
|
|
||||||
Priority => 7}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{334.24, 170.079}, {97, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>9</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 aperiodic thread}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{167.661, 170.079}, {90, 14}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>FitText</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>Flow</key>
|
|
||||||
<string>Resize</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Rectangle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>fill</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 periodic thread}</string>
|
|
||||||
</dict>
|
|
||||||
<key>Wrap</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{325.984, 99.2126}, {42.5197, 28.3465}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>7</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Circle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs18 \cf0 A}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{325.984, 113.386}, {127.559, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>6</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Parallelogram</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Pattern</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Thread2}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{155.906, 99.2126}, {42.5197, 28.3465}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Circle</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs18 \cf0 10ms}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Bounds</key>
|
|
||||||
<string>{{155.906, 113.386}, {127.559, 42.5197}}</string>
|
|
||||||
<key>Class</key>
|
|
||||||
<string>ShapedGraphic</string>
|
|
||||||
<key>ID</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
<key>Shape</key>
|
|
||||||
<string>Parallelogram</string>
|
|
||||||
<key>Style</key>
|
|
||||||
<dict>
|
|
||||||
<key>shadow</key>
|
|
||||||
<dict>
|
|
||||||
<key>Draws</key>
|
|
||||||
<string>NO</string>
|
|
||||||
</dict>
|
|
||||||
<key>stroke</key>
|
|
||||||
<dict>
|
|
||||||
<key>Pattern</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<dict>
|
|
||||||
<key>Text</key>
|
|
||||||
<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
|
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;}
|
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
|
||||||
|
|
||||||
\f0\fs24 \cf0 Thread1}</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>ShowsGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SnapsToGrid</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
<key>GuidesLocked</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>GuidesVisible</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ImageCounter</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Calque 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>LinksVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MagnetsVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>MasterSheet</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>MasterSheets</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ActiveLayerIndex</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>AutoAdjust</key>
|
|
||||||
<false/>
|
|
||||||
<key>CanvasColor</key>
|
|
||||||
<dict>
|
|
||||||
<key>w</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>CanvasOrigin</key>
|
|
||||||
<string>{0, 0}</string>
|
|
||||||
<key>CanvasScale</key>
|
|
||||||
<real>1</real>
|
|
||||||
<key>ColumnAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>ColumnSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>DisplayScale</key>
|
|
||||||
<string>1 cm = 1 cm</string>
|
|
||||||
<key>GraphicsList</key>
|
|
||||||
<array/>
|
|
||||||
<key>GridInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>GridSpacing</key>
|
|
||||||
<real>14.17322826385498</real>
|
|
||||||
<key>MajorGridSpacing</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>HPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IsPalette</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>KeepToScale</key>
|
|
||||||
<false/>
|
|
||||||
<key>Layers</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Lock</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Name</key>
|
|
||||||
<string>Layer 1</string>
|
|
||||||
<key>Print</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>View</key>
|
|
||||||
<string>YES</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>LayoutInfo</key>
|
|
||||||
<dict/>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Master 1</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>ModificationDate</key>
|
|
||||||
<string>2012-01-14 17:21:18 +0100</string>
|
|
||||||
<key>Modifier</key>
|
|
||||||
<string>Pirem</string>
|
|
||||||
<key>NotesVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>Orientation</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>OriginVisible</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>OutlineStyle</key>
|
|
||||||
<string>Basic</string>
|
|
||||||
<key>PageBreaks</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>PrintInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSBottomMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSLeftMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPaperSize</key>
|
|
||||||
<array>
|
|
||||||
<string>size</string>
|
|
||||||
<string>{595, 842}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSRightMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
<key>NSTopMargin</key>
|
|
||||||
<array>
|
|
||||||
<string>coded</string>
|
|
||||||
<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>ReadOnly</key>
|
|
||||||
<string>NO</string>
|
|
||||||
<key>RowAlign</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>RowSpacing</key>
|
|
||||||
<real>36</real>
|
|
||||||
<key>SheetTitle</key>
|
|
||||||
<string>Canevas 1</string>
|
|
||||||
<key>SmartAlignmentGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>SmartDistanceGuidesActive</key>
|
|
||||||
<string>YES</string>
|
|
||||||
<key>UniqueID</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>UseEntirePage</key>
|
|
||||||
<true/>
|
|
||||||
<key>VPages</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>WindowInfo</key>
|
|
||||||
<dict>
|
|
||||||
<key>CurrentSheet</key>
|
|
||||||
<string>0</string>
|
|
||||||
<key>DrawerOpen</key>
|
|
||||||
<false/>
|
|
||||||
<key>DrawerTab</key>
|
|
||||||
<string>Outline</string>
|
|
||||||
<key>DrawerWidth</key>
|
|
||||||
<real>209</real>
|
|
||||||
<key>FitInWindow</key>
|
|
||||||
<false/>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{154, 36}, {586, 742}}</string>
|
|
||||||
<key>ShowRuler</key>
|
|
||||||
<false/>
|
|
||||||
<key>ShowStatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>VisibleRegion</key>
|
|
||||||
<string>{{-6, 0}, {571, 628}}</string>
|
|
||||||
<key>Zoom</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 18 KiB |
|
@ -102,7 +102,7 @@
|
||||||
{\scriptsize Institut National des Sciences Appliquées de Toulouse}\\
|
{\scriptsize Institut National des Sciences Appliquées de Toulouse}\\
|
||||||
---\\
|
---\\
|
||||||
Guide des outils de développement \\
|
Guide des outils de développement \\
|
||||||
{\large Version 1.0.1 (\today)}\\
|
{\large Version 1.0.$\beta$ (\today)}\\
|
||||||
{\scriptsize Référent pédagogique : P.-E. Hladik (\texttt{pehladik@insa-toulouse.fr})}\\
|
{\scriptsize Référent pédagogique : P.-E. Hladik (\texttt{pehladik@insa-toulouse.fr})}\\
|
||||||
{\scriptsize Référents plateforme : S. Di Mercurio (\texttt{dimercur@insa-toulouse.fr})}\\
|
{\scriptsize Référents plateforme : S. Di Mercurio (\texttt{dimercur@insa-toulouse.fr})}\\
|
||||||
---
|
---
|
||||||
|
@ -115,52 +115,177 @@ Guide des outils de développement \\
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Configurer Netbeans pour C/C++}
|
|
||||||
\label{sec:git}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
Depuis la version 11 de Netbeans, il est nécessaire que chaque utilisateur configure son environnement avec le plugin C/CC++. Pour cela, il faut :
|
|
||||||
\begin{itemize}
|
|
||||||
\item ouvrir le menu \og Tools > Plugins \fg
|
|
||||||
\item aller dans l'onglet \og Settings \fg,
|
|
||||||
\item cocher \og Netbeans 8.2 plugins Portal \fg,
|
|
||||||
\item aller dans l'onglet \og Available \fg et rafraichir,
|
|
||||||
\item puis choisir C/C++ et suivre le guide...
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Code initial du projet}
|
\section{Code initial du projet}
|
||||||
\label{sec:git}
|
\label{sec:git}
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
Le code du projet est disponible sur un dépôt git hébergé sur GitHub. Pour le récupérer, placer vous le répertoire cible et exécuter la commande\\ \indent\indent {\tt git clone https://github.com/INSA-GEI/dumber.git}\\
|
Le code du projet est disponible sur un dépôt git hébergé sur GitHub. Pour le récupérer, placer vous le répertoire cible et exécuter la commande\\ \indent\indent {\tt git clone https://github.com/INSA-GEI/dumber.git}
|
||||||
|
|
||||||
|
Il vous faut ensuite changer de branche, pour cela allez dans le répertoire {\tt dumber} puis exécuter la commande\\ \indent\indent {\tt git checkout stable}
|
||||||
|
|
||||||
Tout le code relatif au projet est disponible, cependant vous n'aurez besoin que des codes présents dans les répertoires :
|
Tout le code relatif au projet est disponible, cependant vous n'aurez besoin que des codes présents dans les répertoires :
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item {\tt ./dumber/software/raspberry/superviseur-robot} : ce répertoire contient un projet Netbeans avec l'ensemble du code source pour le projet initial,
|
\item {\tt ./dumber/software/raspberry}
|
||||||
\item {\tt ./dumber/software/monitor/monitor} : ce répertoire contient un projet Mono contenant l'ensemble du code source pour le moniteur.\\
|
\item {\tt ./dumber/software/monitor/monitor}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Le répertoire {\tt superviseur-robot} est constitué des fichiers suivants :
|
\todo[inline]{Mettre à jour la suite en fonction du projet initial}
|
||||||
|
|
||||||
|
Vous aurez alors un répertoire {\tt ./dumber/software} dans lequel vous trouverez les répertoires:
|
||||||
|
\begin{itemize}
|
||||||
|
\item {\tt /src} avec le codes des librairies du projet,
|
||||||
|
\item {\tt /destijl\_init} avec le codes correspondant au projet initial,
|
||||||
|
\item {\tt /example} avec des codes d'exemple pour utiliser les librairies (attention ce n'est pas à jour).\\
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
Le code du projet initial est constitué des fichiers suivants :
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item {\tt /destijl\_init/main.cpp} qui contient le main de l'application et lance la création des objets et leur exécution,
|
\item {\tt /destijl\_init/main.cpp} qui contient le main de l'application et les fonctions de création des objets (tâches, sémaphores, mutex, etc.) de l'architecture logicielle,
|
||||||
\item {\tt /destijl\_init/src/tasks.h} qui contient l'entête des différentes fonctions,
|
\item {\tt /destijl\_init/src/functions.cpp} qui contient l'implémentation des fonctions,
|
||||||
\item {\tt /destijl\_init/src/tasks.cpp} qui contient l'implémentation des fonctions de création des objets (tâches, sémaphores, mutex, etc.) ainsi que les fonctions de traitement.
|
\item {\tt /destijl\_init/src/functions.h} qui contient l'entête des différentes fonctions.\\
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
A cela s'ajoute un fichier {\tt Makefile} disponible dans {\tt /destijl\_init} qui permet de compiler le projet initial sur une \raspi.
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Compilation d'une application distante}
|
\section{Mise en place d'un terminal distant sur la \raspi}
|
||||||
|
\label{sec:ssh}
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
L'application étant sur une \raspi, il vous faut compiler le programme pour cette architecture. Nous vous proposons d'utiliser Netbeans pour écrire votre code et faire la compilation distante. Cela signifie que votre code est stocké sur votre compte INSA, que vous éditez le code sur la machine de TP, que ce code est ensuite automatiquement chargé sur la \raspi puis compilé (Netbeans permet de faire tout cela).
|
Pour se connecter à la \raspi, vous aurez besoin de créer un accès via ssh. Pour cela, depuis un PC d'une salle informatique utilisez la commande :\\ \indent\indent{\tt ssh pi@10.105.1.x}\\
|
||||||
|
avec {\tt x} le numéro sur le boitier de la \raspi.
|
||||||
|
|
||||||
Pour commencer, lancez Netbeans et ouvrez le projet {\tt superviseur-robot}.
|
Le mot de passe est : insa.
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{Exécution du superviseur}
|
||||||
|
\label{sec:utilisation}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
Pour exécuter l'application sur le superviseur, il faut après avoir mis en place un terminal distant puis démarrer l'exécution avec la commande {\tt sudo ./path/app} où {\tt path} est le chemin du répertoire où se trouve l'application et {\tt app} est le nom de votre application. Attention les droits {\tt sudo} sont nécessaires pour des questions d'accès à certains services Xenomai de gestion de la mémoire.
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{Exécution du moniteur}
|
||||||
|
\label{sec:utilisation}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
L'exécution du moniteur se fait...
|
||||||
|
\todo[inline]{Faire cette partie}
|
||||||
|
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{Développement d'une application distante}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
L'application étant sur une \raspi, il vous faut compiler le programme pour cette architecture. Pour faire cela, le plus simple est de compiler le code directement sur la cible à l'aide du {\tt Makefile}. Le problème est alors de choisir comment vous allez éditer le code. Il y a trois solutions envisagées :
|
||||||
|
\begin{enumerate}
|
||||||
|
\item édition locale et compilation distante manuelle : fatigant à la longue, il vaut mieux faire de scripts pour automatiser tout cela,
|
||||||
|
\item édition locale et compilation distante avec netbeans : un peu laborieux à configurer, mais agréable ensuite,
|
||||||
|
\item édition et compilation distante : mauvaise idée.
|
||||||
|
\end{enumerate}
|
||||||
|
Toutes ces solutions sont détaillées dans la suite.
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Développement d'une application distante : édition locale et compilation distante manuelle}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
Cette solution consiste à éditer le code en local sur un PC et de faire la compilation distante sur la \raspi. Cela suppose donc de copier le code du PC sur la \raspi avant chaque compilation, puis de lancer la compilation (figure~\ref{fig:edition2}).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=0.5]{./figures-pdf/edition2}
|
||||||
|
\caption{Edition locale et compilation distante}
|
||||||
|
\label{fig:edition2}
|
||||||
|
\end{center}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Les étapes à suivre sont alors :
|
||||||
|
\begin{enumerate}
|
||||||
|
\item récupérer le code du dépôt (voir section~\ref{sec:git}) sur le PC,
|
||||||
|
\item éditer le code avec l'outil que vous préférez,
|
||||||
|
\item copier le code du PC vers la \raspi en utilisant la commande {\tt sftp} (voir ci-dessous),
|
||||||
|
\item se connecter de manière distante à la \raspi via ssh (voir section~\ref{sec:ssh}),
|
||||||
|
\item compiler avec la commande {\tt make} à l'aide du {\tt Makefile} (qu'il faudra aussi avoir copié sur la \raspi),
|
||||||
|
\item lancer l'exécutable par la commande {\tt sudo ./superviseur} (voir section ~\ref{sec:utilisation}).
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Copie distante de fichiers :}
|
||||||
|
Il est possible d'utiliser {\tt sftp} pour copier un fichier d'une machine sur une autre. Pour cela, en se plaçant dans le répertoire où se trouve le fichier à copier, il faut exécuter les commandes suivantes :
|
||||||
|
\\ \indent\indent{\tt sftp pi@10.105.1.x} avec {\tt x} le numéro de la \raspi (mot de passe {\tt insa}),
|
||||||
|
\\ \indent\indent{\tt sftp > put file} avec {\tt file} le nom du fichier à copier,
|
||||||
|
\\ \indent\indent{\tt sftp > bye} pour quitter sftp.
|
||||||
|
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Développement d'une application distante : édition locale et compilation distante (version Netbeans)}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
Cette deuxième solution applique le même schéma que précédemment (édition locale du code et compilation distante) mais en utilisant Netbeans comme IDE (figure~\ref{fig:edition2b}).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=0.5]{./figures-pdf/edition2b}
|
||||||
|
\caption{Edition locale et compilation distante avec Netbeans}
|
||||||
|
\label{fig:edition2b}
|
||||||
|
\end{center}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Cette solution peut sembler longue, mais une fois la configuration réalisée il en restera plus qu'à lancer les éléments automatiquement.
|
||||||
|
|
||||||
|
Les principales étapes sont :
|
||||||
|
\begin{enumerate}
|
||||||
|
\item éditer le code sur Netbeans,
|
||||||
|
\item lancer la compilation distante depuis Netbeans qui se chargera de copier les fichiers distants et de les compiler,
|
||||||
|
\item lancer un terminal depuis Netbeans,
|
||||||
|
\item exécuter le programme.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Récupérer le code}
|
||||||
|
|
||||||
|
Copiez localement (sur le PC) le dépôt git (voir section~\ref{sec:git}).
|
||||||
|
|
||||||
|
\todo[inline]{Mettre à jour en fonction du dépot}
|
||||||
|
|
||||||
|
\framebox[\textwidth]{
|
||||||
|
\begin{minipage}{0.9\textwidth}
|
||||||
|
Le projet initial est livré avec un projet Netbeans déjà configuré. Vous pouvez simplement l'ouvrir depuis... Il vous faudra ensuite simplement reconfigurer la cible en suivant les étapes présentées dans la section~\ref{sec:cible}.
|
||||||
|
\end{minipage}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Créer un projet Netbeans}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Lancez Netbeans,
|
||||||
|
\item Allez dans {\tt File->new project},
|
||||||
|
\item Choisir {\tt C/C++} pour {\tt categories}, puis {\tt C/C++ Application},
|
||||||
|
\item Cliquez Next
|
||||||
|
\item Donner un nom au projet (ce sera par défaut le nom de votre exécutable),
|
||||||
|
\item Décocher {\tt Create main file},
|
||||||
|
\item cliquez sur {\tt Finish},
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Importer le code dans le projet}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Cliquez droit sur votre projet et choisissez {\tt Add existing items from Folders...},
|
||||||
|
\item puis {\tt Add Folder... } et allez chercher les répertoires que vous avez importé depuis github :
|
||||||
|
\begin{itemize}
|
||||||
|
\item {\tt superviseur\_robot/destijl\_init},
|
||||||
|
\item {\tt superviseur\_robot/src},
|
||||||
|
\end{itemize}
|
||||||
|
\item Cliquez {\tt Add}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
Vous pouvez supprimer tous les autres répertoires du projet (clique droit sur les répertoires).
|
||||||
|
|
||||||
|
\subsubsection{Configurer une compilation distante}
|
||||||
|
\label{sec:cible}
|
||||||
|
|
||||||
Avant de compiler, il vous faut configurer la cible sur laquelle la compilation va se faire:
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Cliquez droit sur le projet et choisir {\tt Properties},
|
\item Cliquez droit sur le projet et choisir {\tt Properties},
|
||||||
\item Allez dans l'onglet {\tt Build},
|
\item Allez dans l'onglet {\tt Build},
|
||||||
|
@ -179,60 +304,101 @@ Avant de compiler, il vous faut configurer la cible sur laquelle la compilation
|
||||||
\item Cliquez {\tt OK}.
|
\item Cliquez {\tt OK}.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
Pour compiler, il suffit ensuite de cliquer sur l'icône en forme de marteau. Vous pourrez voir dans le terminal les étapes de compilation qui commencent par le transfert des fichiers suivi de la compilation proprement dite.
|
\subsubsection{Configurer la compilation}
|
||||||
|
|
||||||
{\bf Remarque} : la première compilation est un peu longue, mais devrait ensuite se fluidifier avec la compilation incrémentale.
|
\begin{enumerate}
|
||||||
|
\item Cliquez droit sur le projet et choisir {\tt Properties},
|
||||||
|
\item Allez dans l'onglet {\tt Build->C++ Compiler},
|
||||||
|
\item Choisir {\tt ...} pour {\tt Additional Options},
|
||||||
|
\item Copier dans le champ {\tt -D\_GNU\_SOURCE -D\_REENTRANT -fasynchronous-unwind-tables -D\_\_MERCURY\_\_ -I/usr/xenomai/include/alchemy -g -D\_WITH\_TRACE\_
|
||||||
|
|
||||||
|
-I/usr/xenomai/include/ -I/usr/xenomai/include/mercury -MMD -MP}
|
||||||
|
\item Cliquez {\tt OK},
|
||||||
|
\item Allez dans l'onglet {\tt Build->Linker},
|
||||||
|
\item Choisir {\tt ...} pour {\tt Additional Options},
|
||||||
|
\item Copier dans le champ {\tt -D\_GNU\_SOURCE -D\_REENTRANT -fasynchronous-unwind-tables -D\_\_MERCURY\_\_ -I/usr/xenomai/include/alchemy -L/usr/xenomai/lib -lalchemy
|
||||||
|
|
||||||
|
-lcopperplate -lmercury -L/opt/vc/lib -I/usr/local/include -lopencv\_highgui -lopencv\_core -lopencv\_imgproc -Wl,{-}{-}no-as-needed -lalchemy -lcopperplate
|
||||||
|
|
||||||
|
/usr/xenomai/lib/xenomai/bootstrap.o -Wl,{-}{-}wrap=main
|
||||||
|
|
||||||
|
-Wl,{-}{-}dynamic-list=/usr/xenomai/lib/dynlist.ld -L/usr/xenomai/lib -lmercury
|
||||||
|
|
||||||
|
-lpthread -lrt -Wl,-rpath /usr/xenomai/lib -lopencv\_highgui -lopencv\_core
|
||||||
|
|
||||||
|
-lopencv\_imgcodecs -lraspicam\_cv -lopencv\_imgproc -lpthread}
|
||||||
|
\item Cliquez {\tt OK},
|
||||||
|
\item Cliquez {\tt Apply},
|
||||||
|
\item Cliquez {\tt OK}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Tester la compilation}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Cliquez sur l'icone \og Marteau \fg ou allez dans {\tt Run->Build Project}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Configurer l'exécution}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Cliquez droit sur le projet et choisir {\tt Properties},
|
||||||
|
\item Allez dans l'onglet {\tt Run},
|
||||||
|
\item Remplir le champ {\tt Run Command} avec {\tt sudo "\$\{OUTPUT\_PATH\}"},
|
||||||
|
\item Remplir le champ {\tt Console Type} avec {\tt Standard Output}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Exécuter l'application (directement depuis Netbeans)}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Cliquez sur l'icone \og Play \fg ou allez dans {\tt Run->Build Project}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Exécuter l'application (avec un terminal)}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Cliquez sur l'icone \og Terminal \fg dans la fenêtre de le console (ou lancer un terminal),
|
||||||
|
\item Connectez via ssh à la \raspi,
|
||||||
|
\item allez dans {\tt .netbeans/.../dist/...} avec la commande {\tt cd} pour trouver le résultat de la compilation,
|
||||||
|
\item lancez l'exécution via {\tt sudo ./app} avec {\tt app} le nom de votre application.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsubsection{Ajouter les header dans le projet Netbeans}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Téléchargez les entêtes des services Xenomai depuis \href{https://moodle.insa-toulouse.fr/mod/resource/view.php?id=37439}{moodle},
|
||||||
|
\item Décompresser l'archive,
|
||||||
|
\item Cliquez droit sur le projet et choisir {\tt Properties},
|
||||||
|
\item Allez dans l'onglet {\tt Build->C++ Compiler},
|
||||||
|
\item Choisir {\tt ...} pour {\tt Include Headers},
|
||||||
|
\item Cliquez sur {\tt Add},
|
||||||
|
\item Sélectionner tous les fichiers {\tt .h} de l'archive chargée ({\tt ./include\_xenomai/include}),
|
||||||
|
\item Cliquez {\tt OK},
|
||||||
|
\item Cliquez {\tt Apply},
|
||||||
|
\item Cliquez {\tt OK}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
Le service {\tt rt\_task\_create} n'est pas reconnu suite à cette manipulation car il est déclaré à travers une macro qui masque à Netbeans son existence. Le service restera donc souligné en rouge.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Exécution du superviseur}
|
\subsection{Développement d'une application distante : édition et compilation distantes}
|
||||||
\label{sec:utilisation}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
Pour exécuter l'application sur le superviseur, il faut avoir mis en place un terminal distant (voir ci-dessous) puis démarrer l'exécution avec la commande {\tt sudo ./path/app} où {\tt path} est le chemin du répertoire où se trouve l'application et {\tt app} est le nom de votre application. Attention les droits {\tt sudo} sont nécessaires pour des questions d'accès à certains services Xenomai de gestion de la mémoire.
|
Cette dernière solution est à éviter. Elle consiste à éditer le code directement sur la \raspi et d'y lancer la compilation via un terminal (figure~\ref{fig:edition1}).
|
||||||
|
|
||||||
Si vous utilisez Netbeans, le répertoire dans lequel est compilée l'application se trouve dans l'arboressence commençant par {\tt .netbeans} (attention au "." au début). Il faut descendre dans cette arboressence jusqu'à une bifurcation, puis choisir le répertoire {\tt dist} et aller jusqu'au bout. L'application se trouve au bout de cette branche.
|
\begin{figure}[htbp]
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=0.45]{./figures-pdf/edition1}
|
||||||
|
\caption{Edition et compilation distante}
|
||||||
|
\label{fig:edition1}
|
||||||
|
\end{center}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Les étapes à suivre sont alors :
|
||||||
|
\begin{enumerate}
|
||||||
|
\item se connecter de manière distante à la \raspi via ssh (voir section~\ref{sec:ssh}),
|
||||||
|
\item éditer à distance (par ex. avec {\tt nano}) le code,
|
||||||
|
\item compiler avec la commande {\tt make} à l'aide du {\tt Makefile} du répertoire {\tt /destijl\_init},
|
||||||
|
\item lancer l'exécutable par la commande {\tt sudo ./superviseur} (voir section ~\ref{sec:utilisation})\\
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
Vous pouvez ensuite lancer le moniteur (voir section~\ref{sec:utilisation}) pour interragir avec l'application.
|
||||||
\section{Mise en place d'un terminal distant avec la \raspi}
|
|
||||||
\label{sec:ssh}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
Pour se connecter à la \raspi, vous aurez besoin de créer un accès via ssh. Pour cela, depuis un PC d'une salle informatique utilisez la commande :\\ \indent\indent{\tt ssh pi@10.105.1.x}\\
|
|
||||||
avec {\tt x} le numéro sur le boitier de la \raspi.
|
|
||||||
|
|
||||||
Le mot de passe est : insa.
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Exécution du moniteur}
|
|
||||||
\label{sec:utilisation}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
Pour exécuter le moniteur, il suffit depuis votre PC de travail de se placer dans le répertoire {\tt ./dumber/software/monitor/monitor} et de lancer {\tt ./monitor}.
|
|
||||||
|
|
||||||
{\bf Attention} : avant de lancer la première fois l'application, il vous faut ouvrir l'environnement de développement MonoDevelop et ouvrir le projet {\tt ./dumber/software/monitor/monitor} et l'exécuter (cela recompile le projet et permet de faire les liens avec les librairies de votre PC). Cette étape ne sera plus à faire par la suite.
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
\section{Comprendre la structuration du code}
|
|
||||||
\label{sec:code}
|
|
||||||
%%%%%%%%%%%%%%%%%%%%
|
|
||||||
L'ensemble du code du projet initial est contenu dans le répertorie {\tt superviseur-robot}. Les bibliothèques de traitement sont disponibles dans le repertoire {\tt lib}. Vous n'aurez pas à modifier ces bibliothèques, par contre vous devrez les utiliser. La documentation est directement écrite dans le code source.
|
|
||||||
|
|
||||||
Les seuls fichiers que vous allez avoir à modifier sont les fichiers {\tt tasks.h} et {\tt tasks.cpp}. La classe {\tt Tasks} a pour attributs privés l'ensemble des structures constituant l'application (tâches, mutex, sémarphores, ressources, etc.). Les fonctions de traitement associées aux tâches sont déclarées comme des méthodes privées de {\tt Tasks}.
|
|
||||||
|
|
||||||
La classe {\tt Tasks} propose quatre méthodes publiques :
|
|
||||||
\begin{itemize}
|
|
||||||
\item {\tt Init()} qui crée les structures de l'application,
|
|
||||||
\item {\tt Run()} qui lance les tâches,
|
|
||||||
\item {\tt Stop()} qui termine les tâches,
|
|
||||||
\item {\tt Join()} qui suspend l'exécution du {\tt main}.\\
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Pour ajouter des structures à l'application, il suffit de les déclarer dans le fichier {\tt tasks.h} puis de s'assurer qu'elles sont bien instanciées dans les méthodes adéquates de {\tt tasks.cpp}. Pour une tâche, il faut en plus déclarer une nouvelle méthode privée dans {tasks.h} et fournir son implémentation dans {tasks.cpp}. Cette nouvelle méthode sera le point d'entrée de la tâche.
|
|
||||||
|
|
||||||
Toute la documentation de Xenomai se trouve en ligne (attention c'est Xenomai 3) et nous utilisons l'\href{https://xenomai.org/documentation/xenomai-3/html/xeno3prm/group__alchemy.html}{API alchemy}.
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 12 KiB |
|
@ -1,512 +0,0 @@
|
||||||
% Description du contenu du rapport à rendre pour l'UF temps réel en 4AE et 4IR
|
|
||||||
% Auteur : P.-E. Hladik
|
|
||||||
% Institut : INSA de Toulouse
|
|
||||||
|
|
||||||
\documentclass[11pt, a4paper]{paper}
|
|
||||||
\usepackage{a4wide,color}
|
|
||||||
|
|
||||||
\usepackage[utf8]{inputenc}
|
|
||||||
\usepackage[T1]{fontenc}
|
|
||||||
\usepackage[frenchb]{babel}
|
|
||||||
|
|
||||||
\usepackage{graphicx}
|
|
||||||
\usepackage{amssymb}
|
|
||||||
\usepackage{hyperref}
|
|
||||||
|
|
||||||
\usepackage{amstext}
|
|
||||||
\usepackage{amsmath}
|
|
||||||
|
|
||||||
\usepackage[dvipsnames]{xcolor}
|
|
||||||
|
|
||||||
\usepackage{placeins}
|
|
||||||
|
|
||||||
\newcounter{cptreq}
|
|
||||||
|
|
||||||
|
|
||||||
\usepackage{framed}
|
|
||||||
|
|
||||||
|
|
||||||
\title{{\Huge Rapport de projet De Stijl 2.0}\\
|
|
||||||
{\large version \today}\\
|
|
||||||
---\\
|
|
||||||
}
|
|
||||||
\author{\color{blue}{Mettez ici vos noms et les parties sur lesquelles vous avez travaillées :}\\
|
|
||||||
\color{blue}{conception, robot, vidéo, mission, intégration, rédaction du compte-rendu}\\
|
|
||||||
\color{blue}{Exemple : P.-E. Hladik (conception, robot, rédaction du compte-rendu)}
|
|
||||||
}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%
|
|
||||||
% PAGE DE GARDE
|
|
||||||
\maketitle
|
|
||||||
|
|
||||||
|
|
||||||
{\color{red}
|
|
||||||
\begin{framed}
|
|
||||||
\begin{center}{\bf\Large --- Ce qu'il faut faire --- } \end{center}
|
|
||||||
|
|
||||||
{\bf Remplacez tous les textes en bleu et supprimer les textes en rouge}\\
|
|
||||||
|
|
||||||
|
|
||||||
{\bf Le rapport est à rendre en pdf et à déposer sur moodle avant le 31 mars 2019 23h59:
|
|
||||||
\url{https://moodle.insa-toulouse.fr/mod/assign/view.php?id=33071}}\\
|
|
||||||
|
|
||||||
{\bf Vous devez \underline{aussi} rendre les fichiers {\tt tasks.h} et {\tt tasks.cpp}.}\\
|
|
||||||
|
|
||||||
Vous pouvez utiliser word ou un autre logiciel d'édition pour rédiger ce rapport, par contre vous devez {\bf impérativement respecter la structure ci-après et le rendre au format pdf}.\\
|
|
||||||
|
|
||||||
|
|
||||||
Critères d'évaluation :
|
|
||||||
\begin{itemize}
|
|
||||||
\item Qualité rédactionnelle,
|
|
||||||
\item Exhaustivité et justesse des règles de codage,
|
|
||||||
\item Qualité de la conception (clarté, respect de la syntaxe, exhaustivité, justesse),
|
|
||||||
\item Qualité des explications,
|
|
||||||
\item Respect des règles dans la production du code.\\
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Compétences évaluées :
|
|
||||||
\begin{itemize}
|
|
||||||
\item rédaction et communication sur un dossier de conception,
|
|
||||||
\item concevoir une application concurrente temps réel,
|
|
||||||
\item analyser une conception,
|
|
||||||
\item passer d'un modèle de conception à une implémentation,
|
|
||||||
\item écriture de code et utilisation de primitives au niveau système.
|
|
||||||
\end{itemize}
|
|
||||||
\end{framed}
|
|
||||||
}
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%
|
|
||||||
% DEBUT DU RAPPORT
|
|
||||||
\newpage
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%
|
|
||||||
% CONCEPTION
|
|
||||||
\section{Conception}
|
|
||||||
|
|
||||||
{\color{red} Mettez dans cette partie tous les éléments de votre conception en particulier vos diagrammes AADL (vue globale du système) et les diagrammes d'activité (détails des threads). Cette partie doit être auto-suffisante pour comprendre votre application.
|
|
||||||
|
|
||||||
Pour faciliter la lecture des schémas, vous allez présenter votre conception en trois parties, l'une focalisée sur la communication entre le moniteur et le superviseur, la seconde consacrée au traitement vidéo et la troisième au contrôle du robot.
|
|
||||||
|
|
||||||
Si vous le souhaitez, au lieu de dessiner vos diagrammes sous un éditeur, vous pouvez joindre un scan de vos schémas — ils doivent être lisibles et propres.}
|
|
||||||
|
|
||||||
% VUE GENERAL DU SYSTEME
|
|
||||||
\subsection{Diagramme fonctionnel général}
|
|
||||||
|
|
||||||
{\color{red} Mettez ici un diagramme fonctionnel qui présente les principaux blocs de votre conception. Pour cela, inspirez vous du diagramme ci-dessous (fig.~\ref{fig:diag_fonc_gen}) en indiquant pour chaque groupe de threads les données et ports partagés. La figure~\ref{fig:diag_fonc_gen} a été réalisée à partir du document de conception. {\bf Vous devez absolument conserver le découpage en trois groupes de threads ({\tt th\_group\_gestion\_moniteur}, {\tt th\_group\_vision}, {\tt th\_group\_gestion\_robot}).}}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\begin{center}
|
|
||||||
{\includegraphics[scale=.5]{./figures-pdf/diag_fonc_gen}}
|
|
||||||
{\caption{Diagramme fonctionnel du système}}
|
|
||||||
\end{center}
|
|
||||||
\label{fig:diag_fonc_gen}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT MONITEUR
|
|
||||||
\subsection{Groupe de threads gestion du moniteur}
|
|
||||||
|
|
||||||
{\color{red}Placez ici :
|
|
||||||
\begin{itemize}
|
|
||||||
\item le diagramme fonctionnel en AADL décrivant le groupe de threads de gestion du moniteur (voir exemple de la figure~\ref{fig:diag_fonc_moniteur} réalisée à partir du dossier de conception),
|
|
||||||
\item remplir le tableau~\ref{tab:gt_moniteur} pour expliquer le rôle de chacun des threads,
|
|
||||||
\item les diagrammes d'activité de chaque thread de ce groupe.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Décrivez tous les éléments (paramètres, variables, etc.) qui vous semblent pertinents pour comprendre les diagrammes.}
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT MONITEUR
|
|
||||||
\subsubsection{Diagramme fonctionnel du groupe gestion du moniteur}
|
|
||||||
|
|
||||||
{\color{red} Exemple de diagramme fonctionnel pour le groupe de thread de gestion du moniteur. Mettez à jour ce diagramme avec votre conception.}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\label{fig:diag_fonc_moniteur}
|
|
||||||
\begin{center}
|
|
||||||
{\includegraphics[scale=.5]{./figures-pdf/diag_fonc_moniteur}}
|
|
||||||
{\caption{Diagramme fonctionnel du groupe de threads gestion du moniteur}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
% DESCRIPTION THREADS GT MONITEUR
|
|
||||||
\subsubsection{Description des threads du groupe gestion du moniteur}
|
|
||||||
{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{table}[htp]
|
|
||||||
\caption{Description des threads du groupe {\tt th\_group\_gestion\_moniteur}}
|
|
||||||
\begin{center}
|
|
||||||
\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|}
|
|
||||||
\hline
|
|
||||||
\bf Nom du thread & \bf Rôle & \bf Priorité \\
|
|
||||||
\hline
|
|
||||||
\hline
|
|
||||||
\color{blue}tCommuniquer & \color{blue}Prend en charge les messages entrants depuis le moniteur & \color{blue}25\\
|
|
||||||
\hline
|
|
||||||
\color{blue}tEnvoyer & \color{blue}Envoi l'ensemble des messages du superviseur au moniteur & \color{blue}30\\
|
|
||||||
\hline
|
|
||||||
\color{blue}... & \color{blue}... & \color{blue}...\\
|
|
||||||
\hline
|
|
||||||
\end{tabular}
|
|
||||||
\end{center}
|
|
||||||
\label{tab:gt_moniteur}
|
|
||||||
\end{table}%
|
|
||||||
|
|
||||||
% DIAGRAMMES D'ACTIVITE GT MONITEUR
|
|
||||||
\subsubsection{Diagrammes d'activité du groupe gestion du moniteur}
|
|
||||||
{\color{red}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception. A titre d'exemple les diagrammes fonctionnels tirés du document de conception sont remis.}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\label{fig:act_communiquer}
|
|
||||||
\begin{center}
|
|
||||||
{\includegraphics[scale=.3]{./figures-pdf/th_receiveFromMon.png}}
|
|
||||||
{\caption{Diagramme d'activité du thread {\tt th\_receiveFromMon}}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\label{fig:act_envoyer}
|
|
||||||
\begin{center}
|
|
||||||
{\includegraphics[scale=.3]{./figures-pdf/th_sendToMon}}
|
|
||||||
{\caption{Diagramme d'activité du thread {\tt th\_sendToMon}}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\label{fig:act_envoyer}
|
|
||||||
\begin{center}
|
|
||||||
{\includegraphics[scale=.3]{./figures-pdf/th_server}}
|
|
||||||
{\caption{Diagramme d'activité du thread {\tt th\_server}}}
|
|
||||||
\end{center}
|
|
||||||
\end{figure}
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT VISION
|
|
||||||
\subsection{Groupe de threads vision}
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT VISION
|
|
||||||
\subsubsection{Diagramme fonctionnel du groupe vision}
|
|
||||||
|
|
||||||
{\color{blue} Ajoutez le diagramme fonctionnel du groupe de threads de vision.}
|
|
||||||
|
|
||||||
% DESCRIPTION THREADS GT VISION
|
|
||||||
\subsubsection{Description des threads du groupe vision}
|
|
||||||
{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{table}[htp]
|
|
||||||
\caption{Description des threads du groupe {\tt th\_group\_vision}}
|
|
||||||
\begin{center}
|
|
||||||
\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|}
|
|
||||||
\hline
|
|
||||||
\bf Nom du thread & \bf Rôle & \bf Priorité \\
|
|
||||||
\hline
|
|
||||||
\hline
|
|
||||||
\color{blue}... & \color{blue}... & \color{blue}...\\
|
|
||||||
\hline
|
|
||||||
\end{tabular}
|
|
||||||
\end{center}
|
|
||||||
\label{tab:gt_moniteur}
|
|
||||||
\end{table}%
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
% DIAGRAMMES D'ACTIVITE GT VISION
|
|
||||||
\subsubsection{Diagrammes d'activité du groupe vision}
|
|
||||||
{\color{blue}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception.}
|
|
||||||
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT ROBOT
|
|
||||||
\subsection{Groupe de threads gestion du robot}
|
|
||||||
|
|
||||||
% DIAGRAMME FONCTIONNEL GT ROBOT
|
|
||||||
\subsubsection{Diagramme fonctionnel du groupe gestion robot}
|
|
||||||
{\color{blue} Ajoutez le diagramme fonctionnel du groupe de threads de gestion du robot.}
|
|
||||||
|
|
||||||
% DESCRIPTION THREADS GT ROBOT
|
|
||||||
\subsubsection{Description des threads du groupe gestion robot}
|
|
||||||
{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{table}[htp]
|
|
||||||
\caption{Description des threads du groupe {\tt th\_group\_gestion\_robot}}
|
|
||||||
\begin{center}
|
|
||||||
\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|}
|
|
||||||
\hline
|
|
||||||
\bf Nom du thread & \bf Rôle & \bf Priorité \\
|
|
||||||
\hline
|
|
||||||
\hline
|
|
||||||
\color{blue}... & \color{blue}... & \color{blue}...\\
|
|
||||||
\hline
|
|
||||||
\end{tabular}
|
|
||||||
\end{center}
|
|
||||||
\label{tab:gt_moniteur}
|
|
||||||
\end{table}%
|
|
||||||
\FloatBarrier
|
|
||||||
|
|
||||||
% DIAGRAMMES D'ACTIVITE GT ROBOT
|
|
||||||
\subsubsection{Diagrammes d'activité du groupe robot}
|
|
||||||
{\color{blue}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception.}
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%
|
|
||||||
% ANALYSE ET VALIDATION
|
|
||||||
\section{Analyse et validation de la conception}
|
|
||||||
|
|
||||||
{\color{red}Pour chacune des fonctionnalités attendues, indiquez si elle a été réalisée. Ajoutez d'éventuelles remarques de conception si le fonctionnement n'est pas exactement celui attendu et justifiez le respect des propriétés temporelles. Vous n'êtes pas obligé de répondre à ces éléments pour les fonctionnalités réalisées dans la conception préliminaire (ces fonctionnalités sont indiquées dans la suite par un astérisque). Si vous ne souhaitez pas apporter de détails supplémentaires pour ces fonctionnalités, supprimez les de la liste ci-dessous.}
|
|
||||||
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} Le lancement du serveur doit être réalisé au démarrage du superviseur. En cas d'échec du démarrage du serveur, un message textuel doit être affiché sur la console de lancement de l'application. Ce message doit signaler le problème et le superviseur doit s'arrêter.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{blue} Fait en partie. La fonctionnalité est impléméntée sauf pour l'arrêt suite à l'échec de démarrage du serveur. L'implémentation actuelle stoppe la tâche en charge du démarrage du serveur, mais pas l'ensemble de l'application. Après discussion avec le client, la version actuelle est suffisante.}
|
|
||||||
}
|
|
||||||
%%%
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} La connexion entre le moniteur et le superviseur (via le socket) doit être établie suite à la demande de connexion de l'utilisateur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
}
|
|
||||||
|
|
||||||
%%%
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} Tous les messages envoyés depuis le moniteur doivent être réceptionnés par le superviseur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} L'application superviseur doit être capable d'envoyer les messages au moniteur (via le serveur) avec un délai d'au plus 10~ms.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Le superviseur doit détecter la perte de communication avec le moniteur. En cas de perte de la communication un message doit être affiché sur la console de lancement du superviseur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} En cas de perte de communication entre le superviseur et moniteur, il faut stopper le robot, la communication avec le robot, fermer le serveur et déconnecter la caméra afin de revenir dans le même état qu'au démarrage du superviseur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} Dès que la communication avec le moniteur est en place, la communication entre le superviseur et le robot doit être ouverte. Si la communication est active, il faut envoyer un message d'acquittement au moniteur. En cas d'échec, un message le signalant est renvoyé au moniteur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} La communication entre le robot et le superviseur doit être surveillée par un mécanisme de compteur afin de détecter une perte du médium de communication.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Lorsque la communication entre le robot et le superviseur est perdue, un message spécifique doit être envoyé au moniteur. Le système doit fermer la communication entre le robot et le superviseur et se remettre dans un état initial permettant de relancer la communication.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
|
|
||||||
%%%
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} Lorsque l'utilisateur demande, via le moniteur, le démarrage sans watchdog, le robot doit démarrer dans ce mode. En cas de succès, un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Lorsque l'utilisateur demande, via le moniteur, le démarrage avec watchdog, le robot doit démarrer dans ce mode. Un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur.
|
|
||||||
|
|
||||||
Une fois le démarrage effectué, le robot doit rester vivant en envoyant régulièrement le message de rechargement du watchdog.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
|
|
||||||
%%%
|
|
||||||
{\color{gray}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq *}
|
|
||||||
|
|
||||||
\paragraph{Description :} Lorsque qu'un ordre de mouvement est reçu par le superviseur, le robot doit réaliser ce déplacement en moins de 100~ms.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{blue} Cette fonctionnalité a été implémentée à l'aide d'une tâche qui envoie toutes les 100~ms un ordre de mouvement au robot une fois que celui-ci est démarré (tâche th\_move). Cette implémentation ne garantit pas que le temps soit inférieur à 100~ms entre la réception du message et sa prise en compte par le robot. En effet, le temps de traitement de la réception par la tâche th\_receiveFromMon, le temps de traitement de la tâche th\_move et celui de l'envoi de l'ordre via le Xbee ne sont pas considérés. Afin de réduire ces délais, les priorités de th\_receiveFromMon et de th\_move sont élevés mais ne permettent pas de garantir l'exigence de temps. Augmenter la fréquence de la tâche th\_move permettrait de tenir cette contrainte, mais risque de surcharger la communication avec le robot (une version avec l'envoi de l'ordre que s'il a changé serait souhaitable). Finalement, une version asynchrone (attente d'un événement-donnée entre th\_receiveFromMon et de th\_move) aurait été préférable. Cependant, après discussion avec le client, la version périodique à 100~ms est cependant validée.}
|
|
||||||
}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Le niveau de la batterie du robot doit être mis à jour toutes les 500~ms sur le moniteur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} La caméra doit être démarrée suite à une demande provenant du moniteur. Si l'ouverture de la caméra a échoué, il faut envoyer un message au moniteur.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Dès que la caméra est ouverte, une image doit être envoyée au moniteur toutes les 100 ms.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} La caméra doit être fermée suite à une demande provenant du moniteur. Un message doit être envoyé au moniteur pour signifier l'acquittement de la demande. L'envoi périodique des images doit alors être stoppé.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Suite à une demande de recherche de l'arène, le superviseur doit stopper l'envoi périodique des images, faire la recherche de l'arène et renvoyer une image sur laquelle est dessinée cette arène. Si aucune arène n'est trouvée un message d'échec est envoyé.\\
|
|
||||||
|
|
||||||
L'utilisateur doit ensuite valider visuellement via le moniteur si l'arène a bien été trouvée. L'utilisateur peut :
|
|
||||||
\begin{itemize}
|
|
||||||
\item valider l'arène : dans ce cas, le superviseur doit sauvegarder l'arène trouvée (pour l'utiliser ultérieurement) puis retourner dans son mode d'envoi périodique des images en ajoutant à l'image l'arène dessinée.
|
|
||||||
\item annuler la recherche : dans ce cas, le superviseur doit simplement retourner dans son mode d'envoi périodique des images et invalider la recherche.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
%%%
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Suite à une demande de l'utilisateur de calculer la position du robot, le superviseur doit calculer cette position, dessiner sur l'image le résultat et envoyer un message au moniteur avec la position toutes les 100~ms. Si le robot n'a pas été trouvé, un message de position est envoyé avec une position (-1,-1).
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
\stepcounter{cptreq}
|
|
||||||
\subsection{Fonctionnalité \thecptreq}
|
|
||||||
|
|
||||||
\paragraph{Description :} Suite à une demande de l'utilisateur de stopper le calcul de la position du robot, le superviseur doit rebasculer dans un mode d'envoi de l'image sans le calcul de la position.
|
|
||||||
|
|
||||||
\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.}
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%
|
|
||||||
% TRANSFORMATION AADL2XENO
|
|
||||||
\section{Transformation AADL vers Xenomai}
|
|
||||||
|
|
||||||
{\color{red} Cette section est consacrée à la méthode pour passer d'un modèle AADL à un code sous Xenomai. Pour chacun des éléments AADL, vous expliquerez {\bf comment vous l'avez traduit en code} et quels {\bf services de Xenomai} vous avez utilisés {\bf en expliquant ce qu'ils font}. Chaque élément devra être illustré avec des {\bf extraits de code de votre projet}.}
|
|
||||||
|
|
||||||
% THREAD
|
|
||||||
\subsection{Thread}
|
|
||||||
% INSTANCIATION THREAD
|
|
||||||
\subsubsection{Instanciation et démarrage}
|
|
||||||
{\color{blue} Expliquer comment vous implémentez sous Xenomai l'instanciation et le démarrage d'un thread AADL.}
|
|
||||||
|
|
||||||
{\color{blue} {\bf Exemple de réponse} : Chaque thread a été implémenté par un {\tt RT\_TASK} déclarés dans le fichier {\tt tasks.h}. La création de la tâche se fait à l'aide du service {\tt rt\_task\_create} et son démarrage à l'aide de {\tt rt\_task\_start}. Toutes les tâches sont crées dans la méthode {\tt init} de {\tt tasks.cpp} et démarrées dans la méthode {\tt run}.
|
|
||||||
|
|
||||||
Par exemple, pour la tâche {\tt th\_server}, sa déclaration est faite ligne 73 dans le fichier {\tt tasks.h}
|
|
||||||
\begin{verbatim}
|
|
||||||
RT_TASK th_server;
|
|
||||||
\end{verbatim}
|
|
||||||
sa création ligne 102 de {\tt tasks.cpp} lors de l'appel de
|
|
||||||
\begin{verbatim}
|
|
||||||
rt_task_create(&th_server, "th_server", 0, PRIORITY_TSERVER, 0)
|
|
||||||
\end{verbatim}
|
|
||||||
et son démarrage ligne 146 avec
|
|
||||||
\begin{verbatim}
|
|
||||||
rt_task_start(&th_server, (void(*)(void*)) & Tasks::ServerTask, this)
|
|
||||||
\end{verbatim}
|
|
||||||
}
|
|
||||||
|
|
||||||
% CODE THREAD
|
|
||||||
\subsubsection{Code à exécuter}
|
|
||||||
{\color{blue} Comment se fait le lien sous Xenomai entre le thread et le traitement à exécuter.}
|
|
||||||
|
|
||||||
% PRIORITE THREAD
|
|
||||||
\subsubsection{Niveau de priorités}
|
|
||||||
{\color{blue} Expliquer comment vous fixez sous Xenomai le niveau de priorité d'un thread AADL.}
|
|
||||||
|
|
||||||
% PERIODICITE THREAD
|
|
||||||
\subsubsection{Activation périodique}
|
|
||||||
{\color{blue} Expliquer comment vous rendez périodique l'activation d'un thread AADL sous Xenomai.}
|
|
||||||
|
|
||||||
% THREAD EVENEMENTIEL
|
|
||||||
\subsubsection{Activation événementielle}
|
|
||||||
{\color{blue} Expliquer les moyens mis en {\oe}uvre dans l'implémentation sous Xenomai pour gérer les activations événementielles d'un thread AADL.}
|
|
||||||
|
|
||||||
|
|
||||||
% PORT D'EVENEMENT
|
|
||||||
\subsection{Port d’événement}
|
|
||||||
|
|
||||||
% INSTANCIATION PORT D'EVENEMENT
|
|
||||||
\subsubsection{Instanciation}
|
|
||||||
{\color{blue} Comment avez-vous instancié un port d'événement ?}\\
|
|
||||||
|
|
||||||
% ENVOI PORT D'EVENEMENT
|
|
||||||
\subsubsection{Envoi d’un événement}
|
|
||||||
{\color{blue} Quels services ont été employés pour signaler un événement ?}
|
|
||||||
|
|
||||||
% RECEPTION PORT D'EVENEMENT
|
|
||||||
\subsubsection{Réception d’un événement}
|
|
||||||
{\color{blue} Comment se fait l'attente d'un événement ?}
|
|
||||||
|
|
||||||
% DONNEE PARTAGEE
|
|
||||||
\subsection{Donnée partagée}
|
|
||||||
|
|
||||||
% INSTANCIATION DONNEE PARTAGEE
|
|
||||||
\subsubsection{Instanciation}
|
|
||||||
{\color{blue} Quelle structure instancie une donnée partagée ?}
|
|
||||||
|
|
||||||
% LECTURE/ECRITURE DONNEE PARTAGEE
|
|
||||||
\subsubsection{Accès en lecture et écriture}
|
|
||||||
{\color{blue} Comment garantissez-vous sous Xenomai l'accès à une donnée partagée ?}
|
|
||||||
|
|
||||||
% PORT D'EVENEMENT-DONNEES
|
|
||||||
\subsection{Ports d’événement-données}
|
|
||||||
|
|
||||||
% INSTANCIATION PORT D'EVENEMENT-DONNEES
|
|
||||||
\subsubsection{Instanciation}
|
|
||||||
{\color{blue} Donnez la solution retenue pour implémenter un port d'événement-données avec Xenomai.}
|
|
||||||
|
|
||||||
% ENVOI PORT D'EVENEMENT-DONNEES
|
|
||||||
\subsubsection{Envoi d’une donnée}
|
|
||||||
{\color{blue} Quels services avez-vous employés pour envoyer des données ?}
|
|
||||||
|
|
||||||
% RECEPTION PORT D'EVENEMENT-DONNEES
|
|
||||||
\subsubsection{Réception d’une donnée}
|
|
||||||
{\color{blue} Quels services avez-vous employés pour recevoir des données ?}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 44 KiB |
|
@ -84,7 +84,7 @@ Les figures~\ref{fig:diag1_2} et~\ref{fig:diag3_6} illustrent le mode de foncti
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\paragraph{Etablissement du socket.} La connexion entre le moniteur et le superviseur est réalisée suite à la demande de l'utilisateur via l'interface graphique. Lorsque la demande est faite, un socket est créé, il faut donc que le serveur soit en attente d'une demande de connexion, c'est-à-dire que la méthode {\tt AcceptClient} de la classe {\tt ComMonitor} soit en cours d'exécution. Cette méthode est bloquante.\\
|
\paragraph{Etablissement du socket.} La connexion entre le moniteur et le superviseur est réalisée site à la demande de l'utilisateur via l'interface graphique. Lorsque la demande est faite, un socket est créé, il faut donc que le serveur soit en attente d'une demande de connexion, c'est-à-dire que la méthode {\tt AcceptClient} de la classe {\tt ComMonitor} soit en cours d'exécution. Cette méthode est bloquante.\\
|
||||||
|
|
||||||
\req{La connexion entre le moniteur et le superviseur (via le socket) doit être établie suite à la demande de connexion de l'utilisateur.}
|
\req{La connexion entre le moniteur et le superviseur (via le socket) doit être établie suite à la demande de connexion de l'utilisateur.}
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ Le principe est simple : au démarrage du robot (c.-à-d. quand le robot traite
|
||||||
|
|
||||||
\req{Lorsque l'utilisateur demande, via le moniteur, le démarrage avec watchdog, le robot doit démarrer dans ce mode. Un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur.
|
\req{Lorsque l'utilisateur demande, via le moniteur, le démarrage avec watchdog, le robot doit démarrer dans ce mode. Un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur.
|
||||||
|
|
||||||
Une fois le démarrage effectué, le robot doit rester vivant. Pour cela, il faut que le moniteur envoie régulièrement le message de rechargement du watchdog.}
|
Une fois le démarrage effectué, le robot doit rester vivant en envoyant régulièrement le message de rechargement du watchdog.}
|
||||||
|
|
||||||
%alt
|
%alt
|
||||||
%note right of Monitor
|
%note right of Monitor
|
||||||
|
@ -339,7 +339,7 @@ Les fonctions permettant la manipulation des images sont fournies dans les libra
|
||||||
\req{La caméra doit être démarrée suite à une demande provenant du moniteur. Si l'ouverture de la caméra a échoué, il faut envoyer un message au moniteur.}
|
\req{La caméra doit être démarrée suite à une demande provenant du moniteur. Si l'ouverture de la caméra a échoué, il faut envoyer un message au moniteur.}
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\paragraph{Capture d'une image (mode nominal).} La méthode {\tt Grab} de {\tt Camera} permet de capturer une image. L'envoi de l'image au moniteur s'effectue normalement par l'envoi d'un message\footnote{L'image est compressée lors de l'envoi du message.}. La fréquence de capture d'une image est fixée par un paramètre lors de l'instanciation d'un objet {\tt Camera}.\\
|
\paragraph{Capture d'une image (mode nominal).} La méthode {\tt Grab} de {\tt Camera} permet de capturer une image. La compression de l'image se fait à l'aide de la fonction {\tt ToJpg} de {\tt Img}. L'envoi de l'image au moniteur s'effectue normalement par l'envoi d'un message. La fréquence de capture d'une image est fixée par un paramètre lors de l'instanciation d'un objet {\tt Camera}.\\
|
||||||
|
|
||||||
\req{Dès que la caméra est ouverte, une image doit être envoyée au moniteur toutes les 100 ms.}
|
\req{Dès que la caméra est ouverte, une image doit être envoyée au moniteur toutes les 100 ms.}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
\section{Vue générale de la plate-forme}
|
\section{Vue générale de la plate-forme}
|
||||||
|
|
||||||
Le projet {\it De Stijl} est une plate-forme de contrôle d'un robot mobile développée au département Génie \'Electronique et Informatique. Les éléments constituant la plate-forme sont fournis et ont été testés de manière unitaire, mais nous ne garantissons pas un fonctionnement parfait. Toutes suggestions, corrections et modifications seront appréciées pour faire évoluer ce TP. Vous pouvez soumettre vos corrections (sujet, code ou autre) via le dépôt \href{https://github.com/INSA-GEI/dumber/}{GitHub}.
|
Le projet {\it De Stijl} est une plate-forme de contrôle d'un robot mobile développée au département Génie \'Electronique et Informatique. Les éléments constituant la plate-forme sont fournis et ont été testés de manière unitaire, mais nous ne garantissons pas un fonctionnement parfait. Toutes suggestions, corrections et modifications seront appréciées pour faire évoluer ce TP. Vous pouvez soumettre vos corrections (sujet, code ou autre) via le dépôt \href{https://github.com/INSA-GEI/dumber/tree/stable}{GitHub}.
|
||||||
|
|
||||||
\subsection{\'Eléments de la plate-forme}
|
\subsection{\'Eléments de la plate-forme}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Le code embarqué dans les robots a été produit par S. Di Mercurio et L. Senan
|
||||||
\subsubsection{Superviseur}
|
\subsubsection{Superviseur}
|
||||||
|
|
||||||
|
|
||||||
Le superviseur orchestre le fonctionnement de la plate-forme en assurant le respect des contraintes temporelles du système. Il est déployé sur une Raspberry Pi 3B sur laquelle est installé un Ubuntu patché PREEMPT-RT avec l'extension mercury de Xenomai 3.0. Une Raspberry~Pi est un ordinateur à processeur ARM de taille réduite. La version 3B possède un processeur Broadcom BCM2837 64 bit à quatre cœurs ARM Cortex-A53 à 1,2 GHz, de puces WiFi 802.11n et Bluetooth 4.1. Un module Xbee a été ajouté pour communiquer avec le robot.
|
Le superviseur orchestre le fonctionnement de la plate-forme en assurant le respect des contraintes temporelles du système. Il est déployé sur une Raspberry Pi 3B sur laquelle est installé un Ubuntu patché PREEMPT-RT avec l'extension mercury de Xenomai 3.0. Une Raspberry~Pi est un ordinateur à processeur ARM de taille réduite. La version 3B possède un processeur Broadcom BCM2837 64 bit à quatre cœurs ARM Cortex-A53 à 1,2 GHz, de puces WiFi 802.11n et Bluetooth 4.1.
|
||||||
|
|
||||||
La webcam est intégrée au bloc du superviseur et est une caméra Raspberry.
|
La webcam est intégrée au bloc du superviseur et est une caméra Raspberry.
|
||||||
|
|
||||||
|
@ -77,6 +77,8 @@ Le moniteur permet à l'utilisateur de saisir les ordres que le robot doit réal
|
||||||
|
|
||||||
\subsection{Bibliothèques logicielles}
|
\subsection{Bibliothèques logicielles}
|
||||||
|
|
||||||
|
\todo[inline]{Mettre à jour}
|
||||||
|
|
||||||
\framebox[\textwidth]{
|
\framebox[\textwidth]{
|
||||||
\begin{minipage}{0.9\textwidth}
|
\begin{minipage}{0.9\textwidth}
|
||||||
Votre travail consistera à concevoir uniquement l'architecture logicielle du superviseur. Toutes les fonctions de traitement (communication, vidéo, etc.) {\bf ont déjà été implémentées} par L. Senaneuch et S. Di Mercurio. Vous n'aurez pas à modifier ce code, simplement à faire appel aux fonctions. Il n'en reste pas moins un gros travail d'architecte logiciel à faire.
|
Votre travail consistera à concevoir uniquement l'architecture logicielle du superviseur. Toutes les fonctions de traitement (communication, vidéo, etc.) {\bf ont déjà été implémentées} par L. Senaneuch et S. Di Mercurio. Vous n'aurez pas à modifier ce code, simplement à faire appel aux fonctions. Il n'en reste pas moins un gros travail d'architecte logiciel à faire.
|
||||||
|
@ -85,19 +87,19 @@ Votre travail consistera à concevoir uniquement l'architecture logicielle du su
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Le code est disponible sur la branche stage du dépôt \href{https://github.com/INSA-GEI/dumber/}{GEI-INSA/dumber} sur GitHub . L'annexe~\ref{ann:diag_class} présente sous forme de diagramme de classes les bibliothèques disponibles.\\
|
Le code est disponible sur la branche stage du dépôt \href{https://github.com/INSA-GEI/dumber/tree/stable}{GEI-INSA/dumber} sur GitHub . L'annexe~\ref{ann:diag_class} présente sous forme de diagramme de classes les fonctions disponibles dans les bibliothèques.\\
|
||||||
|
|
||||||
Les fonctions de traitement sont réparties en cinq bibliothèques :
|
Les fonctions de traitement sont réparties en cinq bibliothèques :
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item commonitor : services de communication entre le superviseur et le moniteur,
|
\item server : services permettant de mette en place le serveur de communication avec le moniteur.
|
||||||
\item comrobot : services de communication entre le superviseur et le robot,
|
\item monitor : services de communication entre le superviseur et le moniteur,
|
||||||
|
\item robot : services de communication entre le superviseur et le robot,
|
||||||
\item message : services définissant le format des messages entre le moniteur, le superviseur et le robot,
|
\item message : services définissant le format des messages entre le moniteur, le superviseur et le robot,
|
||||||
\item camera : services de gestion de la caméra,
|
\item image : services réalisant tous les traitements vidéos.\\
|
||||||
\item img : services réalisant tous les traitements vidéos. \\
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\framebox[\textwidth]{
|
\framebox[\textwidth]{
|
||||||
\begin{minipage}{0.9\textwidth}
|
\begin{minipage}{0.9\textwidth}
|
||||||
Toutes les bibliothèques ont été développées en C++, mais vous n'avez pas besoin de connaissances évoluées pour les utiliser (aucun support ne sera fourni par les encadrants pour le C++). Des explications sont fournies dans un document annexe pour manipuler les bibliothèques, mais d'une manière générale, vous n'avez pas besoin de connaissances évoluées en programmation objet pour les utiliser.
|
Toutes les bibliothèques ont été développées en C++, mais vous n'avez pas besoin de connaissances évoluées pour les utiliser (aucun support ne sera fourni par les encadrants pour le C++). Quelques explications sont fournies en annexe pour manipuler les bibliothèques, mais d'une manière générale, vous n'avez pas besoin de connaissances évoluées en programmation objet pour les utiliser.
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
{\scriptsize Institut National des Sciences Appliquées de Toulouse}\\
|
{\scriptsize Institut National des Sciences Appliquées de Toulouse}\\
|
||||||
---\\
|
---\\
|
||||||
Cahier des charges fonctionnel \\
|
Cahier des charges fonctionnel \\
|
||||||
{\large Version 3.0.1 (\today)}\\
|
{\large Version 3.0.$\beta$ (\today)}\\
|
||||||
{\scriptsize Référent pédagogique : P.-E. Hladik (\texttt{pehladik@insa-toulouse.fr})}\\
|
{\scriptsize Référent pédagogique : P.-E. Hladik (\texttt{pehladik@insa-toulouse.fr})}\\
|
||||||
{\scriptsize Référents plateforme : S. Di Mercurio (\texttt{dimercur@insa-toulouse.fr})}\\
|
{\scriptsize Référents plateforme : S. Di Mercurio (\texttt{dimercur@insa-toulouse.fr})}\\
|
||||||
---
|
---
|
||||||
|
@ -116,7 +116,6 @@ Cahier des charges fonctionnel \\
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Le travail sera réalisé dans le cadre d'un groupe de trois ou quatre étudiants sur deux séances de TD et cinq séances de TP.
|
\item Le travail sera réalisé dans le cadre d'un groupe de trois ou quatre étudiants sur deux séances de TD et cinq séances de TP.
|
||||||
\item Il est attendu une conception complète lors lors de la 3e séance de TP. La conception sera sous forme de brouillon, mais doit couvrir l'ensemble des exigences.
|
|
||||||
\item Le projet fera l'objet d'un rapport évalué ainsi qu'une démonstration (si l'emploi du temps le permet). Un squelette pour le rapport est disponible sur la page moodle de l'enseignement.
|
\item Le projet fera l'objet d'un rapport évalué ainsi qu'une démonstration (si l'emploi du temps le permet). Un squelette pour le rapport est disponible sur la page moodle de l'enseignement.
|
||||||
\item L'évaluation a pour but de juger de vos compétences pour rédiger un compte rendu, réaliser la conception d'une application temps réel et programmer sur un système temps réel, mais aussi sur vos connaissances plus générale des systèmes temps réel.
|
\item L'évaluation a pour but de juger de vos compétences pour rédiger un compte rendu, réaliser la conception d'une application temps réel et programmer sur un système temps réel, mais aussi sur vos connaissances plus générale des systèmes temps réel.
|
||||||
\item Le code réalisé devra être rendu sous forme d'archive ne comprenant que les codes sources modifiés.
|
\item Le code réalisé devra être rendu sous forme d'archive ne comprenant que les codes sources modifiés.
|
||||||
|
@ -127,7 +126,7 @@ Cahier des charges fonctionnel \\
|
||||||
\section*{Ressources indispensables}
|
\section*{Ressources indispensables}
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Page Moodle : \href{https://moodle.insa-toulouse.fr/course/view.php?id=235}{Programmation et conception sur exécutif temps réel}
|
\item Page Moodle : \href{https://moodle.insa-toulouse.fr/course/view.php?id=235}{Programmation et conception sur exécutif temps réel}
|
||||||
\item Dépôt GEI-INSA sur GitHub : \href{https://github.com/INSA-GEI/dumber/}{dumber}
|
\item Branche stable du dépôt GEI-INSA sur GitHub : \href{https://github.com/INSA-GEI/dumber/tree/stable}{dumber}
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
536
software/chargeur/Appli.c
Normal file
|
@ -0,0 +1,536 @@
|
||||||
|
#include "stm32f10x.h" // Device header
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
volatile int32_t ITM_RxBuffer;
|
||||||
|
|
||||||
|
void SetLedOn(void);
|
||||||
|
void SetLedOff(void);
|
||||||
|
void RCC_Configuration(void);
|
||||||
|
void GetCurrentAndVoltage(uint32_t *current, uint32_t *voltage);
|
||||||
|
char VerifyVbatFastCharge(uint32_t voltage);
|
||||||
|
|
||||||
|
#define ADC1_DR_Address ((uint32_t)0x4001244C)
|
||||||
|
#define STATE_IDLE 0x0
|
||||||
|
#define STATE_FASTCHARGE 0x01
|
||||||
|
#define STATE_SLOWCHARGE 0x02
|
||||||
|
#define STATE_CHARGEFINISH 0x03
|
||||||
|
#define STATE_CALIBRATION 0x10
|
||||||
|
#define STATE_OFF 0xFF
|
||||||
|
|
||||||
|
#define MIN_RATIO 0
|
||||||
|
#define MAX_RATIO 400
|
||||||
|
|
||||||
|
#define CURRENT_FASTCHARGE 0x0C0
|
||||||
|
#define CURRENT_CHARGEFINISH 0x00C
|
||||||
|
|
||||||
|
#define VERSION "01A"
|
||||||
|
|
||||||
|
/* Remarque: Pont diviseur sur 1.5 V pour 9V batterie*/
|
||||||
|
|
||||||
|
#define VOLTAGE_IDLE 0x450 // 5V
|
||||||
|
#define VOLTAGE_FASTCHARGE 0x960 // 1.8*6 =>10.80
|
||||||
|
#define VOLTAGE_ABSOLUTEMAX 0xA10 // 12V
|
||||||
|
|
||||||
|
#define TEMPO_CHARGE_MAX 450*60 /* 45 minutes */
|
||||||
|
#define TEMPO_CHARGEFINISH_MAX 12 /* 1.2 seconds */
|
||||||
|
|
||||||
|
#define SAFETY_MAX 6
|
||||||
|
|
||||||
|
struct MESURE
|
||||||
|
{
|
||||||
|
uint16_t Current;
|
||||||
|
uint16_t Voltage;
|
||||||
|
};
|
||||||
|
|
||||||
|
__IO struct MESURE ADCConvertedValue[1024];
|
||||||
|
|
||||||
|
uint32_t state= STATE_IDLE;
|
||||||
|
__IO uint8_t tick=0;
|
||||||
|
uint32_t mesure_vbat;
|
||||||
|
uint32_t mesure_courant;
|
||||||
|
uint32_t mincurrent;
|
||||||
|
uint32_t delta_counter=0;
|
||||||
|
uint32_t ratio_pwm=0;
|
||||||
|
|
||||||
|
uint32_t tempo_chargefinish=0;
|
||||||
|
uint32_t tempo_charge=0;
|
||||||
|
|
||||||
|
uint8_t start=0;
|
||||||
|
uint8_t cause_exit=0;
|
||||||
|
uint8_t safety_counter=0;
|
||||||
|
|
||||||
|
uint32_t initial_vbat;
|
||||||
|
|
||||||
|
uint32_t volatile min_vbat, max_vbat;
|
||||||
|
|
||||||
|
void delay(uint32_t time)
|
||||||
|
{
|
||||||
|
volatile uint32_t counter = time;
|
||||||
|
|
||||||
|
while (counter!=0)
|
||||||
|
{
|
||||||
|
__nop();
|
||||||
|
counter--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Main function, that compute charge algorithms.
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
|
ADC_InitTypeDef ADC_InitStructure;
|
||||||
|
DMA_InitTypeDef DMA_InitStructure;
|
||||||
|
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
||||||
|
TIM_OCInitTypeDef TIM_OCInitStructure;
|
||||||
|
|
||||||
|
char count=0;
|
||||||
|
|
||||||
|
SysTick_Config(7200000);
|
||||||
|
RCC_Configuration();
|
||||||
|
|
||||||
|
/* PA8 -> Alternate function (TIM1_CH1) */
|
||||||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
|
||||||
|
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
/* PA1 -> Analog input (ADC1_CH1) -> V_Batterie
|
||||||
|
PA2 -> Analog input (ADC1_CH2) -> V_Courant
|
||||||
|
*/
|
||||||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
|
||||||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
|
||||||
|
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
/* PB12 -> Output Push Pull (Act Led) */
|
||||||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
|
||||||
|
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
/* ADC_IN1 = PA1 = Mesure_VBAT
|
||||||
|
ADC_IN2 = PA2 = Mesure_Courant
|
||||||
|
*/
|
||||||
|
/* DMA1 channel1 configuration ----------------------------------------------*/
|
||||||
|
DMA_DeInit(DMA1_Channel1);
|
||||||
|
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
|
||||||
|
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADCConvertedValue;
|
||||||
|
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
|
||||||
|
DMA_InitStructure.DMA_BufferSize = 2*1024;
|
||||||
|
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||||
|
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
|
||||||
|
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
|
||||||
|
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
|
||||||
|
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
|
||||||
|
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
|
||||||
|
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
|
||||||
|
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
|
||||||
|
|
||||||
|
/* Enable DMA1 channel1 */
|
||||||
|
DMA_Cmd(DMA1_Channel1, ENABLE);
|
||||||
|
|
||||||
|
/* ADC1 configuration ------------------------------------------------------*/
|
||||||
|
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
|
||||||
|
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
|
||||||
|
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
|
||||||
|
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
|
||||||
|
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
|
||||||
|
ADC_InitStructure.ADC_NbrOfChannel = 2;
|
||||||
|
ADC_Init(ADC1, &ADC_InitStructure);
|
||||||
|
|
||||||
|
/* ADC1 regular channel14 configuration */
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_55Cycles5);
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_55Cycles5);
|
||||||
|
|
||||||
|
/* Enable ADC1 DMA */
|
||||||
|
ADC_DMACmd(ADC1, ENABLE);
|
||||||
|
|
||||||
|
/* Enable ADC1 */
|
||||||
|
ADC_Cmd(ADC1, ENABLE);
|
||||||
|
|
||||||
|
/* Enable ADC1 reset calibration register */
|
||||||
|
ADC_ResetCalibration(ADC1);
|
||||||
|
/* Check the end of ADC1 reset calibration register */
|
||||||
|
while(ADC_GetResetCalibrationStatus(ADC1));
|
||||||
|
|
||||||
|
/* Start ADC1 calibration */
|
||||||
|
ADC_StartCalibration(ADC1);
|
||||||
|
/* Check the end of ADC1 calibration */
|
||||||
|
while(ADC_GetCalibrationStatus(ADC1));
|
||||||
|
|
||||||
|
/* Start ADC1 Software Conversion */
|
||||||
|
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
|
||||||
|
|
||||||
|
/* TIM1_CH1+CH2 = PA8+PA9 = CMD_MOS */
|
||||||
|
/* Time base configuration */
|
||||||
|
TIM_TimeBaseStructure.TIM_Period = 512;
|
||||||
|
TIM_TimeBaseStructure.TIM_Prescaler = 0;
|
||||||
|
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
|
||||||
|
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
||||||
|
|
||||||
|
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
|
||||||
|
|
||||||
|
/* PWM2 Mode configuration: Channel1 */
|
||||||
|
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
|
||||||
|
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;
|
||||||
|
TIM_OCInitStructure.TIM_Pulse = ratio_pwm;
|
||||||
|
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
|
||||||
|
|
||||||
|
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
|
||||||
|
TIM_OC2Init(TIM1, &TIM_OCInitStructure);
|
||||||
|
|
||||||
|
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
|
||||||
|
TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);
|
||||||
|
|
||||||
|
TIM_ARRPreloadConfig(TIM1, ENABLE);
|
||||||
|
|
||||||
|
/* TIM1 enable counter */
|
||||||
|
TIM_Cmd(TIM1, ENABLE);
|
||||||
|
|
||||||
|
printf ("Let's start ...\n\r");
|
||||||
|
|
||||||
|
/* Wait x ms, in order for adc and DMA to acquire some data */
|
||||||
|
delay(1000000); // ~ 200 ms
|
||||||
|
GetCurrentAndVoltage(&mesure_courant, &initial_vbat);
|
||||||
|
|
||||||
|
min_vbat = (uint32_t)(initial_vbat*0.95);
|
||||||
|
max_vbat = (uint32_t)(initial_vbat*1.05);
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (tick == 1)
|
||||||
|
{
|
||||||
|
tick=0;
|
||||||
|
count++;
|
||||||
|
GetCurrentAndVoltage(&mesure_courant, &mesure_vbat);
|
||||||
|
|
||||||
|
VerifyVbatFastCharge(mesure_vbat);
|
||||||
|
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case STATE_IDLE:
|
||||||
|
|
||||||
|
if (mesure_vbat >= max_vbat) state = STATE_FASTCHARGE;
|
||||||
|
if (mesure_vbat <= min_vbat) state = STATE_FASTCHARGE;
|
||||||
|
if (mesure_courant !=0) state = STATE_FASTCHARGE;
|
||||||
|
|
||||||
|
tempo_chargefinish=0;
|
||||||
|
tempo_charge=0;
|
||||||
|
ratio_pwm = MIN_RATIO;
|
||||||
|
safety_counter=0;
|
||||||
|
mincurrent=0xFFFF;
|
||||||
|
delta_counter=0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATE_FASTCHARGE:
|
||||||
|
|
||||||
|
tempo_charge++;
|
||||||
|
|
||||||
|
if (mesure_vbat >= VOLTAGE_ABSOLUTEMAX) safety_counter++;
|
||||||
|
else safety_counter=0;
|
||||||
|
|
||||||
|
if ((safety_counter >= SAFETY_MAX) || (tempo_charge >= TEMPO_CHARGE_MAX))
|
||||||
|
{
|
||||||
|
ratio_pwm= MIN_RATIO;
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
state = STATE_CHARGEFINISH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (VerifyVbatFastCharge(mesure_vbat) !=0)
|
||||||
|
{
|
||||||
|
state = STATE_SLOWCHARGE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mesure_courant>= CURRENT_FASTCHARGE)
|
||||||
|
{
|
||||||
|
if (ratio_pwm > MIN_RATIO) ratio_pwm--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ratio_pwm< MAX_RATIO) ratio_pwm ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATE_SLOWCHARGE:
|
||||||
|
tempo_charge++;
|
||||||
|
|
||||||
|
if (mesure_vbat >= VOLTAGE_ABSOLUTEMAX) safety_counter++;
|
||||||
|
else safety_counter=0;
|
||||||
|
|
||||||
|
if (mesure_courant == 0)
|
||||||
|
{
|
||||||
|
state = STATE_CHARGEFINISH;
|
||||||
|
ratio_pwm= MIN_RATIO;
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((safety_counter >= SAFETY_MAX) || (tempo_charge >= TEMPO_CHARGE_MAX))
|
||||||
|
{
|
||||||
|
state = STATE_CHARGEFINISH;
|
||||||
|
ratio_pwm= MIN_RATIO;
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
|
||||||
|
if (mesure_vbat >= VOLTAGE_ABSOLUTEMAX) cause_exit=1;
|
||||||
|
else cause_exit=2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mesure_courant<mincurrent) mincurrent=mesure_courant;
|
||||||
|
|
||||||
|
/* detection du delta */
|
||||||
|
if (mesure_courant>((uint32_t)((float)mincurrent*0.15))+mincurrent)
|
||||||
|
{
|
||||||
|
delta_counter++;
|
||||||
|
|
||||||
|
if (delta_counter ==25)
|
||||||
|
{
|
||||||
|
ratio_pwm= MIN_RATIO;
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
|
||||||
|
state = STATE_CHARGEFINISH;
|
||||||
|
cause_exit=3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else delta_counter=0;
|
||||||
|
|
||||||
|
if (mesure_vbat >= VOLTAGE_FASTCHARGE)
|
||||||
|
{
|
||||||
|
if (ratio_pwm > MIN_RATIO) ratio_pwm--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ratio_pwm< MAX_RATIO) ratio_pwm ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mesure_courant>= CURRENT_FASTCHARGE)
|
||||||
|
{
|
||||||
|
if (ratio_pwm > MIN_RATIO) ratio_pwm--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((mesure_courant<= CURRENT_CHARGEFINISH) && (mesure_courant>=2))
|
||||||
|
{
|
||||||
|
ratio_pwm=MIN_RATIO;
|
||||||
|
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
state=STATE_CHARGEFINISH;
|
||||||
|
cause_exit=4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATE_CALIBRATION:
|
||||||
|
if (mesure_vbat >= VOLTAGE_FASTCHARGE)
|
||||||
|
{
|
||||||
|
if (ratio_pwm > MIN_RATIO) ratio_pwm--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ratio_pwm< MAX_RATIO) ratio_pwm ++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATE_CHARGEFINISH:
|
||||||
|
default:
|
||||||
|
|
||||||
|
if (mesure_vbat<=VOLTAGE_IDLE)
|
||||||
|
{
|
||||||
|
tempo_chargefinish++;
|
||||||
|
|
||||||
|
if (tempo_chargefinish >= TEMPO_CHARGEFINISH_MAX) state=STATE_IDLE;
|
||||||
|
}
|
||||||
|
else tempo_chargefinish =0;
|
||||||
|
|
||||||
|
ratio_pwm = MIN_RATIO;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TIM_SetCompare1(TIM1, (uint16_t)ratio_pwm);
|
||||||
|
|
||||||
|
if (count==10)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
printf("Vbat=0x%X, Icc=0x%X, pwm=%i, state=%i\n\r",mesure_vbat, mesure_courant, ratio_pwm, state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma diag_suppress 111
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Compute mean values for current and voltage.
|
||||||
|
* @param current and voltage
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
char VerifyVbatFastCharge(uint32_t voltage)
|
||||||
|
{
|
||||||
|
static uint32_t vbatarray[8];
|
||||||
|
int i;
|
||||||
|
uint32_t accumulator=0;
|
||||||
|
|
||||||
|
for (i=1; i<8; i++)
|
||||||
|
{
|
||||||
|
accumulator = accumulator + vbatarray[i];
|
||||||
|
vbatarray[i-1]=vbatarray[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
vbatarray[7]=voltage;
|
||||||
|
accumulator = accumulator+voltage;
|
||||||
|
|
||||||
|
accumulator = accumulator>>3;
|
||||||
|
|
||||||
|
if(accumulator>=VOLTAGE_FASTCHARGE) return 1;
|
||||||
|
else return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Compute mean values for current and voltage.
|
||||||
|
* @param current and voltage
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void GetCurrentAndVoltage(uint32_t *current, uint32_t *voltage)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
uint32_t current_loc=0;
|
||||||
|
uint32_t voltage_loc=0;
|
||||||
|
static char firsttime=0;
|
||||||
|
static uint32_t last_current=0;
|
||||||
|
static uint32_t last_voltage=0;
|
||||||
|
|
||||||
|
#define MINCURRENT 0x10
|
||||||
|
#define MAXCURRENT 0x2A
|
||||||
|
|
||||||
|
#define MINVOLTAGE 0xD0
|
||||||
|
#define MAXVOLTAGE 0x1D6
|
||||||
|
|
||||||
|
uint32_t currentmaxvar, voltagemaxvar;
|
||||||
|
|
||||||
|
for (i=0; i<1024; i++)
|
||||||
|
{
|
||||||
|
current_loc= ADCConvertedValue[i].Current;
|
||||||
|
voltage_loc= ADCConvertedValue[i].Voltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (firsttime==0)
|
||||||
|
{
|
||||||
|
firsttime=1;
|
||||||
|
last_current = current_loc;
|
||||||
|
last_voltage = voltage_loc;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentmaxvar=(uint32_t)((float)last_current*0.1);
|
||||||
|
voltagemaxvar=(uint32_t)((float)last_voltage*0.05);
|
||||||
|
|
||||||
|
if(currentmaxvar<MINCURRENT) currentmaxvar=MINCURRENT;
|
||||||
|
if(currentmaxvar>MAXCURRENT) currentmaxvar=MAXCURRENT;
|
||||||
|
|
||||||
|
if(voltagemaxvar<MINVOLTAGE) voltagemaxvar=MINVOLTAGE;
|
||||||
|
if(voltagemaxvar>MAXVOLTAGE) voltagemaxvar=MAXVOLTAGE;
|
||||||
|
|
||||||
|
if (current_loc>last_current)
|
||||||
|
{
|
||||||
|
if((current_loc-last_current)>currentmaxvar) current_loc = last_current+currentmaxvar;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((last_current-current_loc)>currentmaxvar) current_loc = last_current-currentmaxvar;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (voltage_loc>last_voltage)
|
||||||
|
{
|
||||||
|
if((voltage_loc-last_voltage)>voltagemaxvar) voltage_loc = last_voltage+voltagemaxvar;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((last_voltage-voltage_loc)>voltagemaxvar) voltage_loc = last_voltage-voltagemaxvar;
|
||||||
|
}
|
||||||
|
|
||||||
|
last_current = current_loc;
|
||||||
|
last_voltage = voltage_loc;
|
||||||
|
}
|
||||||
|
|
||||||
|
*current=current_loc;
|
||||||
|
*voltage=voltage_loc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Configures the different system clocks.
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void RCC_Configuration(void)
|
||||||
|
{
|
||||||
|
/* DMA clock enable */
|
||||||
|
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
|
||||||
|
|
||||||
|
/* GPIOA and GPIOB clock enable */
|
||||||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1 | RCC_APB2Periph_TIM1 |
|
||||||
|
RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SysTick_Handler(void)
|
||||||
|
{
|
||||||
|
static int i=0;
|
||||||
|
static int flipflop=0;
|
||||||
|
|
||||||
|
i++;
|
||||||
|
tick=1;
|
||||||
|
|
||||||
|
if (i==10)
|
||||||
|
{
|
||||||
|
if (state==STATE_FASTCHARGE || state == STATE_SLOWCHARGE)
|
||||||
|
{
|
||||||
|
if (flipflop==0)
|
||||||
|
{
|
||||||
|
SetLedOn();
|
||||||
|
flipflop=1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetLedOff();
|
||||||
|
flipflop=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (state==STATE_CHARGEFINISH)
|
||||||
|
{
|
||||||
|
SetLedOn();
|
||||||
|
flipflop=0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetLedOff();
|
||||||
|
flipflop=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
i=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetLedOn(void)
|
||||||
|
{
|
||||||
|
GPIO_SetBits(GPIOB, GPIO_Pin_12);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetLedOff(void)
|
||||||
|
{
|
||||||
|
GPIO_ResetBits(GPIOB, GPIO_Pin_12);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
946
software/chargeur/Chargeur.uvoptx
Normal file
|
@ -0,0 +1,946 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Extensions>
|
||||||
|
<cExt>*.c</cExt>
|
||||||
|
<aExt>*.s*; *.src; *.a*</aExt>
|
||||||
|
<oExt>*.obj</oExt>
|
||||||
|
<lExt>*.lib</lExt>
|
||||||
|
<tExt>*.txt; *.h; *.inc</tExt>
|
||||||
|
<pExt>*.plm</pExt>
|
||||||
|
<CppX>*.cpp</CppX>
|
||||||
|
<nMigrate>0</nMigrate>
|
||||||
|
</Extensions>
|
||||||
|
|
||||||
|
<DaveTm>
|
||||||
|
<dwLowDateTime>0</dwLowDateTime>
|
||||||
|
<dwHighDateTime>0</dwHighDateTime>
|
||||||
|
</DaveTm>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>ST Link</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLKADS>8000000</CLKADS>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>0</RunSim>
|
||||||
|
<RunTarget>1</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>79</PageWidth>
|
||||||
|
<PageLength>66</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>18</CpuCode>
|
||||||
|
<Books>
|
||||||
|
<Book>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Title>CMSIS RTOS Tutorial (CMSIS_RTOS_Tutorial)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Hitex\CMSIS_RTOS_Tutorial\1.0.3\Documentation\CMSIS_RTOS_Tutorial.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>1</Number>
|
||||||
|
<Title>Base Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-base-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>2</Number>
|
||||||
|
<Title>Display Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-display-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>3</Number>
|
||||||
|
<Title>User Manual (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e.chm</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>4</Number>
|
||||||
|
<Title>User Manual (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105823.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>5</Number>
|
||||||
|
<Title>Overview (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105918.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>6</Number>
|
||||||
|
<Title>Getting started (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105925.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>7</Number>
|
||||||
|
<Title>Schematics (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\MB1136.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>8</Number>
|
||||||
|
<Title>MCBSTM32E Evaluation Board Web Page (MCBSTM32E)</Title>
|
||||||
|
<Path>http://www.keil.com/mcbstm32e/</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>9</Number>
|
||||||
|
<Title>STM32 Nucleo board (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF259875</Path>
|
||||||
|
</Book>
|
||||||
|
</Books>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>0</uSim>
|
||||||
|
<uTrg>1</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>1</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<nTsel>11</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGDARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=294,260,930,922,0)(110=60,87,270,536,0)(111=60,87,270,536,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1144,444,1555,860,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1087,280,1671,1020,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=1101,12,1694,752,1)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
|
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGTARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=90,120,456,345,0)(1009=-1,-1,-1,-1,0)(100=617,58,1253,720,0)(110=-1,-1,-1,-1,0)(111=415,488,625,937,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=501,599,912,993,0)(121=1257,335,1668,729,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1213,324,1797,1007,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name>-T0</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGUARM</Key>
|
||||||
|
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||||
|
<Name>-U49FF70064970535533450687 -O10318 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO19 -TC72000000 -TP21 -TDS8023 -TDT0 -TDC1F -TIEFFFFFFFF -TIPF -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>UL2CM3</Key>
|
||||||
|
<Name>-UM0330BUE -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO19 -TC72000000 -TP21 -TDS47 -TDT0 -TDC1F -TIEFFFFFFFF -TIPF -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
</TargetDriverDllRegistry>
|
||||||
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>state,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_courant</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ratio_pwm,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_chargefinish,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_charge,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>6</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>delta_counter,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>7</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mincurrent</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>8</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>initial_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>9</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>min_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>10</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>max_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>10</SubType>
|
||||||
|
<ItemText>ADCConvertedValue</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>1</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>1</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>1</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<LogicAnalyzers>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>0</IntNumber>
|
||||||
|
<FirstString>`mesure_vbat</FirstString>
|
||||||
|
<SecondString>FF0000000000000000908F40000000000020A440000000000000000000000000000000006D65737572655F766261740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900000001000000000000000000E03F1F00000000000000000000000000000000000000D4110008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>1</IntNumber>
|
||||||
|
<FirstString>`mesure_courant</FirstString>
|
||||||
|
<SecondString>0080000000000000000000000000000000006A40000000000000000000000000000000006D65737572655F636F7572616E740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900000002000000000000000000E03F1F00000000000000000000000000000000000000D4110008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
</LogicAnalyzers>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>Simu</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLKADS>8000000</CLKADS>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>0</RunSim>
|
||||||
|
<RunTarget>1</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>79</PageWidth>
|
||||||
|
<PageLength>66</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>0</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>18</CpuCode>
|
||||||
|
<Books>
|
||||||
|
<Book>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Title>CMSIS RTOS Tutorial (CMSIS_RTOS_Tutorial)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Hitex\CMSIS_RTOS_Tutorial\1.0.3\Documentation\CMSIS_RTOS_Tutorial.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>1</Number>
|
||||||
|
<Title>Base Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-base-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>2</Number>
|
||||||
|
<Title>Display Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-display-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>3</Number>
|
||||||
|
<Title>User Manual (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e.chm</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>4</Number>
|
||||||
|
<Title>User Manual (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105823.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>5</Number>
|
||||||
|
<Title>Overview (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105918.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>6</Number>
|
||||||
|
<Title>Getting started (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105925.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>7</Number>
|
||||||
|
<Title>Schematics (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\MB1136.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>8</Number>
|
||||||
|
<Title>MCBSTM32E Evaluation Board Web Page (MCBSTM32E)</Title>
|
||||||
|
<Path>http://www.keil.com/mcbstm32e/</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>9</Number>
|
||||||
|
<Title>STM32 Nucleo board (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF259875</Path>
|
||||||
|
</Book>
|
||||||
|
</Books>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>1</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<nTsel>8</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGDARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=294,260,930,922,0)(110=60,87,270,536,0)(111=60,87,270,536,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1144,444,1555,860,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1087,280,1671,1020,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=1195,169,1788,909,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
|
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGTARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=90,120,456,345,0)(1009=-1,-1,-1,-1,0)(100=15,38,651,700,0)(110=-1,-1,-1,-1,0)(111=415,488,625,937,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=748,599,1159,993,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1213,324,1797,1007,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name>-T0</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGUARM</Key>
|
||||||
|
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||||
|
<Name>-U066EFF484951775087084434 -O8270 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO19 -TC72000000 -TP21 -TDS8023 -TDT0 -TDC1F -TIEFFFFFFFF -TIPF -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>UL2CM3</Key>
|
||||||
|
<Name>-U -O14 -S0 -C0 -P00 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
</TargetDriverDllRegistry>
|
||||||
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_courant</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ratio_pwm,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>state,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_chargefinish,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_charge,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
|
<WatchWindow2>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>vbatarray,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>accumulator,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>voltage,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow2>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>10</SubType>
|
||||||
|
<ItemText>ADCConvertedValue</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>1</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>1</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>1</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<LogicAnalyzers>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>0</IntNumber>
|
||||||
|
<FirstString>`ratio_pwm</FirstString>
|
||||||
|
<SecondString>FF0000000000000000000000000000000000784000000000000000000000000000000000726174696F5F70776D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000E03F1E00000000000000000000000000000000000000600D0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>1</IntNumber>
|
||||||
|
<FirstString>(PORTA&(1<<5) & 0x20) >> 0</FirstString>
|
||||||
|
<SecondString>00800000000000000000000000000000E0FFEF4001000000000000000000000000000000504F5254412628313C3C352900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000000000000000E03F1E00000000000000000000000000000000000000640D0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
</LogicAnalyzers>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>UnitTest</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLKADS>8000000</CLKADS>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>0</RunSim>
|
||||||
|
<RunTarget>1</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>79</PageWidth>
|
||||||
|
<PageLength>66</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>0</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>18</CpuCode>
|
||||||
|
<Books>
|
||||||
|
<Book>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Title>CMSIS RTOS Tutorial (CMSIS_RTOS_Tutorial)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Hitex\CMSIS_RTOS_Tutorial\1.0.3\Documentation\CMSIS_RTOS_Tutorial.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>1</Number>
|
||||||
|
<Title>Base Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-base-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>2</Number>
|
||||||
|
<Title>Display Board Schematics (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e-display-board-schematics.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>3</Number>
|
||||||
|
<Title>User Manual (MCBSTM32E)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32F1xx_DFP\2.0.0\Documents\mcbstm32e.chm</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>4</Number>
|
||||||
|
<Title>User Manual (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105823.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>5</Number>
|
||||||
|
<Title>Overview (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105918.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>6</Number>
|
||||||
|
<Title>Getting started (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\DM00105925.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>7</Number>
|
||||||
|
<Title>Schematics (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>C:\Keil\ARM\PACK\Keil\STM32NUCLEO_BSP\1.4.0\Documents\MB1136.pdf</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>8</Number>
|
||||||
|
<Title>MCBSTM32E Evaluation Board Web Page (MCBSTM32E)</Title>
|
||||||
|
<Path>http://www.keil.com/mcbstm32e/</Path>
|
||||||
|
</Book>
|
||||||
|
<Book>
|
||||||
|
<Number>9</Number>
|
||||||
|
<Title>STM32 Nucleo board (NUCLEO-F103RB)</Title>
|
||||||
|
<Path>http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF259875</Path>
|
||||||
|
</Book>
|
||||||
|
</Books>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>1</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<nTsel>8</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGDARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=294,260,930,922,0)(110=60,87,270,536,0)(111=60,87,270,536,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1144,444,1555,860,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1087,280,1671,1020,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=1195,169,1788,909,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
|
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGTARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=90,120,456,345,0)(1009=-1,-1,-1,-1,0)(100=15,38,651,700,0)(110=-1,-1,-1,-1,0)(111=415,488,625,937,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=748,599,1159,993,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1213,324,1797,1007,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name>-T0</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGUARM</Key>
|
||||||
|
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||||
|
<Name>-U066EFF484951775087084434 -O8270 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO19 -TC72000000 -TP21 -TDS8023 -TDT0 -TDC1F -TIEFFFFFFFF -TIPF -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>UL2CM3</Key>
|
||||||
|
<Name>-U -O14 -S0 -C0 -P00 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
</TargetDriverDllRegistry>
|
||||||
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_vbat</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>mesure_courant</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ratio_pwm,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>state,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_chargefinish,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>tempo_charge,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
|
<WatchWindow2>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>vbatarray,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>accumulator,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>voltage,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow2>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>10</SubType>
|
||||||
|
<ItemText>ADCConvertedValue</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>1</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>1</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>1</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<LogicAnalyzers>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>0</IntNumber>
|
||||||
|
<FirstString>`ratio_pwm</FirstString>
|
||||||
|
<SecondString>FF0000000000000000000000000000000000784000000000000000000000000000000000726174696F5F70776D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000E03F1E00000000000000000000000000000000000000600D0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>1</IntNumber>
|
||||||
|
<FirstString>(PORTA&(1<<5) & 0x20) >> 0</FirstString>
|
||||||
|
<SecondString>00800000000000000000000000000000E0FFEF4001000000000000000000000000000000504F5254412628313C3C352900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000000000000000E03F1E00000000000000000000000000000000000000640D0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
</LogicAnalyzers>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Boot</GroupName>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Appli</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>1</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Appli.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>Appli.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>2</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\retarget.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>retarget.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>1</RteFlg>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Device</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>1</RteFlg>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</ProjectOpt>
|
1430
software/chargeur/Chargeur.uvprojx
Normal file
1690
software/chargeur/RTE/Device/STM32F103RB/RTE_Device.h
Normal file
307
software/chargeur/RTE/Device/STM32F103RB/startup_stm32f10x_md.s
Normal file
|
@ -0,0 +1,307 @@
|
||||||
|
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
|
||||||
|
;* File Name : startup_stm32f10x_md.s
|
||||||
|
;* Author : MCD Application Team
|
||||||
|
;* Version : V3.5.0
|
||||||
|
;* Date : 11-March-2011
|
||||||
|
;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM
|
||||||
|
;* toolchain.
|
||||||
|
;* This module performs:
|
||||||
|
;* - Set the initial SP
|
||||||
|
;* - Set the initial PC == Reset_Handler
|
||||||
|
;* - Set the vector table entries with the exceptions ISR address
|
||||||
|
;* - Configure the clock system
|
||||||
|
;* - Branches to __main in the C library (which eventually
|
||||||
|
;* calls main()).
|
||||||
|
;* After Reset the CortexM3 processor is in Thread mode,
|
||||||
|
;* priority is Privileged, and the Stack is set to Main.
|
||||||
|
;* <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
;*******************************************************************************
|
||||||
|
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||||
|
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
||||||
|
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
||||||
|
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
||||||
|
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
||||||
|
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||||
|
;*******************************************************************************
|
||||||
|
|
||||||
|
; Amount of memory (in bytes) allocated for Stack
|
||||||
|
; Tailor this value to your application needs
|
||||||
|
; <h> Stack Configuration
|
||||||
|
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||||
|
; </h>
|
||||||
|
|
||||||
|
Stack_Size EQU 0x00000400
|
||||||
|
|
||||||
|
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
||||||
|
Stack_Mem SPACE Stack_Size
|
||||||
|
__initial_sp
|
||||||
|
|
||||||
|
|
||||||
|
; <h> Heap Configuration
|
||||||
|
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||||
|
; </h>
|
||||||
|
|
||||||
|
Heap_Size EQU 0x00000200
|
||||||
|
|
||||||
|
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
||||||
|
__heap_base
|
||||||
|
Heap_Mem SPACE Heap_Size
|
||||||
|
__heap_limit
|
||||||
|
|
||||||
|
PRESERVE8
|
||||||
|
THUMB
|
||||||
|
|
||||||
|
|
||||||
|
; Vector Table Mapped to Address 0 at Reset
|
||||||
|
AREA RESET, DATA, READONLY
|
||||||
|
EXPORT __Vectors
|
||||||
|
EXPORT __Vectors_End
|
||||||
|
EXPORT __Vectors_Size
|
||||||
|
|
||||||
|
__Vectors DCD __initial_sp ; Top of Stack
|
||||||
|
DCD Reset_Handler ; Reset Handler
|
||||||
|
DCD NMI_Handler ; NMI Handler
|
||||||
|
DCD HardFault_Handler ; Hard Fault Handler
|
||||||
|
DCD MemManage_Handler ; MPU Fault Handler
|
||||||
|
DCD BusFault_Handler ; Bus Fault Handler
|
||||||
|
DCD UsageFault_Handler ; Usage Fault Handler
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD SVC_Handler ; SVCall Handler
|
||||||
|
DCD DebugMon_Handler ; Debug Monitor Handler
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD PendSV_Handler ; PendSV Handler
|
||||||
|
DCD SysTick_Handler ; SysTick Handler
|
||||||
|
|
||||||
|
; External Interrupts
|
||||||
|
DCD WWDG_IRQHandler ; Window Watchdog
|
||||||
|
DCD PVD_IRQHandler ; PVD through EXTI Line detect
|
||||||
|
DCD TAMPER_IRQHandler ; Tamper
|
||||||
|
DCD RTC_IRQHandler ; RTC
|
||||||
|
DCD FLASH_IRQHandler ; Flash
|
||||||
|
DCD RCC_IRQHandler ; RCC
|
||||||
|
DCD EXTI0_IRQHandler ; EXTI Line 0
|
||||||
|
DCD EXTI1_IRQHandler ; EXTI Line 1
|
||||||
|
DCD EXTI2_IRQHandler ; EXTI Line 2
|
||||||
|
DCD EXTI3_IRQHandler ; EXTI Line 3
|
||||||
|
DCD EXTI4_IRQHandler ; EXTI Line 4
|
||||||
|
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
|
||||||
|
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
|
||||||
|
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
|
||||||
|
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
|
||||||
|
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
|
||||||
|
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
|
||||||
|
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
|
||||||
|
DCD ADC1_2_IRQHandler ; ADC1_2
|
||||||
|
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
|
||||||
|
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
|
||||||
|
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
|
||||||
|
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
|
||||||
|
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
|
||||||
|
DCD TIM1_BRK_IRQHandler ; TIM1 Break
|
||||||
|
DCD TIM1_UP_IRQHandler ; TIM1 Update
|
||||||
|
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
|
||||||
|
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
|
||||||
|
DCD TIM2_IRQHandler ; TIM2
|
||||||
|
DCD TIM3_IRQHandler ; TIM3
|
||||||
|
DCD TIM4_IRQHandler ; TIM4
|
||||||
|
DCD I2C1_EV_IRQHandler ; I2C1 Event
|
||||||
|
DCD I2C1_ER_IRQHandler ; I2C1 Error
|
||||||
|
DCD I2C2_EV_IRQHandler ; I2C2 Event
|
||||||
|
DCD I2C2_ER_IRQHandler ; I2C2 Error
|
||||||
|
DCD SPI1_IRQHandler ; SPI1
|
||||||
|
DCD SPI2_IRQHandler ; SPI2
|
||||||
|
DCD USART1_IRQHandler ; USART1
|
||||||
|
DCD USART2_IRQHandler ; USART2
|
||||||
|
DCD USART3_IRQHandler ; USART3
|
||||||
|
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
|
||||||
|
DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
|
||||||
|
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
|
||||||
|
__Vectors_End
|
||||||
|
|
||||||
|
__Vectors_Size EQU __Vectors_End - __Vectors
|
||||||
|
|
||||||
|
AREA |.text|, CODE, READONLY
|
||||||
|
|
||||||
|
; Reset handler
|
||||||
|
Reset_Handler PROC
|
||||||
|
EXPORT Reset_Handler [WEAK]
|
||||||
|
IMPORT __main
|
||||||
|
IMPORT SystemInit
|
||||||
|
LDR R0, =SystemInit
|
||||||
|
BLX R0
|
||||||
|
LDR R0, =__main
|
||||||
|
BX R0
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||||
|
|
||||||
|
NMI_Handler PROC
|
||||||
|
EXPORT NMI_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
HardFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT HardFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
MemManage_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT MemManage_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
BusFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT BusFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
UsageFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT UsageFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
SVC_Handler PROC
|
||||||
|
EXPORT SVC_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
DebugMon_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT DebugMon_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
PendSV_Handler PROC
|
||||||
|
EXPORT PendSV_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
SysTick_Handler PROC
|
||||||
|
EXPORT SysTick_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
Default_Handler PROC
|
||||||
|
|
||||||
|
EXPORT WWDG_IRQHandler [WEAK]
|
||||||
|
EXPORT PVD_IRQHandler [WEAK]
|
||||||
|
EXPORT TAMPER_IRQHandler [WEAK]
|
||||||
|
EXPORT RTC_IRQHandler [WEAK]
|
||||||
|
EXPORT FLASH_IRQHandler [WEAK]
|
||||||
|
EXPORT RCC_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI0_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI1_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI2_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI3_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI4_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel1_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel2_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel3_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel4_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel5_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel6_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel7_IRQHandler [WEAK]
|
||||||
|
EXPORT ADC1_2_IRQHandler [WEAK]
|
||||||
|
EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK]
|
||||||
|
EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK]
|
||||||
|
EXPORT CAN1_RX1_IRQHandler [WEAK]
|
||||||
|
EXPORT CAN1_SCE_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI9_5_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_BRK_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_UP_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_CC_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM2_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM3_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM4_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C1_EV_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C1_ER_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C2_EV_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C2_ER_IRQHandler [WEAK]
|
||||||
|
EXPORT SPI1_IRQHandler [WEAK]
|
||||||
|
EXPORT SPI2_IRQHandler [WEAK]
|
||||||
|
EXPORT USART1_IRQHandler [WEAK]
|
||||||
|
EXPORT USART2_IRQHandler [WEAK]
|
||||||
|
EXPORT USART3_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI15_10_IRQHandler [WEAK]
|
||||||
|
EXPORT RTCAlarm_IRQHandler [WEAK]
|
||||||
|
EXPORT USBWakeUp_IRQHandler [WEAK]
|
||||||
|
|
||||||
|
WWDG_IRQHandler
|
||||||
|
PVD_IRQHandler
|
||||||
|
TAMPER_IRQHandler
|
||||||
|
RTC_IRQHandler
|
||||||
|
FLASH_IRQHandler
|
||||||
|
RCC_IRQHandler
|
||||||
|
EXTI0_IRQHandler
|
||||||
|
EXTI1_IRQHandler
|
||||||
|
EXTI2_IRQHandler
|
||||||
|
EXTI3_IRQHandler
|
||||||
|
EXTI4_IRQHandler
|
||||||
|
DMA1_Channel1_IRQHandler
|
||||||
|
DMA1_Channel2_IRQHandler
|
||||||
|
DMA1_Channel3_IRQHandler
|
||||||
|
DMA1_Channel4_IRQHandler
|
||||||
|
DMA1_Channel5_IRQHandler
|
||||||
|
DMA1_Channel6_IRQHandler
|
||||||
|
DMA1_Channel7_IRQHandler
|
||||||
|
ADC1_2_IRQHandler
|
||||||
|
USB_HP_CAN1_TX_IRQHandler
|
||||||
|
USB_LP_CAN1_RX0_IRQHandler
|
||||||
|
CAN1_RX1_IRQHandler
|
||||||
|
CAN1_SCE_IRQHandler
|
||||||
|
EXTI9_5_IRQHandler
|
||||||
|
TIM1_BRK_IRQHandler
|
||||||
|
TIM1_UP_IRQHandler
|
||||||
|
TIM1_TRG_COM_IRQHandler
|
||||||
|
TIM1_CC_IRQHandler
|
||||||
|
TIM2_IRQHandler
|
||||||
|
TIM3_IRQHandler
|
||||||
|
TIM4_IRQHandler
|
||||||
|
I2C1_EV_IRQHandler
|
||||||
|
I2C1_ER_IRQHandler
|
||||||
|
I2C2_EV_IRQHandler
|
||||||
|
I2C2_ER_IRQHandler
|
||||||
|
SPI1_IRQHandler
|
||||||
|
SPI2_IRQHandler
|
||||||
|
USART1_IRQHandler
|
||||||
|
USART2_IRQHandler
|
||||||
|
USART3_IRQHandler
|
||||||
|
EXTI15_10_IRQHandler
|
||||||
|
RTCAlarm_IRQHandler
|
||||||
|
USBWakeUp_IRQHandler
|
||||||
|
|
||||||
|
B .
|
||||||
|
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
ALIGN
|
||||||
|
|
||||||
|
;*******************************************************************************
|
||||||
|
; User Stack and Heap initialization
|
||||||
|
;*******************************************************************************
|
||||||
|
IF :DEF:__MICROLIB
|
||||||
|
|
||||||
|
EXPORT __initial_sp
|
||||||
|
EXPORT __heap_base
|
||||||
|
EXPORT __heap_limit
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
|
||||||
|
IMPORT __use_two_region_memory
|
||||||
|
EXPORT __user_initial_stackheap
|
||||||
|
|
||||||
|
__user_initial_stackheap
|
||||||
|
|
||||||
|
LDR R0, = Heap_Mem
|
||||||
|
LDR R1, =(Stack_Mem + Stack_Size)
|
||||||
|
LDR R2, = (Heap_Mem + Heap_Size)
|
||||||
|
LDR R3, = Stack_Mem
|
||||||
|
BX LR
|
||||||
|
|
||||||
|
ALIGN
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****
|
124
software/chargeur/RTE/Device/STM32F103RB/stm32f10x_conf.h
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file Project/STM32F10x_StdPeriph_Template/stm32f10x_conf.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @version V3.5.0
|
||||||
|
* @date 08-April-2011
|
||||||
|
* @brief Library configuration file.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||||
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
||||||
|
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
||||||
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
||||||
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||||
|
*
|
||||||
|
* <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __STM32F10x_CONF_H
|
||||||
|
#define __STM32F10x_CONF_H
|
||||||
|
|
||||||
|
/* Run Time Environment will set specific #define for each selected module below */
|
||||||
|
#include "RTE_Components.h"
|
||||||
|
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_ADC
|
||||||
|
#include "stm32f10x_adc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_BKP
|
||||||
|
#include "stm32f10x_bkp.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_CAN
|
||||||
|
#include "stm32f10x_can.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_CEC
|
||||||
|
#include "stm32f10x_cec.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_CRC
|
||||||
|
#include "stm32f10x_crc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_DAC
|
||||||
|
#include "stm32f10x_dac.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_DBGMCU
|
||||||
|
#include "stm32f10x_dbgmcu.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_DMA
|
||||||
|
#include "stm32f10x_dma.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_EXTI
|
||||||
|
#include "stm32f10x_exti.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_FLASH
|
||||||
|
#include "stm32f10x_flash.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_FSMC
|
||||||
|
#include "stm32f10x_fsmc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_GPIO
|
||||||
|
#include "stm32f10x_gpio.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_I2C
|
||||||
|
#include "stm32f10x_i2c.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_IWDG
|
||||||
|
#include "stm32f10x_iwdg.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_PWR
|
||||||
|
#include "stm32f10x_pwr.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_RCC
|
||||||
|
#include "stm32f10x_rcc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_RTC
|
||||||
|
#include "stm32f10x_rtc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_SDIO
|
||||||
|
#include "stm32f10x_sdio.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_SPI
|
||||||
|
#include "stm32f10x_spi.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_TIM
|
||||||
|
#include "stm32f10x_tim.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_USART
|
||||||
|
#include "stm32f10x_usart.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_WWDG
|
||||||
|
#include "stm32f10x_wwdg.h"
|
||||||
|
#endif
|
||||||
|
#ifdef RTE_DEVICE_STDPERIPH_FRAMEWORK
|
||||||
|
#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Uncomment the line below to expanse the "assert_param" macro in the
|
||||||
|
Standard Peripheral Library drivers code */
|
||||||
|
/* #define USE_FULL_ASSERT 1 */
|
||||||
|
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The assert_param macro is used for function's parameters check.
|
||||||
|
* @param expr: If expr is false, it calls assert_failed function which reports
|
||||||
|
* the name of the source file and the source line number of the call
|
||||||
|
* that failed. If expr is true, it returns no value.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
void assert_failed(uint8_t* file, uint32_t line);
|
||||||
|
#else
|
||||||
|
#define assert_param(expr) ((void)0)
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
#endif /* __STM32F10x_CONF_H */
|
||||||
|
|
||||||
|
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
|
1094
software/chargeur/RTE/Device/STM32F103RB/system_stm32f10x.c
Normal file
20
software/chargeur/RTE/RTE_Components.h
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Auto generated Run-Time-Environment Component Configuration File
|
||||||
|
* *** Do not modify ! ***
|
||||||
|
*
|
||||||
|
* Project: 'Chargeur'
|
||||||
|
* Target: 'ST Link'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTE_COMPONENTS_H
|
||||||
|
#define RTE_COMPONENTS_H
|
||||||
|
|
||||||
|
#define RTE_DEVICE_STDPERIPH_ADC
|
||||||
|
#define RTE_DEVICE_STDPERIPH_DMA
|
||||||
|
#define RTE_DEVICE_STDPERIPH_FRAMEWORK
|
||||||
|
#define RTE_DEVICE_STDPERIPH_GPIO
|
||||||
|
#define RTE_DEVICE_STDPERIPH_RCC
|
||||||
|
#define RTE_DEVICE_STDPERIPH_TIM
|
||||||
|
|
||||||
|
#endif /* RTE_COMPONENTS_H */
|
47
software/chargeur/retarget.c
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/******************************************************************************/
|
||||||
|
/* RETARGET.C: 'Retarget' layer for target-dependent low level functions */
|
||||||
|
/******************************************************************************/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <rt_misc.h>
|
||||||
|
#include "stm32f10x.h" // Device header
|
||||||
|
|
||||||
|
#pragma import(__use_no_semihosting_swi)
|
||||||
|
|
||||||
|
extern int sendchar(int ch); /* in serial.c */
|
||||||
|
|
||||||
|
struct __FILE { int handle; /* Add whatever you need here */ };
|
||||||
|
FILE __stdout;
|
||||||
|
|
||||||
|
int fputc(int ch, FILE *f) {
|
||||||
|
#if DEBUG_ITM
|
||||||
|
return (ITM_SendChar(ch));
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif /* DEBUG_ITM */
|
||||||
|
}
|
||||||
|
|
||||||
|
int fgetc (FILE *f)
|
||||||
|
{
|
||||||
|
#if DEBUG_ITM
|
||||||
|
while (ITM_CheckChar()==0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return ITM_ReceiveChar();
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif /* DEBUG_ITM */
|
||||||
|
}
|
||||||
|
|
||||||
|
int ferror(FILE *f) {
|
||||||
|
/* Your implementation of ferror */
|
||||||
|
return EOF;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _ttywrch(int ch) {
|
||||||
|
ITM_SendChar(ch);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _sys_exit(int return_code) {
|
||||||
|
label: goto label; /* endless loop */
|
||||||
|
}
|
|
@ -20,7 +20,8 @@
|
||||||
|
|
||||||
OPENCV_VERSION='3.4.2'
|
OPENCV_VERSION='3.4.2'
|
||||||
|
|
||||||
|
mkdir opencv
|
||||||
|
cd opencv
|
||||||
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
|
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
|
||||||
|
|
||||||
sudo apt-get -y update
|
sudo apt-get -y update
|
||||||
|
@ -82,6 +83,22 @@ make -j5
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
|
|
||||||
|
# 4. Compile raspicam
|
||||||
|
cd ~
|
||||||
|
cd opencv
|
||||||
|
|
||||||
|
wget https://sourceforge.net/projects/raspicam/files/latest/raspicam.zip
|
||||||
|
unzip raspicam.zip
|
||||||
|
cd raspicam-0.1.6
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
|
||||||
|
make -j5
|
||||||
|
sudo make install
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
|
|
||||||
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
|
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
|
||||||
|
|
||||||
|
|
|
@ -25,11 +25,6 @@
|
||||||
// 15/10/2019 dimercur
|
// 15/10/2019 dimercur
|
||||||
// Demande #43: Migrer le code lié à la gestion des images dans sa propre classe widget
|
// Demande #43: Migrer le code lié à la gestion des images dans sa propre classe widget
|
||||||
|
|
||||||
// 11/04/2019 dimercur
|
|
||||||
// Suppression du timer battery
|
|
||||||
// suppression de la case à cocher getbattery
|
|
||||||
// Prise en charge des messages ANSWER_TIMEOUT et ANSWER_COM_ERROR dans OnCommandReceivedEvent
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Gtk;
|
using Gtk;
|
||||||
using Gdk;
|
using Gdk;
|
||||||
|
@ -51,7 +46,7 @@ public partial class MainWindow : Gtk.Window
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Position used for displaying position
|
/// Position used for displaying position
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private DestijlCommandManager.Position position=new DestijlCommandManager.Position();
|
//private DestijlCommandManager.Position position=new DestijlCommandManager.Position();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of availble state for the application
|
/// List of availble state for the application
|
||||||
|
@ -73,6 +68,11 @@ public partial class MainWindow : Gtk.Window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private ImageWidget imageWidget;
|
private ImageWidget imageWidget;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Timer for battery request
|
||||||
|
/// </summary>
|
||||||
|
private System.Timers.Timer batteryTimer;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Counter for image reception and detecting bad picture ratio
|
/// Counter for image reception and detecting bad picture ratio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -91,6 +91,10 @@ public partial class MainWindow : Gtk.Window
|
||||||
// Init of image widget
|
// Init of image widget
|
||||||
imageWidget = new ImageWidget(drawingAreaCamera);
|
imageWidget = new ImageWidget(drawingAreaCamera);
|
||||||
|
|
||||||
|
// create new timer for battery request, every 10s
|
||||||
|
batteryTimer = new System.Timers.Timer(10000.0);
|
||||||
|
batteryTimer.Elapsed += OnBatteryTimerElapsed;
|
||||||
|
|
||||||
// Customize controls
|
// Customize controls
|
||||||
AdjustControls();
|
AdjustControls();
|
||||||
}
|
}
|
||||||
|
@ -141,6 +145,7 @@ public partial class MainWindow : Gtk.Window
|
||||||
|
|
||||||
if (cmdManager != null) cmdManager.Close();
|
if (cmdManager != null) cmdManager.Close();
|
||||||
|
|
||||||
|
batteryTimer.Stop();
|
||||||
break;
|
break;
|
||||||
case SystemState.ServerConnected:
|
case SystemState.ServerConnected:
|
||||||
buttonServerConnection.Label = "Disconnect";
|
buttonServerConnection.Label = "Disconnect";
|
||||||
|
@ -154,12 +159,14 @@ public partial class MainWindow : Gtk.Window
|
||||||
labelRobotControl.Sensitive = false;
|
labelRobotControl.Sensitive = false;
|
||||||
gtkAlignmentRobotControl.Sensitive = false;
|
gtkAlignmentRobotControl.Sensitive = false;
|
||||||
|
|
||||||
|
batteryTimer.Stop();
|
||||||
break;
|
break;
|
||||||
case SystemState.RobotConnected:
|
case SystemState.RobotConnected:
|
||||||
buttonRobotActivation.Label = "Reset";
|
buttonRobotActivation.Label = "Reset";
|
||||||
labelRobotControl.Sensitive = true;
|
labelRobotControl.Sensitive = true;
|
||||||
gtkAlignmentRobotControl.Sensitive = true;
|
gtkAlignmentRobotControl.Sensitive = true;
|
||||||
|
|
||||||
|
batteryTimer.Start();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
labelRobot.Sensitive = false;
|
labelRobot.Sensitive = false;
|
||||||
|
@ -252,20 +259,8 @@ public partial class MainWindow : Gtk.Window
|
||||||
// Depending on message received (based on header), launch correponding action
|
// Depending on message received (based on header), launch correponding action
|
||||||
header = header.ToUpper();
|
header = header.ToUpper();
|
||||||
|
|
||||||
switch (header)
|
if (header == DestijlCommandList.ROBOT_BATTERY_LEVEL)
|
||||||
{
|
{
|
||||||
case DestijlCommandList.ANSWER_TIMEOUT:
|
|
||||||
case DestijlCommandList.ANSWER_COM_ERROR:
|
|
||||||
Console.WriteLine("Communication lost with robot");
|
|
||||||
Gtk.Application.Invoke(delegate
|
|
||||||
{
|
|
||||||
MessagePopup(MessageType.Error, ButtonsType.Ok, "Robot lost", "Communication with robot lost !");
|
|
||||||
});
|
|
||||||
|
|
||||||
ChangeState(SystemState.ServerConnected);
|
|
||||||
|
|
||||||
break;
|
|
||||||
case DestijlCommandList.ROBOT_BATTERY_LEVEL:
|
|
||||||
string batLevel = "";
|
string batLevel = "";
|
||||||
|
|
||||||
switch (data[0])
|
switch (data[0])
|
||||||
|
@ -288,9 +283,9 @@ public partial class MainWindow : Gtk.Window
|
||||||
{
|
{
|
||||||
labelBatteryLevel.Text = batLevel;
|
labelBatteryLevel.Text = batLevel;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
break;
|
else if (header == DestijlCommandList.CAMERA_IMAGE)
|
||||||
case DestijlCommandList.CAMERA_IMAGE:
|
{
|
||||||
imageReceivedCounter++;
|
imageReceivedCounter++;
|
||||||
|
|
||||||
byte[] image = new byte[2];
|
byte[] image = new byte[2];
|
||||||
|
@ -317,16 +312,11 @@ public partial class MainWindow : Gtk.Window
|
||||||
" (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)");
|
" (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
//}
|
||||||
break;
|
}
|
||||||
case DestijlCommandList.CAMERA_POSITION:
|
else if (header == DestijlCommandList.CAMERA_POSITION)
|
||||||
|
{
|
||||||
imageWidget.Position = DestijlCommandManager.DecodePosition(data);
|
imageWidget.Position = DestijlCommandManager.DecodePosition(data);
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Console.WriteLine("Untreated message from supervisor: " + header + ": " + data);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -536,6 +526,50 @@ public partial class MainWindow : Gtk.Window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Callback called when battery timer expired
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender">Sender object</param>
|
||||||
|
/// <param name="e">Event</param>
|
||||||
|
void OnBatteryTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
DestijlCommandManager.CommandStatus status;
|
||||||
|
batteryTimer.Stop();
|
||||||
|
|
||||||
|
// if battery checkbox is checked, a request for battery level is done
|
||||||
|
if (checkButtonGetBattery.Active)
|
||||||
|
{
|
||||||
|
status = cmdManager.RobotGetBattery();
|
||||||
|
|
||||||
|
// if status is not ok, show appropriate message and print "Unknown" for battery level
|
||||||
|
switch (status)
|
||||||
|
{
|
||||||
|
case DestijlCommandManager.CommandStatus.Success:
|
||||||
|
batteryTimer.Start();
|
||||||
|
break;
|
||||||
|
case DestijlCommandManager.CommandStatus.CommunicationLostWithServer:
|
||||||
|
Console.WriteLine("Error: Connection lost with server");
|
||||||
|
batteryTimer.Stop();
|
||||||
|
labelBatteryLevel.Text = "Unknown";
|
||||||
|
|
||||||
|
ChangeState(SystemState.NotConnected);
|
||||||
|
break;
|
||||||
|
case DestijlCommandManager.CommandStatus.CommunicationLostWithRobot:
|
||||||
|
Console.WriteLine("Error: Connection lost with robot");
|
||||||
|
batteryTimer.Stop();
|
||||||
|
labelBatteryLevel.Text = "Unknown";
|
||||||
|
|
||||||
|
ChangeState(SystemState.ServerConnected);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
labelBatteryLevel.Text = "Unknown";
|
||||||
|
batteryTimer.Start();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else batteryTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Callback called when checkbutton for camera is clicked
|
/// Callback called when checkbutton for camera is clicked
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -628,6 +662,7 @@ public partial class MainWindow : Gtk.Window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender">Sender object</param>
|
/// <param name="sender">Sender object</param>
|
||||||
/// <param name="e">Event</param>
|
/// <param name="e">Event</param>
|
||||||
|
///
|
||||||
protected void OnButtonAskArenaClicked(object sender, EventArgs e)
|
protected void OnButtonAskArenaClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// Send command to server for arean rendering
|
// Send command to server for arean rendering
|
||||||
|
|
|
@ -125,6 +125,8 @@ public partial class MainWindow
|
||||||
|
|
||||||
private global::Gtk.Label labelBatteryLevel;
|
private global::Gtk.Label labelBatteryLevel;
|
||||||
|
|
||||||
|
private global::Gtk.CheckButton checkButtonGetBattery;
|
||||||
|
|
||||||
protected virtual void Build()
|
protected virtual void Build()
|
||||||
{
|
{
|
||||||
global::Stetic.Gui.Initialize(this);
|
global::Stetic.Gui.Initialize(this);
|
||||||
|
@ -645,27 +647,39 @@ public partial class MainWindow
|
||||||
w54.Position = 2;
|
w54.Position = 2;
|
||||||
w54.Expand = false;
|
w54.Expand = false;
|
||||||
w54.Fill = false;
|
w54.Fill = false;
|
||||||
|
// Container child vbox9.Gtk.Box+BoxChild
|
||||||
|
this.checkButtonGetBattery = new global::Gtk.CheckButton();
|
||||||
|
this.checkButtonGetBattery.CanFocus = true;
|
||||||
|
this.checkButtonGetBattery.Name = "checkButtonGetBattery";
|
||||||
|
this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level");
|
||||||
|
this.checkButtonGetBattery.DrawIndicator = true;
|
||||||
|
this.checkButtonGetBattery.UseUnderline = true;
|
||||||
|
this.vbox9.Add(this.checkButtonGetBattery);
|
||||||
|
global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery]));
|
||||||
|
w55.Position = 3;
|
||||||
|
w55.Expand = false;
|
||||||
|
w55.Fill = false;
|
||||||
this.gtkAlignmentRobotControl.Add(this.vbox9);
|
this.gtkAlignmentRobotControl.Add(this.vbox9);
|
||||||
this.vbox12.Add(this.gtkAlignmentRobotControl);
|
this.vbox12.Add(this.gtkAlignmentRobotControl);
|
||||||
global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
|
global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
|
||||||
w56.Position = 1;
|
w57.Position = 1;
|
||||||
this.vbox5.Add(this.vbox12);
|
this.vbox5.Add(this.vbox12);
|
||||||
global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
|
global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
|
||||||
w57.Position = 4;
|
w58.Position = 4;
|
||||||
this.alignment3.Add(this.vbox5);
|
this.alignment3.Add(this.vbox5);
|
||||||
this.hbox3.Add(this.alignment3);
|
this.hbox3.Add(this.alignment3);
|
||||||
global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
|
global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
|
||||||
w59.Position = 1;
|
|
||||||
w59.Expand = false;
|
|
||||||
w59.Fill = false;
|
|
||||||
this.hbox1.Add(this.hbox3);
|
|
||||||
global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
|
|
||||||
w60.Position = 1;
|
w60.Position = 1;
|
||||||
w60.Expand = false;
|
w60.Expand = false;
|
||||||
w60.Fill = false;
|
w60.Fill = false;
|
||||||
this.vbox1.Add(this.hbox1);
|
this.hbox1.Add(this.hbox3);
|
||||||
global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
|
global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
|
||||||
w61.Position = 1;
|
w61.Position = 1;
|
||||||
|
w61.Expand = false;
|
||||||
|
w61.Fill = false;
|
||||||
|
this.vbox1.Add(this.hbox1);
|
||||||
|
global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
|
||||||
|
w62.Position = 1;
|
||||||
this.Add(this.vbox1);
|
this.Add(this.vbox1);
|
||||||
if ((this.Child != null))
|
if ((this.Child != null))
|
||||||
{
|
{
|
||||||
|
|
|
@ -809,7 +809,20 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<placeholder />
|
<widget class="Gtk.CheckButton" id="checkButtonGetBattery">
|
||||||
|
<property name="MemberName" />
|
||||||
|
<property name="CanFocus">True</property>
|
||||||
|
<property name="Label" translatable="yes">Get battery level</property>
|
||||||
|
<property name="DrawIndicator">True</property>
|
||||||
|
<property name="HasLabel">True</property>
|
||||||
|
<property name="UseUnderline">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="Position">3</property>
|
||||||
|
<property name="AutoSize">True</property>
|
||||||
|
<property name="Expand">False</property>
|
||||||
|
<property name="Fill">False</property>
|
||||||
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
|
@ -46,6 +46,8 @@
|
||||||
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||||
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||||
<Reference Include="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
<Reference Include="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||||
|
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||||
|
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="gtk-gui\gui.stetic">
|
<EmbeddedResource Include="gtk-gui\gui.stetic">
|
||||||
|
|
105
software/pi@10.105.0.11
Executable file
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# INSTALL OPENCV ON UBUNTU OR DEBIAN #
|
||||||
|
######################################
|
||||||
|
|
||||||
|
# | THIS SCRIPT IS TESTED CORRECTLY ON |
|
||||||
|
# |------------------------------------------------------|
|
||||||
|
# | OS | OpenCV | Test | Last test |
|
||||||
|
# |------------------|--------------|------|-------------|
|
||||||
|
# | Ubuntu 18.04 LTS | OpenCV 3.4.2 | OK | 18 Jul 2018 |
|
||||||
|
# | Debian 9.5 | OpenCV 3.4.2 | OK | 18 Jul 2018 |
|
||||||
|
# |----------------------------------------------------- |
|
||||||
|
# | Debian 9.0 | OpenCV 3.2.0 | OK | 25 Jun 2017 |
|
||||||
|
# | Debian 8.8 | OpenCV 3.2.0 | OK | 20 May 2017 |
|
||||||
|
# | Ubuntu 16.04 LTS | OpenCV 3.2.0 | OK | 20 May 2017 |
|
||||||
|
|
||||||
|
|
||||||
|
# VERSION TO BE INSTALLED
|
||||||
|
|
||||||
|
OPENCV_VERSION='3.4.2'
|
||||||
|
|
||||||
|
mkdir opencv
|
||||||
|
cd opencv
|
||||||
|
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
|
||||||
|
|
||||||
|
sudo apt-get -y update
|
||||||
|
# sudo apt-get -y upgrade # Uncomment this line to install the newest versions of all packages currently installed
|
||||||
|
# sudo apt-get -y dist-upgrade # Uncomment this line to, in addition to 'upgrade', handles changing dependencies with new versions of packages
|
||||||
|
# sudo apt-get -y autoremove # Uncomment this line to remove packages that are now no longer needed
|
||||||
|
|
||||||
|
|
||||||
|
# 2. INSTALL THE DEPENDENCIES
|
||||||
|
|
||||||
|
# Build tools:
|
||||||
|
sudo apt-get install -y build-essential cmake
|
||||||
|
|
||||||
|
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
|
||||||
|
#sudo apt-get install -y qt5-default libvtk6-dev
|
||||||
|
sudo apt-get install -y libgtkglext1-dev
|
||||||
|
|
||||||
|
# Media I/O:
|
||||||
|
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
|
||||||
|
|
||||||
|
# Video I/O:
|
||||||
|
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
|
||||||
|
|
||||||
|
# Parallelism and linear algebra libraries:
|
||||||
|
sudo apt-get install -y libtbb-dev libeigen3-dev
|
||||||
|
|
||||||
|
# Python:
|
||||||
|
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
|
||||||
|
|
||||||
|
# Java:
|
||||||
|
sudo apt-get install -y ant default-jdk
|
||||||
|
|
||||||
|
# Documentation:
|
||||||
|
sudo apt-get install -y doxygen
|
||||||
|
|
||||||
|
|
||||||
|
# 3. INSTALL THE LIBRARY
|
||||||
|
|
||||||
|
sudo apt-get install -y unzip wget
|
||||||
|
wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip
|
||||||
|
|
||||||
|
unzip ${OPENCV_VERSION}.zip
|
||||||
|
rm ${OPENCV_VERSION}.zip
|
||||||
|
mv opencv-${OPENCV_VERSION} OpenCV
|
||||||
|
|
||||||
|
# 3.5 Add Aruco
|
||||||
|
# Get opencv_contrib from github
|
||||||
|
# Copy aruco directory from <opencv_contrib>/modules to <opencv>/modules
|
||||||
|
wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip
|
||||||
|
mv ${OPENCV_VERSION}.zip opencv_contrib-${OPENCV_VERSION}.zip
|
||||||
|
unzip opencv_contrib-${OPENCV_VERSION}.zip
|
||||||
|
|
||||||
|
cd OpenCV
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
# cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF ..
|
||||||
|
cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_JAVA=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules -DBUILD_aruco=ON ..
|
||||||
|
make -j5
|
||||||
|
sudo make install
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
|
# 4. Compile raspicam
|
||||||
|
cd ~
|
||||||
|
cd opencv
|
||||||
|
|
||||||
|
wget https://sourceforge.net/projects/raspicam/files/latest/raspicam.zip
|
||||||
|
unzip raspicam.zip
|
||||||
|
cd raspicam-0.1.6
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
|
||||||
|
make -j5
|
||||||
|
sudo make install
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
|
|
||||||
|
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
|
||||||
|
|
||||||
|
# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.
|
|
@ -21,13 +21,6 @@
|
||||||
|
|
||||||
using namespace cv;
|
using namespace cv;
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an object for accessing camera with default values (size = sm and
|
|
||||||
* fps = 10)
|
|
||||||
*/
|
|
||||||
Camera::Camera():Camera(sm, 10){
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an object for accessing camera
|
* Create an object for accessing camera
|
||||||
* @param size Size of picture to grab (@see captureSize)
|
* @param size Size of picture to grab (@see captureSize)
|
||||||
|
|
|
@ -35,16 +35,9 @@ enum captureSize {xs, sm, md, lg};
|
||||||
* Class for camera (image grab)
|
* Class for camera (image grab)
|
||||||
*
|
*
|
||||||
* @brief Class for camera (image grab)
|
* @brief Class for camera (image grab)
|
||||||
* How to grab an image and send it to the monitor:
|
|
||||||
* 1. Grab an image, for example:
|
|
||||||
* Img * img = new Img(cam->Grab());
|
|
||||||
* 2. Instanciate the message to send the image:
|
|
||||||
* MessageImg *msgImg = new MessageImg(MESSAGE_CAM_IMAGE, img);
|
|
||||||
*/
|
*/
|
||||||
class Camera {
|
class Camera {
|
||||||
public:
|
public:
|
||||||
Camera();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an object for accessing camera
|
* Create an object for accessing camera
|
||||||
* @param size Size of picture to grab (@see captureSize)
|
* @param size Size of picture to grab (@see captureSize)
|
||||||
|
|
|
@ -178,16 +178,10 @@ Message *ComMonitor::Read() {
|
||||||
if (clientID > 0) {
|
if (clientID > 0) {
|
||||||
while (!endReception) {
|
while (!endReception) {
|
||||||
if ((length = recv(clientID, (void*) &data, 1, MSG_WAITALL)) > 0) {
|
if ((length = recv(clientID, (void*) &data, 1, MSG_WAITALL)) > 0) {
|
||||||
//cout << "length = " << to_string(length) << endl << flush;
|
|
||||||
if (data != '\n') {
|
if (data != '\n') {
|
||||||
s += data;
|
s += data;
|
||||||
} else endReception = true;
|
} else endReception = true;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
endReception = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//cout << "2- length = " << to_string(length) << endl << flush;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (length <= 0) msg = new Message(MESSAGE_MONITOR_LOST);
|
if (length <= 0) msg = new Message(MESSAGE_MONITOR_LOST);
|
||||||
|
|
|
@ -131,7 +131,7 @@ Message* Message::Copy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check message ID
|
* Get message ID
|
||||||
* @return Current message ID
|
* @return Current message ID
|
||||||
*/
|
*/
|
||||||
bool Message::CheckID(MessageID id) {
|
bool Message::CheckID(MessageID id) {
|
||||||
|
@ -162,6 +162,7 @@ MessageInt::MessageInt() {
|
||||||
*/
|
*/
|
||||||
MessageInt::MessageInt(MessageID id, int val) {
|
MessageInt::MessageInt(MessageID id, int val) {
|
||||||
MessageInt::SetID(id);
|
MessageInt::SetID(id);
|
||||||
|
|
||||||
value = val;
|
value = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,7 +282,6 @@ bool MessageString::CheckID(MessageID id) {
|
||||||
* Create a new, empty image message
|
* Create a new, empty image message
|
||||||
*/
|
*/
|
||||||
MessageImg::MessageImg() {
|
MessageImg::MessageImg() {
|
||||||
this->messageID = MESSAGE_CAM_IMAGE;
|
|
||||||
image = NULL;
|
image = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,7 +362,6 @@ bool MessageImg::CheckID(MessageID id) {
|
||||||
* Create a new, empty battery message
|
* Create a new, empty battery message
|
||||||
*/
|
*/
|
||||||
MessageBattery::MessageBattery() {
|
MessageBattery::MessageBattery() {
|
||||||
this->messageID = MESSAGE_ROBOT_BATTERY_LEVEL;
|
|
||||||
this->level = BATTERY_UNKNOWN;
|
this->level = BATTERY_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -456,10 +455,9 @@ bool MessageBattery::CheckID(MessageID id) {
|
||||||
/* class MessagePosition */
|
/* class MessagePosition */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new, empty position message
|
* Create a new, empty string message
|
||||||
*/
|
*/
|
||||||
MessagePosition::MessagePosition() {
|
MessagePosition::MessagePosition() {
|
||||||
this->messageID = MESSAGE_CAM_POSITION;
|
|
||||||
this->pos.angle = 0.0;
|
this->pos.angle = 0.0;
|
||||||
this->pos.robotId = 0;
|
this->pos.robotId = 0;
|
||||||
this->pos.center.x=0.0;
|
this->pos.center.x=0.0;
|
||||||
|
@ -469,9 +467,9 @@ MessagePosition::MessagePosition() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new position message, with given ID and position
|
* Create a new string message, with given ID and string
|
||||||
* @param id Message ID
|
* @param id Message ID
|
||||||
* @param pos Message position
|
* @param s Message string
|
||||||
* @throw std::runtime_error if message ID is incompatible with string data
|
* @throw std::runtime_error if message ID is incompatible with string data
|
||||||
*/
|
*/
|
||||||
MessagePosition::MessagePosition(MessageID id, Position& pos) {
|
MessagePosition::MessagePosition(MessageID id, Position& pos) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ typedef enum {
|
||||||
MESSAGE_ROBOT_COM_OPEN,
|
MESSAGE_ROBOT_COM_OPEN,
|
||||||
MESSAGE_ROBOT_COM_CLOSE,
|
MESSAGE_ROBOT_COM_CLOSE,
|
||||||
|
|
||||||
// Messages for camera from Monitor to Supervisor
|
// Messages for camera
|
||||||
MESSAGE_CAM_OPEN,
|
MESSAGE_CAM_OPEN,
|
||||||
MESSAGE_CAM_CLOSE,
|
MESSAGE_CAM_CLOSE,
|
||||||
MESSAGE_CAM_ASK_ARENA,
|
MESSAGE_CAM_ASK_ARENA,
|
||||||
|
@ -55,8 +55,6 @@ typedef enum {
|
||||||
MESSAGE_CAM_ARENA_INFIRM,
|
MESSAGE_CAM_ARENA_INFIRM,
|
||||||
MESSAGE_CAM_POSITION_COMPUTE_START,
|
MESSAGE_CAM_POSITION_COMPUTE_START,
|
||||||
MESSAGE_CAM_POSITION_COMPUTE_STOP,
|
MESSAGE_CAM_POSITION_COMPUTE_STOP,
|
||||||
|
|
||||||
// Messages for camera from Supervisor to Monitor
|
|
||||||
MESSAGE_CAM_POSITION,
|
MESSAGE_CAM_POSITION,
|
||||||
MESSAGE_CAM_IMAGE,
|
MESSAGE_CAM_IMAGE,
|
||||||
|
|
||||||
|
@ -501,14 +499,7 @@ protected:
|
||||||
* Message class for holding battery level, based on Message class
|
* Message class for holding battery level, based on Message class
|
||||||
*
|
*
|
||||||
* @brief Battery message class
|
* @brief Battery message class
|
||||||
* How to use:
|
*
|
||||||
* 1. Ask the battery level to the robot:
|
|
||||||
* MessageBattery * msg;
|
|
||||||
* msg = (MessageBattery*)robot.Write(new Message(MESSAGE_ROBOT_BATTERY_GET));
|
|
||||||
* 2. Send the message, for example:
|
|
||||||
* monitor.send(msg);
|
|
||||||
* or
|
|
||||||
* WriteInQueue(&q_messageToMon, msg);
|
|
||||||
*/
|
*/
|
||||||
class MessageBattery : public Message {
|
class MessageBattery : public Message {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
Tasks tasks;
|
Tasks tasks;
|
||||||
|
|
||||||
|
|
||||||
//Lock the memory to avoid memory swapping for this program
|
//Lock the memory to avoid memory swapping for this program
|
||||||
mlockall(MCL_CURRENT | MCL_FUTURE);
|
mlockall(MCL_CURRENT | MCL_FUTURE);
|
||||||
|
|
||||||
|
@ -37,8 +38,13 @@ int main(int argc, char **argv) {
|
||||||
cout<<"#################################"<<endl;
|
cout<<"#################################"<<endl;
|
||||||
|
|
||||||
tasks.Init();
|
tasks.Init();
|
||||||
|
|
||||||
|
if (tasks.AcceptClient()) {
|
||||||
|
cout << "Rock'n'Roll baby, client accepted!"<<endl<<flush;
|
||||||
tasks.Run();
|
tasks.Run();
|
||||||
|
|
||||||
tasks.Join();
|
tasks.Join();
|
||||||
|
}
|
||||||
|
|
||||||
tasks.Stop();
|
tasks.Stop();
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ OBJECTFILES= \
|
||||||
${OBJECTDIR}/lib/img.o \
|
${OBJECTDIR}/lib/img.o \
|
||||||
${OBJECTDIR}/lib/messages.o \
|
${OBJECTDIR}/lib/messages.o \
|
||||||
${OBJECTDIR}/main.o \
|
${OBJECTDIR}/main.o \
|
||||||
${OBJECTDIR}/tasks.o
|
${OBJECTDIR}/tasks_pthread.o
|
||||||
|
|
||||||
|
|
||||||
# C Compiler Flags
|
# C Compiler Flags
|
||||||
|
@ -104,10 +104,10 @@ ${OBJECTDIR}/main.o: main.cpp
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/tasks.o: tasks.cpp
|
${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp
|
||||||
|
|
||||||
# Subprojects
|
# Subprojects
|
||||||
.build-subprojects:
|
.build-subprojects:
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a -pre and a -post target defined where you can add customized code.
|
||||||
|
#
|
||||||
|
# This makefile implements configuration specific macros and targets.
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
GREP=grep
|
||||||
|
NM=nm
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
RANLIB=ranlib
|
||||||
|
CC=gcc
|
||||||
|
CCC=g++
|
||||||
|
CXX=g++
|
||||||
|
FC=gfortran
|
||||||
|
AS=as
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
CND_CONF=JPO2019_RPI_
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
|
||||||
|
# Include project Makefile
|
||||||
|
include ./Makefile
|
||||||
|
|
||||||
|
# Object Directory
|
||||||
|
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
|
||||||
|
# Object Files
|
||||||
|
OBJECTFILES= \
|
||||||
|
${OBJECTDIR}/lib/base64/base64.o \
|
||||||
|
${OBJECTDIR}/lib/camera.o \
|
||||||
|
${OBJECTDIR}/lib/commonitor.o \
|
||||||
|
${OBJECTDIR}/lib/comrobot.o \
|
||||||
|
${OBJECTDIR}/lib/img.o \
|
||||||
|
${OBJECTDIR}/lib/messages.o \
|
||||||
|
${OBJECTDIR}/main.o \
|
||||||
|
${OBJECTDIR}/tasks_pthread.o
|
||||||
|
|
||||||
|
|
||||||
|
# C Compiler Flags
|
||||||
|
CFLAGS=-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy
|
||||||
|
|
||||||
|
# CC Compiler Flags
|
||||||
|
CCFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 -pg
|
||||||
|
CXXFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 -pg
|
||||||
|
|
||||||
|
# Fortran Compiler Flags
|
||||||
|
FFLAGS=
|
||||||
|
|
||||||
|
# Assembler Flags
|
||||||
|
ASFLAGS=
|
||||||
|
|
||||||
|
# Link Libraries and Options
|
||||||
|
LDLIBSOPTIONS=`pkg-config --libs opencv` -lraspicam_cv -lraspicam
|
||||||
|
|
||||||
|
# Build Targets
|
||||||
|
.build-conf: ${BUILD_SUBPROJECTS}
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES}
|
||||||
|
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -Wl,--no-as-needed -lpthread -lrt -pg
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/camera.o: lib/camera.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/img.o: lib/img.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/lib/messages.o: lib/messages.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/main.o: main.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.build-subprojects:
|
||||||
|
|
||||||
|
# Clean Targets
|
||||||
|
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||||
|
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.clean-subprojects:
|
||||||
|
|
||||||
|
# Enable dependency checking
|
||||||
|
.dep.inc: .depcheck-impl
|
||||||
|
|
||||||
|
include .dep.inc
|
|
@ -31,7 +31,7 @@ DEFAULTCONF=Debug__PC_
|
||||||
CONF=${DEFAULTCONF}
|
CONF=${DEFAULTCONF}
|
||||||
|
|
||||||
# All Configurations
|
# All Configurations
|
||||||
ALLCONFS=Debug__PC_ Debug__RPI_
|
ALLCONFS=Debug__PC_ Debug__RPI_ JPO2019_RPI_
|
||||||
|
|
||||||
|
|
||||||
# build
|
# build
|
||||||
|
|
|
@ -22,6 +22,14 @@ CND_ARTIFACT_PATH_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/superviseur-robot
|
||||||
CND_PACKAGE_DIR_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package
|
CND_PACKAGE_DIR_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package
|
||||||
CND_PACKAGE_NAME_Debug__RPI_=superviseur-robot.tar
|
CND_PACKAGE_NAME_Debug__RPI_=superviseur-robot.tar
|
||||||
CND_PACKAGE_PATH_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package/superviseur-robot.tar
|
CND_PACKAGE_PATH_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package/superviseur-robot.tar
|
||||||
|
# JPO2019_RPI_ configuration
|
||||||
|
CND_PLATFORM_JPO2019_RPI_=GNU-Linux
|
||||||
|
CND_ARTIFACT_DIR_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux
|
||||||
|
CND_ARTIFACT_NAME_JPO2019_RPI_=superviseur-robot
|
||||||
|
CND_ARTIFACT_PATH_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/superviseur-robot
|
||||||
|
CND_PACKAGE_DIR_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/package
|
||||||
|
CND_PACKAGE_NAME_JPO2019_RPI_=superviseur-robot.tar
|
||||||
|
CND_PACKAGE_PATH_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/package/superviseur-robot.tar
|
||||||
#
|
#
|
||||||
# include compiler specific variables
|
# include compiler specific variables
|
||||||
#
|
#
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
TOP=`pwd`
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_CONF=JPO2019_RPI_
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||||
|
TMPDIRNAME=tmp-packaging
|
||||||
|
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot
|
||||||
|
OUTPUT_BASENAME=superviseur-robot
|
||||||
|
PACKAGE_TOP_DIR=superviseur-robot/
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function checkReturnCode
|
||||||
|
{
|
||||||
|
rc=$?
|
||||||
|
if [ $rc != 0 ]
|
||||||
|
then
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function makeDirectory
|
||||||
|
# $1 directory path
|
||||||
|
# $2 permission (optional)
|
||||||
|
{
|
||||||
|
mkdir -p "$1"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$2" != "" ]
|
||||||
|
then
|
||||||
|
chmod $2 "$1"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function copyFileToTmpDir
|
||||||
|
# $1 from-file path
|
||||||
|
# $2 to-file path
|
||||||
|
# $3 permission
|
||||||
|
{
|
||||||
|
cp "$1" "$2"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$3" != "" ]
|
||||||
|
then
|
||||||
|
chmod $3 "$2"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
cd "${TOP}"
|
||||||
|
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
|
mkdir -p ${NBTMPDIR}
|
||||||
|
|
||||||
|
# Copy files and create directories and links
|
||||||
|
cd "${TOP}"
|
||||||
|
makeDirectory "${NBTMPDIR}/superviseur-robot/bin"
|
||||||
|
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||||
|
|
||||||
|
|
||||||
|
# Generate tar file
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar
|
||||||
|
cd ${NBTMPDIR}
|
||||||
|
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar *
|
||||||
|
checkReturnCode
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -rf ${NBTMPDIR}
|
|
@ -11,6 +11,7 @@
|
||||||
<itemPath>./lib/img.h</itemPath>
|
<itemPath>./lib/img.h</itemPath>
|
||||||
<itemPath>./lib/messages.h</itemPath>
|
<itemPath>./lib/messages.h</itemPath>
|
||||||
<itemPath>./tasks.h</itemPath>
|
<itemPath>./tasks.h</itemPath>
|
||||||
|
<itemPath>./tasks_pthread.h</itemPath>
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
<logicalFolder name="ResourceFiles"
|
<logicalFolder name="ResourceFiles"
|
||||||
displayName="Resource Files"
|
displayName="Resource Files"
|
||||||
|
@ -28,6 +29,7 @@
|
||||||
<itemPath>./main.cpp</itemPath>
|
<itemPath>./main.cpp</itemPath>
|
||||||
<itemPath>./lib/messages.cpp</itemPath>
|
<itemPath>./lib/messages.cpp</itemPath>
|
||||||
<itemPath>./tasks.cpp</itemPath>
|
<itemPath>./tasks.cpp</itemPath>
|
||||||
|
<itemPath>./tasks_pthread.cpp</itemPath>
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
<logicalFolder name="TestFiles"
|
<logicalFolder name="TestFiles"
|
||||||
displayName="Test Files"
|
displayName="Test Files"
|
||||||
|
@ -113,6 +115,8 @@
|
||||||
</item>
|
</item>
|
||||||
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||||
</item>
|
</item>
|
||||||
|
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
</conf>
|
</conf>
|
||||||
<conf name="Debug__RPI_" type="1">
|
<conf name="Debug__RPI_" type="1">
|
||||||
<toolsSet>
|
<toolsSet>
|
||||||
|
@ -180,10 +184,87 @@
|
||||||
</item>
|
</item>
|
||||||
<item path="./main.cpp" ex="false" tool="1" flavor2="0">
|
<item path="./main.cpp" ex="false" tool="1" flavor2="0">
|
||||||
</item>
|
</item>
|
||||||
<item path="./tasks.cpp" ex="false" tool="1" flavor2="0">
|
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
</conf>
|
||||||
|
<conf name="JPO2019_RPI_" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<compilerSet>GNU|GNU</compilerSet>
|
||||||
|
<dependencyChecking>true</dependencyChecking>
|
||||||
|
<rebuildPropChanged>false</rebuildPropChanged>
|
||||||
|
</toolsSet>
|
||||||
|
<compileType>
|
||||||
|
<cTool>
|
||||||
|
<incDir>
|
||||||
|
<pElem>./</pElem>
|
||||||
|
<pElem>./lib</pElem>
|
||||||
|
<pElem>/usr/xenomai/include</pElem>
|
||||||
|
<pElem>/usr/xenomai/include/mercury</pElem>
|
||||||
|
</incDir>
|
||||||
|
<commandLine>-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy</commandLine>
|
||||||
|
</cTool>
|
||||||
|
<ccTool>
|
||||||
|
<standard>8</standard>
|
||||||
|
<incDir>
|
||||||
|
<pElem>./</pElem>
|
||||||
|
<pElem>./lib</pElem>
|
||||||
|
</incDir>
|
||||||
|
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 -pg</commandLine>
|
||||||
|
<preprocessorList>
|
||||||
|
<Elem>_WITH_TRACE_</Elem>
|
||||||
|
<Elem>__WITH_ARUCO__</Elem>
|
||||||
|
<Elem>__WITH_PTHREAD__</Elem>
|
||||||
|
</preprocessorList>
|
||||||
|
</ccTool>
|
||||||
|
<linkerTool>
|
||||||
|
<linkerLibItems>
|
||||||
|
<linkerOptionItem>`pkg-config --libs opencv`</linkerOptionItem>
|
||||||
|
<linkerLibLibItem>raspicam_cv</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>raspicam</linkerLibLibItem>
|
||||||
|
</linkerLibItems>
|
||||||
|
<commandLine>-Wl,--no-as-needed -lpthread -lrt -pg</commandLine>
|
||||||
|
</linkerTool>
|
||||||
|
</compileType>
|
||||||
|
<item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/camera.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/img.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/img.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/messages.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./lib/messages.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="./main.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./tasks.cpp" ex="true" tool="1" flavor2="8">
|
||||||
</item>
|
</item>
|
||||||
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||||
</item>
|
</item>
|
||||||
|
<item path="./tasks_pthread.cpp" ex="false" tool="1" flavor2="8">
|
||||||
|
</item>
|
||||||
|
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
</conf>
|
</conf>
|
||||||
</confs>
|
</confs>
|
||||||
</configurationDescriptor>
|
</configurationDescriptor>
|
||||||
|
|
|
@ -5,3 +5,4 @@
|
||||||
#
|
#
|
||||||
# Debug__PC_ configuration
|
# Debug__PC_ configuration
|
||||||
# Debug__RPI_ configuration
|
# Debug__RPI_ configuration
|
||||||
|
# JPO2019_RPI_ configuration
|
||||||
|
|
|
@ -41,7 +41,40 @@
|
||||||
</conf>
|
</conf>
|
||||||
<conf name="Debug__RPI_" type="1">
|
<conf name="Debug__RPI_" type="1">
|
||||||
<toolsSet>
|
<toolsSet>
|
||||||
<developmentServer>pi@10.105.1.07:22</developmentServer>
|
<developmentServer>pi@10.105.1.11:22</developmentServer>
|
||||||
|
<platform>2</platform>
|
||||||
|
</toolsSet>
|
||||||
|
<dbx_gdbdebugger version="1">
|
||||||
|
<gdb_pathmaps>
|
||||||
|
</gdb_pathmaps>
|
||||||
|
<gdb_interceptlist>
|
||||||
|
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||||
|
</gdb_interceptlist>
|
||||||
|
<gdb_options>
|
||||||
|
<DebugOptions>
|
||||||
|
</DebugOptions>
|
||||||
|
</gdb_options>
|
||||||
|
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||||
|
</dbx_gdbdebugger>
|
||||||
|
<nativedebugger version="1">
|
||||||
|
<engine>gdb</engine>
|
||||||
|
</nativedebugger>
|
||||||
|
<runprofile version="9">
|
||||||
|
<runcommandpicklist>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||||
|
</runcommandpicklist>
|
||||||
|
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||||
|
<rundir></rundir>
|
||||||
|
<buildfirst>true</buildfirst>
|
||||||
|
<terminal-type>0</terminal-type>
|
||||||
|
<remove-instrumentation>0</remove-instrumentation>
|
||||||
|
<environment>
|
||||||
|
</environment>
|
||||||
|
</runprofile>
|
||||||
|
</conf>
|
||||||
|
<conf name="JPO2019_RPI_" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<developmentServer>pi@10.105.1.11:22</developmentServer>
|
||||||
<platform>2</platform>
|
<platform>2</platform>
|
||||||
</toolsSet>
|
</toolsSet>
|
||||||
<dbx_gdbdebugger version="1">
|
<dbx_gdbdebugger version="1">
|
||||||
|
|
|
@ -2,16 +2,21 @@
|
||||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||||
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||||
<activeConfTypeElem>1</activeConfTypeElem>
|
<activeConfTypeElem>1</activeConfTypeElem>
|
||||||
<activeConfIndexElem>1</activeConfIndexElem>
|
<activeConfIndexElem>2</activeConfIndexElem>
|
||||||
</data>
|
</data>
|
||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
<file>file:/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/messages.h</file>
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp</file>
|
||||||
<file>file:/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.cpp</file>
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp</file>
|
||||||
<file>file:/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.cpp</file>
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h</file>
|
||||||
<file>file:/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.h</file>
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h</file>
|
||||||
<file>file:/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.h</file>
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</file>
|
||||||
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp</file>
|
||||||
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</file>
|
||||||
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp</file>
|
||||||
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h</file>
|
||||||
|
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp</file>
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
</project-private>
|
</project-private>
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#Wed Mar 17 12:14:13 CET 2021
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/messages.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/superviseur.doxygen=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/project.xml=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/img.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/.gitignore=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.h=c1615975893000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/.gitignore=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/commonitor.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/.dep.inc=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1615800255000
|
|
||||||
VERSION=1.3
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/Makefile=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/img.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/base64.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.cpp=c1615979649000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/camera.h=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/messages.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/README.md=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/README.md=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/main.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/gdbsudo.sh=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/camera.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1615800255000
|
|
||||||
/home/gallois/Documents/insa4/S2/robot/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/project.properties=c1615800255000
|
|
|
@ -0,0 +1,456 @@
|
||||||
|
#Thu Jan 24 17:03:52 CET 2019
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__coll__graph.md5=c1547564861000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/searchdata.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_8.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.png=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.md5=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1542120848000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/nomatches.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.map=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.png=c1547564769000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_camera.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_d.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur.doxygen=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.pdf=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1547735187000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.md5=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1547735187000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreedata.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherits.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.md5=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/CMakeLists.txt=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.map=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/files.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_7.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.png=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtree.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.map=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_h.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_7.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreeindex0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__coll__graph.pdf=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_off.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/videoExample.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.pdf=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.pdf=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_g.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__inherit__graph.pdf=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.md5=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.md5=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/splitbar.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/rtvideoExample.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/uiExample.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/hierarchy.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_8.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.md5=c1547564768000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_f.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1548257243000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/close.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.map=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1548257528000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/Makefile=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.map=c1547564769000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dynsections.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_r.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.md5=c1547564861000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_h.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.map=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_d.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.pdf=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderclosed.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doc.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated_dup.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.png=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menu.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_type.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/xenomai/tasks.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_96aba1edb3024c67427e5e41410f3c29.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.h=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_arena.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_s.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/xenomai/tasks.h=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_img.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_on.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialExample.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_enum.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.map=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_m.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_func.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/jquery.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtree.css=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-JPO2019_RPI_.mk=c1548345603000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_defs.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.png=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.md5=c1547564861000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_l.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1548345810000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_97aefd0d527b934f1d99a682da8fe6a9.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialTest.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_b.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.png=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h_source.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.map=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/mag_sel.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_eval.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_func.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/resize.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/open.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_vars.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1547735186000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_a.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.png=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/struct_position.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1548345823000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_robot.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/closed.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serverTest.cpp=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/index.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.md5=c1547564861000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/.gitignore=c1547736477000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menudata.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot-members.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.map=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-JPO2019_RPI_.bash=c1548321303000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.css=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.map=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.png=c1547560340000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565563000
|
||||||
|
VERSION=1.3
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/robot-icon.resized.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.md5=c1547564949000
|
|
@ -1,4 +1,4 @@
|
||||||
#Fri Feb 08 17:01:19 CET 2019
|
#Thu Jan 17 13:32:55 CET 2019
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h_source.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h_source.html=c1547565563000
|
||||||
|
@ -19,7 +19,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/nomatches.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/nomatches.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string-members.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.map=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.map=c1547564949000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000
|
||||||
|
@ -36,18 +35,15 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/uiExample.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.md5=c1547563913000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.md5=c1547563913000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1547717148000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1547717148000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreedata.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreedata.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.map=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.map=c1547560340000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/rtvideoExample.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.cpp=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.cpp=c1544778298000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherits.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherits.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/CMakeLists.txt=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/CMakeLists.txt=c1542120848000
|
||||||
|
@ -78,7 +74,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/.gitignore=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.html=c1547565563000
|
||||||
|
@ -116,7 +111,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.pdf=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.pdf=c1547564949000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.pdf=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.pdf=c1547560340000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.html=c1547565563000
|
||||||
|
@ -126,13 +120,9 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1547728285000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1547728285000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_g.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_g.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1549622533000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1547728293000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1547728293000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/img.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1548424346000
|
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialTest.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.html=c1547565563000
|
||||||
|
@ -141,7 +131,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.map=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.map=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.md5=c1547563913000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.md5=c1547563913000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.md5=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.md5=c1547564949000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.map=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.map=c1547560340000
|
||||||
|
@ -166,16 +155,13 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_f.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_f.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1547565649000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1547565649000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/CMakeLists.txt=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/close.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/close.png=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1548424347000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.map=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.map=c1547564949000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1518398687000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1518398687000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565563000
|
||||||
|
@ -185,11 +171,9 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1544778298000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.pdf=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1544797217000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1544797217000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug.bash=c1544780526000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug.bash=c1544780526000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Release.mk=c1542104029000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Release.mk=c1542104029000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.h=c1549641678000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/Makefile=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/Makefile=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565563000
|
||||||
|
@ -207,7 +191,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_h.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_h.png=c1547565563000
|
||||||
|
@ -215,21 +198,16 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena-members.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/superviseur.doxygen=c1548424347000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.h=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.md5=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk=c1547717055000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk=c1547717055000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.map=c1547564862000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.map=c1547564862000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.js=c1547565563000
|
||||||
|
@ -265,7 +243,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.png=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.map=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.map=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1547728371000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1547728371000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1547565126000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1547565126000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1544778298000
|
||||||
|
@ -275,7 +252,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/ProjDestijl.cbp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/ProjDestijl.cbp=c1542120848000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doc.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doc.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.digi.xctung.prefs=c1547722800000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.digi.xctung.prefs=c1547722800000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.js=c1547565563000
|
||||||
|
@ -296,7 +272,6 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1546527039000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1546527039000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1547717999000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1547717999000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/main.cpp=c1549276684000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menu.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menu.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_type.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_type.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560339000
|
||||||
|
@ -305,51 +280,44 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.map=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.map=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h_source.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h_source.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_96aba1edb3024c67427e5e41410f3c29.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_96aba1edb3024c67427e5e41410f3c29.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.cpp=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.cpp=c1544778298000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.map=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.map=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.md5=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/.gitignore=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash=c1546855871000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash=c1546855871000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.pdf=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialTest.cpp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialTest.cpp=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_arena.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_arena.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.pdf=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_s.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_s.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h_source.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h_source.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_img.tex=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.map=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.map=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_img.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_on.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1518398687000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1518398687000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1548424346000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_on.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialExample.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/compile_commands.json=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/compile_commands.json=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/videoExample.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread_.bash=c1545062469000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread_.bash=c1545062469000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.png=c1547560339000
|
||||||
|
@ -362,12 +330,11 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1547564899000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1547564899000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_enum.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_enum.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1546526752000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1546526752000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string.tex=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.map=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.map=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_m.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_m.png=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_func.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_func.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/jquery.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/jquery.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.js=c1547565563000
|
||||||
|
@ -375,30 +342,25 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1547564761000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1547564761000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serverTest.cpp=c1548953827000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_defs.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_defs.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.png=c1547564862000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.png=c1547564862000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1548424346000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.pdf=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.pdf=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.map=c1547560339000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.map=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1544778298000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1518398687000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1518398687000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/.dep.inc=c1548953904000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.md5=c1547564861000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.md5=c1547564861000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/README.md=c1548424346000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_l.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_l.png=c1547565563000
|
||||||
|
@ -406,88 +368,86 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serverTest.cpp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serverTest.cpp=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1546961074000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1546961074000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_97aefd0d527b934f1d99a682da8fe6a9.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_97aefd0d527b934f1d99a682da8fe6a9.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h.tex=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_b.png=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.png=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.png=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_b.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h_source.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h_source.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.map=c1547564862000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.map=c1547564862000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.png=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.png=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/mag_sel.png=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_eval.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_eval.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/mag_sel.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.pdf=c1547560339000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.pdf=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.png=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs=c1547721237000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs=c1547721237000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_func.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/resize.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/resize.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/open.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_func.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/open.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.png=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialExample.cpp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialExample.cpp=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/CMakeLists.txt=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/CMakeLists.txt=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_vars.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_vars.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/gdbsudo.sh=c1541685829000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/gdbsudo.sh=c1541685829000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/rtvideoExample.cpp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/rtvideoExample.cpp=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1547716000000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1547716000000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1518398687000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1518398687000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_a.png=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.png=c1547563913000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.png=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_a.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Release.bash=c1544780526000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Release.bash=c1544780526000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.js=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/struct_position.tex=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563913000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563913000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/struct_position.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.cpp=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.cpp=c1544778298000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/uiExample.cpp=c1542120848000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/uiExample.cpp=c1542120848000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1547195899000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1547195899000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.png=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.png=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk=c1547649766000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk=c1547649766000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi=c1547722800000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi=c1547722800000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1546855871000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1546855871000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.html=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_robot.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_robot.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.html=c1547565563000
|
||||||
|
@ -497,54 +457,48 @@
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.map=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.map=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.png=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.png=c1547560340000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery.tex=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1549641580000
|
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.md5=c1547560339000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.html=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/closed.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/closed.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk=c1547649766000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1546855871000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1546855871000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk=c1547649766000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/index.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/index.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.cpp=c1544778298000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.cpp=c1544778298000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.md5=c1547564861000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.md5=c1547564861000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menudata.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menudata.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot-members.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/.gitignore=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/.gitignore=c1542120848000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot-members.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.map=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.map=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.md5=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.md5=c1547560339000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/Makefile=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.css=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.css=c1547565563000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/videoExample.cpp=c1542120848000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/videoExample.cpp=c1542120848000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.png=c1547560339000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.png=c1547560339000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.js=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.js=c1547565563000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.map=c1547564862000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.map=c1547564862000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.png=c1547560340000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.png=c1547560340000
|
||||||
/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1548424346000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565563000
|
||||||
VERSION=1.3
|
VERSION=1.3
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/robot-icon.resized.png=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/robot-icon.resized.png=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs=c1547722800000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs=c1547722800000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.html=c1547565563000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.js=c1547565563000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.js=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.html=c1547565563000
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1544778298000
|
|
||||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.md5=c1547564949000
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.md5=c1547564949000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1544778298000
|
||||||
|
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#Fri Feb 26 10:29:03 CET 2021
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/README.md=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/project.xml=c1614324902000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/commonitor.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/messages.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/base64.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/.dep.inc=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/.gitignore=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/.gitignore=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/messages.cpp=c1614324901000
|
|
||||||
VERSION=1.3
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/img.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/img.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.cpp=c1614331741000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/Makefile=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/camera.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.h=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/README.md=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/project.properties=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/main.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/superviseur.doxygen=c1614324902000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/gdbsudo.sh=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/tasks.h=c1614329334000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1614324901000
|
|
||||||
/home/alartigu/Bureau/Temps_Reel_Robot/software/raspberry/superviseur-robot/lib/camera.cpp=c1614324901000
|
|
|
@ -21,6 +21,10 @@
|
||||||
<name>Debug__RPI_</name>
|
<name>Debug__RPI_</name>
|
||||||
<type>1</type>
|
<type>1</type>
|
||||||
</confElem>
|
</confElem>
|
||||||
|
<confElem>
|
||||||
|
<name>JPO2019_RPI_</name>
|
||||||
|
<type>1</type>
|
||||||
|
</confElem>
|
||||||
</confList>
|
</confList>
|
||||||
<formatting>
|
<formatting>
|
||||||
<project-formatting-style>false</project-formatting-style>
|
<project-formatting-style>false</project-formatting-style>
|
||||||
|
|
|
@ -21,15 +21,11 @@
|
||||||
// Déclaration des priorités des taches
|
// Déclaration des priorités des taches
|
||||||
#define PRIORITY_TSERVER 30
|
#define PRIORITY_TSERVER 30
|
||||||
#define PRIORITY_TOPENCOMROBOT 20
|
#define PRIORITY_TOPENCOMROBOT 20
|
||||||
#define PRIORITY_TMOVE 20
|
#define PRIORITY_TMOVE 10
|
||||||
#define PRIORITY_TSENDTOMON 22
|
#define PRIORITY_TSENDTOMON 22
|
||||||
#define PRIORITY_TRECEIVEFROMMON 25
|
#define PRIORITY_TRECEIVEFROMMON 25
|
||||||
#define PRIORITY_TSTARTROBOT 20
|
#define PRIORITY_TSTARTROBOT 20
|
||||||
#define PRIORITY_TCAMERA 21
|
#define PRIORITY_TCAMERA 21
|
||||||
#define PRIORITY_TBATTERY 19
|
|
||||||
#define PRIORITY_TWATCHDOG 31
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some remarks:
|
* Some remarks:
|
||||||
|
@ -61,14 +57,6 @@ void Tasks::Init() {
|
||||||
/**************************************************************************************/
|
/**************************************************************************************/
|
||||||
/* Mutex creation */
|
/* Mutex creation */
|
||||||
/**************************************************************************************/
|
/**************************************************************************************/
|
||||||
if (err = rt_mutex_create(&mutex_monitor, NULL)) {
|
|
||||||
cerr << "Error mutex create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_mutex_create(&mutex_robot, NULL)) {
|
|
||||||
cerr << "Error mutex create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_mutex_create(&mutex_robotStarted, NULL)) {
|
if (err = rt_mutex_create(&mutex_robotStarted, NULL)) {
|
||||||
cerr << "Error mutex create: " << strerror(-err) << endl << flush;
|
cerr << "Error mutex create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
@ -98,14 +86,6 @@ void Tasks::Init() {
|
||||||
cerr << "Error semaphore create: " << strerror(-err) << endl << flush;
|
cerr << "Error semaphore create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (err = rt_sem_create(&sem_restartServer, NULL, 0, S_FIFO)) {
|
|
||||||
cerr << "Error semaphore create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_sem_create(&sem_robotStopped, NULL, 0, S_FIFO)) {
|
|
||||||
cerr << "Error semaphore create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
cout << "Semaphores created successfully" << endl << flush;
|
cout << "Semaphores created successfully" << endl << flush;
|
||||||
|
|
||||||
/**************************************************************************************/
|
/**************************************************************************************/
|
||||||
|
@ -115,11 +95,11 @@ void Tasks::Init() {
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (err = rt_task_create(&th_sendToMon, "th_sendToMon", 0, PRIORITY_TSENDTOMON, 0)) {
|
if (err = rt_task_create(&th_receiveFromMon, "th_receiveFromMon", 0, PRIORITY_TRECEIVEFROMMON, 0)) {
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (err = rt_task_create(&th_receiveFromMon, "th_receiveFromMon", 0, PRIORITY_TRECEIVEFROMMON, 0)) {
|
if (err = rt_task_create(&th_sendToMon, "th_sendToMon", 0, PRIORITY_TSENDTOMON, 0)) {
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -135,11 +115,7 @@ void Tasks::Init() {
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (err = rt_task_create(&th_getBattery, "th_getBattery", 0, PRIORITY_TBATTERY, 0)) {
|
if (err = rt_task_create(&th_camera, "th_camera", 0, PRIORITY_TCAMERA, 0)) {
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_create(&th_watchDog, "th_watchDog", 0, PRIORITY_TWATCHDOG, 0)) {
|
|
||||||
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
cerr << "Error task create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -152,62 +128,50 @@ void Tasks::Init() {
|
||||||
cerr << "Error msg queue create: " << strerror(-err) << endl << flush;
|
cerr << "Error msg queue create: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if ((err = rt_queue_create(&q_messageComRobot, "q_messageComRobot", sizeof (Message*)*50, Q_UNLIMITED, Q_FIFO)) < 0) {
|
|
||||||
cerr << "Error messageComRobot queue create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((err = rt_queue_create(&q_messageControlRobot, "q_messageControlRobot", sizeof (Message*)*50, Q_UNLIMITED, Q_FIFO)) < 0) {
|
|
||||||
cerr << "Error messageControlRobot queue create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((err = rt_queue_create(&q_messageControlCam, "q_messageControlCam", sizeof (Message*)*50, Q_UNLIMITED, Q_FIFO)) < 0) {
|
|
||||||
cerr << "Error messageControlCam queue create: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
cout << "Queues created successfully" << endl << flush;
|
cout << "Queues created successfully" << endl << flush;
|
||||||
|
|
||||||
|
/* Open com port with STM32 */
|
||||||
|
cout << "Open serial com (";
|
||||||
|
status = robot.Open();
|
||||||
|
cout << status;
|
||||||
|
cout << ")" << endl;
|
||||||
|
|
||||||
|
if (status >= 0) {
|
||||||
|
// Open server
|
||||||
|
|
||||||
|
status = monitor.Open(SERVER_PORT);
|
||||||
|
cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl;
|
||||||
|
|
||||||
|
if (status < 0) throw std::runtime_error {
|
||||||
|
"Unable to start server on port " + std::to_string(SERVER_PORT)
|
||||||
|
};
|
||||||
|
} else
|
||||||
|
throw std::runtime_error {
|
||||||
|
"Unable to open serial port /dev/ttyS0 "
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Démarrage des tâches
|
* @brief Démarrage des tâches
|
||||||
*/
|
*/
|
||||||
void Tasks::Run() {
|
void Tasks::Run() {
|
||||||
rt_task_set_priority(NULL, T_LOPRIO);
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (err = rt_task_start(&th_server, (void(*)(void*)) & Tasks::ServerTask, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_sendToMon, (void(*)(void*)) & Tasks::SendToMonTask, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_receiveFromMon, (void(*)(void*)) & Tasks::ReceiveFromMonTask, this)) {
|
if (err = rt_task_start(&th_receiveFromMon, (void(*)(void*)) & Tasks::ReceiveFromMonTask, this)) {
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (err = rt_task_start(&th_openComRobot, (void(*)(void*)) & Tasks::OpenComRobot, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
if (err = rt_task_start(&th_camera, (void(*)(void*)) & Tasks::CameraTask, this)) {
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_startRobot, (void(*)(void*)) & Tasks::StartRobotTask, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_move, (void(*)(void*)) & Tasks::MoveTask, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_getBattery, (void(*)(void*)) & Tasks::ReadBattery, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (err = rt_task_start(&th_watchDog, (void(*)(void*)) & Tasks::WatchDog, this)) {
|
|
||||||
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
cerr << "Error task start: " << strerror(-err) << endl << flush;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (err = rt_task_start(&th_sendToMon, (void(*)(void*)) & Tasks::SendToMonTask, this)) {
|
||||||
|
// cerr << "Error task start: " << strerror(-err) << endl << flush;
|
||||||
|
// exit(EXIT_FAILURE);
|
||||||
|
// }
|
||||||
|
|
||||||
cout << "Tasks launched" << endl << flush;
|
cout << "Tasks launched" << endl << flush;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,333 +186,167 @@ void Tasks::Stop() {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
void Tasks::Join() {
|
void Tasks::Join() {
|
||||||
cout << "Tasks synchronized" << endl << flush;
|
|
||||||
rt_sem_broadcast(&sem_barrier);
|
rt_sem_broadcast(&sem_barrier);
|
||||||
pause();
|
pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Thread handling server communication with the monitor.
|
* @brief Thread handling server communication.
|
||||||
*/
|
*/
|
||||||
void Tasks::ServerTask(void *arg) {
|
|
||||||
int status;
|
void Tasks::ReceiveFromMonTask(void *arg) {
|
||||||
|
Message *msgRcv;
|
||||||
|
Message *msgSend;
|
||||||
|
bool isActive = true;
|
||||||
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||||
// Synchronization barrier (waiting that all tasks are started)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
while (isActive) {
|
||||||
/* The task server starts here */
|
msgRcv = NULL;
|
||||||
/**************************************************************************************/
|
msgSend = NULL;
|
||||||
while(1){
|
|
||||||
rt_mutex_acquire(&mutex_monitor, TM_INFINITE);
|
|
||||||
status = monitor.Open(SERVER_PORT);
|
|
||||||
rt_mutex_release(&mutex_monitor);
|
|
||||||
|
|
||||||
cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl;
|
msgRcv = monitor.Read();
|
||||||
|
cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||||
|
|
||||||
if (status < 0) throw std::runtime_error {
|
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_OPEN)) {
|
||||||
"Unable to start server on port " + std::to_string(SERVER_PORT)
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
};
|
isActive = true;
|
||||||
monitor.AcceptClient(); // Wait the monitor client
|
|
||||||
cout << "Rock'n'Roll baby, client accepted!" << endl << flush;
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
rt_sem_broadcast(&sem_serverOk);
|
|
||||||
rt_sem_p(&sem_restartServer, TM_INFINITE);
|
|
||||||
rt_mutex_acquire(&mutex_monitor, TM_INFINITE);
|
|
||||||
monitor.Close();
|
|
||||||
rt_mutex_release(&mutex_monitor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) {
|
||||||
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
|
cout << "isActive = false!" << msgRcv->ToString() << endl << flush;
|
||||||
|
isActive = false;
|
||||||
|
|
||||||
|
delete(msgRcv); // mus be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) {
|
||||||
|
msgSend = robot.Write(msgRcv);
|
||||||
|
cout << "Start with wd answer: " << msgSend->ToString() << endl << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) {
|
||||||
|
msgSend = robot.Write(msgRcv);
|
||||||
|
cout << "Start without wd answer: " << msgSend->ToString() << endl << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_RESET)) {
|
||||||
|
msgSend = robot.Write(msgRcv);
|
||||||
|
cout << "Reset answer: " << msgSend->ToString() << endl << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_GO_FORWARD) ||
|
||||||
|
msgRcv->CompareID(MESSAGE_ROBOT_GO_BACKWARD) ||
|
||||||
|
msgRcv->CompareID(MESSAGE_ROBOT_GO_LEFT) ||
|
||||||
|
msgRcv->CompareID(MESSAGE_ROBOT_GO_RIGHT) ||
|
||||||
|
msgRcv->CompareID(MESSAGE_ROBOT_STOP)) {
|
||||||
|
msgSend = robot.Write(msgRcv);
|
||||||
|
|
||||||
|
cout << "Movement answer: " << msgSend->ToString() << endl << flush;
|
||||||
|
|
||||||
|
if (msgSend->CompareID(MESSAGE_ANSWER_ACK)) {
|
||||||
|
delete (msgSend);
|
||||||
|
msgSend = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) {
|
||||||
|
sendImage = true;
|
||||||
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) {
|
||||||
|
sendImage = false;
|
||||||
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) {
|
||||||
|
sendPosition = true;
|
||||||
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) {
|
||||||
|
sendPosition = false;
|
||||||
|
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) {
|
||||||
|
msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL, BATTERY_FULL);
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA)) {
|
||||||
|
showArena = true;
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM)) {
|
||||||
|
showArena = false;
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM)) {
|
||||||
|
showArena = false;
|
||||||
|
|
||||||
|
delete(msgRcv); // must be deleted manually, no consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgSend != NULL) monitor.Write(msgSend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Thread handling periodic image capture.
|
||||||
|
*/
|
||||||
|
void Tasks::CameraTask(void* arg) {
|
||||||
|
struct timespec tim, tim2;
|
||||||
|
Message *msgSend;
|
||||||
|
int counter;
|
||||||
|
int cntFrame = 0;
|
||||||
|
Position pos;
|
||||||
|
Arena arena;
|
||||||
|
|
||||||
|
tim.tv_sec = 0;
|
||||||
|
tim.tv_nsec = 50000000; // 50ms (20fps)
|
||||||
|
|
||||||
|
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||||
|
|
||||||
|
Camera camera = Camera(sm, 20);
|
||||||
|
cout << "Try opening camera" << endl << flush;
|
||||||
|
if (camera.Open()) cout << "Camera opened successfully" << endl << flush;
|
||||||
|
else {
|
||||||
|
cout << "Failed to open camera" << endl << flush;
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Thread sending data to monitor.
|
* @brief Thread sending data to monitor.
|
||||||
*/
|
*/
|
||||||
void Tasks::SendToMonTask(void* arg) {
|
void Tasks::SendToMonTask(void* arg) {
|
||||||
Message *msg;
|
|
||||||
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task sendToMon starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
|
|
||||||
rt_sem_p(&sem_serverOk, TM_INFINITE);
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
cout << "wait msg to send" << endl << flush;
|
|
||||||
msg = ReadInQueue(&q_messageToMon);
|
|
||||||
cout << "Send msg to mon: " << msg->ToString() << endl << flush;
|
|
||||||
rt_mutex_acquire(&mutex_monitor, TM_INFINITE);
|
|
||||||
monitor.Write(msg); // The message is deleted with the Write
|
|
||||||
rt_mutex_release(&mutex_monitor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Thread receiving data from monitor.
|
|
||||||
*/
|
|
||||||
void Tasks::ReceiveFromMonTask(void *arg) {
|
|
||||||
Message *msgRcv;
|
|
||||||
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task receiveFromMon starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
while(1){
|
|
||||||
rt_sem_p(&sem_serverOk, TM_INFINITE);
|
|
||||||
cout << "Received message from monitor activated" << endl << flush;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
msgRcv = monitor.Read();
|
|
||||||
cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
|
||||||
|
|
||||||
if (msgRcv->CompareID(MESSAGE_MONITOR_LOST)) {
|
|
||||||
delete(msgRcv);
|
|
||||||
WriteInQueue(&q_messageControlRobot, new Message(MESSAGE_ROBOT_RESET));
|
|
||||||
WriteInQueue(&q_messageComRobot, new Message(MESSAGE_ROBOT_COM_CLOSE));
|
|
||||||
WriteInQueue(&q_messageControlCam, new Message(MESSAGE_CAM_CLOSE));
|
|
||||||
rt_sem_v(&sem_restartServer); // A VERIFIER
|
|
||||||
break;
|
|
||||||
|
|
||||||
} else if (msgRcv->CompareID(MESSAGE_ROBOT_COM_OPEN) || msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) {
|
|
||||||
WriteInQueue(&q_messageComRobot, msgRcv);
|
|
||||||
//rt_sem_v(&sem_openComRobot);
|
|
||||||
} else if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD) || msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) {
|
|
||||||
WriteInQueue(&q_messageControlRobot, msgRcv);
|
|
||||||
//rt_sem_v(&sem_startRobot);
|
|
||||||
}
|
|
||||||
else if (msgRcv->CompareID(MESSAGE_ROBOT_GO_FORWARD) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_BACKWARD) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_LEFT) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_RIGHT) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_ROBOT_STOP)) {
|
|
||||||
rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
|
||||||
move = msgRcv->GetID();
|
|
||||||
rt_mutex_release(&mutex_move);
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (msgRcv->CompareID(MESSAGE_CAM_OPEN) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_CLOSE) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START) ||
|
|
||||||
msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP))
|
|
||||||
{
|
|
||||||
WriteInQueue(&q_messageControlCam, msgRcv);
|
|
||||||
}
|
|
||||||
delete(msgRcv); // mus be deleted manually, no consumer
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Thread opening communication with the robot.
|
|
||||||
*/
|
|
||||||
void Tasks::OpenComRobot(void *arg) {
|
|
||||||
int status;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task openComRobot starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
while (1) {
|
|
||||||
Message * msg;
|
|
||||||
msg=ReadInQueue(&q_messageComRobot);
|
|
||||||
if(msg->CompareID(MESSAGE_ROBOT_COM_OPEN)){
|
|
||||||
cout << "Open serial com (";
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
status = robot.Open();
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
cout << status;
|
|
||||||
cout << ")" << endl << flush;
|
|
||||||
|
|
||||||
Message * msgSend;
|
|
||||||
if (status < 0) {
|
|
||||||
msgSend = new Message(MESSAGE_ANSWER_NACK);
|
|
||||||
} else {
|
|
||||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
|
||||||
}
|
|
||||||
WriteInQueue(&q_messageToMon, msgSend); // msgSend will be deleted by sendToMon
|
|
||||||
}else if(msg->CompareID(MESSAGE_ROBOT_COM_CLOSE)){
|
|
||||||
rt_sem_p(&sem_robotStopped, TM_INFINITE);
|
|
||||||
cout << "Close serial com (";
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
status = robot.Close();
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
cout << status;
|
|
||||||
cout << ")" << endl << flush;
|
|
||||||
|
|
||||||
Message * msgSend;
|
|
||||||
if (status < 0) {
|
|
||||||
msgSend = new Message(MESSAGE_ANSWER_NACK);
|
|
||||||
} else {
|
|
||||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
|
||||||
}
|
|
||||||
WriteInQueue(&q_messageToMon, msgSend); // msgSend will be deleted by sendToMon
|
|
||||||
}
|
|
||||||
//delete(msg);
|
|
||||||
//rt_sem_p(&sem_openComRobot, TM_INFINITE);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Thread starting the communication with the robot.
|
|
||||||
*/
|
|
||||||
void Tasks::StartRobotTask(void *arg) {
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task startRobot starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
while (1) {
|
|
||||||
|
|
||||||
Message * tmp;
|
|
||||||
Message * msgSend;
|
|
||||||
tmp = ReadInQueue(&q_messageControlRobot);
|
|
||||||
if (tmp -> CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)){
|
|
||||||
cout << "Start robot without watchdog (";
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
msgSend = robot.Write(robot.StartWithoutWD());
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
cout << msgSend->GetID();
|
|
||||||
cout << ")" << endl;
|
|
||||||
cout << "Movement answer: " << msgSend->ToString() << endl << flush;
|
|
||||||
WriteInQueue(&q_messageToMon, msgSend); // msgSend will be deleted by sendToMon
|
|
||||||
if (msgSend->GetID() == MESSAGE_ANSWER_ACK) {
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
robotStarted = 1;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
}
|
|
||||||
} else if (tmp -> CompareID(MESSAGE_ROBOT_START_WITH_WD)){
|
|
||||||
cout << "Start robot with watchdog (";
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
msgSend = robot.Write(robot.StartWithWD());
|
|
||||||
rt_task_set_periodic(&th_watchDog,TM_NOW,1000000000);
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
cout << msgSend->GetID();
|
|
||||||
cout << ")" << endl;
|
|
||||||
cout << "Movement answer: " << msgSend->ToString() << endl << flush;
|
|
||||||
WriteInQueue(&q_messageToMon, msgSend); // msgSend will be deleted by sendToMon
|
|
||||||
if (msgSend->GetID() == MESSAGE_ANSWER_ACK) {
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
robotStarted = 1;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
} else {
|
|
||||||
rt_task_set_periodic(&th_watchDog,TM_NOW,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (tmp -> CompareID(MESSAGE_ROBOT_RESET)){
|
|
||||||
rt_task_set_periodic(&th_watchDog,TM_NOW,0);
|
|
||||||
cout << "Stopping Robot (";
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
robotStarted = 0;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
rt_task_sleep(100000000);
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
msgSend = robot.Write(robot.Reset());
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
|
||||||
move = MESSAGE_ROBOT_STOP;
|
|
||||||
rt_mutex_release(&mutex_move);
|
|
||||||
cout << msgSend->GetID();
|
|
||||||
cout << ")" << endl;
|
|
||||||
cout << "Movement answer: " << msgSend->ToString() << endl << flush;
|
|
||||||
WriteInQueue(&q_messageToMon, msgSend); // msgSend will be deleted by sendToMon
|
|
||||||
|
|
||||||
rt_sem_v(&sem_robotStopped);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Tasks::WatchDog(void *arg) {
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
rt_task_set_periodic(NULL, TM_NOW, 0);
|
|
||||||
while (1) {
|
|
||||||
cout << "Realoading" << endl << flush;
|
|
||||||
rt_task_wait_period(NULL);
|
|
||||||
Message * msgSend;
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
msgSend = robot.ReloadWD();
|
|
||||||
robot.Write(msgSend);
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Thread handling control of the robot.
|
|
||||||
*/
|
|
||||||
void Tasks::MoveTask(void *arg) {
|
|
||||||
int rs;
|
|
||||||
int previousMove = MESSAGE_ROBOT_GO_FORWARD;
|
|
||||||
int cpMove;
|
|
||||||
int nb_error = 0;
|
|
||||||
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
rt_task_set_periodic(NULL, TM_NOW, 100000000);
|
|
||||||
|
|
||||||
Message * msgSend;
|
|
||||||
while (1) {
|
|
||||||
rt_task_wait_period(NULL);
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
rs = robotStarted;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
if (rs == 1) {
|
|
||||||
cout << "Periodic movement update";
|
|
||||||
rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
|
||||||
cpMove = move;
|
|
||||||
rt_mutex_release(&mutex_move);
|
|
||||||
if (cpMove != previousMove || cpMove != MESSAGE_ROBOT_STOP) {
|
|
||||||
cout << " move: " << cpMove;
|
|
||||||
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
msgSend = robot.Write(new Message((MessageID)cpMove));
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
if (msgSend->CompareID(MESSAGE_ANSWER_ACK)) {
|
|
||||||
nb_error = 0;
|
|
||||||
previousMove = cpMove;
|
|
||||||
} else {
|
|
||||||
nb_error++;
|
|
||||||
}
|
|
||||||
if (nb_error > 2) {
|
|
||||||
cout << "ERREUR ROBOT DETECTED";
|
|
||||||
WriteInQueue(&q_messageToMon, new Message(MESSAGE_ANSWER_COM_ERROR));
|
|
||||||
rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
|
||||||
move = MESSAGE_ROBOT_STOP;
|
|
||||||
rt_mutex_release(&mutex_move);
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
robotStarted = 0;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
rt_task_set_periodic(&th_watchDog,TM_NOW,0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cout << endl << flush;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -557,9 +355,10 @@ void Tasks::MoveTask(void *arg) {
|
||||||
* @param queue Queue identifier
|
* @param queue Queue identifier
|
||||||
* @param msg Message to be stored
|
* @param msg Message to be stored
|
||||||
*/
|
*/
|
||||||
void Tasks::WriteInQueue(RT_QUEUE *queue, Message *msg) {
|
void WriteInQueue(RT_QUEUE &queue, Message *msg) {
|
||||||
int err;
|
int err;
|
||||||
if ((err = rt_queue_write(queue, (const void *) &msg, sizeof ((const void *) &msg), Q_NORMAL)) < 0) {
|
|
||||||
|
if ((err = rt_queue_send(&queue, (const void *) msg, sizeof ((const void *) msg), Q_NORMAL)) < 0) {
|
||||||
cerr << "Write in queue failed: " << strerror(-err) << endl << flush;
|
cerr << "Write in queue failed: " << strerror(-err) << endl << flush;
|
||||||
throw std::runtime_error{"Error in write in queue"};
|
throw std::runtime_error{"Error in write in queue"};
|
||||||
}
|
}
|
||||||
|
@ -570,47 +369,15 @@ void Tasks::WriteInQueue(RT_QUEUE *queue, Message *msg) {
|
||||||
* @param queue Queue identifier
|
* @param queue Queue identifier
|
||||||
* @return Message read
|
* @return Message read
|
||||||
*/
|
*/
|
||||||
Message *Tasks::ReadInQueue(RT_QUEUE *queue) {
|
Message *ReadInQueue(RT_QUEUE &queue) {
|
||||||
int err;
|
int err;
|
||||||
Message *msg;
|
Message *msg;
|
||||||
|
|
||||||
if ((err = rt_queue_read(queue, &msg, sizeof ((void*) &msg), TM_INFINITE)) < 0) {
|
if ((err = rt_queue_read(&queue, (void*) msg, sizeof ((void*) msg), TM_INFINITE)) < 0) {
|
||||||
cout << "Read in queue failed: " << strerror(-err) << endl << flush;
|
cerr << "Write in queue failed: " << strerror(-err) << endl << flush;
|
||||||
throw std::runtime_error{"Error in read in queue"};
|
throw std::runtime_error{"Error in write in queue"};
|
||||||
}/** else {
|
}
|
||||||
cout << "@msg :" << msg << endl << flush;
|
|
||||||
} /**/
|
|
||||||
|
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Tasks::ReadBattery(void *arg){
|
|
||||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
|
||||||
// Synchronization barrier (waiting that all tasks are starting)
|
|
||||||
rt_sem_p(&sem_barrier, TM_INFINITE);
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/* The task starts here */
|
|
||||||
/**************************************************************************************/
|
|
||||||
rt_task_set_periodic(NULL, TM_NOW, 500000000);
|
|
||||||
|
|
||||||
int rs;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
rt_task_wait_period(NULL);
|
|
||||||
rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
|
||||||
rs = robotStarted;
|
|
||||||
rt_mutex_release(&mutex_robotStarted);
|
|
||||||
if (rs == 1) {
|
|
||||||
cout << "Periodic battery get lvl" << endl << flush;
|
|
||||||
rt_mutex_acquire(&mutex_robot, TM_INFINITE);
|
|
||||||
Message *msg = robot.Write( robot.GetBattery() ) ;
|
|
||||||
rt_mutex_release(&mutex_robot);
|
|
||||||
if (msg->CompareID((MessageID)MESSAGE_ROBOT_BATTERY_LEVEL)) {
|
|
||||||
rt_mutex_acquire(&mutex_monitor, TM_INFINITE);
|
|
||||||
monitor.Write(msg);
|
|
||||||
rt_mutex_release(&mutex_monitor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|