FlorianLiehn / CodeMicrocontroleurAntenne

0 stars 0 forks source link

review du 22 aout #4

Open alex31 opened 6 years ago

alex31 commented 6 years ago

1/ AntennaFunctions.c::emergencyBehaviour

Tu n'as pas géré les messages urgents : lors de la première réunion de conception, on avait parlé de mettre les message urgent en tête de file pour qu'ils soient traités en premier par l'antenne.

Pour ce faire, ll faut que tu ecrives une fonction writeLogToFifoAhead qui utilise chMBPostAheadTimeout pour envoyer les messages urgents, ou alors, il faut que tu justifies le fait qu'il n'y en ait pas besoin dans un commentaire.

Le fait que tu ais laissé un TODO dans la fonction laisse penser que tu as oublié de le faire.

================= 2/ Tu n'as pas protégé les macros (point 4 de ma review hier)

duke> agcc define | grep -v '(' | grep -v ')' | pcregrep 'define.(+|-|\|\/(?!\/))'

halconf.h:422:#define SERIAL_BUFFERS_SIZE                 32*10
Messages/messages.h:73:#define MAX_TRAJ_LENGTH 20*60 //max= 20min
TrameAntennaConstructor/TrameAntennaConstructor.h:39:#define MIN_ENCODER_X -MAX_ENCODER_X
TrameAntennaConstructor/TrameAntennaConstructor.h:41:#define MIN_ENCODER_Y -MAX_ENCODER_Y
TrameAntennaConstructor/TrameAntennaConstructor.h:43:#define ENCODER_X_STEP_BY_ANGLE 6000./17
TrameAntennaConstructor/TrameAntennaConstructor.h:44:#define ENCODER_Y_STEP_BY_ANGLE 20000./51
TrameAntennaConstructor/TrameAntennaConstructor.h:49:#define CHAR_A_OFFSET 'A'- CHAR_ZERO -10
Antenna_interface/AntennaThreads.h:16:#define ANTICIPATION_TIME_BEFORE_TRACKING 2 + 1 + 1
CodesPC/Automate/Automate.h:29:#define PREPARATION_TIME 15*60   //15 min
CodesPC/PcParameters.h:26:#define TIME_BEFORE2ORDERS 50*1000 //50ms
CodesPC/ComServer/ComServer.h:20:#define US_EXIT_LOOP 1000*500

================= 3/ AntennaThreads.c (et dans les autres fichiers qui utilisent ProtectedThreadsArgs)

Essaie de limiter le nombre de cast (malheureusement indispensable en C, mais source de problème)

objects_fifo_t*  fifo_log_arg  =((ProtectedThreadsArgs*)arg)->fifo_log_arg;
objects_fifo_t*  fifo_order_arg=((ProtectedThreadsArgs*)arg)->fifo_order_arg;
Trajectory* traj_arg=((ProtectedThreadsArgs*)arg)->traj_arg;
//free the semaphore
chBSemSignal(& ((ProtectedThreadsArgs*)arg) ->protect_sem);

peut être remplacé par ça :

ProtectedThreadsArgs *ptarg = (ProtectedThreadsArgs*)arg;
objects_fifo_t*  fifo_log_arg  =ptarg->fifo_log_arg;
objects_fifo_t*  fifo_order_arg=ptarg->fifo_order_arg;
Trajectory* traj_arg=ptarg->traj_arg;
//free the semaphore
chBSemSignal(&ptarg->protect_sem);

===============