[an error occurred while processing this directive]

Aconit, projet Lecteur-USB  (2010,  Miguel Saro, Fabien Le Mentec)  Previous.gif Next.gif 

Mac OSX

Ce chapitre est un "compte-rendu-explication" sur ce qui a été fait. Le projet est prévu pour créer une application appelée "Lecteur" qui fonctionnera sous Mac OSx 10.4 uniquement. Cette application doit être conforme au document "Apple Human Interface Guidelines".

    L'outil de développement
    Le projet d'application
    L'interface graphique
    Schéma symbolique
    Contenu de l'application "Lecteur"
    Fonctionnement
    Les fichiers de code

L'outil de développement

L'outil de développement sous Mac OSX est Xcode.  Jusqu'à récement Xcode était livré avec l'installation du système Mac OSX. Depuis peu, Apple à changé sa relation avec les développeurs. Néanmoins, Xcode peut toujours être obtenu gratuitement après enregistrement chez Apple en tant que développeur.

Les spécificités d'Xcode sont ses outils, les langages utilisés et les bibliothèques livrées par Apple.
Les outils sont munis d'interfaces graphiques et utilisent des outils d'Unix tels que GCC et GDB.
Les langages utilisés sont principalement le C et Objective-C. Objective-C est une extension orientée objet du C.
Les bibliothèques sont généralement dynamiques et encapsulées dans des Frameworks.


Le projet d'application

Sous Xcode le projet de l'application "Lecteur" a été ouvert. Aspect de la fenêtre du projet avec visualisation de la liste des fichiers de code.
 

L'interface graphique

Pour réaliser l'interface graphique on utilise l'outil "Interface builder" de Xcode. Cet outil permet de créer les fenêtres, les boutons, les menus....etc  et de créer des liens entre ces objets graphique et la programmation.



La fenêtre Console est dédiée exclusivement à l'affichage des données, soit sous forme brute (hexadécimal) soit sous forme ASCII après transcodage. Le bouton "Effacer" efface le contenu de la fenêtre et vide le buffer des données lues. Ici, les 80 premiers caractères du code EBCDIC sont représentés en Hexadécimal. La fenêtre console est toujours visible.


Schéma symbolique
Le schéma ci-contre reste très symbolique et permet d'expliquer le fonctionnement envisagé.

Le rectangle du haut représente le programme "Lecteur" exécutable sur un Mac équipé de MacOS 10.4.

Le rectangle du bas représente le lecteur de cartes perforées.
Le micro-contrôleur PIC18F4550 est monté à l'intérieur du lecteur de cartes preforées et est considéré en faire partie. 


Contenu de l'application "Lecteur"

Fonctionnement
(se reporter au schéma symbolique)

Les actions de l'utilisateur sur l'interface sont traduits en commande soit vers "usbControl" pour la commande du lecteur, soit vers "console" pour la sauvegarde, la relecture ou l'affichage des données.

L'objet "usbControl"
gère la lecture des cartes perforées, il reçoit en retour le "status des tranferts" et l'état de la machine, il affiche des alertes si nécessaire ou envoie la commande "lire, traiter et afficher les données" à l'objet "console".

L'objet "m_600"
 peut recevoir les 2 commandes "lire une carte" ou "lire l'état de USB-Machine". Dans tout les cas l'objet "m_600" renvoie le "status des tranferts" et l'état de USB-Machine. Si une carte a été lue avec succès l'objet "m_600" stocke les données localement et renvoie "pas d'erreur".

L'objet "console"
peut recevoir les commandes "lire, traiter et afficher les données",  Sauvegarder les données, Relire un fichier de données, Ouvrir/fermer la fenêtre "Console", Effacer les données et l'affichage.

exp:


Les fichiers de code

La syntaxe des fichiers de codes a été prise la plus simple possible et se conforme à la syntaxe des fichiers de dictionnaire.

Exemple, extrait du fichier IBM029.code:

/*
   IBM029.code
   HP2893

   Créé par Miguel Saro le 03/05/10.
   Copyright 2010 __La Torréfaction Joyeuse__. All rights reserved.
  
   Syntaxe:
   "liste de perforations" = "caractère" ;
 */

"affiche" = "IBM 029" ;
"12" = "&" ;
"11" = "-" ;
"0" = "0" ;
"1" = "1" ;
"2" = "2" ;
"3" = "3" ;
"4" = "4" ;
"5" = "5" ;
"6" = "6" ;
"7" = "7" ;
"8" = "8" ;
"9" = "9" ;
"12,1" = "A" ;
"12,2" = "B" ;
"12,3" = "C" ;
"12,4" = "D" ;
"12,5" = "E" ;
  
"11,8,3" = "$" ;
"11,8,4" = "*" ;
"11,8,5" = ")" ;
"11,8,6" = ";" ;

 Une carte perforée comporte 80 colonnes de 12 lignes. Les lignes sont numérotées de 0 à 9, puis 11 et 12 (il n'y a pas de ligne 10). Chaque caractère est codé dans une colonne de la carte perforée. Suivant le code IBM 029 ci-dessus, pour coder le caractère $ dans une colonne il faudra perforer les lignes 11, 8 et 3.
La ligne "affiche" = "IBM 029" ; indique au programme le nom du codage contenu dans le fichier. Ce nom sera affiché dans la fenêtre principale. Les lignes vides et les textes compris entre /* et */ seront ignorés par le programme.




Aconit, projet Lecteur-USB  (2010,  Miguel Saro, Fabien Le Mentec)  Previous.gif Next.gif