![](/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
Diff: source/CtrlBridge.cpp
- Revision:
- 27:ea60d12dccdf
- Parent:
- 18:3f113f8441b2
- Child:
- 28:ac5c6350ed9a
--- a/source/CtrlBridge.cpp Mon May 11 13:48:38 2015 +0000 +++ b/source/CtrlBridge.cpp Thu May 14 21:40:23 2015 +0000 @@ -16,7 +16,7 @@ m_regPortUse=0; m_regPortLost=0; spiLowSpeed.format(8,0); - spiLowSpeed.frequency(10000); + spiLowSpeed.frequency(10000/**/); } CtrlBridge::~CtrlBridge() @@ -148,7 +148,11 @@ if(m_Memory.isAdresseValide(adresse,moduleRequested)) { if(adresse&0x80) + { + debug(DEBUF_SEND, "\n\rPointeur SPI: %d",&spiLowSpeed); + //debug(DEBUF_SEND, "\n\rPointeur SPI: %p",spiLowSpeed); result = spiLowSpeed.send(moduleRequested.regB>>4,adresse,&flag,&data); + } else result = spiHighSpeed.send(moduleRequested.regB>>4,adresse,&flag,&data); //result = true; @@ -172,14 +176,27 @@ debug(DEBUF_FINDMODULE, "\n\r -Debut scan Actioneur"); maxSize = m_Memory.getSizeActioneur(); + debug(DEBUF_FINDMODULE, "\n\r -MaxSize: %02d",maxSize); goodModule = true; moduleScan= m_Memory.firstActioneur(); for(int i=0; i < maxSize; i++) { - if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)) goodModule =false; - else if((type != 0) && (type != moduleScan.regD>>6)) goodModule =false; - else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))) goodModule =false; - else if((posSpatial != 0) && (sousType != (moduleScan.regC & 0x3F))) goodModule =false; + if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -peripheriqueID: %02d == moduleScan.regB>>4: %02d",peripheriqueID,moduleScan.regB>>4); + } + else if((type != 0) && (type != moduleScan.regD>>6)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -type: %02d == moduleScan.regD>>6: %02d",type,moduleScan.regD>>6); + } + else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -sousType: %02d == (moduleScan.regD & 0x3F): %02d",sousType,(moduleScan.regD & 0x3F)); + } + else if((posSpatial != 0) && (posSpatial != (moduleScan.regC & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -posSpatial: %02d == (moduleScan.regC & 0x3F): %02d",posSpatial,(moduleScan.regC & 0x3F)); + } if(goodModule){ result.append(1,moduleScan.regA); @@ -194,14 +211,34 @@ debug(DEBUF_FINDMODULE, "\n\r -Debut scan Capteur"); maxSize = m_Memory.getSizeCapteur(); - goodModule = true; + debug(DEBUF_FINDMODULE, "\n\r -MaxSize: %02d",maxSize); + moduleScan= m_Memory.firstCapteur(); for(int i=0; i < maxSize; i++) { - if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)) goodModule =false; - else if((type != 0) && (type != moduleScan.regD>>6)) goodModule =false; - else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))) goodModule =false; - else if((posSpatial != 0) && (sousType != (moduleScan.regC & 0x3F))) goodModule =false; + goodModule = true; + debug(DEBUF_FINDMODULE, "\n\r -adresse: %02x",moduleScan.regA); + debug(DEBUF_FINDMODULE, "\n\r -peripheriqueID: %02d == moduleScan.regB>>4: %02d",peripheriqueID,moduleScan.regB>>4); + debug(DEBUF_FINDMODULE, "\n\r -type: %02d == moduleScan.regD>>6: %02d",type,moduleScan.regD>>6); + debug(DEBUF_FINDMODULE, "\n\r -sousType: %02d == (moduleScan.regD & 0x3F): %02d",sousType,(moduleScan.regD & 0x3F)); + debug(DEBUF_FINDMODULE, "\n\r -posSpatial: %02d == (moduleScan.regC & 0x3F): %02d",posSpatial,(moduleScan.regC & 0x3F)); + + if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -false"); + } + else if((type != 0) && (type != moduleScan.regD>>6)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -false"); + } + else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -false"); + } + else if((posSpatial != 0) && (posSpatial != (moduleScan.regC & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -false"); + } if(goodModule){ result.append(1,moduleScan.regA); @@ -216,14 +253,27 @@ debug(DEBUF_FINDMODULE, "\n\r -Debut scan Memoire"); maxSize = m_Memory.getSizeMemoire(); + debug(DEBUF_FINDMODULE, "\n\r -MaxSize: %02d",maxSize); goodModule = true; moduleScan= m_Memory.firstMemoire(); for(int i=0; i < maxSize; i++) { - if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)) goodModule =false; - else if((type != 0) && (type != moduleScan.regD>>6)) goodModule =false; - else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))) goodModule =false; - else if((posSpatial != 0) && (sousType != (moduleScan.regC & 0x3F))) goodModule =false; + if((peripheriqueID != 0) && (peripheriqueID != moduleScan.regB>>4)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -peripheriqueID: %02d == moduleScan.regB>>4: %02d",peripheriqueID,moduleScan.regB>>4); + } + else if((type != 0) && (type != moduleScan.regD>>6)){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -type: %02d == moduleScan.regD>>6: %02d",type,moduleScan.regD>>6); + } + else if((sousType != 0) && (sousType != (moduleScan.regD & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -sousType: %02d == (moduleScan.regD & 0x3F): %02d",sousType,(moduleScan.regD & 0x3F)); + } + else if((posSpatial != 0) && (posSpatial != (moduleScan.regC & 0x3F))){ + goodModule =false; + debug(DEBUF_FINDMODULE, "\n\r -posSpatial: %02d == (moduleScan.regC & 0x3F): %02d",posSpatial,(moduleScan.regC & 0x3F)); + } if(goodModule){ result.append(1,moduleScan.regA);