首页 文章 精选 留言 我的

精选列表

搜索[连接],共10000篇文章
优秀的个人博客,低调大师

RF Analyzer for Android 安卓平台连接HackRF的App

Over the last week I've been working on a new project, trying to build a spectrum analyzer for Android that works with my hackrf_android library. Now I finally reached the point were it is stable enough to be useful and I created the GitHub repository today: https://github.com/demantz/RFAnalyzer It is still very basic and I have a lot of ideas to extend its functionality, but I thought it's better to have testers involved as early as possible. Eventually it should evolve in something similar to GQRX, supporting different modes and devices. But that will take some time! The new version of RF Analyzer (1.07) has now support for AM/FM demodulation! It is now also available on Google Play: See the readme on GitHub for a more detailed description! RF Analyzer running on a Nexus 5 In this blog I'm going to show what you can do with the app and in the end I explain how it is working internally for those who like to play with the source code. I also tried to document the code as good as possible, but it is always easier if the basic flow of the program is explained before looking at it. What you can do with it Right now there aren't many fancy features. The app will present you with a simple UI showing the frequency spectrum including a waterfall plot. Here is a list of what you can do right now with version 1.00: Browse the spectrum by scrolling horizontally Zoom in and out, both horizontally and vertically Adjust the sample rate and center frequency to match the current view of the screen by double tapping Auto scale the vertical axis Jump directly to a frequency Adjust the gain settings of the HackRF Select a pre-recorded file as source instead of a real HackRF Change the FFT size Setting the frame rate either to a fixed value or to automatic control Activate logging and showing the log file I'm planning to also support the rtl-sdr in the future and of course I want to include the actual demodulation for common analog modes like AM, FM, SSB, ... But so far you can only browse the spectrum. Here is how you get it to work: Plug the HackRF into your Android device using an OTG (on-the-go) cable. You can get those cables for around 3$ and you can also find them as Y-version which enables external powering the HackRF, for those phones/tablets that don't deliver enough power. After you start RF Analyzer you can hit the start button in the action bar and it should prompt you for the permission to access the USB device. Once you did that the FFT will start: FFT at 20 Msps showing FLEX pagers at 931 MHz Use common gestures to zoom and scroll both vertically and horizontally. Note that the vertical axis of the FFT plot also affects the colors of the waterfall plot: Zoomed in(both vertical and horizontal)view If you scroll outside the current range of the FFT or if you zoom so that the resolution of the FFT is too low you can simply double tap the screen. RF Analyzer will re-tune the HackRF to the frequency currently centered on the screen and also ajust the sample rate so that the FFT covers exactly the frequency range that is currently visible: The resolution of the FFT is too low when zoomed in too closely. And we scrolled to far right that we can see the end of the FFT on the right site After double tapping the HackRF is tuned to 931,61 MHz (note the DC offset peak!) and the sample rate is now adjusted to about 2.5 Msps so that we see the full FFT resolution again You can also use the autoscale button in the action bar to adjust the vertical scale so that it ranges from the minimum to the maximum of the currently visible values of the FFT: If you want to jump to a certain frequency, use the 'set frequency' button and it will prompt you to enter a new frequency: The gain settings of the HackRF (both VGA and LNA gain) can be accessed through the 'set gain' button in the overflow menu: In the settings activity you can: Select other source types (currently only HackRF or file source) Set the FFT size Set the screen orientation (auto / landscape / portrait) Turn autostart on and off (so that you don't have to hit the start button every time) Set the frame rate to auto or a fixed value (useful if you want a linear time axis in the waterfall plot) Deactivate vertical zoom and scrolling (so that you don't accidentally alter the vertical scale while scrolling through frequencies) Turn on logging and set the location of the log file. Show the log file Settings Activity of RF Analyzer on a Nexus 7 Implementing the file source was helpful for debugging the application. It is also a way to test the app if you don't have an OTG cable or your phone/tablet doesn't output enough power for the HackRF. Selecting the file source type will allow you to use RF Analyzer with recorded samples from hackrf_transfer or Test_HackRF. I've uploaded a short capture of some FLEX pager signals for testing:FLEX Pager at 931MHz (2Msps) How it works For those who want to play with the sources of RF Analyzer (GPLv2) I want to quickly explain the internal structure of the app: (Uncomplete) class diagram of RF Analyzer. Underlined classes are running in seperate threads. Gray elements are external modules. To support different devices I defined a common interface that is implemented by all classes which represent sources of IQ samples. The Scheduler will continuously read samples from the source to prevent the receive buffers of the device to fill up. It forwards samples in packets of the size of the FFT to the AnalyzerProcessingLoop by inserting them in a queue. If the queue is full, the samples are thrown away in order to not block the input device. The AnalyzerProcessingLoop also runs in a separate thread and reads the sample packets from the queue, processes them with the help of the FFT class and then calls draw() on the AnalyzerSurface. This method draws the given FFT samples on a SurfaceView and also draws a new line of the waterfall plot as well as the horizontal and vertical axis. For a more detailed impression of how the app works, have a look into the sources onGitHub. I tried my best to add helpful comments to understand the flow of the program. If you have any questions, comments or any other input, don't hesitate to leave a comment or contact me directly on Twitter:@dennismantz Have fun testing it! ;) Here is the video were I demonstrate the old version of RF Analyzer: 原文地址:http://tech.mantz-it.com/2014/10/rf-analyzer-explore-frequency-spectrum.html 本文转自 K1two2 博客园博客,原文链接: http://www.cnblogs.com/k1two2/p/5705149.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

android网络编程——使用Android中的网络连接

网络编程在无线应用程序开发过程中起到了重要的作用。Android包括Apache HttpClient库,此库为执行Android中的网络操作之首选方法。Android还可允许通过标准的Java联网API(java.net包)来访问网络。即便使用Java.net包,也是在内部使用该Apache库。 为了访问互联网,你的应用程序需要获取“android.permission.INTERNET”权限 Android中与网络相关的包 以下内容为Android SDK中与网络相关的部分包 本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/1230796,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册