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

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

来源:本站整理 作者:佚名 时间:2018-03-22 TAG: 我要投稿
                    }
                }
            }
        }
    };
如果设备注册并且无错误产生,即将其分配给我们的类对象mUsbDevice,并通过调用SetupUSB开始启动应用程序的下一个阶段。
 private void SetupUSB() {
        final UsbDeviceConnection connection = mUsbManager.openDevice(mUsbDevice);
        if (connection != null) {
            fd = connection.getFileDescriptor();
        } else {
            Log.d("GrTemplateUSRP", "Didn't get a USB Device Connection");
            finish();
        }
        if (mUsbDevice != null) {
            usbfs_path = properDeviceName(mUsbDevice.getDeviceName());
        } else {
            Log.d("GrTemplateUSRP", "Didn't get a USB Device");
            finish();
        }
        int vid = mUsbDevice.getVendorId();
        int pid = mUsbDevice.getProductId();
        Log.d("GrTemplateUSRP", "Found fd: " + fd + "  usbfs_path: " + usbfs_path);
        Log.d("GrTemplateUSRP", "Found vid: " + vid + "  pid: " + pid);
        StartRadio();
    }
该函数从USB设备获取信息,将其记录到logcat,然后调用StartRadio。我们使用称为properDeviceName的解析函数从设备本身提取USB设备路径:
public final static String properDeviceName(String deviceName) {
        if (deviceName == null) return DEFAULT_USBFS_PATH;
        deviceName = deviceName.trim();
        if (deviceName.isEmpty()) return DEFAULT_USBFS_PATH;
        final String[] paths = deviceName.split("/");
        final StringBuilder sb = new StringBuilder();
        for (int i = 0; i 2; i++)
            if (i == 0)
                sb.append(paths[i]);
            else
                sb.append("/").append(paths[i]);
        final String stripped_name = sb.toString().trim();
        if (stripped_name.isEmpty())
            return DEFAULT_USBFS_PATH;
        else
            return stripped_name;
    }
路径似乎每次都是”/dev/bus/usb”,但这个步骤是必要的,为的是防止某些特殊情况。
最后,我们调用StartRadio,这实际上是我们之前完成的其他的OnCreate工作,但现在我们正在等待USB设备被正确分配。
当我们在装有USRP的设备上构建并运行这个程序时,会弹出一个对话框,询问我们是否要授予USB设备权限。单击确定,但不要单击复选框。因为我们不希望这个应用程序默认与USRP关联,我们希望这是由GrHardwareService应用程序完成的。点击确定后,我们应该看到logcat中的日志消息,它提供了fd,usbfs_path以及发现设备的vid和pid。这确保我们正确地与Java中的USRP交互。然后,我们会将这些信息传递给流图,以创建UHD USRP block。你应该在logcat中看到类似这样的内容:
04-22 11:30:01.624 14537 14537 D GrTemplateUSRP: Didn't get a device; finding it now.
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: Selected Device: UsbDevice[mName=/dev/bus/usb/002/003,mVendorId=9472,mProductId=34,mClass=255,mSubclass=0,mProtocol=0,mManufacturerName=Ettus Research LLC,mProductName=USRP B200,mVersion=2.16,mSerialNumber=30BFC51,mConfigurations=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=1,mInterfaces=[
04-22 11:30:01.626 14537 14537 D GrTemplateUSRP: UsbInterface[mId=0,mAlternateSetting=0,mName=USRP B200,mClass=255,mSubclass=0,mProtocol=0,mEndpoints=[]

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

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