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 Mar 10 12:49:59 2015 +0000
Revision:
0:e4151abdff23
Creation de tout les doccuments necessaires

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 0:e4151abdff23 1 /*
salco 0:e4151abdff23 2 * mouvement.cpp
salco 0:e4151abdff23 3 *
salco 0:e4151abdff23 4 * Created on: Mar 02, 2015
salco 0:e4151abdff23 5 * Author: salco
salco 0:e4151abdff23 6 */
salco 0:e4151abdff23 7 #include "mouvement.h"
salco 0:e4151abdff23 8
salco 0:e4151abdff23 9 Faculter_motrice::Faculter_motrice(Serial* com):m_com(com)
salco 0:e4151abdff23 10 {
salco 0:e4151abdff23 11 m_seq = new homemadeSequence();
salco 0:e4151abdff23 12
salco 0:e4151abdff23 13 m_arr_D = new Patte(1,0,1,2,3);
salco 0:e4151abdff23 14 m_arr_mil_D = new Patte(2,4,5,6,7);
salco 0:e4151abdff23 15 m_arr_G = new Patte(3,16,17,18,19);
salco 0:e4151abdff23 16 m_arr_mil_G = new Patte(4,20,21,22,23);
salco 0:e4151abdff23 17 m_avv_D = new Patte(5,12,13,14,15);
salco 0:e4151abdff23 18 m_avv_mil_D = new Patte(6,8,9,10,11);
salco 0:e4151abdff23 19 m_avv_G = new Patte(7,28,29,30,31);
salco 0:e4151abdff23 20 m_avv_mil_G = new Patte(8,24,25,26,27);
salco 0:e4151abdff23 21
salco 0:e4151abdff23 22 m_SequenceID_arr_D =0;
salco 0:e4151abdff23 23 m_SequenceID_arr_mil_D =0;
salco 0:e4151abdff23 24 m_SequenceID_arr_G =0;
salco 0:e4151abdff23 25 m_SequenceID_arr_mil_G =0;
salco 0:e4151abdff23 26 m_SequenceID_avv_D =0;
salco 0:e4151abdff23 27 m_SequenceID_avv_mil_D =0;
salco 0:e4151abdff23 28 m_SequenceID_avv_G =0;
salco 0:e4151abdff23 29 m_SequenceID_avv_mil_G =0;
salco 0:e4151abdff23 30
salco 0:e4151abdff23 31 m_ForceStop = false;
salco 0:e4151abdff23 32 m_CriticalStop = false;
salco 0:e4151abdff23 33 }
salco 0:e4151abdff23 34 Faculter_motrice::~Faculter_motrice()
salco 0:e4151abdff23 35 {
salco 0:e4151abdff23 36 if(m_seq)
salco 0:e4151abdff23 37 delete m_seq;
salco 0:e4151abdff23 38 if (m_arr_D)
salco 0:e4151abdff23 39 delete m_arr_D;
salco 0:e4151abdff23 40 if (m_arr_mil_D)
salco 0:e4151abdff23 41 delete m_arr_mil_D;
salco 0:e4151abdff23 42 if (m_arr_G)
salco 0:e4151abdff23 43 delete m_arr_G;
salco 0:e4151abdff23 44 if (m_arr_mil_G)
salco 0:e4151abdff23 45 delete m_arr_mil_G;
salco 0:e4151abdff23 46
salco 0:e4151abdff23 47 if (m_avv_D)
salco 0:e4151abdff23 48 delete m_avv_D;
salco 0:e4151abdff23 49 if (m_avv_mil_D)
salco 0:e4151abdff23 50 delete m_avv_mil_D;
salco 0:e4151abdff23 51 if (m_avv_G)
salco 0:e4151abdff23 52 delete m_avv_G;
salco 0:e4151abdff23 53 if (m_avv_mil_G)
salco 0:e4151abdff23 54 delete m_avv_mil_G;
salco 0:e4151abdff23 55 return;
salco 0:e4151abdff23 56 }
salco 0:e4151abdff23 57 void Faculter_motrice::exec(void)
salco 0:e4151abdff23 58 {
salco 0:e4151abdff23 59 #ifdef DEBUG
salco 0:e4151abdff23 60 m_com->printf("Flag in exec [%i :: %i ] \n\r",m_ForceStop,m_seq->get_Sequence());
salco 0:e4151abdff23 61 #endif
salco 0:e4151abdff23 62 if((!m_ForceStop)&&(m_seq->get_Sequence() != 0)) {
salco 0:e4151abdff23 63 unsigned char* tempLeg;
salco 0:e4151abdff23 64
salco 0:e4151abdff23 65
salco 0:e4151abdff23 66
salco 0:e4151abdff23 67 switch(m_seq->get_Sequence()) {
salco 0:e4151abdff23 68 case 1:
salco 0:e4151abdff23 69 tempLeg=m_seq->get_frame(m_arr_D->id());
salco 0:e4151abdff23 70 m_arr_D->move(tempLeg[0],tempLeg[1],tempLeg[2],tempLeg[3]);
salco 0:e4151abdff23 71 //...//
salco 0:e4151abdff23 72 if(m_seq->next_frame() == false) {
salco 0:e4151abdff23 73 m_ForceStop=true;
salco 0:e4151abdff23 74 #ifdef DEBUG
salco 0:e4151abdff23 75 m_com->printf(" Flag next impossible \n\r",m_ForceStop,m_seq->get_Sequence());
salco 0:e4151abdff23 76 #endif
salco 0:e4151abdff23 77 }
salco 0:e4151abdff23 78 #ifdef DEBUG
salco 0:e4151abdff23 79 else
salco 0:e4151abdff23 80 m_com->printf(" Flag next possible \n\r",m_ForceStop,m_seq->get_Sequence());
salco 0:e4151abdff23 81 #endif
salco 0:e4151abdff23 82 break;
salco 0:e4151abdff23 83 }
salco 0:e4151abdff23 84 //char buffer[50];
salco 0:e4151abdff23 85 //scanf(buffer,"%s T%d\n\r",m_arr_D->toString(),DELAITESTE);
salco 0:e4151abdff23 86 m_com->printf("%s T%d\n\r",m_arr_D->toString(),DELAITESTE);
salco 0:e4151abdff23 87
salco 0:e4151abdff23 88 /*
salco 0:e4151abdff23 89 tempLeg=m_seq->get_frame(m_arr_D->id());
salco 0:e4151abdff23 90 m_com->printf("This program is %d .\n", tempLeg[0]);*/
salco 0:e4151abdff23 91 }
salco 0:e4151abdff23 92 #ifdef DEBUG
salco 0:e4151abdff23 93 m_com->printf("Flag out exec [%i :: %i ] \n\r",m_ForceStop,m_seq->get_Sequence());
salco 0:e4151abdff23 94 #endif
salco 0:e4151abdff23 95 }
salco 0:e4151abdff23 96 /*void Faculter_motrice::moveLeft (void)
salco 0:e4151abdff23 97 {
salco 0:e4151abdff23 98 m_seq->set_Sequence(9);
salco 0:e4151abdff23 99 }
salco 0:e4151abdff23 100 void Faculter_motrice::moveRight(void)
salco 0:e4151abdff23 101 {
salco 0:e4151abdff23 102
salco 0:e4151abdff23 103 }
salco 0:e4151abdff23 104 void Faculter_motrice::moveUp (void)
salco 0:e4151abdff23 105 {
salco 0:e4151abdff23 106
salco 0:e4151abdff23 107 }
salco 0:e4151abdff23 108 void Faculter_motrice::moveDown (void)
salco 0:e4151abdff23 109 {
salco 0:e4151abdff23 110
salco 0:e4151abdff23 111 }
salco 0:e4151abdff23 112 void Faculter_motrice::moveFront(void)
salco 0:e4151abdff23 113 {
salco 0:e4151abdff23 114
salco 0:e4151abdff23 115 }
salco 0:e4151abdff23 116 void Faculter_motrice::moveBack (void)
salco 0:e4151abdff23 117 {
salco 0:e4151abdff23 118
salco 0:e4151abdff23 119 }
salco 0:e4151abdff23 120 void Faculter_motrice::turnLeft (void)
salco 0:e4151abdff23 121 {
salco 0:e4151abdff23 122
salco 0:e4151abdff23 123 }
salco 0:e4151abdff23 124 void Faculter_motrice::trunRight(void)
salco 0:e4151abdff23 125 {
salco 0:e4151abdff23 126
salco 0:e4151abdff23 127 }*/
salco 0:e4151abdff23 128 void Faculter_motrice::crit_stop(void)
salco 0:e4151abdff23 129 {
salco 0:e4151abdff23 130 m_com->printf("#0L #1L #2L #3L #4L #5L #6L #7L #8L #9L #10L #11L #12L #13L #14L #15L #16L #17L #18L #19L #20L #21L #22L #23L #24L #25L #26L #27L #28L #29L #30L #31L #32L\n\r");
salco 0:e4151abdff23 131 m_ForceStop=true;
salco 0:e4151abdff23 132 m_CriticalStop=true;
salco 0:e4151abdff23 133 }