ATTENTION : Cette page peut être amenée a être modifiée, pensez à la consulter régulièrement
Ce projet, bien que semblant audacieux, est tout à fait à votre portée. J'en veux pour preuve que je ne le sort pas de mon esprit malade. Ce que vous devez faire est décrit ici, et a déjà été brillament réalisé avec succès par des apprentis ingénieurs réseaux de première année (certe d'une autre école) : La première partie est une "mort subite" : tout projet qui ne la réalise pas sera noté 0.

Conditions de rendu applicable à votre cas

Rendu

  • le projet doit être envoyé par mail, depuis une adresse ESIEE, au plus tard le 15 avril 2012
  • Si vous rencontrez un problème pour m'envoyer votre projet, contactez moi avant le 16.
  • le sujet du mail doit commencer par [ASCIIVID LOGIN1 LOGIN2] où LOGIN1 et LOGIN2 sont a remplacer par les login ESIEE des deux membres du binome
  • le mail contient une unique pièce jointe, "login1_login2.tgz"
  • Un seul trinome et/ou monome au plus sera accepté
  • Le projet sera évalué en partie au cours d'une soutenance. Les conditions spécifiques de cette soutenance vous seront commniquées ultérieurement, mais les deux membres d'un même binômes n'auront pas automatiquement la même note.

Contenu

L'archive, une fois décompressée, génèrera un unique dossier login1_login2/ contenant :
  • un sous dossier bin
  • un sous dossier src
  • un sous dossier doc
  • un sous dossier lib

Le dossier doc devra contenir deux fichiers : user_manual.pdf dev_manual.pdf

user_manual.pdf decris comment installer le programme à partir de l'archive (sans utiliser eclipse pour java), comment le lancer, les fonctionnalité du programme, les bugs. Tout ce qu'un utilisateur du programme doit savoir.

dev_manual.pdf decris comment est écrit le programme : les choix algorithmiques, le design du code, comment rajouter des fonctionnalités, des pistes pour corriger les bugs... Il doit permettre à un développeur de comprendre votre code et de le modifier. Il ne devra surtout pas contenir de code, même des petits bouts. Il peut éventuellement faire référence à un fichier source présent dans le répertoire src/. Ce document est très très important. Il est aussi important, voir plus, que le code lui même pour la notation.

Contenu des dossiers

  • Le dossier login1_login2/ devra contenir un fichier Makefile.
  • La commande make devra compiler les fichiers sources du répertoire src et placer les fichiers produis dans bin.
  • "make clean" effacera les fichiers binaires, "make force" recompilera toutes les cibles.
  • La commande de compilation devra utiliser les options de gcc vues en cours : -ansi -pedantic -Wall
  • Les projets qui ne compilent pas (error) ne sont pas corrigés.
  • Un point en moins par avertissements (warning).
  • "make ascii3fr" devra produire un executable "ascii3fr" (dans bin) qui correspond à la partie 1 du projet
    • L'exécutable ascii3fr devra afficher son mode d'emploi s'il est appelé avec le paramètre --help. Le comportement du programme doit être le suivant:
      ascii3fr img1 img2 ... imgN [-o out]
      
      imgXXX est un nom d'image dans un des 4 formats mentionnés (PNM, PBM, PGM, PPM). out est le nom du fichier de sortie. Si -o out est omis, la sortie se fera sur la sortie standard. Si les noms d'images sont omis, ils seront lus sur l'entrée standard, de façon à pouvoir utiliser le programme dans des pipes. Les images textes seront écrites les unes après les autres, séparées par une ligne vide. Les options seront gérées avec getopt_long().
  • "make asciivid" devra produire un executable "asciivid" (dans bin) qui correspond à la partie 2 du projet
    • Pour cette commande vous êtes libre de proposer la syntaxe qui vous plait. Au mimimum elle devra gérée l'option -h / --help (avec getopt_long). Les bibliothèque necessaires (libmpeg2 et ncurses) devront être fournies dans le repertoire lib et une aide pour l'installation proposée.

Il est interdit d'utiliser du code externe (autre que les deux librairies mentionnées, tout code commun à plusieurs projets vaudra zéro pour tous les projets concernés).
Conseils : Testez votre projet dans les conditions d'évaluation avant de l'envoyer : creez un répertoire temporaire, placez-y une copie de l'archive, décompressez la, suivez les étapes décrites dans votre user.pdf. Vérifiez que tout se passe bien. Testez sur une machine de l'école. Si vous rencontrez un problème (code qui "marche" sur votre pc mais pas à l'école), avertissez moi avant la soutenance (suffisament tot pour que je puisse trouver une solution). Les projets seront évalués sous Linux.