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 repository containing useful resources needed to complete the SUSE Scholarship Challenge #UdacitySUSEScholars #poweredbySUSE

SUSE-udacity-cloud-native-scholarship A repository containing useful resources needed to complete the SUSE Scholarship Challenge #UdacitySUSEScholars

Nandini Proothi 11 Dec 02, 2021
Qt-creator-boost-debugging-helper - Qt Creator Debugging Helper for Boost Library

Go to Tools Options Debugger Locals & Expressions. Paste the script path t

Dmitry Bravikov 2 Apr 22, 2022
Vaksina - Vaksina COVID QR Validation Checker With Python

Vaksina COVID QR Validation Checker Vaksina is a general purpose library intende

Michael Casadevall 33 Aug 20, 2022
A simple Python script for generating a variety of hashes from safe urandom entropy.

Hashgen A simple Python script for generating a variety of hashes from safe urandom entropy. For whenever you need a random hash (e.g. generating an a

Xanspie 1 Feb 17, 2022
A python trivium implemention

A python trivium implemention

tnt2402 1 Nov 12, 2021
Start and stop your NiceHash miners using this script.

NiceHash Mining Scheduler Use this script to schedule your NiceHash Miner(s). Electricity costs between 4-9pm are high in my area and I want NiceHash

SeaRoth 2 Sep 30, 2022
An unofficial opensource Pokemon cursor theme for Windows and Linux.

pokemon-cursor An unofficial opensource Pokemon cursor theme for Windows and Linux. Cursor Sizes 22 24 28 32 40 48 56 64 72 80 88 96 Colors Quick inst

Kaiz Khatri 72 Dec 26, 2022
Keep your company's passwords behind the firewall

TeamVault TeamVault is an open-source web-based shared password manager for behind-the-firewall installation. It requires Python 3.3+ and Postgres (wi

//SEIBERT/MEDIA GmbH 38 Feb 20, 2022
Use Fofa、shodan、zoomeye、360quake to collect information(e.g:domain,IP,CMS,OS)同时调用Fofa、shodan、zoomeye、360quake四个网络空间测绘API完成红队信息收集

Cyberspace Map API English/中文 Development fofaAPI Completed zoomeyeAPI shodanAPI regular 360 quakeAPI Completed Difficulty APIs uses different inputs

Xc1Ym 61 Oct 08, 2022
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,

Venafi, Inc. 13 Sep 27, 2022
Final project in KAIST AI class

mmodal_mixer MLP-Mixer based Multi-modal image-text retrieval Image: Original image is cropped with 16 x 16 patch size without overlap. Then, it is re

SuperSuperMoon 5 May 30, 2022
Aplicação que envia regularmente um email ao utilizador com todos os filmes disponíveis no cartaz dos cinemas Nos.

Cartaz-Cinemas-Nos Aplicação que envia regularmente uma notificação ao utilizador com todos os filmes disponíveis no cartaz dos cinemas Nos. Só funcio

Cavalex 1 Jan 09, 2022
Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters.

modeval Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters. Basic U

2 Jan 01, 2022
Ml-design-patterns - Source code accompanying O'Reilly book: Machine Learning Design Patterns

This is not an official Google product ml-design-patterns Source code accompanying O'Reilly book: Title: Machine Learning Design Patterns Authors: Val

Google Cloud Platform 1.5k Jan 05, 2023
Covid-ChatBot - A Rapid Response Virtual Agent for Covid-19 Queries

COVID-19 CHatBot A Rapid Response Virtual Agent for Covid-19 Queries Contents What is ChatBot Types of ChatBots About the Project Dataset Prerequisite

NelakurthiSudheer 2 Jan 04, 2022
Sudo type me a payload

payloadSecretary Sudo type me a payload Have you ever found yourself having to perform a test, and a client has provided you with a VM inside a VDI in

7 Jul 21, 2022
Basic Clojure REPL for Sublime Text

Basic Clojure REPL for Sublime Text Goals: Decomplected: just REPL, nothing more Zero dependencies: works directly with pREPL Compact: Display code ev

Nikita Prokopov 23 Dec 24, 2021
Criando um jogo de naves espaciais com Pygame. Para iniciantes em Python

Curso de Programação de Jogos com Pygame Criando um jogo de naves espaciais com Pygame. Para iniciantes em Python Pré-requisitos Antes de começar este

Flávio Codeço Coelho 33 Dec 02, 2022
Fast STL (ASCII & Binary) importer for Blender

blender-fast-stl-importer Fast STL (ASCII & Binary) importer for Blender based on https://en.wikipedia.org/wiki/STL_(file_format) Technical notes: flo

Iyad Ahmed 7 Apr 17, 2022
This Open-Source project is great for sensor capture and storage solutions.

Phase 1 This project helps developers in the creation of extended realities that communicate with Arduino and require the security of blockchain stora

Wolfberry, LLC 10 Dec 28, 2022