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
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);