Giter Site home page Giter Site logo

arinc429_utils's Introduction

This repo is work in progress. Functions are not implemented.

ARINC 429 protocol Utility library

Usage

CMake

Code

Contribute

arinc429_utils's People

Contributors

sergio-eld avatar

Stargazers

Evgeny Nikitin avatar  avatar LJ avatar

Watchers

 avatar

arinc429_utils's Issues

add test to customization capability

  • "Set" custom function test. Input: value and scale_factor, expected output: value / scale_factor
  • "Get" custom function test. Input: value and scale_factor, expected output: value * scale_factor

add make_word function

It would be convenient to assemble a specific word type from descriptors with default values.

function should accept variadic data descriptors and possibly an arinc word type as a first argument to be used as feed.
Arinc word type must contain the same descriptors as provided within arguments, or it's specific bits must not be occupied for a given descriptor.

Нельзя получить uint32_t версию слова.

На текущий момент rawWord_ является приватный полем word_generic, соответствующего геттера тоже нет, таким образом получить доступ к uint32_t варианту слова нельзя. В таком случае использовать библиотеку можно только для декодирования, реализовать генерацию не получится.

Get data by name_type of data descriptor

Now this version does not work as intended:

struct label{};
using label_descr = data_descriptor<label, 1, 8>;
using word_with_label = word_generic<label_descr>;
auto val = word_with_label().get<label>(); // will not compile

Не хватает варианта функции set_value для uint32_t с множителем

В протоколах встречаются случаи, когда для получения искомого целочисленного значения, передаваемое значение, предполагается умножать на заранее определенный целочисленный множитель (scale factor). При текущем интерфейсе это достигается за счет кастомизации data_descriptor, однако логичнее добавить данную возможность с помощью дополнительной версии функции set_value.

Как варианта:

template
void set_value(const T &value,
traits::word_raw_type & wordRaw,
size_t lsb,
size_t msb,
T scaleFactor,
std::true_type /is_floating_point/);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.