Giter Club home page Giter Club logo

oxygen-sdk's People

Contributors

glaure avatar hplightcorner avatar jpoellitsch avatar matthiasstraka avatar mpobaschnig avatar mponiz avatar tkastner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oxygen-sdk's Issues

How to add a "Plugin-Level" Config

Dear Dewetron Team,

My Plugin needs a "Plugin-Level" Config Input (in my special case a simple File-Path), similar to the ethernet-receiver:
image

There are now several questions arising:

  • How can I implement such a config-parameter on "Plugin-Level"?
  • If adding multiple instances of this plugin, will the current configuration/path stay the same when I hit the plus button to add a new channel?

Use-Case:
My Plugin provides n-channels, which are polled from a custom data source. Therefore, the plugin starts to spin a single thread for all channels as soon as a the first channel is getting active. Each Channel-Instance uses the data from the single polling thread. However, the polling-thread itself has to be configured using an situation-specific YAML File - and of course I would like to use the same configuration for each instance of the plugin.

Missing Function: OutputChannel - Get Channel Key

Issue
I am adding and deleting output channels dynamically (or to be more precise - according to a setup-file) to my plugin. I want to compare to the unique-channel key, and if the present channel key was removed from the settings file, I am going to delete the output-channel in oxygen as well. To do so, I need the INSTANCE_CHANNEL_KEY property.

My current source code looks like this:
const auto& key_property = std::dynamic_pointer_cast<EditableStringProperty>(channels_to_question[i]->getProperty("SoftwareChannelInstanceKey"));

as the INSTANCE_CHANNEL_KEY is defined private in odkfw_software_channel_instance.cpp.

Suggested Solution
Add a function to PluginChannel allowing to get the INSTANCE_CHANNEL_KEY property. Alternativly, make INSTANCE_CHANNEL_KEY a global, public define.

Initializing std::uint32_t with -1 might lead to compile-time errors

Issue:
Depending on the compiler settings, initializing a varialbe with -1 might lead to compile-time errors (e.g. using MSVC2019 Toolchain: C2397). I found the issue in the following file:

at line 75:

std::uint32_t m_sample_dimension = -1;

Proposal
Initializing the variable like this has the same effect but does not lead to compile-time errors:

std::uint32_t m_sample_dimension = 0xFFFF FFFF;

How to Debug a Plugin

Hey Dewetron Team,
I am developing a custom plugin and so far everything works perfectly (also due to your well down wiki).

Without working through your plugin-loading way, is there a simple and efficient way to debug a plugin? (and I mean true debugging inside Visual Studio - of course I am already using log files)...

If so, It would be great to add some documentation.
Kind regards

FFT channels access in SDK

We have a problem to access to the FFT channel ( PHA and PEAK )
The problem arises when we try to read them.
We follow the next sequence:

  • Get and Store the ids of the Base FFT channel (Complex), and the ids of the subchannels (AMP; PHI and Peak). So far, so good.
  • When we try to get the iterators for each channel using their IDs, we can only get a valid iterator for the base channel.

The subchannel iterators for AMP, PHI and Peak that we get are invalid and when we use them to read the data, instead of getting a valid pointer to the channel data, we get a nullpointer.
In resume, we can get the subchannel channel ids, but we can not read them since we don't get a valid iterator or a valid proxy.

CAN output message

Dear ,

Is it possible to use SDK to send CAN channel ?

Does it request additional plugin as CAN OUT ?

Regards

QI INSTALL

Hi,
In the Quickstart RST Files, the version of QT is not specify.
The open source version is it OK to use or it's necessary to use commercial version ?

Resampler - work in progress

Hi,
@matthiasstraka, I have several questions regarding the newly implemented Resampler - as we can directly discuss source code here it might be the easiest to discuss questions within this issue and simply close it when we are confident everything is working.

Out of Range issues
I think the following check should be

ODK_ASSERT_LTE(idx + 1, fp.size() - 1);

but is

ODK_ASSERT_LTE(idx + 1, fp.size());

First Sample Timestamp
The first sample timestamp should be calculated based on the current amount of samples?
So, instead of

first_sample_timestamp -= m_input_buffer.size() * estimated_sample_duration;

So, I suggest to do

first_sample_timestamp -= num_samples * estimated_sample_duration;

Furthermore, an additional safety check is a good idea to prevent negative timestamps

first_sample_timestamp -= num_samples * estimated_sample_duration;
ODK_ASSERT_GTE(first_sample_timestamp, 0);

What are your thoughts on that?

Oxygen don't load custom plugins

I am following the wiki build instructions. I've downloaded the SDK and boost library. Cmake and open the solution in Visual Studio.
I've compiled the examples without compiling errors and also I've created a new project and compiled it.
Then I've copied the .plugin files to {PublicDocuments}\Dewetron\Oxygen\Plugins and to C:\Program Files\DEWETRON\Oxygen\bin, but when I open Oxygen, plugins don't appear in settings-overview nor in the add channel window.

If I erase the plgin files that came with installation (like ethernet or matlab_export) they dissapear of the setting-overview when I open again Oxygen, and reappear if I copy them again to bin folder. But that is not happening with my own plugins.

I've tried with all the build configurations and with copying them to bin folder, to public documents folder, and both. And nothing works

Change configuration in process()

I usually change some configuration fields in update(),but now I want to change it in process().Now it does not seems to work.Is there anyway to solve this or add one configuration file as a replacement way?

Adding Non-Changeable Properties

Issue

To inform users about fixed/static properties, maybe loaded via a config-file or statically programmed in the plugin itself (e.g. Plugin-Version) in a more convenient way, fixed or static channel-properties would be a quite good solution. The users then only has to check in the channel-configuration for the current value of the property instead of opening the config-file or looking somewhere else.

Suggested Solution

Adding properties like StaticStringPropertyor StaticScalarProperty to the SDK.

Error in odkfw_input_channel.cpp

In line 31 of odkfw_input_channel.cpp says:
return getChannelId() != std::numeric_limits<uint64>::max();

it shlould say uint64_t

DO control

Dear,

Is it possible to control digital output from the SDK ?

The need is to generate PWM signal by using DO.

Regards

Channels SDK recording

I am currently working on a plugin for serial decoding. Channels are correctly displayed but not recording.
Any idea what can lead this issue ?
I can forward all necessary tools to simulate or reprouce it.

Problems with CMAKE Install

Hi

I have some problems to configure CMAKE.
In the PDF file, it's writing "(for example C:\Qt\5.15.2\msvc2017_64)* but i have (for example C:\Qt\5.15.2\msvc2019_64)*
Is it a problem to work correctly ?

Erreur CMAKE
ODK Intsall with Python
Erreur CMAKE 2
Could you help me pls ?
Just an idea :
In view of the difficulties in setting up my environment to develop, do you have a Virtual Machine already preconfigured to dowmnload (VMWARE, VIRTALBOX for example).
Thanks

Function SetMasterTimeStamp

Dear ,

We are working on a plugin for automotive bus decoding.

We are using the function getmastertimestamp to correlate the data to the tick but as no channel is activated , timebase of 10000000 is defined by default.

No function SetMasterTimeStamp has been identified to define it freely.

Do you have a way to resolve it ?

Best regards

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.