![](/media/cache/profiles/4b0986230d9d7aded7f0c24033d221d4.jpg.50x50_q85.jpg)
Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.
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
source/MemRegistre.cpp@14:ca1a9230ba7f, 2015-03-23 (annotated)
- 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?
User | Revision | Line number | New 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 | } |