Jump to content
OpenSplice DDS Forum

Jonnn

Members
  • Content count

    17
  • Joined

  • Last visited

About Jonnn

  • Rank
    Member

Profile Information

  • Gender
    Not Telling
  • Company
    None
  1. Number / Last Participant

    Hello, We have an system split into two parts, a central processing application and one or more GUIs. We'd like to exit the central application when the last GUI is closed. We already have and appropriate message, to instigate the shutdown. Obviously we could keep a count of the number of connected GUIs, in the central application. Another option would be to use a heartbeat Topic. These aren't very neat solutions and we'd like to do this without changing the GUI. What I'd ideally like is to be able to detect the number of / last GUI participant. Happy to do this by checking some property of the participant / subscriber / publisher etc. I've been trawling the API to try and find something, but have not had any success yet. Has anyone got any ideas? Thanks, Jon
  2. Ospl API Version Number

    Hello, Does anyone know of a way to programmatically get the OSPL AP Version number; currently 6.7? I would like to do this from both CPP (using the ios ccp2 api) and Java. Jon
  3. iso library object creation

    Thanks, that worked. Jon
  4. TTopicImpl.hpp Line 175 Bus Error

    Hi. I've got past the problem. I think it was because I was create everything in the constructor list, and I had errors which I couldn't see. I followed the suggestion by Martin in the thread I created titled "iso library object creation" (I would paste a link in, but it's not letting me) and it started to unstick my problem(s). Anyway, thanks for the help everyone. Jon
  5. iso library object creation

    Thanks. I'll give that a whirl. It might help me catch some of my other problems, if I can get it out of the constructor list. Jon.
  6. TTopicImpl.hpp Line 175 Bus Error

    The ospl-info has no error or notable statements in it. There isn't an ospl-error log, which I assume means there's no error messages. If I take the topic qos out, It still give the same error. Any ideas?
  7. TTopicImpl.hpp Line 175 Bus Error

    Hi Yes, I've regenrated the IDL and it's fully qualified. I'll try removing the topic QoS and set what happens. I'm in the process of creating a little test application try stuff out, I'll do it in there and then try it in my main app. Thanks, Jon.
  8. Hello, I want to have an class that wraps isocpp dds objects, to encapsulate the actual DDS interface away from my code. The only way I can find of doing this with the isocpp libraries is to do it in the constructor list of my class; e.g: in hpp: dds::domain::DomainParticipant myparticipant dds::sub::Subscriber mysubscriber dds::topic::Topic<...> mytopic dds::sub::DataReader<...> myreader in cpp: MyWrapperClass::MyWrapperClass() : myparticipant(org::opensplice::domain::default_id(), dds::domain::DomainParticipant::default_participant_qos), mysubscriber(myparticipant) mytopic(myparticipant, "topicname") myreader(mysubscriber, mytopic) { } So, this is workable, but not very nice. In particular - it gets cumbersome as the number of topics increases and become more complicated - the functions throw exceptions. In a constructor, this is never a good thing and creates new nightmares. You don't appear to be able to do mytopic = new dds::topic::Topic<...>(...) or mytopic = tmpTopic because the operators appear to have been made private. Is there a better way of doing this encapsulating? Kind Regards, Jon
  9. Hello. I am trying to move to Community Edition 6.4 sacpp libraries to 6.7 isocpp2 libraries. I am getting a "bus error" written to the screen, and the application crashes. The call it is failing on is: dds::topic::qos::TopicQos myTopicQoS(myQoSProvider.topic_qos("a name")) dss::topic::Topic<M> myTopic(myParticipant, "topic name", myTopicQoS) The core dump I have is showing me: #0: org.opensplice::topic::TopicDescriptionDelegate::TopicDescriptionDelegate() #1: dds::topic::detail::Topic<...>::Topic() as TTTopicImple.hpp:175 #2: dds::topic::Topic<... , ...>Topic() at TTopicImpl.hpp:97 The parameters at #1 are: name = "topic name" dp = not null type_name = "" qos = not null listener = null (which is what I'd expect) mask = not null I haven't made any calls to any form of topic type register, which I was doing in the sacpp - don't know if that's a problem. If anyone knows what the problem is it would be much appreciated? Kind Regards, Jon
  10. C Linking Problem

    Hello, thanks for replying. I believe it's the same version on both machines. I'm going to get someone else to generate the files, later today, to try and rule those sort of issues out. I don't have dumpbin installed, because I don't have visual studio installed. We're using gcc to build the application. Is there something else I can use to do the same thing? The error message is: libtps.a(ospltellusspldcps.o):OSPLTellusSplDcps.c:(.text_0x780): undefined reference to '_imp__os_reportVerbosity' I've just found that someone has commented out the #include <os_report.h> in the original version; i.e. the one that works. Is this safe to do? Thanks, Jon
  11. C Linking Problem

    Hello, I have an application, that has been in existence for a while. I have changed some of the fields in the IDL and regenerated the C files, using IDLPP. When I include the new version of the generated files I get a linker error, where os_reportVerbosity is undefined. I can see this file on my file system, and the folder is in the linker path https://github.com/PrismTech/opensplice/blob/master/src/abstraction/os/include/os_report.h To be clear - I can swap between the old C files and the new C files, leaving everything else the same, it can link to the former but not the latter. The object files are compiled, but not linked. I'm on Windows 7 64 bit The application is 32 bit I have both 32 bit and 64 bit Opensplice installed. I'm not on the same machine the old IDL based C files were created on. The IDL generates with no error to the console windows. I am explicitly running the idlpp in 32bit open splice folder. I've checked the OSL_HOME value is pointing at the 32-bit folder. Is there a log file where I can check the IDLPP is running correctly? Is it likely that something in my environment is causing the issue? I suspect this is the case, given the old version works but aren't generated on my machine. I'm struggling to work out what the difference is. If anyone has any ideas on how I can proceed, they would be much appreciated. Kind regards Jonnn
  12. When creating a new forum message, you don't seem to be able to paste text into the pain text box; i.e. where I typed this. Jonnn
  13. Hello, I have taken the HelloWorld example and changed the line, in the implementation.cpp publisher function, that created the DomainParticipant to: dds::domain::DomainParticipant dp(org::opensplice::domain::default_id(), dds::core::QosProvider(file://path/to/opsl.xml).participant_qos()) I'm getting the error ERROR: Exception: dds::core::UnsupportedError : Function not currently support at .......QosProvider.hpp:38 inorg::opensplice::core::QosProvider(const string&) Preceding Opensplice Error Information : Not available DDS::RETCODE_NO_DATA The function is documented in the opensplice ISOCPP API. I am aiming to specify the DDS Domain to use in the QoS file Load the QoS file, as above I'd later like to add more settings to the file, but I'm not there yet. Am I doing something stupid, because from what I've read I can't work out what I've done wrong? (Appologies, for typos as I have had to copy this from another machine)
  14. Examples Hang

    Thanks for the help. They're working now. There we some odd permissions on some of the folders. When the application is unpacked it is apply the permissions of whoever packed it up, a user who obviously doesn't exist.
  15. Examples Hang

    Hello, It is currently referencing HDE\x86_64.linux64\etc\config\ospl.xml, as supplied with the installation. Not looked at the contents of that yet, but happy to use another one if that's more appropriate. Jon
×