Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32
Committer:
salco
Date:
Mon Mar 23 22:41:31 2015 +0000
Revision:
14:ca1a9230ba7f
Parent:
10:7e6aeaebe1a2
Child:
18:3f113f8441b2
Je crois que jai fini tout ce que j'ai besoin pour faire utilisation des modules, reste un peut de pofinage mais pour le moment sa compile.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 6:a7777c2a7e1e 1 /*
salco 6:a7777c2a7e1e 2 * memoireRegistre.cpp
salco 6:a7777c2a7e1e 3 *
salco 6:a7777c2a7e1e 4 * Created on: Mar 10, 2015
salco 6:a7777c2a7e1e 5 * Author: salco
salco 6:a7777c2a7e1e 6 */
salco 6:a7777c2a7e1e 7 /**
salco 6:a7777c2a7e1e 8 * @file llistcontact.cpp
salco 6:a7777c2a7e1e 9 * @brief Formulaire de la class LList et node_t
salco 6:a7777c2a7e1e 10 * @author Alexandre Salconi-Denis
salco 6:a7777c2a7e1e 11 * @version 3.01
salco 6:a7777c2a7e1e 12 * @date 06 mars 2014
salco 6:a7777c2a7e1e 13 */
salco 7:dcfd81d7f93f 14 #include "MemRegistre.h"
salco 6:a7777c2a7e1e 15
salco 7:dcfd81d7f93f 16 MemRegistre::MemRegistre()
salco 6:a7777c2a7e1e 17 {
salco 9:7295385f02b2 18 m_positionActioneur = m_moduleActioneur.begin();
salco 9:7295385f02b2 19 m_positionCapteur = m_moduleCapteur.begin();
salco 9:7295385f02b2 20 m_positionMemoire = m_moduleMemoire.begin();
salco 6:a7777c2a7e1e 21 }
salco 7:dcfd81d7f93f 22 MemRegistre::~MemRegistre()
salco 6:a7777c2a7e1e 23 {
salco 6:a7777c2a7e1e 24 }
salco 9:7295385f02b2 25
salco 14:ca1a9230ba7f 26 unsigned char MemRegistre::getAdressDispo(const unsigned char &startValue)
salco 9:7295385f02b2 27 {
salco 14:ca1a9230ba7f 28 //list<Module>::iterator it1;
salco 14:ca1a9230ba7f 29 unsigned char addrDispo=(startValue==0)?1:startValue;
salco 9:7295385f02b2 30
salco 9:7295385f02b2 31 //Module templateModule;
salco 14:ca1a9230ba7f 32 for(bool addrFind=false; (addrDispo!=0)&&(!addrFind); addrDispo++) {
salco 14:ca1a9230ba7f 33 /* addrFind=true;
salco 14:ca1a9230ba7f 34 for (list<Module>::iterator it=m_moduleActioneur.begin(); it != m_moduleActioneur.end(); ++it)
salco 14:ca1a9230ba7f 35 if(it->regA == addrDispo) addrFind = false;
salco 9:7295385f02b2 36
salco 14:ca1a9230ba7f 37 for (std::list<Module>::iterator it=m_moduleCapteur.begin(); it != m_moduleCapteur.end(); ++it)
salco 14:ca1a9230ba7f 38 if(it->regA == addrDispo) addrFind = false;
salco 10:7e6aeaebe1a2 39
salco 14:ca1a9230ba7f 40 for (std::list<Module>::iterator it=m_moduleMemoire.begin(); it != m_moduleMemoire.end(); ++it)
salco 14:ca1a9230ba7f 41 if(it->regA == addrDispo) addrFind = false;*/
salco 14:ca1a9230ba7f 42 addrFind = !isAdresseValide(addrDispo);
salco 10:7e6aeaebe1a2 43
salco 9:7295385f02b2 44 if((addrDispo==255) && (!addrFind))addrDispo=0; //les 255 adresses son utiliser // bravo le robot doit etre under heavy load.
salco 9:7295385f02b2 45 }
salco 14:ca1a9230ba7f 46
salco 9:7295385f02b2 47 return addrDispo;
salco 9:7295385f02b2 48 }
salco 14:ca1a9230ba7f 49 bool MemRegistre::isAdresseValide(const char &adresse, Module &m )
salco 14:ca1a9230ba7f 50 {
salco 14:ca1a9230ba7f 51 list<Module>::iterator it1;
salco 14:ca1a9230ba7f 52 bool addrFind=false;
salco 14:ca1a9230ba7f 53 //Module templateModule;
salco 14:ca1a9230ba7f 54 //for(unsigned char addrDispo=1; (addrDispo!=0)&&(!addrFind); addrDispo++) {
salco 14:ca1a9230ba7f 55
salco 14:ca1a9230ba7f 56 for (list<Module>::iterator it=m_moduleActioneur.begin(); it != m_moduleActioneur.end(); ++it) {
salco 14:ca1a9230ba7f 57 if(it->regA == adresse) {
salco 14:ca1a9230ba7f 58 addrFind = true;
salco 14:ca1a9230ba7f 59 m.regA=it->regA;
salco 14:ca1a9230ba7f 60 m.regB=it->regB;
salco 14:ca1a9230ba7f 61 m.regC=it->regC;
salco 14:ca1a9230ba7f 62 m.regD=it->regD;
salco 14:ca1a9230ba7f 63 }
salco 14:ca1a9230ba7f 64 }
salco 14:ca1a9230ba7f 65
salco 14:ca1a9230ba7f 66 for (std::list<Module>::iterator it=m_moduleCapteur.begin(); it != m_moduleCapteur.end(); ++it) {
salco 14:ca1a9230ba7f 67 if(it->regA == adresse) {
salco 14:ca1a9230ba7f 68 addrFind = true;
salco 14:ca1a9230ba7f 69 m.regA=it->regA;
salco 14:ca1a9230ba7f 70 m.regB=it->regB;
salco 14:ca1a9230ba7f 71 m.regC=it->regC;
salco 14:ca1a9230ba7f 72 m.regD=it->regD;
salco 14:ca1a9230ba7f 73 }
salco 14:ca1a9230ba7f 74 }
salco 14:ca1a9230ba7f 75
salco 14:ca1a9230ba7f 76 for (std::list<Module>::iterator it=m_moduleMemoire.begin(); it != m_moduleMemoire.end(); ++it) {
salco 14:ca1a9230ba7f 77 if(it->regA == adresse) {
salco 14:ca1a9230ba7f 78 addrFind = true;
salco 14:ca1a9230ba7f 79 m.regA=it->regA;
salco 14:ca1a9230ba7f 80 m.regB=it->regB;
salco 14:ca1a9230ba7f 81 m.regC=it->regC;
salco 14:ca1a9230ba7f 82 m.regD=it->regD;
salco 14:ca1a9230ba7f 83 }
salco 14:ca1a9230ba7f 84 }
salco 14:ca1a9230ba7f 85
salco 14:ca1a9230ba7f 86 // if((addrDispo==255) && (!addrFind))addrDispo=0; //les 255 adresses son utiliser // bravo le robot doit etre under heavy load.
salco 14:ca1a9230ba7f 87 // }
salco 14:ca1a9230ba7f 88
salco 14:ca1a9230ba7f 89 return addrFind;
salco 14:ca1a9230ba7f 90 }
salco 14:ca1a9230ba7f 91 bool MemRegistre::isAdresseValide(const char &adresse)
salco 14:ca1a9230ba7f 92 {
salco 14:ca1a9230ba7f 93 Module dummy;
salco 14:ca1a9230ba7f 94 return isAdresseValide(adresse,dummy);
salco 14:ca1a9230ba7f 95 }
salco 14:ca1a9230ba7f 96
salco 7:dcfd81d7f93f 97 Module MemRegistre::firstActioneur(void)
salco 6:a7777c2a7e1e 98 {
salco 9:7295385f02b2 99 m_positionActioneur =m_moduleActioneur.begin();
salco 9:7295385f02b2 100 return *m_positionActioneur;//m_moduleActioneur.begin();
salco 6:a7777c2a7e1e 101 }
salco 7:dcfd81d7f93f 102 Module MemRegistre::nextActioneur(void)
salco 6:a7777c2a7e1e 103 {
salco 9:7295385f02b2 104 if(m_moduleActioneur.end()!= m_positionActioneur)
salco 6:a7777c2a7e1e 105 m_positionActioneur++;
salco 6:a7777c2a7e1e 106
salco 9:7295385f02b2 107 return *m_positionActioneur;//return m_moduleActioneur[m_positionActioneur];
salco 6:a7777c2a7e1e 108 }
salco 6:a7777c2a7e1e 109
salco 7:dcfd81d7f93f 110 Module MemRegistre::firstCapteur(void)
salco 6:a7777c2a7e1e 111 {
salco 9:7295385f02b2 112 m_positionCapteur =m_moduleCapteur.begin();
salco 9:7295385f02b2 113 return *m_positionCapteur;//return m_moduleCapteur[m_positionCapteur];
salco 6:a7777c2a7e1e 114 }
salco 7:dcfd81d7f93f 115 Module MemRegistre::nextCapteur(void)
salco 6:a7777c2a7e1e 116 {
salco 9:7295385f02b2 117 if(m_moduleCapteur.end()!= m_positionCapteur)
salco 6:a7777c2a7e1e 118 m_positionCapteur++;
salco 6:a7777c2a7e1e 119
salco 9:7295385f02b2 120 return *m_positionCapteur;//return m_moduleActioneur[m_positionCapteur];
salco 6:a7777c2a7e1e 121 }
salco 7:dcfd81d7f93f 122 Module MemRegistre::firstMemoire(void)
salco 6:a7777c2a7e1e 123 {
salco 9:7295385f02b2 124 m_positionMemoire =m_moduleMemoire.begin();
salco 9:7295385f02b2 125 return *m_positionMemoire;//return m_moduleMemoire[m_positionMemoire];
salco 6:a7777c2a7e1e 126 }
salco 7:dcfd81d7f93f 127 Module MemRegistre::nextMemoire(void)
salco 6:a7777c2a7e1e 128 {
salco 9:7295385f02b2 129 if(m_moduleMemoire.end()!= m_positionMemoire)
salco 6:a7777c2a7e1e 130 m_positionMemoire++;
salco 6:a7777c2a7e1e 131
salco 9:7295385f02b2 132 return *m_positionMemoire;//return m_moduleActioneur[m_positionMemoire];
salco 6:a7777c2a7e1e 133 }