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:
Wed Apr 22 19:27:44 2015 +0000
Revision:
15:91b3c572d9df
Parent:
14:ca1a9230ba7f
Child:
17:095f670f9c14
Voila la communication est authentifier des deux coter. Reste plus qu'a utiliser les bytes transporter dans cette communication.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 2:4c5b0f6d0a6b 1 /**
salco 2:4c5b0f6d0a6b 2 * @file TTask.h
salco 2:4c5b0f6d0a6b 3 * @brief Cette classe est le modele des 3 taches de controle.
salco 2:4c5b0f6d0a6b 4 * @author Salco
salco 2:4c5b0f6d0a6b 5 * @version 2.00
salco 2:4c5b0f6d0a6b 6 * @date 11 mars 2015
salco 2:4c5b0f6d0a6b 7 */
salco 2:4c5b0f6d0a6b 8 #ifndef COMSPI_H
salco 2:4c5b0f6d0a6b 9 #define COMSPI_H
salco 9:7295385f02b2 10
salco 15:91b3c572d9df 11 #define DEBUG_SEND 0
salco 15:91b3c572d9df 12 #define DEBUG_COMPACT 0
salco 15:91b3c572d9df 13 #define DEBUG_SLIM 1
salco 15:91b3c572d9df 14 #define MAXTABLE 20
salco 7:dcfd81d7f93f 15
salco 7:dcfd81d7f93f 16 #include "mbed.h"
salco 15:91b3c572d9df 17 #include <stdio.h>
salco 15:91b3c572d9df 18 #include <stdlib.h>
salco 10:7e6aeaebe1a2 19 #include <string>
salco 11:496453b45e25 20 #include "debug.h"
salco 13:51bbdc349f20 21 #include "CRC16.h"
salco 9:7295385f02b2 22 #include "ComSpiDefine.h"
salco 15:91b3c572d9df 23 #include "OSNAPprotocoleDefine.h"
salco 7:dcfd81d7f93f 24
salco 15:91b3c572d9df 25
salco 15:91b3c572d9df 26
salco 15:91b3c572d9df 27
salco 15:91b3c572d9df 28
salco 15:91b3c572d9df 29
salco 15:91b3c572d9df 30 struct module_t{
salco 15:91b3c572d9df 31 struct osnapModule_t basicInfo ;
salco 15:91b3c572d9df 32 unsigned char flagIN ;//ici l'utilisation de unsigned char au lieu de char* nous limite a la possibiliter de lire que le 1er byte dinfo, va faloire les modifier dans le future
salco 15:91b3c572d9df 33 unsigned char dataIN ;
salco 15:91b3c572d9df 34 unsigned char flagOUT ;
salco 15:91b3c572d9df 35 unsigned char dataOUT ;
salco 15:91b3c572d9df 36 struct module_t *next;
salco 15:91b3c572d9df 37 };
salco 15:91b3c572d9df 38
salco 15:91b3c572d9df 39
salco 15:91b3c572d9df 40
salco 15:91b3c572d9df 41 ////////////////////////////////////////////////////////////
salco 7:dcfd81d7f93f 42 class ComSpi : public SPI
salco 2:4c5b0f6d0a6b 43 {
salco 15:91b3c572d9df 44
salco 15:91b3c572d9df 45 union{
salco 15:91b3c572d9df 46 unsigned int getBytes;
salco 15:91b3c572d9df 47 struct
salco 15:91b3c572d9df 48 {
salco 15:91b3c572d9df 49 unsigned char syncReceive : 1;
salco 15:91b3c572d9df 50 unsigned char addrReceive : 1;
salco 15:91b3c572d9df 51 unsigned char optionReceive: 1;
salco 15:91b3c572d9df 52 unsigned char flagReceive : 1;
salco 15:91b3c572d9df 53 unsigned char dataReceive : 1;
salco 15:91b3c572d9df 54 unsigned char crcReceive : 1;
salco 15:91b3c572d9df 55 unsigned char finishFlag : 1;
salco 15:91b3c572d9df 56 unsigned char flagNeed : 1;
salco 15:91b3c572d9df 57 };
salco 15:91b3c572d9df 58 }flagSPI;
salco 15:91b3c572d9df 59
salco 15:91b3c572d9df 60 string sneekpeek;
salco 15:91b3c572d9df 61
salco 7:dcfd81d7f93f 62 bool demuxIsUse;
salco 7:dcfd81d7f93f 63 char m_demuxPos;
salco 7:dcfd81d7f93f 64 PinName m_demuxA;
salco 7:dcfd81d7f93f 65 PinName m_demuxB;
salco 7:dcfd81d7f93f 66 PinName m_demuxC;
salco 7:dcfd81d7f93f 67 PinName m_demuxD;
salco 7:dcfd81d7f93f 68 PinName m_demuxEnable;
salco 7:dcfd81d7f93f 69
salco 15:91b3c572d9df 70 struct module_t *chainedListFirst;
salco 15:91b3c572d9df 71 struct module_t *chainedListLast;
salco 15:91b3c572d9df 72
salco 15:91b3c572d9df 73 //char result; // variable tempo qui emagasine le resultat, je crois que sa allege le process mais augmente la memoire
salco 15:91b3c572d9df 74 unsigned char bufferSend[MAXTABLE],bufferReceive[MAXTABLE];
salco 15:91b3c572d9df 75 unsigned char counterData, counterTotale;
salco 15:91b3c572d9df 76
salco 7:dcfd81d7f93f 77 void change_demux(void);
salco 7:dcfd81d7f93f 78 public:
salco 7:dcfd81d7f93f 79 ComSpi(PinName mosi, PinName miso, PinName sclk, PinName _unused=NC);
salco 7:dcfd81d7f93f 80 ComSpi(PinName mosi, PinName miso, PinName sclk, PinName demuxA, PinName demuxB, PinName demuxC, PinName demuxD, PinName demuxEnable);
salco 7:dcfd81d7f93f 81 virtual ~ComSpi();
salco 7:dcfd81d7f93f 82
salco 7:dcfd81d7f93f 83
salco 9:7295385f02b2 84 // renvois la position qu'il est rendu ( -1 == pas de demux ou problem)
salco 9:7295385f02b2 85 char next_demux(void);
salco 9:7295385f02b2 86 char back_demux(void);
salco 10:7e6aeaebe1a2 87 char get_demux(void);
salco 7:dcfd81d7f93f 88
salco 15:91b3c572d9df 89 //fonction ajouter du C
salco 15:91b3c572d9df 90 char initComSpi(void);// renvoi le premier char a metre dans le buffer SPI// ps: jaime pas trop le nom pt chercher une meilleur formulation
salco 15:91b3c572d9df 91 struct module_t* createModule(void);
salco 15:91b3c572d9df 92 char receiveSPI(char byte); //renvoi le prochain char a metre dans le buffer
salco 15:91b3c572d9df 93 struct module_t* searchAddr(unsigned char addresse);
salco 15:91b3c572d9df 94 char commIsfinish(void);
salco 15:91b3c572d9df 95 char completeCommSend(void);
salco 15:91b3c572d9df 96 /////
salco 7:dcfd81d7f93f 97
salco 7:dcfd81d7f93f 98 virtual int write(int value);
salco 14:ca1a9230ba7f 99 bool send(char portID,unsigned char adresseModule,string *flag,string *data);
salco 10:7e6aeaebe1a2 100 /* bool send(char portID, char adresseModule,char *flag,char *data);
salco 7:dcfd81d7f93f 101 bool send(char portID, char adresseModule,int *flag,char *data);
salco 7:dcfd81d7f93f 102 bool send(char portID, char adresseModule,char *flag,int *data);
salco 10:7e6aeaebe1a2 103 bool send(char portID, char adresseModule,int *flag,int *data);*/
salco 2:4c5b0f6d0a6b 104 };
salco 2:4c5b0f6d0a6b 105 #endif // COMSPI_H