python DroneCAN code generation, interface and utilities

Overview

UAVCAN v0 stack in Python

Travis CI Gitter

Python implementation of the UAVCAN v0 protocol stack.

UAVCAN is a lightweight protocol designed for reliable communication in aerospace and robotic applications via CAN bus.

Documentation

Installation

Compatible Python versions are 2.7 and 3.3 and newer. If the library is used with Python 3, which is recommended, it does not require any additional dependencies. If Python 2.7 is used, additional dependencies are needed - refer to setup.py for more info.

pip install uavcan

Development

Automatic deployment to PyPI

In order to deploy to PyPI via CI, do this:

  1. Update the version number in version.py, e.g. 1.0.0, and commit before proceeding.
  2. Create a new tag with the same version number, e.g. git tag -a 1.0.0 -m "My release 1.0.0"
  3. Push to master.

Code style

Please follow the Zubax Python Coding Conventions.

You might also like...
Programmatic interface to Synapse services for Python

A Python client for Sage Bionetworks' Synapse, a collaborative, open-source research platform that allows teams to share data, track analyses, and collaborate

Python client SDK designed to simplify integrations by automating key generation and certificate enrollment using Venafi machine identity services.
Python client SDK designed to simplify integrations by automating key generation and certificate enrollment using Venafi machine identity services.

This open source project is community-supported. To report a problem or share an idea, use Issues; and if you have a suggestion for fixing the issue,

Comics/doujinshi reader application. Web-based, will work on desktop and tablet devices with swipe interface.
Comics/doujinshi reader application. Web-based, will work on desktop and tablet devices with swipe interface.

Yomiko Comics/doujinshi reader application. Web-based, will work on desktop and tablet devices with swipe interface. Scans one or more directories of

This is a far more in-depth and advanced version of "Write user interface to a file API Sample"

Fusion360-Write-UserInterface This is a far more in-depth and advanced version of "Write user interface to a file API Sample" from https://help.autode

Tools, guides, and resources for blockchain analysts to interface with data on the Ergo platform.

Ergo Intelligence Objective Provide a suite of easy-to-use toolkits, guides, and resources for blockchain analysts and data scientists to quickly unde

An Agora Python Flask token generation server

A Flask Starter Application with Login and Registration About A token generation Server using the factory pattern and Blueprints. A forked stripped do

Python bindings for Basler's VisualApplets TCL script generation
Python bindings for Basler's VisualApplets TCL script generation

About visualapplets.py The Basler AG company provides a TCL scripting engine to automatize the creation of VisualApplets designs (a former Silicon Sof

A collection of common regular expressions bundled with an easy to use interface.

CommonRegex Find all times, dates, links, phone numbers, emails, ip addresses, prices, hex colors, and credit card numbers in a string. We did the har

Python3 Interface to numa Linux library

py-libnuma is python3 interface to numa Linux library so that you can set task affinity and memory affinity in python level for your process which can help you to improve your code's performence.

Comments
  • AttributeError: module 'collections' has no attribute 'MutableSequence' with Python 3.10 (ships with Ubuntu 22.04 by default)

    AttributeError: module 'collections' has no attribute 'MutableSequence' with Python 3.10 (ships with Ubuntu 22.04 by default)

    This happens because MutableSequence is now part of collections.abc; a possible fix is to change the import in transport.py to

    try:
        from collections import MutableSequence
    except ImportError:
        from collections.abc import MutableSequence
    

    which might not be the most elegant solution, but keeps support for all versions.

    opened by marcojob 1
  • Update to DroneCAN Namespace

    Update to DroneCAN Namespace

    This PR moves to using dronecan name for python module, while retaining backward compatibility with uavcan as much as possible.

    • All older uavcan specs are now available via dronecan.uavcan
    • support for loading both uavcan_vendor_specific_types and dronecan_vendor_specific_types
    • doesn't require change to DSDLs
    • uses relative ../DSDL to load standard DSDLs

    This will need to be pushed force as this is based off pyuavcan directly

    opened by bugobliterator 1
  • parser: added OVERRIDE_SIGNATURE

    parser: added OVERRIDE_SIGNATURE

    this allows for DSDL with an overridden signature, allowing for a message to be moved in the DSDL tree while maintaining compatibility with an existing vendor message

    for an example see https://github.com/dronecan/DSDL/pull/16

    opened by tridge 0
  • support sending CANFD messages

    support sending CANFD messages

    including an example script that sends single and multi-frame CANFD LogMessage frames only supports mavcan transport so far. We need to add slcan sending UPDATE: now works with slcan too

    opened by tridge 0
Releases(1.0.16)
  • 1.0.16(Oct 10, 2022)

    What's Changed

    • parser: added OVERRIDE_SIGNATURE by @tridge in https://github.com/dronecan/pydronecan/pull/22

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.15...1.0.16

    Source code(tar.gz)
    Source code(zip)
  • 1.0.15(Aug 15, 2022)

  • 1.0.14(Aug 14, 2022)

  • 1.0.13(Aug 14, 2022)

    What's Changed

    • add support for CANFD for socketcan by @bugobliterator in https://github.com/dronecan/pydronecan/pull/19
    • Add additional dsdl path for loading by @marcojob in https://github.com/dronecan/pydronecan/pull/21
    • support RemoteID messages

    New Contributors

    • @marcojob made their first contribution in https://github.com/dronecan/pydronecan/pull/21

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.12...1.0.13

    Source code(tar.gz)
    Source code(zip)
  • 1.0.12(Mar 16, 2022)

    What's Changed

    • change exception handling for mavcan by @tridge in https://github.com/dronecan/pydronecan/pull/18

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.11...1.0.12

    Source code(tar.gz)
    Source code(zip)
  • 1.0.11(Feb 17, 2022)

    What's Changed

    • mavcan: allow set of target_system by @tridge in https://github.com/dronecan/pydronecan/pull/15
    • support sending CANFD messages by @tridge in https://github.com/dronecan/pydronecan/pull/16
    • node: added top level Node setting for sending CANFD by @tridge in https://github.com/dronecan/pydronecan/pull/17

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.10...1.0.11

    Source code(tar.gz)
    Source code(zip)
  • 1.0.10(Feb 14, 2022)

    What's Changed

    • added filtering support to mavcan by @tridge in https://github.com/dronecan/pydronecan/pull/14

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.9...1.0.10

    Source code(tar.gz)
    Source code(zip)
  • 1.0.9(Feb 11, 2022)

    What's Changed

    • Add support for CANFD frames over SLCAN by @bugobliterator in https://github.com/dronecan/pydronecan/pull/12
    • support CANFD_FRAME in mavcan by @tridge in https://github.com/dronecan/pydronecan/pull/13

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.8...1.0.9

    Source code(tar.gz)
    Source code(zip)
  • 1.0.8(Feb 8, 2022)

  • 1.0.7(Feb 7, 2022)

    added mavcan support and auto-reconnect

    What's Changed

    • added runnable example scripts by @tridge in https://github.com/dronecan/pydronecan/pull/9
    • slcan: implement automatic port reopen by @tridge in https://github.com/dronecan/pydronecan/pull/8
    • added mavcan driver by @tridge in https://github.com/dronecan/pydronecan/pull/10
    • mavcan: support bus number and auto-reconnect by @tridge in https://github.com/dronecan/pydronecan/pull/11

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.6...1.0.7

    Source code(tar.gz)
    Source code(zip)
  • 1.0.6(Feb 3, 2022)

    What's Changed

    • fixed top level namespaces by @tridge in https://github.com/dronecan/pydronecan/pull/7

    Full Changelog: https://github.com/dronecan/pydronecan/compare/1.0.5...1.0.6

    Source code(tar.gz)
    Source code(zip)
  • 1.0.5(Dec 16, 2021)

  • 1.0.3(Nov 12, 2021)

Owner
DroneCAN
DroneCAN
A wide AOI generator tool.

Dark Generator A wide AOI generator tool. Information Installation To Install you have to have python 3.x and pip installed on your system. If you hav

Darkest Surface 12 Dec 26, 2022
Google Fit Sensor Component

Google Fit Sensor Component

Ivan Vojtko 21 Dec 20, 2022
Data repo for one-among.us

Our Data Data repo for one-among.us File Structure Directory /people/userid/: Data for a specific person info.json5: Profile information page.md: Pr

Hykilpikonna 55 Dec 30, 2022
SciPy library main repository

SciPy SciPy (pronounced "Sigh Pie") is an open-source software for mathematics, science, and engineering. It includes modules for statistics, optimiza

SciPy 10.7k Jan 09, 2023
SpaCy3Urdu: run command to setup assets(dataset from UD)

Project setup run command to setup assets(dataset from UD) spacy project assets It uses project.yml file and download the data from UD GitHub reposito

Muhammad Irfan 1 Dec 14, 2021
Digdata presented 'BrandX' as a clothing brand that wants to know the best places to set up a 'pop up' store.

Digdata presented 'BrandX' as a clothing brand that wants to know the best places to set up a 'pop up' store. I used the dataset given to write a program that ranks these places.

Mahmoud 1 Dec 11, 2021
Headless chatbot that detects spam and posts links to it to chatrooms for quick deletion.

SmokeDetector Headless chatbot that detects spam and posts it to chatrooms. Uses ChatExchange, takes questions from the Stack Exchange realtime tab, a

Charcoal 421 Dec 21, 2022
A TODO-list tool written in Python

PyTD A TODO-list tool written in Python. Its goal is to provide a stable posibility to get a good view over all your TODOs motivate you to actually fi

1 Feb 12, 2022
XHacks 2021 Startup Track Winner: Be Heard. Educate, Enact, Empower. No voice left behind. (backend)

Be Heard: X Hacks 2021 Submission Educate, Enact, Empower. No voice left behind. Inspiration To say 2020 was an eventful year would be an understateme

3 Jul 14, 2022
A proof-of-concept package manager for Cairo contracts/libraries

glyph A proof-of-concept package manager for Cairo contracts/libraries. Distribution through pypi. Installation through existing package managers -- p

Sam Barnes 11 Jun 06, 2022
Procedural modeling of fruit and sandstorm in Blender (bpy).

SandFruit Procedural modelling of fruit and sandstorm. Created by Adriana Arcia and Maya Boateng. Last updated December 19, 2020 Goal & Inspiration Ou

Adriana Arcia 2 Mar 20, 2022
Ningyu Jia(nj2459)/Mengyin Ma(mm5937) Call Analysis group project(Group 36)

Group and Section Group 36 Section 001 name and UNI Name UNI Ningyu Jia nj2459 Mengyin Ma mm5937 code explanation Parking.py (1) Calculate the rate of

1 Dec 04, 2021
Algo próximo do ARP

ArpPY Algo parecido com o ARP-Scan. Dependencias O script necessita no mínimo ter o Python versão 3.x instalado e ter o sockets instalado. Executando

Feh's 3 Jan 18, 2022
🍏 Make Thinc faster on macOS by calling into Apple's native Accelerate library

🍏 Make Thinc faster on macOS by calling into Apple's native Accelerate library

Explosion 81 Nov 26, 2022
Python-Kite: Simple python code to make kite pattern

Python-Kite Simple python code to make kite pattern. Getting Started These instr

Anoint 0 Mar 22, 2022
Blender addon that enables exporting of xmodels from blender. Great for custom asset creation for cod games

Birdman's XModel Tools For Blender Greetings everyone in the custom cod community. This blender addon should finally enable exporting of custom assets

wast 2 Jul 02, 2022
Pylexa - Artificial Assistant made with Python

Pylexa - Artificial Assistant made with Python Alexa is a famous artificial assistant used massively across the world. It is a substitute of Alexa whi

\_PROTIK_/ 4 Nov 03, 2021
This Python script can enumerate all URLs present in robots.txt files, and test whether they can be accessed or not.

Robots.txt tester With this script, you can enumerate all URLs present in robots.txt files, and test whether you can access them or not. Setup Clone t

Podalirius 32 Oct 10, 2022
Python 101 Forever

🚀 Python 101 Forever 🚀 Official Python 101 Forever GitHub repository. START HERE - CHECK README SUBSCRIBE FOR UPDATES HERE Sponsors Contac

Hack Bulgaria 58 Nov 30, 2022
Fluxos de captura e subida de dados no datalake da Prefeitura do Rio de Janeiro.

Pipelines Este repositório contém fluxos de captura e subida de dados no datalake da Prefeitura do Rio de Janeiro. O repositório é gerido pelo Escritó

Prefeitura do Rio de Janeiro 19 Dec 15, 2022