BAE Systems

Data Modification


First, some background information.

A part of the radar system I work on contains a sensor and a tracker.  Data is published by the sensor in a topic called Receiver_Samples.  The tracker subscribes to Receiver_Samples, processes the data, and detects tracks in the data.

I would like to be able to implement a "signal_injector" application that could be run to inject a target-like signal into the Receiver_Samples data.  It would need to subscribe to Receiver_Samples, modify the data, and re-publish it.


Discovery with Many DomainParticipants


We are attempting to build a system with a (ralatively) large number of processes, and hence, a relatively large number of DomainParticipants.

At the moment, we are looking at about 200 processes running on a single box, but we expect it to expand up to abut 5000 processes running over 20 or more boxes.  Each box is a reasonably beefy 24-core 2.67GHz Intel based Linux server.


Multi-dimensional sequences

Given the following IDL:

typedef sequence<int> z_type;

typedef sequence<z_type> y_type;

typedef sequence<y_type> x_type;

How does one initialise the size of each dimension to store the equivalent of a 3D array, eg [3][4][5].

How does one access cells within the sequence, i.e. x = fooSeq[1][1][1]?

Regards John



Memory management when writing samples

I'm currently using DDS Connext v5.0.0, with C++ application.

Are there any restrictions on when a data sample can be deleted after calling the DataWriter write() method?

My application crashes (with seg fault) if I delete the sample immediately after it has been sent, and the sample contains a populated sequence.

Regards John



How to read "historical" persistent data

I'm using the a persistency service process to store persistent data to disk. How am I able to read historical data that is beyond the local history of my publisher?

Both my Publisher and my Subscriber use RELIABLE_RELIABILTY_QOS and PERSISTENT_DURABILITY_QOS with KEEP_LAST_HISTORY_QOS and depth = 20.


RTI Monitor not monitoring large messages


I am coming up to speed with the RTI Monitor tool and I am using it to monitor the performance of a couple of test applications; one publisher and one subscriber.

I've managed to get things to work. Kind of...

My problem is that the monitor application seems to provide no feedback at all when the size of data samples is more than about 8.5K.

Small data samples are detected fine, but once they grow past this limit, monitor reports no samples received by the subscriber, even though the subscriber is actually receiving the data.


changing max size of sequence


I'm trying to send a variable length sequence so I've written the idl to have a char sequence and generated the code using rtiddsgen. But I need to increase the maximum size of the sequence depending on the data and it can go over the default of 100 which is set by rtiddsgen.

I've changed the sequenceSize when running rtiddsgen and this works but I'd rather change it in my code when I know the exact size rather than setting an arbitary limit. Is this possible?


DDS and Load Sharing with Multiple Subscribers

A question...

Is it possible to publish one or more samples for a topic for which there are multiple subscribers, and guarantee that any given sample is received by ONE AND ONLY ONE subscriber? I don't care which subscriber receives which sample. I only care that when multiple samples are published, they are shared out approximately equally among the subscribers.


Listener Vs Poll

In order to test and try out different DDS configurations and QoS settings, I have a small suite of 3 test applications.

The first is a publisher that writes new data every 0.5 seconds.

The second is a subscriber that polls for new data every 1.0 seconds.

The third is a subscriber that uses a listener on the datareader. However, the on_data_available callback contains a sleep(1.0). This means that the callback can only be called once every second.


Adaptive Architectures for Future Highly Dependable, Real-Time Systems

Many present-day safety-critical or mission-critical military applications are deployed using intrinsically static architectures. Often these applications are real-time systems, where late responses may cause potentially catastrophic results. Static architectures allow system developers to certify with a high degree of confidence that their systems will provide correct functionality during operation, but a more adaptive approach could provide some clear benefits.

Publication Year: 
Subscribe to RSS - BAE Systems