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:
Thu Mar 12 00:40:43 2015 +0000
Revision:
2:4c5b0f6d0a6b
Parent:
source/motrice/mouvement.cpp@1:25ea21da4542
Child:
19:0ac80045ba4c
Ebauche qui compile reste a bien structurer. Jai fini leritage des tache reste la creation dans le main.

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