{"id":18750351,"url":"https://github.com/ntia/scos-usrp","last_synced_at":"2025-10-25T05:50:08.204Z","repository":{"id":40954031,"uuid":"249810889","full_name":"NTIA/scos-usrp","owner":"NTIA","description":"USRP support for scos-sensor","archived":false,"fork":false,"pushed_at":"2025-02-21T16:42:04.000Z","size":414,"stargazers_count":2,"open_issues_count":4,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-07-18T06:24:36.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NTIA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-24T20:28:44.000Z","updated_at":"2023-02-02T18:32:51.000Z","dependencies_parsed_at":"2024-02-20T18:51:31.456Z","dependency_job_id":"9a7b4772-e7d3-4ab2-9f68-0046fb83b15c","html_url":"https://github.com/NTIA/scos-usrp","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/NTIA/scos-usrp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fscos-usrp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fscos-usrp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fscos-usrp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fscos-usrp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NTIA","download_url":"https://codeload.github.com/NTIA/scos-usrp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fscos-usrp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280911393,"owners_count":26412209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T17:11:30.730Z","updated_at":"2025-10-25T05:50:08.189Z","avatar_url":"https://github.com/NTIA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NTIA/ITS SCOS USRP Plugin\n\nThis repository is a scos-sensor plugin to add support for the Ettus B2xx line of\nsignal analyzers. See the [scos-sensor README](\nhttps://github.com/NTIA/scos-sensor/blob/master/README.md)\nfor more information about scos-sensor, especially the [Architecture](\nhttps://github.com/NTIA/scos-sensor/blob/master/README.md#architecture\n) and the [Actions and Hardware Support](\nhttps://github.com/NTIA/scos-sensor/blob/master/README.md#actions-and-hardware-support\n) sections which explain the scos-sensor plugin architecture.\n\nThis repository includes many 700MHz band actions in [scos_usrp/configs/actions](\nscos_usrp/configs/actions). Action classes, SignalAnalyzerInterface,\nGPSInterface, and signals are used from [scos_actions](https://github.com/NTIA/scos-actions).\n\nFor information on adding actions, see the [scos_actions documentation](\nhttps://github.com/NTIA/scos-actions/blob/master/README.md#adding-actions).\n\n## Table of Contents\n\n- [Overview of Repo Structure](#overview-of-repo-structure)\n- [Running in scos-sensor](#running-in-scos-sensor)\n- [Development](#development)\n- [License](#license)\n- [Contact](#contact)\n\n## Overview of Repo Structure\n\n- scos_usrp/configs: This folder contains the yaml files with the parameters\nused to initialize the USRP supported actions and sample calibration files.\n- scos_usrp/discover: This includes the code to read yaml files and make actions\n  available to scos-sensor.\n- scos_usrp/hardware: This includes the USRP implementation of the signal analyzer\n  interface and GPS interface. It also includes supporting calibration and test code.\n\n## Running in scos-sensor\n\nRequires pip\u003e=18.1 (upgrade using `python3 -m pip install --upgrade pip`).\n\nBelow are steps to run scos-sensor with the scos-usrp plugin:\n\n1. Clone scos-sensor: `git clone https://github.com/NTIA/scos-sensor.git`\n2. Navigate to scos-sensor: `cd scos-sensor`\n3. If it does not exist, create env file while in the root scos-sensor directory:\n   `cp env.template ./env`\n4. Replace the line starting with `scos-tekrsa` in the `requirements.in` file in\n   scos-sensor/src with the following:\n   `scos_usrp @ git+https://github.com/NTIA/scos-usrp@master`.\n   If you are using a different branch than master, change `master` to the branch\n   or tag you are using. Make sure `pip-tools` package is installed in your Python\n   environment (`python -m pip install pip-tools`). Then run\n   `pip-compile requirements.in` and `pip-compile requirements-dev.in` to update\n   `requirements.txt` and `requirements-dev.txt` with the dependencies needed for\n   scos-usrp.\n5. Make sure `BASE_IMAGE` is set to `BASE_IMAGE=ghcr.io/ntia/scos-usrp/scos_usrp_uhd:0.0.2`\n   in the env file. This is a publicly available docker image with the necessary\n   UHD drivers hosted within the GitHub container registry.\n6. Get environment variables: `source ./env`\n7. Build and start containers: `docker-compose up -d --build --force-recreate`\n\n## Development\n\n### Requirements and Configuration\n\nSet up a development environment using a tool like [Conda](https://docs.conda.io/en/latest/)\nor [venv](https://docs.python.org/3/library/venv.html#module-venv),\nwith `python\u003e=3.8`. This repository dependends on the Python UHD library. In\nUbuntu, you can get this by installing the `python3-uhd` package. Then, you can\nget access to this package in your 'venv' virtual environment using the\n`--system-site-packages` option. Then, from the cloned directory, install the\ndevelopment dependencies by running:\n\n```bash\npip install .[dev]\n```\n\nThis will install the project itself, along with development dependencies for pre-commit\nhooks, building distributions, and running tests. Set up pre-commit, which runs\nauto-formatting and code-checking automatically when you make a commit, by running:\n\n```bash\npre-commit install\n```\n\nThe pre-commit tool will auto-format Python code using [Black](https://github.com/psf/black)\nand [isort](https://github.com/pycqa/isort). Other pre-commit hooks are also\nenabled, and can be found in [`.pre-commit-config.yaml`](.pre-commit-config.yaml).\n\n### Building New Releases\n\nThis project uses [Hatchling](https://github.com/pypa/hatch/tree/master/backend)\nas a backend. Hatchling makes versioning and building new releases easy. The\npackage version can be updated easily by using any of the following commands.\n\n```bash\nhatchling version major   # 1.0.0 -\u003e 2.0.0\nhatchling version minor   # 1.0.0 -\u003e 1.1.0\nhatchling version micro   # 1.0.0 -\u003e 1.0.1\nhatchling version \"X.X.X\" # 1.0.0 -\u003e X.X.X\n```\n\nTo build a new release (both wheel and sdist/tarball), run:\n\n```bash\nhatchling build\n```\n\n### Running Tests\n\nSince the UHD drivers are required, a docker container is used for testing. [Install\nDocker](https://docs.docker.com/get-docker/).\n\n```bash\ndocker build -f docker/Dockerfile-test -t usrp_test .\ndocker run usrp_test\n```\n\n### Committing\n\nBesides running the test suite and ensuring that all tests are passing, we also expect\nall Python code that's checked in to have been run through an auto-formatter.\n\nThis project uses a Python auto-formatter called Black. Additionally, import statement\nsorting is handled by isort.\n\nThere are several ways to autoformat your code before committing. First, IDE\nintegration with on-save hooks is very useful. Second, if you've already pip-installed\nthe dev requirements from the section above, you already have a utility called\npre-commit installed that will automate setting up this project's git pre-commit\nhooks. Simply type the following once, and each time you make a commit, it will be\nappropriately autoformatted.\n\n```bash\npre-commit install\n```\n\nYou can manually run the pre-commit hooks using the following command.\n\n```bash\npre-commit run --all-files\n```\n\nIn addition to Black and isort, various other pre-commit tools are enabled including\nmarkdownlint. Markdownlint will show an error message if it detects any style\nissues in markdown files. See [.pre-commit-config.yaml](.pre-commit-config.yaml)\nfor the list of pre-commit tools enabled for this repository.\n\n### Updating the scos_usrp_uhd package\n\nRun the following commands to build, tag, and push the docker image to the Github\nContainer Registry. Replace X.X.X with the desired version number.\n\n```bash\ndocker build -f docker/Dockerfile-uhd -t scos_usrp_uhd .\ndocker tag scos_usrp_uhd ghcr.io/ntia/scos-usrp/scos_usrp_uhd:X.X.X\ndocker push ghcr.io/ntia/scos-usrp/scos_usrp_uhd:X.X.X.\n```\n\n## License\n\nSee [LICENSE](LICENSE.md).\n\n## Contact\n\nFor technical questions about scos-usrp, contact Justin Haze, \u003cjhaze@ntia.gov\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fscos-usrp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntia%2Fscos-usrp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fscos-usrp/lists"}