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
Simple but maybe too simple config management through python data classes. We use it for machine learning.

👩‍✈️ Coqpit Simple, light-weight and no dependency config handling through python data classes with to/from JSON serialization/deserialization. Curre

coqui 67 Nov 29, 2022
AdventOfCode 2021 solutions from the Devcord server

adventofcode-21 Ein Sammel-Repository für Advent of Code 2021-Lösungen der deutschen DevCord-Community. A repository collecting Advent of Code 2021 so

Devcord 12 Aug 26, 2022
Example code for the book Fluent Python, 1st Edition (O'Reilly, 2015)

Fluent Python, First Edition: example code This repository is archived and will not be updated.

Fluent Python 5.4k Jan 09, 2023
3x+1 recreated in Python

3x-1 3x+1 recreated in Python If a number is odd it is multiplied by 3 and 1 is added to the product. If a number is even it is divided by 2. These ru

4 Aug 19, 2022
Visual Python and C++ nanosecond profiler, logger, tests enabler

Look into Palanteer and get an omniscient view of your program Palanteer is a set of lean and efficient tools to improve the quality of software, for

Damien Feneyrou 1.9k Dec 26, 2022
Reference management solution using Python and Notion.

notion-scholar Reference management solution using Python and Notion. The main idea of this app is to allow to furnish a Notion database using a BibTe

Thomas Hirtz 69 Dec 21, 2022
디텍션 유틸 모음

Object detection utils 유틸모음 설명 링크 convert convert 관련코드 https://github.com/AI-infinyx/ob_utils/tree/main/convert crawl 구글, 네이버, 빙 등 크롤링 관련 https://gith

codetest 41 Jan 22, 2021
Blender Light Manipulation - A script that makes it easier to work with light

Blender Light Manipulation A script that makes it easier to work with light 1. Wstęp W poniższej dokumentacji przedstawiony zostanie skrypt, który swo

Tomasz 1 Oct 19, 2021
Python plugin for Krita that assists with making python plugins for Krita

Krita-PythonPluginDeveloperTools Python plugin for Krita that assists with making python plugins for Krita Introducing Python Plugin developer Tools!

18 Dec 01, 2022
Um sistema de llogin feito em uma interface grafica.

Interface-para-login Um sistema de login feito com JSON. Utilizando a biblioteca Tkinter, eu criei um sistema de login, onde guarda a informações de l

Mobben 1 Nov 28, 2021
Fully coded Apps by Codex.

OpenAI-Codex-Code-Generation Fully coded Apps by Codex. How I use Codex in VSCode to generate multiple completions with autosorting by highest "mean p

nanowell 47 Jan 01, 2023
The worst and slowest programming language you have ever seen

VenumLang this is a complete joke EXAMPLE: fizzbuzz in venumlang x = 0

Venum 7 Mar 12, 2022
清晰易读的7x7像素点阵中文字体和取模工具

FontChinese7x7 上古神器 III : 7x7像素点阵中文字体 想要在低分辨率屏幕上显示中文, 却发现中文字体实在是太大? 找了全网发现字体库最小也只有12x12? 甚至是好不容易找到了一个8x8字体, 结果发现字体收费且明确说明不得以任何形式嵌入到软件当中? 那就让这个项目来解决你的问

Angelic47 72 Dec 12, 2022
Python project setup, updater, and launcher

Launcher Python project setup, updater, and launcher Purpose: Increase project productivity and provide features easily. Once installed as a git submo

DAAV, LLC 1 Jan 07, 2022
Run Python code right in your Telegram messages

Run Python code right in your Telegram messages Made with Telethon library, TGPy is a tool for evaluating expressions and Telegram API scripts. Instal

29 Nov 22, 2022
Simple package to make requests throughout Tor with circuit renewal.

AutoTor Table of Contents About the Project Contents Dependencies Getting Started Installation Coding Contributing About the Project Simple package to

Salvador Belenguer 6 Jan 01, 2023
Python most simple|stupid programming language (MSPL)

Most Simple|Stupid Programming language. (MSPL) Stack - Based programming language "written in Python" Features: Interpretate code (Run). Generate gra

Kirill Zhosul 14 Nov 03, 2022
App to get data from popular polish pages with job offers

Job board parser I written simple app to get me data from popular pages with job offers, because I wanted to knew immidietly if there is some new offe

0 Jan 04, 2022
Autogenerador tonto de paquetes para ROSCPP

Autogenerador tonto de paquetes para ROSCPP Autogenerador de paquetes que usan C++ en ROS. Por ahora tiene las siguientes capacidades: Permite crear p

1 Nov 26, 2021
Serverless demo showing users how they can capture (and obfuscate) their Lambda payloads in Datadog APM

Serverless-capture-lambda-payload-demo Serverless demo showing users how they can capture (and obfuscate) their Lambda payloads in Datadog APM This wi

Datadog, Inc. 1 Nov 02, 2021