Advertisement
Forzaferrarileo

Untitled

Feb 25th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. /**********Example for showing frame id using telemetry**********
  2.  **********Leonardo Ferraro 2014**********
  3.  */
  4.  
  5. #include <bitset>
  6. #include "spi.h"
  7. #include "gpio.h"
  8. #include "lepton_i2c.h"
  9.  
  10.  
  11. #define PACKET_SIZE 164     // 4 bytes header , 160 bytes payload
  12. #define PACKETS_PER_FRAME 63    // Raw 14bit mode , Telemetry enabled ( as footer or header declared later ) , AGC enabled
  13.  
  14.  
  15. int main(){
  16.  
  17.     uint8_t buf [PACKET_SIZE*PACKETS_PER_FRAME];
  18.  
  19.     if(lepton_connect() == 0 ){
  20.         std::cout<<"CCI connected to lepton"<<std::endl;
  21.     }
  22.  
  23.     if(enable_telemetry(1) == 0){               //Enable telemetry as footer
  24.         std::cout<<"Enabling Telemetry"<<std::endl;
  25.     }
  26.  
  27.     usleep(1000);
  28.  
  29.     if(telemetry_enabled){
  30.         std::cout<<"Telemetry Enabled"<<std::endl;
  31.     }
  32.  
  33.     gpio_state(8,1);
  34.     usleep(200); // wait > 185ms to resync
  35.     gpio_state(8,0);
  36.  
  37.     SpiOpenPort();
  38.  
  39.     while(1){
  40.  
  41.         int j;
  42.  
  43.         for(int i=0 ; i<PACKETS_PER_FRAME ; i++ ){         
  44.  
  45.             read(spi_fd, buf+(sizeof(uint8_t)*PACKET_SIZE*i), sizeof(uint8_t)*PACKET_SIZE );
  46.  
  47.         }
  48.  
  49.         /**Index of first 8 bit of first 16bit word for telemetry
  50.          **
  51.          ** first 4 word(8bit) are packet id and CRC , so skip them
  52.          ** 40 is the index first 8 bit word for frame id( 20 is the 16bit word equivalent ), datasheet : 8.3 Telemetry modes
  53.          **
  54.          */
  55.  
  56.         int frame_id_i = 60*(40 + 4) ;
  57.  
  58.         unsigned int frame_id = buf[frame_id_i]<<0x18 | buf[frame_id_i+1]<<0x10 | buf[frame_id_i+2]<<0x8 | buf[frame_id_i+3] ;
  59.  
  60.         std::cout<<"Frame nĀ° : "<<frame_id<<std::endl;
  61.  
  62.     }
  63.  
  64.     SpiClosePort();
  65.  
  66.     return 0;
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement