===== C++ / POO en Majeure ===== Cette page est dédiée à l'enseignement C++/programmation objet en **MAJEURE** numérique. Pour la version mineure, ça se passe [[:pg221:accueil|ici]] ==== Textes de TP ==== * {{:pg208:objets_cpp_majeure_tp1.pdf | TP1}} : Introduction, conteneurs, itérateurs * {{:pg208:objets_cpp_majeure_tp2.pdf | TP2}} : Fichiers / Surcharges / Templates * {{:pg208:objets_cpp_majeure_tp3.pdf | TP3}} : La programmation objet / Diagrammes UML * {{:pg208:objets_cpp_majeure_tp4.pdf | TP4}} : Sous-Classes / Exceptions * {{:pg208:objets_cpp_majeure_projet.pdf | Projet}} : Couche d'abstraction matérielle. ==== Ressources ==== == Fichiers sources == * {{:pg208:mx3board_regs.h }} : Fichier de définition des constantes * {{:pg208:main_mx3.c}} : Fichier d'exemple de communication (en C) à reprendre en C++ == Fichiers ressources == * {{:pg208:jourdain.txt | jourdain.txt}} : juste un peu de texte * {{:pg208:jvdltall.txt | De la terre à la Lune (Jules Vernes)}} : encore un peu plus de texte * {{:pg208:bask.txt | The hound of the Baskervilles (Sir Arthur Conan Doyle}} : a bit more text (without accents) * {{:pg208:dorgray.txt | The Picture of Dorian Gray (Oscar Wilde}} : still without accents * {{:pg208:wild.txt | The Call of The Wild (Jack London)}} : one last more * {{:pg221:makefile.txt | Makefile }} pour le TP3 == Fichiers sonores == Les morceaux suivants sont à votre disposition. Les noms sont volontairement flou pour titiller votre curiosité :-). Merci de ne pas discuter les choix artistiques :-(. * {{:pg208:caniche.txt | caniche.txt}} * {{:pg208:children.txt | children.txt}} * {{:pg208:chiwawa.txt | chiwawa.txt}} * {{:pg208:eyes.txt | eyes.txt}} * {{:pg208:froumi.txt | froumi.txt}} * {{:pg208:lights.txt | lights.txt}} * {{:pg208:santa.txt | santa.txt}} * {{:pg208:smoke.txt | smoke.txt}} * {{:pg208:soupe.txt | soupe.txt}} ==== Notes concernant l'accès aux cartes MX3 pour le projet ==== == Accès aux cartes depuis WSL (Linux sous windows) == Par défaut, les cartes MX3 sont réservées par windows qui ne partage pas son accès avec le linux qu'il héberge. Il y a donc une manipulation à faire pour indiquer que windows ne doit pas l'utiliser et la laisser accessible au sous-système linux. M. Maraninchi (Majeure num 1), dans sa grande bonté, m'a transmis ce lien qui explique comment faire : [[https://learn.microsoft.com/fr-fr/windows/wsl/connect-usb#attach-a-usb-device]]. == Accès à distance par les machines de l'ENSEIRB == Des cartes sont accessibles dans une salle sous clé, mais vous pouvez tester du code à distance. Pour cela, depuis le réseau de l'ENSEIRB, il vous suffit d'exécuter la commande ''ssh '' pour obtenir un terminal sur la machine concernée. Depuis ce terminal, vous pouvez accéder à vos fichiers, compiler et éxécuter votre programme. Précautions à prendre : * Utilisez la commande ''users'' pour savoir si vous êtes seul(e)(s) sur la machine. Il n'y a pas de gestion des accès concurrents, vos programmes pourraient interférer sans vous dire ce qui ne va pas. * Essayez d'être brefs dans vos tests, surtout si vous n'êtes pas seul. * Rien ne garantit que l'utilisateur ait laissé la carte dans un état propre. Pour vos assurer qu'elle est de bonne disposition, envoyez 256 fois la commande NOP (0x00). Au pire, ça ne fait rien, au mieux, la carte était en attente de données, et vous lui en avez fourni suffisament pour qu'elle ait terminé la commande en cours. * La règle est l'auto-discipline. Nous n'avons pas les ressources pour gérer les conflits. Ça se passe bien ou je met fin à la manip. * pour l'instant, il n'y a aucune garantie que les machines restent accessibles. Elles sont susceptibles de se mettre en sommeil. C'est sous surveillance. Vous ne pouvez pas lire l'écran et les LEDs, mais vous pouvez relire les registres. Le fonctionnement interne de la carte vous garantit que la lecture des caractères de l'écran (@ 32 à 63) correspond à ce qui est affiché, pareil pour les LEDs. Pour assurer les tests sur les Switchs, chaque carte a une position différente sur les switches, il suffit donc de changer de machine et vérifier si la valeur lue est cohérente. Les machines disponibles (susceptible d'évolution): * shu (sw:0x29) * vika (sw:0x61) * teden (sw:0x23) * hafta (sw:0x54) * seachtain (débranché) * hebdomadis (débranché) Exemple de code de démo : > ssh hebdomadis > users bornat > ls /dev/ttyUSB0 crwxrwxrwx 1 root dialout 188, 0 26 mars 11:23 /dev/ttyUSB0 > make > ./votre_programme /dev/ttyUSB0 ... ... > exit