MSCL icon indicating copy to clipboard operation
MSCL copied to clipboard

Updated Boost version

Open karljohanreite opened this issue 3 years ago • 3 comments
trafficstars

When building MSCL with Boost version 1.79, final executables are not able to connect to an inertial node available via an tcpip server. Both ping() and interrogation of e..g. node name times out.

It would be nice to support newer versions of Boost.

karljohanreite avatar May 11 '22 13:05 karljohanreite

Unfortunately we have no immediate plans to update the Boost dependency version. It's certainly something we should look into though.

In general, communication with inertial devices over TCP/IP should work fine. If you run into any issues establishing successful communication with Boost 1.68 or SensorConnect let us know and we can help determine what may be going wrong.

Sorry for the inconvenience, but thanks for reaching out!

msclissa avatar May 11 '22 21:05 msclissa

Thank you for your swift answer!

The background is that we are making conan packaging for MSCL.. See https://github.com/sintef-ocean/conan-mscl. We use this as one of many dependencies in our software (https://ratatosk.smd.sintef.no) which communicates with a Microstrain MRU, among other things. All other dependencies are building with Boost 1.78.

Do you have any thoughts about what could cause timeout in tcp-ip connections when building with newer Boost? I see warnings about the endianness library and we also will look into how boost asio is used.

karljohanreite avatar May 12 '22 05:05 karljohanreite

I think I found a way to use newer Boost version. At least it seems to solve my issues with a Microstrain MRU. The fix in our conanfile is to perform the following replacements:

for f in ["MSCL/source/stdafx.h", "MSCL/source/mscl/Endianness.h", "MSCL_Unit_Tests/Test_Utils.cpp"]:
	tools.replace_in_file(
		os.path.join( str(self.source_folder), "MSCL", f),
		"boost/detail/endian.hpp",
		"boost/predef/other/endian.h")

for f in ["MSCL/source/mscl/Endianness.h", "MSCL_Unit_Tests/Test_Utils.cpp"]:
	tools.replace_in_file(
		os.path.join( str(self.source_folder), "MSCL", f),
		"BOOST_LITTLE_ENDIAN",
		"BOOST_ENDIAN_LITTLE_BYTE")

I think this fix should be applicable for all newer Boost versions, and I suggest that they are considered for MSCL . Also, if you consider making MSCL available through conan, please see https://github.com/sintef-ocean/conan-mscl.

karljohanreite avatar May 13 '22 08:05 karljohanreite