Alexandre Salconi-Denis
/
ProjetOctopode
Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.
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
Diff: source/ComSpi.h
- Revision:
- 15:91b3c572d9df
- Parent:
- 14:ca1a9230ba7f
- Child:
- 17:095f670f9c14
--- a/source/ComSpi.h Mon Mar 23 22:41:31 2015 +0000 +++ b/source/ComSpi.h Wed Apr 22 19:27:44 2015 +0000 @@ -8,16 +8,57 @@ #ifndef COMSPI_H #define COMSPI_H -#define DEBUG_SEND 1 +#define DEBUG_SEND 0 +#define DEBUG_COMPACT 0 +#define DEBUG_SLIM 1 +#define MAXTABLE 20 #include "mbed.h" +#include <stdio.h> +#include <stdlib.h> #include <string> #include "debug.h" #include "CRC16.h" #include "ComSpiDefine.h" +#include "OSNAPprotocoleDefine.h" + + + + + +struct module_t{ + struct osnapModule_t basicInfo ; + 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 + unsigned char dataIN ; + unsigned char flagOUT ; + unsigned char dataOUT ; + struct module_t *next; + }; + + + +//////////////////////////////////////////////////////////// class ComSpi : public SPI { + + union{ + unsigned int getBytes; + struct + { + unsigned char syncReceive : 1; + unsigned char addrReceive : 1; + unsigned char optionReceive: 1; + unsigned char flagReceive : 1; + unsigned char dataReceive : 1; + unsigned char crcReceive : 1; + unsigned char finishFlag : 1; + unsigned char flagNeed : 1; + }; +}flagSPI; + +string sneekpeek; + bool demuxIsUse; char m_demuxPos; PinName m_demuxA; @@ -26,6 +67,13 @@ PinName m_demuxD; PinName m_demuxEnable; + struct module_t *chainedListFirst; + struct module_t *chainedListLast; + + //char result; // variable tempo qui emagasine le resultat, je crois que sa allege le process mais augmente la memoire + unsigned char bufferSend[MAXTABLE],bufferReceive[MAXTABLE]; + unsigned char counterData, counterTotale; + void change_demux(void); public: ComSpi(PinName mosi, PinName miso, PinName sclk, PinName _unused=NC); @@ -38,8 +86,14 @@ char back_demux(void); char get_demux(void); - - + //fonction ajouter du C + char initComSpi(void);// renvoi le premier char a metre dans le buffer SPI// ps: jaime pas trop le nom pt chercher une meilleur formulation + struct module_t* createModule(void); + char receiveSPI(char byte); //renvoi le prochain char a metre dans le buffer + struct module_t* searchAddr(unsigned char addresse); + char commIsfinish(void); + char completeCommSend(void); + ///// virtual int write(int value); bool send(char portID,unsigned char adresseModule,string *flag,string *data);