Changeset 10639

Show
Ignore:
Timestamp:
03/28/11 09:53:27 (4 years ago)
Author:
jgaeddert
Message:

updating components to work with liquid-dsp HEAD

Location:
ossiedev/branches/jgaeddert/0.8.0/components
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • ossiedev/branches/jgaeddert/0.8.0/components/include/PacketDecoder.h

    r10052 r10639  
    9292    // dsp objects 
    9393    packetizer p;               ///< packetizer object 
     94    crc_scheme check;           ///< data validity check (e.g. CRC) 
    9495    fec_scheme fec_inner;       ///< inner FEC scheme 
    9596    fec_scheme fec_outer;       ///< outer FEC scheme 
  • ossiedev/branches/jgaeddert/0.8.0/components/include/PacketEncoder.h

    r10052 r10639  
    9191    // dsp objects 
    9292    packetizer p;               ///< packetizer object 
     93    crc_scheme check;           ///< data validity check (e.g. CRC) 
    9394    fec_scheme fec_inner;       ///< inner FEC scheme 
    9495    fec_scheme fec_outer;       ///< outer FEC scheme 
  • ossiedev/branches/jgaeddert/0.8.0/components/src/FlexframeGen.cpp

    r10077 r10639  
    6262    float dt = 0; 
    6363 
    64     interp = interp_crcf_create_rrc(k,m,beta,dt); 
     64    interp = interp_crcf_create_rnyquist(LIQUID_RNYQUIST_RRC,k,m,beta,dt); 
    6565 
    6666    interp2 = resamp2_crcf_create(37,0,60); 
  • ossiedev/branches/jgaeddert/0.8.0/components/src/FlexframeSync.cpp

    r10453 r10639  
    3737                    unsigned char * _payload, 
    3838                    unsigned int _payload_len, 
     39                    int _payload_valid, 
    3940                    framesyncstats_s _stats, 
    4041                    void * _userdata); 
     
    308309                    unsigned char * _payload, 
    309310                    unsigned int _payload_len, 
     311                    int _payload_valid, 
    310312                    framesyncstats_s _stats, 
    311313                    void * _userdata) 
     
    317319        printf("callback invoked\n"); 
    318320 
    319         printf("  header crc          : %s\n", _header_valid ?  "pass" : "FAIL"); 
    320     } 
    321  
    322     if (_header_valid) { 
     321        printf("  header [%4s] payload [%4s]\n", _header_valid ?  "pass" : "FAIL", 
     322                                                 _payload_valid ? "pass" : "FAIL"); 
     323    } 
     324 
     325    if (_header_valid && _payload_valid) { 
    323326        fs_i->PushHeaderData(_header); 
    324327        fs_i->PushPayloadData(_payload, _payload_len); 
  • ossiedev/branches/jgaeddert/0.8.0/components/src/PacketDecoder.cpp

    r10052 r10639  
    2424 
    2525    // create DSP packetizer object 
     26    check     = CRC_16; 
    2627    fec_inner = FEC_NONE; 
    27     fec_outer = FEC_HAMMING74; 
     28    fec_outer = FEC_HAMMING128; 
    2829    dec_msg_len = 0; 
    29     enc_msg_len = packetizer_get_packet_length(dec_msg_len,fec_inner,fec_outer); 
    30     p = packetizer_create(dec_msg_len,fec_inner,fec_outer); 
     30    enc_msg_len = packetizer_compute_enc_msg_len(dec_msg_len,check,fec_inner,fec_outer); 
     31    p = packetizer_create(dec_msg_len,check,fec_inner,fec_outer); 
    3132} 
    3233 
     
    177178            enc_msg_len = encodedDataIn_length; 
    178179 
    179             // initial estimate of dec_msg_len 
    180             float rate_inner = fec_get_rate(fec_inner); 
    181             float rate_outer = fec_get_rate(fec_outer); 
    182             dec_msg_len = (unsigned int)(0.8f * rate_inner * rate_outer * enc_msg_len); 
    183             unsigned int n; 
    184             do { 
    185                 dec_msg_len++; 
    186                 n = packetizer_get_packet_length(dec_msg_len, 
    187                                                  fec_inner, 
    188                                                  fec_outer); 
    189             } while (n < enc_msg_len);  
     180            dec_msg_len = packetizer_compute_dec_msg_len(enc_msg_len, 
     181                                                         check, 
     182                                                         fec_inner, 
     183                                                         fec_outer); 
     184 
     185            // re-create packetizer object 
     186            p = packetizer_recreate(p,dec_msg_len,check,fec_inner,fec_outer); 
     187 
     188            // validate that encoded message lengths match 
     189            unsigned int n = packetizer_get_enc_msg_len(p); 
    190190 
    191191            if (n != enc_msg_len) { 
    192                 //std::cerr << "error: PacketDecoder cannot decode packet with this configuration" << std::endl; 
    193192                fprintf(stderr,"error: PacketDecoder cannot decode packet with this configuration"); 
    194                 fprintf(stderr,"    fec_inner   : %2u (rate = %12.8f)\n", fec_inner, rate_inner); 
    195                 fprintf(stderr,"    fec_outer   : %2u (rate = %12.8f)\n", fec_outer, rate_outer); 
     193                fprintf(stderr,"    (received %u encoded bytes, expected %u)\n", enc_msg_len, n); 
     194                fprintf(stderr,"    check       : %10s\n", crc_scheme_str[check][0]); 
     195                fprintf(stderr,"    fec_inner   : %10s\n", fec_scheme_str[fec_inner][0]); 
     196                fprintf(stderr,"    fec_outer   : %10s\n", fec_scheme_str[fec_outer][0]); 
     197                fprintf(stderr,"    dec msg len : %4u\n", dec_msg_len); 
    196198                fprintf(stderr,"    enc msg len : %4u\n", enc_msg_len); 
    197199                throw(0); 
    198200            } 
    199201 
    200             // destroy and re-create packetizer object 
    201             packetizer_destroy(p); 
    202             p = packetizer_create(dec_msg_len, 
    203                                   fec_inner, 
    204                                   fec_outer); 
    205202        } 
    206203 
    207204        // create buffers (not efficient to do every time) 
     205        // TODO : allocate buffers internally, realloc only when necessary 
    208206        unsigned char dec_msg[dec_msg_len]; 
    209207        unsigned char enc_msg[enc_msg_len]; 
     
    222220            decodedDataOut[i] = dec_msg[i]; 
    223221 
     222        // push decoded data packet 
    224223        portDecodedDataOut->pushPacket(decodedDataOut); 
    225224    } 
  • ossiedev/branches/jgaeddert/0.8.0/components/src/PacketEncoder.cpp

    r10052 r10639  
    2424 
    2525    // create DSP packetizer object 
     26    check     = CRC_16; 
    2627    fec_inner = FEC_NONE; 
    27     fec_outer = FEC_HAMMING74; 
     28    fec_outer = FEC_HAMMING128; 
    2829    dec_msg_len = 0; 
    29     enc_msg_len = packetizer_get_packet_length(dec_msg_len,fec_inner,fec_outer); 
    30     p = packetizer_create(dec_msg_len,fec_inner,fec_outer); 
     30    enc_msg_len = packetizer_compute_enc_msg_len(dec_msg_len,check,fec_inner,fec_outer); 
     31    p = packetizer_create(dec_msg_len,check,fec_inner,fec_outer); 
    3132} 
    3233 
     
    179180            // re-compute message lengths 
    180181            dec_msg_len = decodedDataIn_length; 
    181             enc_msg_len = packetizer_get_packet_length(dec_msg_len, 
    182                                                        fec_inner, 
    183                                                        fec_outer); 
    184  
    185             // destroy and re-create packetizer object 
    186             packetizer_destroy(p); 
    187             p = packetizer_create(dec_msg_len, 
    188                                   fec_inner, 
    189                                   fec_outer); 
     182            enc_msg_len = packetizer_compute_enc_msg_len(dec_msg_len, 
     183                                                         check, 
     184                                                         fec_inner, 
     185                                                         fec_outer); 
     186 
     187            // re-create packetizer object 
     188            p = packetizer_recreate(p, 
     189                                    dec_msg_len, 
     190                                    check, 
     191                                    fec_inner, 
     192                                    fec_outer); 
    190193        } 
    191194 
    192195        // create buffers (not efficient) 
     196        // TODO : allocate buffers internally, realloc only when necessary 
    193197        unsigned char dec_msg[dec_msg_len]; 
    194198        unsigned char enc_msg[enc_msg_len];