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
Structured Exceptions for Python

XC: Structured exceptions for Python XC encourages a structured, disciplined approach to use of exceptions: it reduces the overhead of declaring excep

Bob Gautier 2 May 28, 2021
Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries.

Zeus Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries. Any flight worldwide, at your fing

DeVickey 1 Oct 22, 2021
《赛马娘》(ウマ娘: Pretty Derby)辅助 🐎🖥 基于 auto-derby 可视化操作/设置 启动器 一键包

ok-derby 《赛马娘》(ウマ娘: Pretty Derby)辅助 🐎 🖥 基于 auto-derby 可视化操作/设置 启动器 一键包 便捷,好用的 auto_derby 管理器! 功能 支持客户端 DMM (前台) 实验性 安卓 ADB 连接(后台)开发基于 1080x1920 分辨率

秋葉あんず 90 Jan 01, 2023
TriOTP, the OTP framework for Python Trio

TriOTP, the OTP framework for Python Trio See documentation for more informations. Introduction This project is a simplified implementation of the Erl

David Delassus 7 Nov 21, 2022
Kunai Shitty Raider Leaked LMFAO

Kunai-Raider-Leaked Kunai Shitty Raider Leaked LMFA

5 Nov 24, 2021
An integrated library for checking email if it is registered on social media

An integrated library for checking email if it is registered on social media

Sidra ELEzz 13 Dec 08, 2022
Persian Kaldi profile for Rhasspy built from open speech data

Persian Kaldi Profile A Rhasspy profile for Persian (fa). Installation Get started by first installing Vosk: # Create virtual environment python3 -m v

Rhasspy 12 Aug 08, 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
News-app - This is a news web app for reading news from different sources and topics

News-app - This is a news web app for reading news from different sources and topics

1 Feb 02, 2022
Use this function to get list of routes for particular journey

route-planner Functions api_processing Use this function to get list of routes for particular journey. Function has three parameters: Origin Destinati

2 Nov 28, 2021
Homed - Light-weight, easily configurable, dockerized homepage

homed GitHub Repo Docker Hub homed is a light-weight customizable portal primari

Matt Walters 12 Dec 15, 2022
A tool to improve Boolean satisfiability (SAT) solver user's life

SatHelper This is a tool to improve the Boolean satisfiability (SAT) and MaxSAT solver user's life. It helps you model various problems as SAT and Max

Tomas Balyo 1 Nov 16, 2021
Just some information about this nerd.

Greetings, mates, I am ErrorDIM - aka ErrorDimension 👋 🧬 Programming Languages I Can Use: 🥇 Top Starred Repositories: # Name Stars Size Major Langu

ErrorDIM 3 Jan 11, 2022
pyinsim is a InSim module for the Python programming language.

PYINSIM pyinsim is a InSim module for the Python programming language. It creates socket connection with LFS and provides many classes, functions and

2 May 12, 2022
Convert temps in your Alfred search bar

Alfred Temp Converter Convert temps in your Alfred search bar. Download Here Usage: temp 100f converts to Celsius, Kelvin, and Rankine. temp 100c conv

Justin Hamilton 4 Apr 11, 2022
Notebooks for computing approximations to the prime counting function using Riemann's formula.

Notebooks for computing approximations to the prime counting function using Riemann's formula.

Tom White 2 Aug 02, 2022
Osintgram by Datalux but i fixed some errors i found and made it look cleaner

OSINTgram-V2 OSINTgram-V2 is made from Osintgram which is made by Datalux originally but i took the script and fixed some errors i found and made the

2 Feb 02, 2022
Hasklig - a code font with monospaced ligatures

Hasklig – Ligatures for code Programming languages are limited to relatively few characters. As a result, combined character operators surfaced quite

Ian Tuomi 5.3k Jan 03, 2023
Library support get vocabulary from MEM

Features: Support scraping the courses in MEM to take the vocabulary Translate the words to your own language Get the IPA for the English course Insta

Joseph Quang 4 Aug 13, 2022
Plux - A dynamic code loading framework for building plugable Python distributions

Plux plux is the dynamic code loading framework used in LocalStack. Overview The

LocalStack 65 Dec 20, 2022