欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何搭配USRP在安卓设备上搭建GNU Radio

来源:本站整理 作者:佚名 时间:2018-03-22 TAG: 我要投稿
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbInterface[mId=1,mAlternateSetting=0,mName=USRP B200,mClass=255,mSubclass=0,mProtocol=0,mEndpoints=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=512,mInterval=0]]
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbInterface[mId=2,mAlternateSetting=0,mName=USRP B200,mClass=255,mSubclass=0,mProtocol=0,mEndpoints=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbEndpoint[mAddress=134,mAttributes=2,mMaxPacketSize=512,mInterval=0]]
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbInterface[mId=3,mAlternateSetting=0,mName=USRP B200,mClass=255,mSubclass=0,mProtocol=0,mEndpoints=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbEndpoint[mAddress=4,mAttributes=2,mMaxPacketSize=512,mInterval=0]]
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbInterface[mId=4,mAlternateSetting=0,mName=USRP B200,mClass=255,mSubclass=0,mProtocol=0,mEndpoints=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbEndpoint[mAddress=136,mAttributes=2,mMaxPacketSize=512,mInterval=0]]]]
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: Called Request Permission
04-22 11:30:01.627 14537 14537 D GrTemplateUSRP: Found fd: 22  usbfs_path: /dev/bus/usb
04-22 11:30:01.627 14537 14537 D GrTemplateUSRP: Found vid: 9472  pid: 34
创建UHD USRP Source
现在我们有权限与我们需要与USRP传递的所有信息。 所以现在可以改变流图了,我们可以使用UHD USRP Source block作为源代替sig_source_f。
首先,我们需要将fd和usrpfs_path值传递给流图。将fg.cpp中的函数签名更改为:
JNIEXPORT void JNICALL
Java_org_gnuradio_grtemplateusrp_MainActivity_FgInit(JNIEnv* env,
                                                     jobject thiz,
                                                     int fd, jstring devname)
在声明JNI函数的MainActivity.java中,我们需要添加两个参数:
public native void FgInit(int fd, String usbfs_path);
在SetupRadio中,确保将这些信息作为“FgInit(fd,usbfs_path)”传递。
然后我们提取信息并为usrp_source block格式化设备参数字符串:
#include
....
  const char *usbfs_path = env->GetStringUTFChars(devname, NULL);
  std::stringstream args;
  args "uhd,fd=" ",usbfs_path=" "fg", boost::str(boost::format("Using UHD args=%1%") % args.str()));
  uhd::stream_args_t stream_args;
  stream_args.cpu_format = "fc32";
  stream_args.otw_format = "sc16";
  ....
  gr::uhd::usrp_source::sptr src;
  ....
  src = gr::uhd::usrp_source::make(args.str(), stream_args);
  src->set_samp_rate(200e3);
  src->set_center_freq(101.1e6);
  src->set_gain(20); // adjust as needed
src现在是一个复杂的源。 所以现在要做的是创建一个简单的流图,如下所示:
usrp_source -> complex_to_real -> multiply_const_ff -> opensl_sink
完整的流图FgInit如下所示:
// Get any GNU Radio headers
#include
#include
#include
#include
#include 
// Declare the global virtual machine and top-block objects
JavaVM *vm;
gr::top_block_sptr tb;
extern "C" {
JNIEXPORT void JNICALL
Java_org_gnuradio_grtemplateusrp_MainActivity_FgInit(JNIEnv* env,
                                                     jobject thiz,
                                                     int fd, jstring devname)
{
  GR_INFO("fg", "FgInit Called");
  const char *usbfs_path = env->GetStringUTFChars(devname, NULL);
  std::stringstream args;
  args "uhd,fd=" ",usbfs_path=" "fg", boost::str(boost::format("Using UHD args=%1%") % args.str()));
  uhd::stream_args_t stream_args;
  stream_args.cpu_format = "fc32";

上一页  [1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载