diff options
| author | Josh Blum <josh@joshknows.com> | 2010-04-03 19:43:20 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2010-04-03 19:43:20 -0700 | 
| commit | 83bd55d63972804e62f3890a4a90c8288fcbad0c (patch) | |
| tree | b5bf6a8877b37b238f9f540b0b77d1425ed619b9 /host/lib/usrp/usrp2/dsp_impl.cpp | |
| parent | f4ccb204473884126bcff6551d224e263dd5102a (diff) | |
| download | uhd-83bd55d63972804e62f3890a4a90c8288fcbad0c.tar.gz uhd-83bd55d63972804e62f3890a4a90c8288fcbad0c.tar.bz2 uhd-83bd55d63972804e62f3890a4a90c8288fcbad0c.zip | |
extended stream cmd with mode enum, and extended fragment flags in metadata
Diffstat (limited to 'host/lib/usrp/usrp2/dsp_impl.cpp')
| -rw-r--r-- | host/lib/usrp/usrp2/dsp_impl.cpp | 30 | 
1 files changed, 24 insertions, 6 deletions
| diff --git a/host/lib/usrp/usrp2/dsp_impl.cpp b/host/lib/usrp/usrp2/dsp_impl.cpp index d70248682..647a8bf1c 100644 --- a/host/lib/usrp/usrp2/dsp_impl.cpp +++ b/host/lib/usrp/usrp2/dsp_impl.cpp @@ -67,11 +67,7 @@ void usrp2_impl::init_ddc_config(void){      update_ddc_config();      //initial command that kills streaming (in case if was left on) -    stream_cmd_t stream_cmd_off; -    stream_cmd_off.stream_now = true; -    stream_cmd_off.continuous = false; -    stream_cmd_off.num_samps = 0; -    issue_ddc_stream_cmd(stream_cmd_off); +    issue_ddc_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS);  }  void usrp2_impl::update_ddc_config(void){ @@ -90,11 +86,33 @@ void usrp2_impl::issue_ddc_stream_cmd(const stream_cmd_t &stream_cmd){      usrp2_ctrl_data_t out_data;      out_data.id = htonl(USRP2_CTRL_ID_SEND_STREAM_COMMAND_FOR_ME_BRO);      out_data.data.stream_cmd.now = (stream_cmd.stream_now)? 1 : 0; -    out_data.data.stream_cmd.continuous = (stream_cmd.continuous)? 1 : 0;      out_data.data.stream_cmd.secs = htonl(stream_cmd.time_spec.secs);      out_data.data.stream_cmd.ticks = htonl(stream_cmd.time_spec.ticks); + +    //set these to defaults, then change in the switch statement +    out_data.data.stream_cmd.continuous = 0; +    out_data.data.stream_cmd.chain = 0;      out_data.data.stream_cmd.num_samps = htonl(stream_cmd.num_samps); +    //setup chain, num samps, and continuous below +    switch(stream_cmd.stream_mode){ +    case stream_cmd_t::STREAM_MODE_START_CONTINUOUS: +        out_data.data.stream_cmd.continuous = 1; +        break; + +    case stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS: +        out_data.data.stream_cmd.num_samps = htonl(0); +        break; + +    case stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE: +        //all set by defaults above +        break; + +    case stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE: +        out_data.data.stream_cmd.chain = 1; +        break; +    } +      //send and recv      usrp2_ctrl_data_t in_data = ctrl_send_and_recv(out_data);      ASSERT_THROW(htonl(in_data.id) == USRP2_CTRL_ID_GOT_THAT_STREAM_COMMAND_DUDE); | 
