Jump to content
OpenSplice DDS Forum

rowen

Members
  • Content Count

    9
  • Joined

  • Last visited

About rowen

  • Rank
    Member

Profile Information

  • Company
    LSST

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thank you for the suggestion. Unfortunately I tried it and was not able to get it work: yes the query was accepted, but it did not behave as it was supposed to. Fortunately this is a short-term issue. Eventually I can get rid of the test for the empty string, at which point I'll be able to use a query again. I am quite surprised that this is accepted: qc = QueryCondition(reader, mask, "identity=%0 OR identity=%1", ["foo", ""]) but this is not: qc = QueryCondition(reader, mask, "identity='foo' OR identity=''") I realize for real SQL queries it is important to sanitize in
  2. I am trying to perform a read query that a field either matches a fixed value OR is empty. This is using the Python dds library, though I hope that doesn't affect the answer. What I have tried: (identity = 'saluser@2e2a97a8cda0') OR (identity = '') The problem appears to be in the second part identity = '' Using double quotes instead of single quotes doesn't help. If I add a space between two single quotes then the query is built, but does not do what I want. Any suggestions?
  3. Yes OpenSplice_PythonDCPSAPIGuide.pdf is missing a lot of important information, including how to specify DDS partitions and how to specify QoS overrides. It is also full of TODO notes,, including "TODO change description the code is wrong". I ended up using your manuals for other languages and trying to adapt as best I could. I did not have access to your python examples when I was doing my work (though I have since found them -- in tools instead of examples) Several things I think the dds library cannot do that I really wish it could: Support content-filtered topics. I am using a
  4. I recently started using the OpenSplice dds Python library and found the documentation less than clear. Having fought my way to working code I am making a simple set of example files available in hopes of helping others: https://github.com/r-owen/ddsexample In addition to reading and writing a topic, this code demonstrates: Specifying DDS partitions Specifying custom quality of service values programattically Reading data using asyncio Suggestions for improvements are welcome. I am not very comfortable with the QoS XML file and would appreciate a pointer to good docu
  5. Yes. My use case just doesn't fit the OpenSplice data model as well as it might. I care about the difference between late joiner data (samples written before I created my reader) and current data (samples written after I created my reader, though I may not have actually read them yet). Most readers only want a single sample (the most recent) of late joiner data. (I am trying to avoid the term "historical"). So I call `wait_for_historical_data` on the reader after creating it, then discard all samples except the most recent before I start processing samples. It means I may discard some cur
  6. To clarify what I tried: I made a topic with a normal and reasonable history_length and made a writer from that. Then I tried to make another topic instance (using the same domain participant) with a history_length of 1 for my reader. Creating that second topic failed. No big deal, just a minor disappointment. Note: I have no desire to limit the read queue length itself to a length of 1 because I need to be able to handle bursts of data without losing any. Again, not a big deal. I'll just throw out the historical data I don't want.
  7. When my domain participant and readers start up I call wait_for_historical_data (which takes 6.5 seconds on my machine for the first reader, alas) but writers may be producing new data during that time. I'd like to be able to tell the difference between historical samples and new samples (where the latter might be defined as "written since I called wait_for_historical_data", unless some other similar definition is easier). I was hoping for a flag in the dds.SampleInfo that told me if this was historical or new, and/or a read condition that would only return historical data, but I have not
  8. Thank you very much. For the record: this works great if I set history_length in my default QoS file, and the way to do it in dds Python is to use a dds.DurabilityServiceQosPolicy However, I was hoping to have writers offer more history than most readers read. One reader wants the extra, but the rest do not. So I tried to create one topic for writing and one for reading, with the latter using a shorter history_length (but otherwise identical policy). Unfortunately, creating the second topic fails. Sounds like I'll just have to discard the extra history. I wish readers supported history_le
  9. I would like to configure a DDS topic reader as follows: - a read queue with at least 100 entries, so I can occasionally fall a bit behind and not lose data - on startup read only the single most recent historical (late joiner) value for that topic The only relevant setting I have found is KEEP_LAST_HISTORY_QOS which seems to control both the size of the read queue and also how many historical values are read. I realize I can simply ignore the extra historical data, but it takes time for DDS to copy it. I hope I am missing something simple. In case it matters, I am using th
×
×
  • Create New...