Skip to main content

A python API to remotely access signal centric hardware. Client-side only!

Project description

Remote RF

A python API to remotely access signal centric hardware.

Courtesy of Wireless Lab @ UCLA. - Ethan Ge

Prerequisites

  • Python 3.10: This package works in Python 3.10+. If you don’t have Python installed, you can download it from the official Python website.

To check your current Python version, open a terminal and run:

python --version
  • UCLA VPN: Please ensure that you are connected to the UCLA VPN. You can download and configure the VPN client from the following link: UCLA VPN Client Download. If you’re not connected to the VPN, you will not have access to the lab servers.

Installation

Use the package manager pip to install remoteRF. It is recommended that you install this package within a virtual environment.

python3 -m venv venv        # Create virtual environment
source venv/bin/activate    # Activate virtual environment

pip install remoteRF        # Install remoteRF

If pip install doesn't work, you can clone the source directly from github.

Reservation

Usage of the platform requires you to register a account and reserve a device in order to run scripts remotely.

1. Start UCLA VPN

  • Start the CISCO Secure client, login and connect to any of the options.

2. Register a account:

remoterf-login  
# Run in the terminal 
# where the Python library is installed

# Typically, this will be the terminal where you’ve activated the virtual environment if you’re using one
  • Input r to register a account, or l to login to a existing one.
Welcome to Remote RF Account System.
Please login or register to continue. (l/r):
  • Once in, input help to see all avaliable commands.

3. Reserve Device:

getdev  # To view all avaliable devices

# Note the device ID. You will need this later to reserve said device
getres  # To view times not avaliable

# Optionally, you can also view all reservations, and determine a time slot you want a specific device reserved
perms   # To view your permissions

# Depending on your permission levels, you will be given different restrictions 
resdev # To reserve a device

Enter the device ID you would like to reserve: 0
Reserve Start Time (YYYY-MM-DD HH:MM): 2024-11-20 10:20
Reserve End Time (YYYY-MM-DD HH:MM): 2024-11-20 11:20

# Time is military time. You can also use arrow keys to cycle between previous commands.

Reservation successful. Thy Token -> example_token

# Take note of this token. You will need it to actually access the device.

Remote Access

With this token, you can now run scripts remotely. Please keep in mind that you MUST be connected to the UCLA VPN for this to work. Here is a explained sample script to get you going!

Python Script:

from remoteRF.drivers.adalm_pluto import *  # Imports device Pluto SDR remote drivers. Change depending on desired device.

sdr = adi.Pluto(    # Device initialization.
    token = 'sample_token'     # Place the prior token here.
)

# You can now use this 'sdr' as you normally would with the default Pluto drivers.

If converting a existing non-remoteRF compatible script:

- import existing_device_drivers 

+ from remoteRF.drivers.device_drivers import *

- device = device(init)

+ device = device(token = 'sample_token')

Nothing else needs changing!

Closing

This is fundamentally a experimental platform, and there will be many unknown bugs and issues. Some devices do not have universal support for all its functions at the moment, I am working on that aspect.

So please submit feedback!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remoterf-0.0.6.4.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remoteRF-0.0.6.4-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file remoterf-0.0.6.4.tar.gz.

File metadata

  • Download URL: remoterf-0.0.6.4.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.2

File hashes

Hashes for remoterf-0.0.6.4.tar.gz
Algorithm Hash digest
SHA256 35b05d27aad97a1a1878d37bce6c34d87f4fccf16a9afa799c970b8dd85faeb3
MD5 4e0d3aaf214af3a510e3f5e7b8411ad0
BLAKE2b-256 67de70a11125d6e8abf0f184570ec555470d08185561a4ccf10f32e1c3787dec

See more details on using hashes here.

File details

Details for the file remoteRF-0.0.6.4-py3-none-any.whl.

File metadata

  • Download URL: remoteRF-0.0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.2

File hashes

Hashes for remoteRF-0.0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 90e9e419181d5b97c1c1e0c58ca80457763a2b55e44f22a780e3d602863b5247
MD5 ddb2f61a7edbdb1f30dbfceb8c0b035c
BLAKE2b-256 5a62770263e2ccd25efaea9bcddc58d1c9e5798b2d482190032b33143000a7d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page