Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic data support for plotting, recording, and replaying/publishing #47

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

pyphais
Copy link

@pyphais pyphais commented Oct 22, 2024

Currently the replayer/publisher for dynamic data still doesn't work, here are the issues I'm stuck on:

  • DynamicData::set_*_value is returning RETCODE::UNSUPPORTED when trying to populate the cloned (and also original to check if just clone was failing) dynamicData sample, despite the get_*_value functions returning the correct values (ie correct memberId and datatypes).
    • I'm not sure if I'm not accessing it properly and it's read-only or something, but I can't seem to figure it out.
  • Trying to write the dynamic sample (even without trying to edit the sample values) to the dynamic data writer is giving a serialization error:
    • (42232|15776) WARNING: DynamicSample::serialized_size: DynamicDataBase::serialized_size failed!
    • (42232|15776) ERROR: DataWriterImpl::serialize_sample: failed to serialize sample data
    • I'm assuming this stems from me not setting up the data writer properly?

In case it's relevant, I'm using OpenDDS 3.28.1 (and have to locally comment out #include <dds/DCPS/EncapsulationHeader.h> in topic_replayer.cpp, and I have to change DynamicMetaStruct::getValue(___ , OpenDDS::DCPS::TypeSupportImpl*) to DynamicMetaStruct::getValue(___ , const OpenDDS::DCPS::TypeSupportImpl*) on my computer to run everything as a result), and I'm on Windows only.

Disclaimer: I'm not a dev, hopefully this isn't attrocious.

…ta::getMemberTypeKindById and CommonData::getNestedMemberAndIdByName to make it simpler in readValue (and for future use of replayer)
…sting problems: 1. DynamicData::set_*_value is returning RETCODE::UNSUPPORTED when trying to populate the cloned dynamicData sample, despite the get_int16_value and other get_*_value functions returning the correct values (ie correct memberId and datatypes).

2. Trying to write the dynamic sample (even without trying to edit the sample values) to the dynamic data writer is giving a serialization error:
   (42232|15776) WARNING: DynamicSample::serialized_size: DynamicDataBase::serialized_size failed!
   (42232|15776) ERROR: DataWriterImpl::serialize_sample: failed to serialize sample data
@sonndinh
Copy link
Member

The getValue function in the MetaStruct interface has changed compared to the version you used (see https://github.com/OpenDDS/OpenDDS/blob/master/dds/DCPS/FilterEvaluator.h#L192). So the version without const specifier for the last parameter should be used. You can use the latest OpenDDS release or the master branch which has that change.

@pyphais
Copy link
Author

pyphais commented Oct 23, 2024

Yeah I can't change what version of DDS we're using, but that change shouldn't affect the changes I made (I didn't comment those things out in the version I pushed), I just mentioned it in case it becomes relevant

@mitza-oci
Copy link
Member

PR #43 was just merged which resulted in a conflict here, please merge from master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No support for dynamic data for writing/publishing of modified sample data
4 participants