Unina Corse EL / Mbed 2 deprecated f4_sd_imu_4

Dependencies:   SDFileSystem_conMOD mbed-rtos mbed

Fork of f4_sd_imu_4 by ratto killer

messaggi.h

Committer:
rattokiller
Date:
2018-01-21
Revision:
11:3b5e035ffef9

File content as of revision 11:3b5e035ffef9:

char num_n0(int a){
  return a%256;
}
char num_n1(int a){
    return (char)( a / 256);
}

typedef struct {
    char ax[2];
    char ay[2];
    char az[2];
    char gx[2];
    char gy[2];
    char gz[2];             
} message_t;

void copia(message_t & a, message_t b){
   for(int i=0;i<2;i++){
    a.ax[i]=b.ax[i];
    a.ay[i]=b.ay[i];
    a.az[i]=b.az[i];
    a.gx[i]=b.gx[i];
    a.gy[i]=b.gy[i];
    a.gz[i]=b.gz[i];
  
    } 
    
}
void scrivi_imu(message_t* );
MemoryPool<message_t, 16> mpool;
Queue<message_t, 16> queue;

/* Send Thread */
void invia_m (int ax,int ay,int az,int gx,int gy,int gz) {
    
    {
        
        message_t *message = mpool.alloc();
        message->ax[0] = num_n0(ax); message->ax[1] = num_n1(ax);
        message->ay[0] = num_n0(ay); message->ay[1] = num_n1(ay);
        message->az[0] = num_n0(az); message->az[1] = num_n1(az);
        message->gx[0] = num_n0(gx); message->gx[1] = num_n1(gx);
        message->gy[0] = num_n0(gy); message->gy[1] = num_n1(gy);
        message->gz[0] = num_n0(gz); message->gz[1] = num_n1(gz);
        queue.put(message);
        Thread::wait(1000);
    }
}

void scrivi_m(void) {
    
    
    while (true) {
        Thread::wait(0.001);
        osEvent evt = queue.get();
        while (evt.status == osEventMessage) {
            message_t *message = (message_t*)evt.value.p;
           
           
           scrivi_imu(message);

           
            mpool.free(message);
            osEvent evt = queue.get();
        }
    }
}