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 Jan 31 13:15:42 2017 +0000
Revision:
41:0b5c14dda54a
Parent:
36:474d4795aafa
Tentative de modifier les commit inutile sur debug.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 36:474d4795aafa 1 /*
salco 36:474d4795aafa 2 * @file ComSpi.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 28:ac5c6350ed9a 12 #define DEBUG_COMPACT /*1*/0
salco 28:ac5c6350ed9a 13 #define DEBUG_SLIM /*1*/0
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