I came up with an idea to establish connection between my Raspberry Pi 4 and Windows host machine. I did it successfully by utilizing MQTT protocol, but got interested in Data Distribution Service concept (DDS). My Pi needs to send captured images (publish) to windows machine (subscriber) as byte array. How to do this easily for prototyping and testing purposes? I don't have a problem with doing this on same machine, but cannot wrap my head around connectivity between nodes on same LAN network, I know for sure that DDS supports TCP and UDP. Is there just an config file where I have to put IP addresses of second machine for both applications and that's it? I want to use RTI Connector for Python, can it work on its own for both devices that communicate? Sorry for lame question, but I just want to test DDS utility as fast as possible. Can anyone point me to some sources that would help solve my case? I've seen some articles, but none were clear to me.
Connect two devices using DDS on Lan
734 Views Asked by Jqb Frnzs At
2
There are 2 best solutions below
0
Howard_rti
On
If your datatype is a fixed size array, then you should use the IDL fundamental datatype of octet[]. If it's variable sized, then you need to use sequence, either
struct MyImageType {
octet imageFrame[1048576];
};
or
struct MyImageType {
sequence<octet, 1048576> imageFrame;
};
using the above in an IDL file and then using rtiddsgen will be easier than typing the equivalent XML definition into a file.
Related Questions in PYTHON
- How to store a date/time in sqlite (or something similar to a date)
- Instagrapi recently showing HTTPError and UnknownError
- How to Retrieve Data from an MySQL Database and Display it in a GUI?
- How to create a regular expression to partition a string that terminates in either ": 45" or ",", without the ": "
- Python Geopandas unable to convert latitude longitude to points
- Influence of Unused FFN on Model Accuracy in PyTorch
- Seeking Python Libraries for Removing Extraneous Characters and Spaces in Text
- Writes to child subprocess.Popen.stdin don't work from within process group?
- Conda has two different python binarys (python and python3) with the same version for a single environment. Why?
- Problem with add new attribute in table with BOTO3 on python
- Can't install packages in python conda environment
- Setting diagonal of a matrix to zero
- List of numbers converted to list of strings to iterate over it. But receiving TypeError messages
- Basic Python Question: Shortening If Statements
- Python and regex, can't understand why some words are left out of the match
Related Questions in NETWORKING
- How to avoid duplicates with the pull-based subscribe model?
- How to simulate CSMA/CD protocol in ns3?
- Network System - Cisco Packet Tracer
- Adhoc / mesh network not working (with and without batman-adv)
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Python Client-Server Communication with Protocol
- I registered a service in eureka which is resolving through java code. But it is not able to resolve its name when hitting through chrome or postman
- Share files from the server without data or internet usage
- Player names not synchronizing in unity Mirror Networking
- My phone can not visit the server on macos in the same local network
- Unable to ping remote websites from an ipV6 only ubuntu ec2 Instance
- Linux Networking - Routing packets from one network interface to another
- wrong output from Supernetting algorithm
- Mapping localhost port on host to docker container
- Microsoft Message Analyzer disable resolving IP address to their domain names a.k.a turn off AutoIP feature
Related Questions in DATA-DISTRIBUTION-SERVICE
- PCIe integration with ePRosima FastDDS layer of ROS2 humble as custom transport
- FastDDS Publisher and Subscriber won't match in demo code
- CMake Eorror When Building Simulink DDS Blockset Example Model shapesdemo
- FastDDS server only for certain topics
- Is there any way to temporarily stop fastDDS from sending or receiving topic messages?
- Changed ROS2 environment variable FASTDDS_BUILTIN_TRANSPORTS to LARGE_DATA but now the topic is not listed in ROS2 topic list
- How to generate FastDDS message files from a .idl file that imports structs from others .idl files
- Error while arming cube orange plus using ros2 which runs on a companion computer?
- Why Wireshark is not displaying RTPS sub-messages in the 'Info' column?
- Interfacing ROS2 with Ethenet/IP
- How to deserialize multiple "XCDR_AUTO" format .dat files in one folder?
- In a Qt signal-slot programm,The slot function was not executed after sent
- Configure dds in config file to work with 2 network interfaces
- what is exactly a discovered publisher in FastDDS?
- How to filter nested union in rti dds
Related Questions in OPENDDS
- yocto opendds does not create the sdknative files
- How to bind different transport configs to datareader in OpenDDS
- "Use of uninitialized value $prop_value in scalar chomp at configure line 473" OpenDDS configuration
- Serialize openDDS topic to a `std::string`
- Connect two devices using DDS on Lan
- Using OpenDDS with Qt6
- opendds installation in linux (Ubuntu 20.04) problem during execution of make file
- How do I make the OpenDDS DCPSInfoRepo persistent?
- Getting Started with OpenDDS - Creating files that transfer data between devices
- DDS IDL Compiler
- MQTT + (protocolbuf / flatbuf) = DDS?
- OpenDDS Link Error when compiling nested Idl using MPC
- opendds video streaming using opencv
- How to define a class and method in DDS idl file?
- Is There a Way to Generate Code for OpenDDS
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Most of the answers that you're looking for can be found on community.rti.com.
But fundamentally, you should be able to run DDS between your Raspberry Pi and Windows box easily...and the helloworld should run with no configuration required (Connext DDS uses multicast for discovery by default)...as long as you have disabled the firewalls on your Linux (assuming you're running Linux on the Raspberry Pi) and on Windows (usually not needed if the network type is configured to be private).
If you want to use Python as the programming language you can either use the new Python API for RTI Connext DDS,
or as you mentioned, RTI Connector for Python (although this will be deprecated since RTI has released the Python API).
Examples are provided in the distributions of both the Python API for Connext as well as RTI Connector (with documentation).
You will need to understand a bit about DDS to modify the examples to use your own data type. Basically it means defining your data type in IDL and then using rtiddsgen to generate the XML definition of the datatype from IDL...or you can directly create your datatype definition in XML.
[I tried to add a bunch of links to the documentation, examples, etc., on github/rti.com/community.rti.com, but it got flagged as SPAM]