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
source/CtrlBridge.h@14:ca1a9230ba7f, 2015-03-23 (annotated)
- Committer:
- salco
- Date:
- Mon Mar 23 22:41:31 2015 +0000
- Revision:
- 14:ca1a9230ba7f
- Parent:
- 11:496453b45e25
- Child:
- 15:91b3c572d9df
Je crois que jai fini tout ce que j'ai besoin pour faire utilisation des modules, reste un peut de pofinage mais pour le moment sa compile.
Who changed what in which revision?
User | Revision | Line number | New 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 CTRLBRIDGE_H |
salco | 2:4c5b0f6d0a6b | 9 | #define CTRLBRIDGE_H |
salco | 7:dcfd81d7f93f | 10 | |
salco | 11:496453b45e25 | 11 | #define DEBUG_INITMODULE 1 |
salco | 14:ca1a9230ba7f | 12 | #define DEBUF_FINDMODULE 1 |
salco | 14:ca1a9230ba7f | 13 | |
salco | 8:e017e3d527d7 | 14 | #define SPI_HIGH_MISO PB_14 |
salco | 8:e017e3d527d7 | 15 | #define SPI_HIGH_MOSI PB_15 |
salco | 11:496453b45e25 | 16 | #define SPI_HIGH_SCK PB_13 |
salco | 8:e017e3d527d7 | 17 | #define SPI_HIGH_CS PC_15 |
salco | 8:e017e3d527d7 | 18 | #define SPI_HIGH_DEMUXA PC_0 |
salco | 8:e017e3d527d7 | 19 | #define SPI_HIGH_DEMUXB PC_1 |
salco | 8:e017e3d527d7 | 20 | #define SPI_HIGH_DEMUXC PC_2 |
salco | 8:e017e3d527d7 | 21 | #define SPI_HIGH_DEMUXD PC_3 |
salco | 8:e017e3d527d7 | 22 | |
salco | 8:e017e3d527d7 | 23 | #define SPI_LOW_MISO PA_6 |
salco | 8:e017e3d527d7 | 24 | #define SPI_LOW_MOSI PA_7 |
salco | 8:e017e3d527d7 | 25 | #define SPI_LOW_SCK PA_5 |
salco | 8:e017e3d527d7 | 26 | #define SPI_LOW_CS PC_14 |
salco | 8:e017e3d527d7 | 27 | #define SPI_LOW_DEMUXA PC_4 |
salco | 8:e017e3d527d7 | 28 | #define SPI_LOW_DEMUXB PC_5 |
salco | 8:e017e3d527d7 | 29 | #define SPI_LOW_DEMUXC PC_6 |
salco | 8:e017e3d527d7 | 30 | #define SPI_LOW_DEMUXD PC_7 |
salco | 8:e017e3d527d7 | 31 | |
salco | 8:e017e3d527d7 | 32 | #include "mbed.h" |
salco | 10:7e6aeaebe1a2 | 33 | #include <string> |
salco | 14:ca1a9230ba7f | 34 | #include "OSNAPprotocoleDefine.h" |
salco | 14:ca1a9230ba7f | 35 | //#include <algorithm> // std::for_each |
salco | 11:496453b45e25 | 36 | #include "debug.h" |
salco | 7:dcfd81d7f93f | 37 | #include "ComSpi.h" //utiliser pour comuniquer avec les module |
salco | 7:dcfd81d7f93f | 38 | #include "MemRegistre.h" //enregistrer les info |
salco | 10:7e6aeaebe1a2 | 39 | #include "Module.h" |
salco | 2:4c5b0f6d0a6b | 40 | class CtrlBridge |
salco | 2:4c5b0f6d0a6b | 41 | { |
salco | 8:e017e3d527d7 | 42 | static CtrlBridge *uniqueInstance; |
salco | 8:e017e3d527d7 | 43 | //pc = new Serial(SERIAL_TX, SERIAL_RX); |
salco | 8:e017e3d527d7 | 44 | //ssc32= new Serial(PA_9, PA_10); |
salco | 7:dcfd81d7f93f | 45 | int m_regPortUse; // set in the init |
salco | 7:dcfd81d7f93f | 46 | int m_regPortLost;// flag 1 si lost |
salco | 9:7295385f02b2 | 47 | MemRegistre m_Memory; |
salco | 11:496453b45e25 | 48 | |
salco | 8:e017e3d527d7 | 49 | /** |
salco | 8:e017e3d527d7 | 50 | * @brief Constructeur priver appler par la fonction getInstance() |
salco | 8:e017e3d527d7 | 51 | */ |
salco | 8:e017e3d527d7 | 52 | CtrlBridge(); |
salco | 8:e017e3d527d7 | 53 | ~CtrlBridge(); |
salco | 11:496453b45e25 | 54 | |
salco | 8:e017e3d527d7 | 55 | private: |
salco | 11:496453b45e25 | 56 | Serial ssc32; |
salco | 11:496453b45e25 | 57 | ComSpi spiLowSpeed, spiHighSpeed; |
salco | 9:7295385f02b2 | 58 | |
salco | 8:e017e3d527d7 | 59 | public: |
salco | 11:496453b45e25 | 60 | Serial pc; |
salco | 11:496453b45e25 | 61 | |
salco | 14:ca1a9230ba7f | 62 | bool use( const unsigned char &adresse, string &flag, string &data); |
salco | 11:496453b45e25 | 63 | |
salco | 14:ca1a9230ba7f | 64 | /*string findModule(const typeModue &t); |
salco | 14:ca1a9230ba7f | 65 | string findModule(const sousType_Actionneur &st); |
salco | 14:ca1a9230ba7f | 66 | string findModule(const sousType_Memoire &st); |
salco | 14:ca1a9230ba7f | 67 | string findModule(const sousType_Capteur &st); |
salco | 14:ca1a9230ba7f | 68 | string findModule(const positionSpatial &p); |
salco | 14:ca1a9230ba7f | 69 | |
salco | 14:ca1a9230ba7f | 70 | string findModule(const typeModue &t, const sousType_Actionneur &st); |
salco | 14:ca1a9230ba7f | 71 | string findModule(const typeModue &t, const sousType_Memoire &st); |
salco | 14:ca1a9230ba7f | 72 | string findModule(const typeModue &t, const sousType_Capteur &st); |
salco | 14:ca1a9230ba7f | 73 | string findModule(const typeModue &t, const positionSpatial &p);*/ //complex pour le moment on le fera en temps voulue |
salco | 14:ca1a9230ba7f | 74 | |
salco | 14:ca1a9230ba7f | 75 | string findModule(const char &peripheriqueID, const char &type, const char &sousType, const char &posSpatial); |
salco | 14:ca1a9230ba7f | 76 | |
salco | 14:ca1a9230ba7f | 77 | int size(const char &peripheriqueID, const char &type, const char &sousType, const char &posSpatial); |
salco | 8:e017e3d527d7 | 78 | /** |
salco | 8:e017e3d527d7 | 79 | * @brief Methode permetant une seul instance de la classe |
salco | 8:e017e3d527d7 | 80 | * @return Retourne l'unique instance de la classe |
salco | 8:e017e3d527d7 | 81 | */ |
salco | 8:e017e3d527d7 | 82 | static CtrlBridge *getInstance(); |
salco | 11:496453b45e25 | 83 | |
salco | 14:ca1a9230ba7f | 84 | bool initCom(void); |
salco | 14:ca1a9230ba7f | 85 | |
salco | 14:ca1a9230ba7f | 86 | bool isValide(char portID) { |
salco | 14:ca1a9230ba7f | 87 | return (m_regPortUse & (1<<portID))?true:false; |
salco | 14:ca1a9230ba7f | 88 | }; |
salco | 11:496453b45e25 | 89 | bool tryComPort(char portID);//just faire le sync et crc pour voire si lautre est la |
salco | 11:496453b45e25 | 90 | |
salco | 14:ca1a9230ba7f | 91 | //fonction quelquonque pour communiquer avec les module |
salco | 14:ca1a9230ba7f | 92 | //fonction quelquonque pour faire des recherche dans les module dispo |
salco | 14:ca1a9230ba7f | 93 | //autre fonction pour jouer avec MemRegistre |
salco | 11:496453b45e25 | 94 | |
salco | 2:4c5b0f6d0a6b | 95 | }; |
salco | 2:4c5b0f6d0a6b | 96 | #endif // CTRLBRIDGE_H |