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
0xFalcon - 0xFalcon Tool For Python

0xFalcone Installation Install 0xFalcone Tool: apt install git git clone https:/

Alharb7 6 Sep 24, 2022
Perform oocyst segmentation in mercurochrome stained mosquito midgut

Midgut_oocyst_segmentation Perform oocyst segmentation in mercurochrome stained mosquito midguts This oocyst segmentation model also powers the webtoo

Duo Peng 3 Oct 27, 2021
An open source recipe book from the awesome staff of Clinical Genomics

meatballs An open source recipe book from the awesome staff of Clinical Genomics.

Clinical Genomics 2 Dec 07, 2021
A Python script to convert your favorite TV series into an Anki deck.

Ankiniser A Python3.8 script to convert your favorite TV series into an Anki deck. How to install? Download the script with git or download it manualy

37 Nov 03, 2022
Animation picker for Audodesk Maya 2017 (or higher)

Dreamwall Picker Animation picker for Audodesk Maya 2017 (or higher) Authors: Lionel Brouyère, Olivier Evers This tool is a fork of Hotbox Designer (L

DreamWall 93 Dec 21, 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 GUI love Calculator which saves all the User Data in text file(sql based script will be uploaded soon). Interative GUI. Even For Admin Panel

Love-Calculator A GUI love Calculator which saves all the User Data in text file(sql based script will be uploaded soon). Interative GUI, even For Adm

Adithya Krishnan 1 Mar 22, 2022
A simple interface to help lazy people like me to shutdown/reboot/sleep their computer remotely.

🦥 Lazy Helper ! A simple interface to help lazy people like me to shut down/reboot/sleep/lock/etc. their computer remotely. - USAGE If you're a lazy

MeHDI Rh 117 Nov 30, 2022
PyGo custom language, New but similar language programming

New but similar language programming. Now we are capable to program in a very similar language to Python but at the same time get the efficiency of Go.

Fernando Perez 4 Nov 19, 2022
A guy with a lot of useful things to do when doing AtCoder in Python

atcoder_python_env Python で AtCoder をやるときに便利な諸々を用意したやつ コンテスト用フォルダの作成 セットアップ 自動テス

2 Dec 28, 2021
Code emulator plugin for IDA Pro

emu_ida Code emulator plugin for IDA Pro (v 0.0.6) The plugin is designed for simple data decryption and getting stack strings. Requirements Emulator

Andrey Zhdanov 11 Jul 06, 2022
Taxonomy addition for complete trees

TACT: Taxonomic Addition for Complete Trees TACT is a Python app for stochastic polytomy resolution. It uses birth-death-sampling estimators across an

Jonathan Chang 3 Jun 07, 2022
El Niño - Southern Oscillation analysis compared to minimum flow rates of rivers in northeast Brazil

ENSO (El Niño - Southern Oscillation) analysis in northeast Brazil É comprovada a influência dos fenômenos El Niño e La Niña nas secas no nordesde bra

Weyder Freire 1 Jan 13, 2022
Blender 3.1 Alpha (and later) PLY importer that correctly loads point clouds (and all PLY models as point clouds)

import-ply-as-verts Blender 3.1 Alpha (and later) PLY importer that correctly loads point clouds (and all PLY models as point clouds) Latest News Mand

Michael Prostka 82 Dec 20, 2022
Курс "Искусственный интеллект и машинное обучение"

Искусственный интеллект и машинное обучение О курсе Данный репозиторий содержит в себе сопроводительный учебный материал для курса "Искусственный инте

Dmitry Aladin 19 Dec 04, 2022
ioztat is a storage load analysis tool for OpenZFS

ioztat is a storage load analysis tool for OpenZFS. It provides iostat-like statistics at an individual dataset/zvol level.

Jim Salter 116 Nov 25, 2022
tool to automate exploitation of android degubg bridge vulnerability

DISCLAIMER DISCLAIMER: ANY MALICIOUS USE OF THE CONTENTS FROM THIS ARTICLE WILL NOT HOLD THE AUTHOR RESPONSIBLE HE CONTENTS ARE SOLELY FOR EDUCATIONAL

6 Feb 12, 2022
A python script to make leaderboards using a CSV with the runners name, IDs and Flag Emojis

SrcLbMaker A python script to make speedrun.com global leaderboards. Installation You need python 3.6 or higher. First, go to the folder where you wan

2 Jul 25, 2022
skimpy is a light weight tool that provides summary statistics about variables in data frames within the console.

skimpy Welcome Welcome to skimpy! skimpy is a light weight tool that provides summary statistics about variables in data frames within the console. Th

267 Dec 29, 2022
CPLib is the abbreviation of Competitive Programming Library.

CPLib CPLib is the abbreviation of Competitive Programming Library. It aims to be a general template and optimization library for competitive programm

12 Oct 16, 2021