泛素Airview2 2.4GHz频谱分析仪库

pyairview的Python项目详细描述


LicenseSupported Python versionsDevelopment Statushttps://travis-ci.org/infincia/pyairview.svg?branch=master

pyairview是泛素airview2 2.4ghz频谱分析仪的库,它 具有未记录的设备API

pyairview允许第三方应用程序使用airview设备,而不是 而不仅仅是原始的Java应用程序。

图书馆在预定的目的下运转良好:)

一旦我把基础知识写下来并记录下来,我就可以把它移植到C语言中,以便在其他语言中使用 所以有一个通用的低级库,但是 很简单,即使是到ruby或c的高级端口也可能不需要 一天多了。

设备API文档

请参阅此存储库中包含的DEVICE_API.md文件

用法

from__future__importprint_functionfromtimeimportsleepimportpyairview# open the proper serial portpyairview.connect(port="/dev/ttyACM0")# retrieve device-specific information like RF frequency range and channel sizedevice_info=pyairview.get_device_info()print('Device info: %s',device_info)"""
    start RSSI scanning in a background thread. callback should take a parameter
    named 'rssi_list', which will be a list of rssi values. Use information
    obtained in device_info to interpret the RSSI values and pair them with
    exact frequencies.

"""defscan_callback(rssi_list):print('Received %d RSSI level readings: %s',len(rssi_list),rssi_list)pyairview.start_scan(callback=scan_callback)some_condition=Falsewhilepyairview.is_scanning():sleep(0.1)# or do something else, change some_condition, etcifsome_condition==True:pyairview.stop_scan()

AirView2硬件

airview2设备非常便宜(29-39美元),最初附带了一个java 应用程序,用于可视化该频段的使用,用于Wi-Fi网络规划, 发现恶意热点,诊断蓝牙问题等

在内部,设备基本上只是一个简单的微控制器(aCC2011) 内置2.4GHz收音机和USB接口。它使用标准的USB接口 连接到PC的CDC-ACM串行接口

设备上运行的固件可能是由泛素网络定制的, 我在自己的airView2设备外没有它的副本,即使是在转储的二进制文件中 表单,所以我不太了解它,但它似乎是一个简单的命令/响应 与使用本机rssi功率级扫描的功能耦合的环路 靠芯片

库开发和逆向工程

此库是在使用^{tt1}进行数小时的手动测试后创建的$ 以及screen,猜测使用设备api的正确命令。没有 用于创建此库的信息来自于反编译设备固件 或者原始的Java应用程序。

不要创建包含以下内容的github问题,或向我发送以下内容:

  • 从设备转储固件
  • 反编译的固件或从中派生的代码
  • 原始软件或其派生代码的反编译版本
  • 与API相关的任何类型的代码(除了记录在案的“洁净室”工作)

我没见过那些东西,我不想看到它们 我再也不能为这个库编写代码了。

我甚至不知道如何正确使用洁净室文件,如果 有人会提供给我,所以虽然这可能会有帮助,但我会 当然感谢您的帮助,请不要邮寄或发送文档 先不跟我讨论。

如果你想帮忙,请随时检查代码是否有缺陷,或者打开一个终端 连接到您的airview设备并像我一样猜测一些命令:)

变更日志

版本0.1a2

  • 单文件Python 2.7和3.2+兼容性

释放0.1a1

  • 将libairview模块重命名为pyairview以匹配项目名称(与测试应用程序相同)
  • travis-ci自动测试。只是测试导入pyairview模块 现在,但这足以发现某些简单的错误。要模拟的代码 不久将添加到实际airview设备的串行连接,即 为了测试库中的任何东西
  • 使start_scan()命令不阻塞,调用方应处理管理 库作为运行循环等的一部分。
  • 如果需要,添加disconnect()命令关闭串行端口
  • 允许调用代码在需要时安全地启动和停止扫描
  • 处理部分响应留在串行缓冲区的情况
  • 添加对新发现的“es”命令的支持,以指示Airview结束 当前扫描
  • 添加de的自动解析“gdi”命令中的vice信息,每个元素都被放入 在字典中为每个键提供公共模块常量

释放0.1a0

  • 目前只支持Python2.7,3.2+正在开发中
  • 初始α释放

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList Java中的搜索字符串   另一个web应用程序的java访问会话   另一个应用程序中的活动和服务之间的java通信   java根据Json字符串类型将Json字符串转换为对象   eclipse如何解决java中的错误异常。lang.NoSuchMethodError:'java。字符串javax。摆动JOptionPane。showInputDialog(java.lang.String)'   线程“main”java中的安卓异常。lang.NoClassDefFoundError:org/codehaus/jackson/JsonParseException   java如何在安卓 emulator上显示Mat图像?使用NDK   Java在本地读取测试源文件,但在服务器上读取失败   java dowhile循环用于计算输入数字中的数字。故障排除代码   JAva初学者在编写获取成本的方法时遇到困难   java是shell游戏。我如何让物体移动,特别是在特定的曲线上,但顺序是随机的?   java如何区分两个同名的JButton   java为什么我在Spring Boot中需要一个接口?   java将文件路径插入数据库将删除\   使用InterfaceType初始化java对象   java如何部署一个分为Angular、Spring Boot和MySQL的项目?   java如何使用Symja解决不等式?