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:
Tue Jul 28 04:30:12 2015 +0000
Revision:
29:51308764fdd0
Parent:
28:ac5c6350ed9a
Child:
31:ed23647fd16e
Simplification du code et debut du mode debug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 3:e0d6e081a9d3 1
salco 7:dcfd81d7f93f 2 #include "TTaskCritique.h"
salco 3:e0d6e081a9d3 3
salco 7:dcfd81d7f93f 4 TTaskCritique::TTaskCritique(int priority):TTask(priority)
salco 3:e0d6e081a9d3 5 {
salco 28:ac5c6350ed9a 6 debug(DEBUG_INIT_TASKCRITT, "\n\r Debut init");
salco 19:0ac80045ba4c 7 //m_CtrlBridge = m_CtrlBridge->getInstance();
salco 29:51308764fdd0 8 #ifdef DGB_FORCE_INIT
salco 29:51308764fdd0 9 m_CtrlBridge->initCom();
salco 29:51308764fdd0 10 #else
salco 28:ac5c6350ed9a 11 do{
salco 15:91b3c572d9df 12 m_CtrlBridge->initCom();
salco 15:91b3c572d9df 13 m_ListDesModules = m_CtrlBridge->findModule(0,0,0,0); //get all modules
salco 29:51308764fdd0 14
salco 29:51308764fdd0 15 if(m_ListDesModules.size() != 11) //its a patch we need to delete it.
salco 29:51308764fdd0 16 {
salco 29:51308764fdd0 17 debug(DEBUG_INIT_TASKCRITT, "\n\r Init Fail");
salco 29:51308764fdd0 18 forceShutDown(false);
salco 29:51308764fdd0 19 wait(1);
salco 29:51308764fdd0 20 m_CtrlBridge->clearALL();
salco 29:51308764fdd0 21 forceShutDown(true);
salco 28:ac5c6350ed9a 22 }
salco 28:ac5c6350ed9a 23 }while(m_ListDesModules.size() != 11);
salco 29:51308764fdd0 24 #endif
salco 15:91b3c572d9df 25 tymy=true;
salco 28:ac5c6350ed9a 26 debug(DEBUG_INIT_TASKCRITT, "\n\r Init Reussi");
salco 3:e0d6e081a9d3 27 }
salco 3:e0d6e081a9d3 28
salco 7:dcfd81d7f93f 29 TTaskCritique::~TTaskCritique()
salco 3:e0d6e081a9d3 30 {
salco 15:91b3c572d9df 31
salco 15:91b3c572d9df 32 // return;
salco 3:e0d6e081a9d3 33 }
salco 15:91b3c572d9df 34
salco 15:91b3c572d9df 35 void TTaskCritique::forceShutDown(bool offON)
salco 15:91b3c572d9df 36 {
salco 28:ac5c6350ed9a 37 DigitalOut pinA(PB_8);
salco 28:ac5c6350ed9a 38 DigitalOut pinB(PB_9);
salco 15:91b3c572d9df 39
salco 15:91b3c572d9df 40 if(offON) {
salco 15:91b3c572d9df 41 pinA=1;
salco 28:ac5c6350ed9a 42 wait(1);
salco 15:91b3c572d9df 43 pinB=0;
salco 15:91b3c572d9df 44 } else {
salco 15:91b3c572d9df 45 pinA=0;
salco 28:ac5c6350ed9a 46 wait(1);
salco 15:91b3c572d9df 47 pinB=1;
salco 15:91b3c572d9df 48 }
salco 15:91b3c572d9df 49 }
salco 15:91b3c572d9df 50
salco 15:91b3c572d9df 51 void TTaskCritique::criticalTreatment(char adresse)
salco 15:91b3c572d9df 52 {
salco 15:91b3c572d9df 53 //ici on debug et on traite le problemme//
salco 15:91b3c572d9df 54 forceShutDown(tymy);
salco 15:91b3c572d9df 55 tymy = !tymy;
salco 15:91b3c572d9df 56 }
salco 15:91b3c572d9df 57
salco 7:dcfd81d7f93f 58 void TTaskCritique::task(void)
salco 3:e0d6e081a9d3 59 {
salco 15:91b3c572d9df 60 //pas sur que c'Est tout ce qui doit etre ici mais je vois pas quoi d'autre pour le moment.
salco 15:91b3c572d9df 61 string flag,data;
salco 11:496453b45e25 62
salco 16:5ea4337d785f 63 flag.append(1,0);//0x02);
salco 15:91b3c572d9df 64 for(int i=0; i<m_ListDesModules.length(); ++i)
salco 15:91b3c572d9df 65 {
salco 27:ea60d12dccdf 66 wait_us(300);
salco 18:3f113f8441b2 67 flag.clear();
salco 27:ea60d12dccdf 68 flag.append(1,7);
salco 18:3f113f8441b2 69 data.clear();
salco 28:ac5c6350ed9a 70 debug(DEBUG_TASKCRITT,"\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data));
salco 15:91b3c572d9df 71 if(flag[0]== 0x02)
salco 18:3f113f8441b2 72 criticalTreatment(m_ListDesModules.at(i));
salco 15:91b3c572d9df 73 }
salco 15:91b3c572d9df 74
salco 3:e0d6e081a9d3 75 }