checking for if context packets and setting up the payload pointer and size
authorJosh Blum <josh@joshknows.com>
Fri, 25 Sep 2009 23:54:50 +0000 (16:54 -0700)
committerJosh Blum <josh@joshknows.com>
Fri, 25 Sep 2009 23:54:50 +0000 (16:54 -0700)
gr-vrt/src/vrt_source_32fc.cc
vrt/lib/expanded_header.cc

index 483b6c246362098a9a2cc998a83c5252e49f90fc..9164ab9d8fb14b5bc4a455ff573d476aac82fadc 100644 (file)
@@ -105,7 +105,7 @@ rx_32fc_handler::operator()(const uint32_t *payload,
     // copy the context into struct so we cant reference bad memory
     // print the components of the struct, prove that it works!
     all_context_t if_context;
-    memcpy(((uint32_t*)&if_context) + 5, payload, sizeof(uint32_t)*n32_bit_words);//FIXME
+    memcpy(&if_context, payload, sizeof(uint32_t)*n32_bit_words);//FIXME
     fprintf(stderr, "\nIF-Context-Components:\n");
     if_context.beamformer.rf_ref_freq = ntohll(if_context.beamformer.rf_ref_freq);
     fprintf(stderr, "Ref Freq %f Hz\n", vrt_freq_to_double(if_context.beamformer.rf_ref_freq));
index bd1d92e530ca2b0eac929cd85e78738ed3210265..d7da06af48a082fd45ef7bd1707a17e9fa21c377 100644 (file)
@@ -112,6 +112,12 @@ namespace vrt {
 #include "expanded_header_switch_body.h"
     }
 
+    /* is this a if context packet? */
+    if (ntohl(p[0]) & VRTH_PT_IF_CONTEXT){
+        *payload = p;
+        *n32_bit_words_payload = n32_bit_words_packet;
+    }
+
     return true;
   }