Melissaperret / TP2_MINF

0 stars 0 forks source link

Mc32gest_RS232.c -> remarques / améliorations / bugs #5

Open PBYetml opened 2 months ago

PBYetml commented 2 months ago

FCT : GetMessage

FCT : SendMessage

FCT : ISR => UART

PBYetml commented 1 month ago

L'évaluation complète sur le fichier : Mc32gest_RS232.c est fini => vous pouvez si vous les désirer faire réaliser les amélioration ou correction sur ce fichier

Melissaperret commented 1 month ago

FCT : GetMessage

1) C'est la librairie : stdint.h, nous l'avons dans le "gestPWM.h", mais nous avons oublié de l'inclure dans notre fichier.

2) la variable i correspond à notre index pour la boucle for, nous utilisons i par convention, mais on aurait pu la nommer autrement par exemple " dataIndex"

3) On pourrait utiliser notre define : MESS_SIZE à la place du 5

4) On aurait pu faire une boucle for, qui rendrait le code plus clair comme ceci :


        for(dataIndex = 0; dataIndex < TAILLE_TABLEAU; dataIndex ++)
        {
            valCrc = updateCRC16(valCrc, tabDatasRecus[dataIndex]);
        }

On a mis comme TAILLE_TABLEAU la valeur de 3 du coup.

5) Les différentes cases du tableau correspondent à la trame qu'on souhaite recevoir

Comme autre variable, on aurait pu faire la structure StruMess existante déjà (comme nous avons fait pour la fonction SendMessage:

typedef struct {
    uint8_t Start;
    int8_t  Speed;
    int8_t  Angle;
    uint8_t MsbCrc;
    uint8_t LsbCrc;
} StruMess;

StruMess RxMess;

crc16.shl.msb = RxMess.MsbCrc;
crc16.shl.lsb = RxMess.LsbCrc;

FCT : SendMessage

1) C'est la librairie : stdint.h, nous l'avons dans le "gestPWM.h", mais nous avons oublié de l'inclure dans notre fichier.

FCT : ISR => UART

1) C'est la librairie : stdint.h, nous l'avons dans le "gestPWM.h", mais nous avons oublié de l'inclure dans notre fichier.

2) On fait référence à une enum se trouvant dans le fichier GenericTypeDefs.h ligne 65 : typedef enum _BOOL { FALSE = 0, TRUE } BOOL; On a pris la fonction directement du cour

Si on avait pas utilisé ceci on aurait dû implémenter la librairie : stdbool.h

3) le c correspond à caractère, cependant comme nous avons repris la fonction dans le cours, les variables étaient nommées comme ceci et nous avons oublier de modifier les noms après

4) Nous lisons octet par octet au fur et au mesure qu'on recoit les datas, ensuite apres on regarde si la fifo est plus petite ou egal à 6 pour ecrire, dans le cas contraire on arret l'enovoi, cela veut que nous ne regardons pas si la fifo est plaine ou pas mais en faisant ce test on s'assure qu'elle va jamais se remplir. ligne : 289 à 294.

    comme ceci :
        freeSize = GetWriteSpace(&descrFifoRX);

        if(freeSize <= 6)
        {
            RS232_RTS = 1;
        }

5) En tenant en compte que le message complet est de 5 octets, nous testons si l'espace disponible dans le buffer de reception est plus petit que 6, dans ce cas on arrête l'envoi. On realise ce test pour nous assurer que la fifo ne se rempli pas completement.

6) Cette variable sert à connaître l'état de la pin CTS, au lieu de faire " i_cts = RS232_CTS ", nous aurions pu directement utiliser la variable RS232_CTS Elle correspond à la pin du microcontrôleur et on peut voir qu'il est en "PORTD".