Alexandre Salconi-Denis
/
ProjetOctopode
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:
- 10:7e6aeaebe1a2
- Parent:
- 9:7295385f02b2
- Child:
- 11:496453b45e25
diff -r 7295385f02b2 -r 7e6aeaebe1a2 source/CtrlBridge.cpp --- a/source/CtrlBridge.cpp Thu Mar 19 19:14:31 2015 +0000 +++ b/source/CtrlBridge.cpp Thu Mar 19 21:49:20 2015 +0000 @@ -36,24 +36,52 @@ { //char positionInitial; bool portUse; - char flag = Request_Init_Info; - char data = 0; - Module templateModule; - + string flag; + string data; + Module* templateModule ; + templateModule= new Module; + + flag.append(1,Request_Init_Info); //positionInitial = spiLowSpeed.next_demux(); for(char i=0; i != 15; i++) { portUse = spiLowSpeed.send(i,0,&flag,&data); - - if( portUse ) - { + + if( portUse ) { m_regPortUse|=(1<< i); - /* do{ - templateModule.regA = ; - }while(); - */ - } + + do { + + templateModule->regA = m_Memory.getAdressDispo(); + templateModule->regB = (spiLowSpeed.get_demux()<<4)+(data[0]&0x0F); + templateModule->regC = data[1]; + templateModule->regD = data[2]; + + switch(templateModule->regD >>6) { + case 1://Capteur + m_Memory.addCapteur(*templateModule); + break; + + case 2://Actionneur + m_Memory.addActioneur(*templateModule); + break; + + + case 3://Memoire + m_Memory.addMemoire(*templateModule); + break; + + default: + break; + } + + if(flag[0] != Contien_AUTRE_MODULE) + portUse=false; + } while(portUse); + } } - + if(templateModule) + delete templateModule; + return true; } \ No newline at end of file