- OpenIGTLink
- Sonivate API (a folder with Demo and Demo/MCE in it)
- Visual Studio 2019
- Windows SDK 10.0.19041.0
- CMake 3.18 or greater
- Installed the Cypress FX3 driver included with the Sonivate software
- 3D Slicer (4.11.2021.02.26 or greater) and OpenIGTLinkIF module installed
Important Note: The SonivateStream.sln file is only for bootstrapping the MFC project. This does not actually build the application. CMake must be used with an out-of-source build directory.
- Build OpenIGTLink
- Configure CMake (assuming you have Git Bash)
- cd WORKSPACE_DIR
- git clone ...
- mkdir SonivateStream-build
- cd SonivateStream-build
- cmake-gui ../SonivateStream
- Sonivate_INCLUDE_DIR needs to point to Demo/MCE
- OpenIGTL_DIR needs to point to OpenIGTLink build director (e.g. OpenIGTLink-build)
- Press Configure, then Generate, then Open Project
- Confirm the following Project Settings in Visual Studio
- While debugging/running code from VS, make sure your working directory is set to your BUILD directory, not the SOLUTION directory (default)
- Make sure you are dynamic linking MFC (e.g.
/D _AFXDLL
and/MD
) - Make sure you have reserved your stack to 10000000 (Linker -> System -> Reserve Stack Size
- Make sure you are using Precompiled Headers (TODO: confirm this requirement)
- Confirm that you have many files, including UltrasoundInterfaceLib.dll in your build directories (should be copied by the CMake Configure command)
- Build in either Debug or Release mode
- Application crashes while initializing the probe
- Access Violation : Sonivate files are missing from the build directory
- Compare your build directory with the Demo build directory
- Check your VS working directory is your build directory and not the solution directory
- Stack overflow
- Make sure you have reserved your stack to 10000000
- Access Violation : Sonivate files are missing from the build directory
- Initializing failed without crashing the application
- Make sure the Sonivate probe is turned on and plugged in to your USB port
- Make sure the Cypress FX3 driver was installed
- Setup OpenIGTLink Server on 3D Slicer
- Open 3D Slicer
- Modules -> IGT -> OpenIGTLinkIF
- Press '+' under Connectors
- Set Type to 'Client'
- Confirm hostname/port are localhost:18944
- Click the checkbox next to 'Active' to start listening
- Double-click SonivateStream.exe
- After connection is successful, click Live to begin sending data to Slicer
- If you aren't seeing anything in Slicer, click the drop-down on top of the view to and you should see Sonivate as an option
- By default, Slicer auto-detects the min/max intensity values. To get normal-looking B-mode, select the Volumes module and set the min/max to 0/255.
- Click Freeze to stop acquiring images. Closing the SonivateStream window will be disconnect the probe.