Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ComSpi.h
00001 /* 00002 * @file ComSpi.h 00003 * @brief Cette classe est le modele des 3 taches de controle. 00004 * @author Salco 00005 * @version 2.00 00006 * @date 11 mars 2015 00007 */ 00008 #ifndef COMSPI_H 00009 #define COMSPI_H 00010 00011 #define DEBUG_SEND 0 00012 #define DEBUG_COMPACT /*1*/0 00013 #define DEBUG_SLIM /*1*/0 00014 #define MAXTABLE 20 00015 00016 #include "mbed.h" 00017 #include <stdio.h> 00018 #include <stdlib.h> 00019 #include <string> 00020 #include "debug.h" 00021 #include "CRC16.h" 00022 #include "ComSpiDefine.h" 00023 #include "OSNAPprotocoleDefine.h" 00024 00025 00026 00027 00028 00029 00030 struct module_t{ 00031 struct osnapModule_t basicInfo ; 00032 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 00033 unsigned char dataIN ; 00034 unsigned char flagOUT ; 00035 unsigned char dataOUT ; 00036 struct module_t *next; 00037 }; 00038 00039 00040 00041 //////////////////////////////////////////////////////////// 00042 class ComSpi : public SPI 00043 { 00044 00045 union{ 00046 unsigned int getBytes; 00047 struct 00048 { 00049 unsigned char syncReceive : 1; 00050 unsigned char addrReceive : 1; 00051 unsigned char optionReceive: 1; 00052 unsigned char flagReceive : 1; 00053 unsigned char dataReceive : 1; 00054 unsigned char crcReceive : 1; 00055 unsigned char finishFlag : 1; 00056 unsigned char flagNeed : 1; 00057 }; 00058 }flagSPI; 00059 00060 string sneekpeek; 00061 00062 bool demuxIsUse; 00063 char m_demuxPos; 00064 PinName m_demuxA; 00065 PinName m_demuxB; 00066 PinName m_demuxC; 00067 PinName m_demuxD; 00068 PinName m_demuxEnable; 00069 00070 struct module_t *chainedListFirst; 00071 struct module_t *chainedListLast; 00072 00073 //char result; // variable tempo qui emagasine le resultat, je crois que sa allege le process mais augmente la memoire 00074 unsigned char bufferSend[MAXTABLE],bufferReceive[MAXTABLE]; 00075 unsigned char counterData, counterTotale; 00076 00077 void change_demux(void); 00078 public: 00079 ComSpi(PinName mosi, PinName miso, PinName sclk, PinName _unused=NC); 00080 ComSpi(PinName mosi, PinName miso, PinName sclk, PinName demuxA, PinName demuxB, PinName demuxC, PinName demuxD, PinName demuxEnable); 00081 virtual ~ComSpi(); 00082 00083 00084 // renvois la position qu'il est rendu ( -1 == pas de demux ou problem) 00085 char next_demux(void); 00086 char back_demux(void); 00087 char get_demux(void); 00088 00089 //fonction ajouter du C 00090 char initComSpi(void);// renvoi le premier char a metre dans le buffer SPI// ps: jaime pas trop le nom pt chercher une meilleur formulation 00091 struct module_t* createModule(void); 00092 char receiveSPI(char byte); //renvoi le prochain char a metre dans le buffer 00093 struct module_t* searchAddr(unsigned char addresse); 00094 char commIsfinish(void); 00095 char completeCommSend(void); 00096 ///// 00097 00098 virtual int write(int value); 00099 bool send(char portID,unsigned char adresseModule,string *flag,string *data); 00100 /* bool send(char portID, char adresseModule,char *flag,char *data); 00101 bool send(char portID, char adresseModule,int *flag,char *data); 00102 bool send(char portID, char adresseModule,char *flag,int *data); 00103 bool send(char portID, char adresseModule,int *flag,int *data);*/ 00104 }; 00105 #endif // COMSPI_H
Generated on Tue Jul 12 2022 19:04:21 by
1.7.2