Skip to content

Commit 2e6accf

Browse files
committed
Revert to Clarius Cast 11.2.0 due to library incompatabilities with 12.0
1 parent 810365a commit 2e6accf

File tree

2 files changed

+44
-26
lines changed

2 files changed

+44
-26
lines changed

cmake/ExternalClarius.cmake

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
# Download clarius cast API
22
include(cmake/Externals.cmake)
33

4-
set(CLARIUS_CAST_VERSION "12.0.0")
5-
64
# Download license
7-
file(DOWNLOAD https://raw.githubusercontent.com/clariusdev/cast/v${CLARIUS_CAST_VERSION}/LICENSE ${FAST_EXTERNAL_INSTALL_DIR}/licenses/clarius/LICENSE)
5+
file(DOWNLOAD https://raw.githubusercontent.com/clariusdev/cast/v11.2.0/LICENSE ${FAST_EXTERNAL_INSTALL_DIR}/licenses/clarius/LICENSE)
86

97
if(WIN32)
10-
set(URL "https://github.com/clariusdev/cast/releases/download/v${CLARIUS_CAST_VERSION}/cast-${CLARIUS_CAST_VERSION}-windows.x86_64.zip")
8+
set(URL "https://github.com/clariusdev/cast/releases/download/v11.2.0/cast-11.2.0-windows.x86_64.zip")
119
elseif(APPLE)
1210
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
13-
set(URL "https://github.com/clariusdev/cast/releases/download/v${CLARIUS_CAST_VERSION}/cast-${CLARIUS_CAST_VERSION}-macos.arm64.zip")
11+
set(URL "https://github.com/clariusdev/cast/releases/download/v11.2.0/cast-11.2.0-macos.arm64.zip")
1412
else()
15-
set(URL "https://github.com/clariusdev/cast/releases/download/v${CLARIUS_CAST_VERSION}/cast-${CLARIUS_CAST_VERSION}-macos.x86_64.zip")
13+
set(URL "https://github.com/clariusdev/cast/releases/download/v11.2.0/cast-11.2.0-macos.x86_64.zip")
1614
endif()
1715
else()
18-
set(URL "https://github.com/clariusdev/cast/releases/download/v${CLARIUS_CAST_VERSION}/cast-${CLARIUS_CAST_VERSION}-linux.x86_64-gcc_ubuntu_22.04.zip")
16+
set(URL "https://github.com/clariusdev/cast/releases/download/v11.2.0/cast-11.2.0-linux.x86_64-gcc_ubuntu_20.04.zip")
1917
endif()
2018

2119
if(WIN32)
@@ -27,7 +25,7 @@ ExternalProject_Add(clarius
2725
BUILD_COMMAND ""
2826
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast.lib ${FAST_EXTERNAL_INSTALL_DIR}/lib/ COMMAND
2927
${CMAKE_COMMAND} -E copy ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast.dll ${FAST_EXTERNAL_INSTALL_DIR}/bin/ COMMAND
30-
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast ${FAST_EXTERNAL_INSTALL_DIR}/include/cast
28+
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/include ${FAST_EXTERNAL_INSTALL_DIR}/include/
3129
)
3230
elseif(APPLE)
3331
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
@@ -38,7 +36,7 @@ if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
3836
CONFIGURE_COMMAND ""
3937
BUILD_COMMAND ""
4038
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/libcast${CMAKE_SHARED_LIBRARY_SUFFIX} ${FAST_EXTERNAL_INSTALL_DIR}/lib/ COMMAND
41-
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast ${FAST_EXTERNAL_INSTALL_DIR}/include/cast
39+
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/include ${FAST_EXTERNAL_INSTALL_DIR}/include/
4240
)
4341
else()
4442
ExternalProject_Add(clarius
@@ -48,7 +46,7 @@ else()
4846
CONFIGURE_COMMAND ""
4947
BUILD_COMMAND ""
5048
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/libcast${CMAKE_SHARED_LIBRARY_SUFFIX} ${FAST_EXTERNAL_INSTALL_DIR}/lib/ COMMAND
51-
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast ${FAST_EXTERNAL_INSTALL_DIR}/include/cast
49+
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/include ${FAST_EXTERNAL_INSTALL_DIR}/include/
5250
)
5351
endif()
5452
else()
@@ -59,7 +57,7 @@ ExternalProject_Add(clarius
5957
CONFIGURE_COMMAND ""
6058
BUILD_COMMAND ""
6159
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/libcast${CMAKE_SHARED_LIBRARY_SUFFIX} ${FAST_EXTERNAL_INSTALL_DIR}/lib/ COMMAND
62-
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/cast ${FAST_EXTERNAL_INSTALL_DIR}/include/cast
60+
${CMAKE_COMMAND} -E copy_directory ${FAST_EXTERNAL_BUILD_DIR}/clarius/src/clarius/include ${FAST_EXTERNAL_INSTALL_DIR}/include/
6361
)
6462
endif()
6563
list(APPEND FAST_EXTERNAL_DEPENDENCIES clarius)

source/FAST/Streamers/ClariusStreamer.cpp

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -103,31 +103,51 @@ void* ClariusStreamer::getFunc(std::string name) {
103103
void ClariusStreamer::execute() {
104104
if(!mStreamIsStarted) {
105105
reportInfo() << "Trying to set up Clarius streaming..." << reportEnd();
106+
int argc = 0;
106107
std::string keydir = Config::getKernelBinaryPath();
107108
// TODO A hack here to get this to work. Fix later
108109
// Lambdas converted to C style pointers can't have captures
109110
static ClariusStreamer::pointer self = std::dynamic_pointer_cast<ClariusStreamer>(mPtr.lock());
110111

111-
CusInitParams params;
112-
params.args.argc = 0;
113-
params.storeDir = keydir.c_str();
114-
params.newProcessedImageFn = [](const void* img, const CusProcessedImageInfo* nfo, int npos, const CusPosInfo* pos) {
115-
self->newImageFn(img, nfo, npos, pos);
116-
};
117-
params.width = 512;
118-
params.height = 512;
119-
params.errorFn = [](const char* msg) {
120-
self->getReporter().error() << msg << self->getReporter().end();
121-
};
122-
123-
auto init = (int (*)(const CusInitParams* params))getFunc("cusCastInit");
124-
int success = init(&params);
112+
auto init = (int (*)(int argc,
113+
char** argv,
114+
const char* dir,
115+
CusNewProcessedImageFn newProcessedImage,
116+
CusNewRawImageFn newRawImage,
117+
CusNewSpectralImageFn newSpectralImage,
118+
CusNewImuDataFn newImuData,
119+
CusFreezeFn freeze,
120+
CusButtonFn btn,
121+
CusProgressFn progress,
122+
CusErrorFn err,
123+
int width,
124+
int height
125+
))getFunc("cusCastInit");
126+
int success = init(argc, nullptr, keydir.c_str(),
127+
// new image callback
128+
[](const void* img, const CusProcessedImageInfo* nfo, int npos, const CusPosInfo* pos)
129+
{
130+
self->newImageFn(img, nfo, npos, pos);
131+
},
132+
nullptr/*pre-scanconverted image*/,
133+
nullptr/*spectral image*/,
134+
nullptr/*imu*/,
135+
nullptr/*freeze*/,
136+
nullptr/*button*/,
137+
nullptr/*progress*/,
138+
/*error call back*/
139+
[](const char* msg) {
140+
self->getReporter().error() << msg << self->getReporter().end();
141+
},
142+
512,
143+
512
144+
);
125145
if(success != 0)
126146
throw Exception("Unable to initialize clarius cast");
127147
reportInfo() << "Clarius streamer initialized" << reportEnd();
128148

129149
auto connect = (int (*)(const char* ipAddress, unsigned int port, const char* cert, CusConnectFn fn))getFunc("cusCastConnect");
130-
success = connect(mIPAddress.c_str(), mPort, "research", [](int port, int imuPort, int swMatch) {
150+
success = connect(mIPAddress.c_str(), mPort, "research", [](int port, int swMatch) {
131151
if (port > 0) {
132152
self->getReporter().info() << "Clarius connect on UDP port " << port << self->getReporter().end();
133153
if (swMatch == CUS_FAILURE) {

0 commit comments

Comments
 (0)