Git Product home page Git Product logo

cast's People

Contributors

alyosha-karamazov avatar clariusk avatar julien-l avatar piwj avatar sunderlandkyl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cast's Issues

ImportError: DLL load failed while importing pycast: The specified module could not be found.

Hello. I am trying to run one of the python examples (pycaster.py) but this error is popping up. I have failed to figure out why I can not import pycast.

I downloaded the binaries at https://github.com/clariusdev/cast/releases/download/v9.0.0/clarius-cast-v900-windows.zip and the source code at https://github.com/clariusdev/cast/archive/refs/tags/v9.0.0.zip.

I then copied the pycaster.py to the clarius-cast-v900-windwos folder containing the pycast.pyd, cast.lib and cast.dll. When I run the pycaster.py in cmd, that error pops up.

How can I resolve this error?

cusCastSetFormat symbol is missing in clarius-cast-v801-linux libraries

Hi Clarius,

While adding more options to caster example available on master branch, cusCastSetFormat appears to be missing from clarius-cast-v801-linux.zip libraries:

~/sources/github.com/clariusdev/cast/src/example/caster$ make
mkdir -p build/./
g++ -I./ -I./build -I../../include -std=gnu++14 -c main.cpp -o build/./main.cpp.o
g++ ./build/./main.cpp.o -o build/caster -L../../lib -lcast -lpthread
/usr/bin/ld: ./build/./main.cpp.o: in function `init(int&, char**)':
main.cpp:(.text+0x15d5): undefined reference to `cusCastSetFormat'
collect2: error: ld returned 1 exit status
make: *** [Makefile:24: build/caster] Error 1

This can be reproduced with this fork: https://github.com/daudrain/cast.

Image not streaming - pycaster.py / pycast.so - linux

This issue occurs when testing the v8.6.0 release.

Environment:
Ubuntu 20.04.3 LTS
Python 3.8.10
Connection - trough an WiFi router without internet connection.

Issue summary:

  1. No image streaming, but the app can send freeze state changes to Cast, expected to see the image information being printed when the image is running.
(py_venv) :~$ python pycaster.py --address 192.168.100.159 --port 36671
initialization succeeded
connected to 192.168.100.159 on port 36671
press ('q' to quit) ('a' for action): imaging running
imaging frozen
imaging running
imaging frozen
imaging running
imaging frozen
q
  1. Cast.userFunction could not be send back to the scanner nor app, expected to see 'image frozen / running' being printed after keyboard input.
(py_venv) :~$ python pycaster.py --address 192.168.100.159 --port 5828
initialization succeeded
connected to 192.168.100.159 on port 5828
press ('q' to quit) ('a' for action): a
(f)->freeze, (i)->image, (c)->cine, (d/D)->depth, (g/G)->gain: f
press ('q' to quit) ('a' for action): 
(f)->freeze, (i)->image, (c)->cine, (d/D)->depth, (g/G)->gain: f
press ('q' to quit) ('a' for action): a
(f)->freeze, (i)->image, (c)->cine, (d/D)->depth, (g/G)->gain: f
press ('q' to quit) ('a' for action): a
(f)->freeze, (i)->image, (c)->cine, (d/D)->depth, (g/G)->gain: F
press ('q' to quit) ('a' for action): q    
Segmentation fault (core dumped)

  1. I thought the network are connected, but ping seem ok.
(py_venv) :~$ ping 192.168.100.159
PING 192.168.100.159 (192.168.100.159) 56(84) bytes of data.
64 bytes from 192.168.100.159: icmp_seq=1 ttl=64 time=20.3 ms
64 bytes from 192.168.100.159: icmp_seq=2 ttl=64 time=2.55 ms
64 bytes from 192.168.100.159: icmp_seq=3 ttl=64 time=3.75 ms
64 bytes from 192.168.100.159: icmp_seq=4 ttl=64 time=2.57 ms
64 bytes from 192.168.100.159: icmp_seq=5 ttl=64 time=3.88 ms
64 bytes from 192.168.100.159: icmp_seq=6 ttl=64 time=2.53 ms
64 bytes from 192.168.100.159: icmp_seq=7 ttl=64 time=4.06 ms
64 bytes from 192.168.100.159: icmp_seq=8 ttl=64 time=3.29 ms
64 bytes from 192.168.100.159: icmp_seq=9 ttl=64 time=4.02 ms
64 bytes from 192.168.100.159: icmp_seq=10 ttl=64 time=2.80 ms
^C
--- 192.168.100.159 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 2.526/4.971/20.283/5.138 ms

Downloading raw data with cast is not stable, and some streamed Processed Images does not have corresponding rf-frames

Hi Kris,

It seems the downloading raw data with Clarius Cast is not stable:

  • Sometimes cusCastRequestRawData keeps returns < 0, I have to reboot the probe to make it work.
  • I would like to match each RF frame with a recorded ProcessedImage (recorded by ClariusNewProcessedImageFn callback). The matching is done by the timestamp of the RF frame and the timestamp of the ProcessedImage. This is for displaying side by side the image and the rf data. However, there are a lot of RF frames are missing at the end of a recording session.

Does the Clarius probe stop buffering or rolling the buffer after the buffer is full?
How big is the rf buffer on the probe?

Attached is our tests for your reference:

  • https://drive.google.com/drive/folders/1rPpDX3fvcrwvqBfcEU5ajMqem-XuVWJm?usp=sharing
  • In this folder, you will find:
  • (1) The statistics of missing frames. You can see the rf frames start missing after 67 image frames are recorded. And the number of missing rf-frames are correlated to the number of image frames.
  • (2) The rf/image's timestamp matching result of every test. It can which sections of image frames doesn't have matched rf-frames.
    image

Thank you,

Decoding raw images from callback

Hello,

While recording raw images with this packages we obtain the following images. I can decode most of the images given to the newRawImage callback but not the ones of size 192x3904 @ 16 bps. I added a >> to indicate these lines.

new image (ps): 142156180010, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142247769280, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142293563900, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142339734730, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142431576530, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142477461140, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142523252870, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
>> new image (ps): 142156180010, 192x3904 @ 16 bps, 38.50 um/s, 300.00 um/l, jpg=0
new image (ps): 142614968510, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142661659870, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142707677580, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142801135130, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142847546990, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 142987705000, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
new image (ps): 143033494720, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0
>> new image (ps): 142707677580, 192x3904 @ 16 bps, 38.50 um/s, 300.00 um/l, jpg=0
new image (ps): 143171762080, 192x592 @ 8 bps, 255.28 um/s, 300.00 um/l, jpg=0

Naively decoding the bytes as uint8, uint16, float16 did not give me good images. I also tried to change the dimension / order of the tensor but it did not help. Any advice? What are these images? Spectrum, envelop or RF? I wondered if it was LZO compressed.

Thank you for your help

Import issues with pycast

Trying to use pycast with Python 3.7. Installed via pip. Module throws an error on import. ModuleNotFoundError: No module named 'common'

Unable to connect

I'm trying to connect to the device through the API using the cast.dll. I am unable to connect and there does not seem to be any diagnostics on how to solve the problem.

I've created the caster instance by calling cusCastInit. I then call cusCastConnect with the IP and port of the device. Both calls return SUCCESS. When I call cusCastIsConnected afterwards it returns as No Connection (0).

When I initialize the caster I get a message stating WARNING: QApplication was not created in the main() thread and when destroying the handle I get QEventDispatcherWin32::wakeUp: Failed to post a message (Invalid window handle.)

question about pycast.so / libcast.so location.

Hello,
I am trying to run the Clarius API with a Linux machine, but I need some advice about the pathing.

For example, I write a script to collect data and have files like the followings

Clarius Project/
                  ├── DataAcqTool.py
                  ├── cast/
                         ├── libcast.so
                         └── pycast.so

I run the script with the command line '$ python3 /home/Jack/ClariusProject/DataAcqTool.py'
I don't think this is the correct directory to put pycast.so and libcast.so.

I tried to put pycast.so to the same level with the main .py script, but it still can’t locate the shared library

I have seen README.md says the following, but I can’t get my head around setting it up. Could you help me, please?

  • Copy pylisten.so and liblisten.so to {listener_path}/src/python

  • Execute: LD_LIBRARY_PATH=. python3 {clarius_python_example}.py

Thank you.

Few Technical Issues with Our Institution's Clarius Package

Hi,

I understand that this is not the place to cast technical questions other than those related to the Clarius Cast codes. Anyhow, I have contacted the Clarius Support team and I have been redirected to this page to ask any kinds of technical issues with the package which is weird. Here are a few:

The exams are not saved on the local device (which uses an up-to-date android platform) no matter the selected output format e.g., JPEG, or DICOM. It shows the following message: Unable to export exam from [date and time of the exam] to [selected format]. This is as though the application's got permission to the storage and the exams are successfully uploaded to the Clarius Cloud. This shouldn't be some complicated procedure and should be running smoothly as shown on the tutorial videos and manuscripts (That the app is designed so that the exam data are stored simply on the local device by default).

Also, we are interested in Raw data. I am able to capture the raw data and send them to the Clarius cloud, and then use them with the MATLAB and Python functions/classes provided which is great. Although the problem of saving raw data on the android device remains still, as no data (not even jpeg images) are stored on the device

In a different matter, I have tried the Mobile API and run them on the device with android studio. When I press "connect" a message is shown: Connected: true. However, I cannot get any other features to work. An "Error: no license" message is shown for any kinds of requests. This is as though I follow all the necessary steps to make use of the API e.g., connecting the scanner and running the Clarius App in the background. Does this necessarily mean that our scanner does not cover this API? The same situation holds true for the Clarius Cast.

Does the mobile API allow capturing raw data? (because I don't see the option in the quickstart app but I was thinking it might do by checking some options on the clarius app as is done directly on the app itself)

Thank you very much for your time, consideration and for your help in advance.

Best regards,
Reza

Clarius Mobile App listen on port 0 when casting

The new Clarius Mobile App sometimes listens on port 0. This doesn't make sense as I know port 0 does not exist in TCP/IP protocol. If I use Clarius Cast Api to connect to this port 0, I get an error of "The requested address is not valid in its context".

Environment:

  • Mobile Device: iPhone
  • Clarius Mobile App: the latest version of today
    image

ClariusNewProcessedImageFn not called on Windows

Dear Clarius-Team, dear @clariusk,

First of all, we've been using your API packages for a while and they provide a great backbone for our software, thanks for your efforts!

Observed Behaviour

When compiling the example CLI application on Windows, the ClariusNewProcessedImageFn is not called and no images are streamed since API v7.1.0. The same behaviour worked in v6.1.5.

The line of interest is this: https://github.com/clariusdev/listener/blob/master/src/example/console/main.cpp#L85

  • We use the listener.dll on Windows 10.
  • The probe's IP and Clarius Cast port are set correctly when launching the example.
  • The Clarius cast option is enabled in the app and set to "Research".
  • The Clarius app and probe have been updated to v7.1.0.
  • The behaviour happens if the host device is both, either iOS or Android.
  • The Windows laptop is in the same WiFi as the probe by using a Windows hotspot.
  • The Windows laptop would not connect to the Direct WiFi of the probe.
  • Disabling the firewall does not help.
  • The freeze/ unfreeze, depth and gain operations work.
  • When running the example CLI application on Linux Ubuntu 18.10, it works with API v7.1.0

Expected Behaviour

The Windows API should receive processed images from the probe, when the CLI software prints "imaging".

Steps to Reproduce

  • Compile the console example application on Windows 10
  • Run the CLI with your probes IP, port and keydir
  • Observe how no images are received, when the probe is unfrozen

I hope the behaviour description is sufficient. We're happy to provide any more details for you, i.e. if you need certain stacktraces etc. Thanks for the great work and support!

Best,
Sven

How to convert Timestamp field to a regular date format

Greetings,

I was exploring the timestamp field that the probe provides with each ProcessedImageInfo, however, I got a value like this 45197133150, and after searching the internet I couldn't convert it to a date format, the UNIX epoch converter says it's from the year 3402. How can I convert this value into a regular Date format?

Thanks in advance!

Black backgroud with no image casting

I am having an issue with the example program in which I can open the application, connect to the clarius via wifi direct and use the buttons with success but the image from the ultrasound does not appear in the main screen with it just showing the black background. I have made no alterations to the code so I don´t really know why this is happening, any ideas? Thanks

-Pedro

error: connect failure: Exception ocurred (Error connecting to TCP socket: Connection refused)

After the last API update we get the following error message "error: connect failure: Exception ocurred (Error connecting to TCP socket: Connection refused)" using the caster example and our own software.
We have tried both on windows and ubuntu, and two different scanners/phones, same error message.
Scanner is in "research mode" with port 5858, and the app is up to date.

Example fails to run on MacOS 12.0.1

Hey,

I'm trying to run the 'caster_qt' example on MacOS 12.0.1, i just downloaded the 8.6.0 version of the library and i'm getting a lot of errors when running the executable. Here's one example:
objc[2627]: Class QMacAutoReleasePoolTracker is implemented in both .../QtCore (0x11093e9f8) and .../libcast.dylib (0x11e0a5200). One of the two will be used. Which one is undefined.

I'm using CMake to generate the build files and compiling with make.

Is there a quick fix to make it work?

Can not receive processed image data

Hey Guys, sorry to bother you again. The callback for the processed image data is not working for me on the pycaster example. The newProcessedImage callback does not run.

I've established the connection and the functionality of theother callbacks such as freeze and the buttons. I'm also able to use the user commands to signal the iOS application to save an image. I can not seem to access the data from that saved image in the python application.

Is the way to trigger the Processed Image callback through the Capture user function?

No Visual Studio project file

The Visual studio project file was removed in v7.3.0. The readme has not been updated. Is there any plan to add the VS project file? What is the recommended way to build on Windows?

Which port to provide the listener?

Hi,
We have recently acquire a phased-array Clarius probe and are very excited to develop upon it!

However, we are facing issue understanding which port to provide when launching the listener.
Based on the pylistener.py, we found in main():

parser.add_argument(‘--port’, ‘-p’, dest=‘port’, type=int, help=‘port of the probe’, required=True)

based on listen.h, we have:

/// @param[in] port the tcp port that the scanner’s listener is setup on

From our understanding, 3 devices are running :
probe, mobile/tablet running clarius app, the device running the listener
Is this port related to the probe or to the device running the listener?

We tried to connect all devices to the probe wifi or on a common LAN wifi using the preset port “5828” we saw in the code and using the IP provided in Clarius app.
For exemple, running on the probe wifi with the console exemple:

$ build/console -a 192.168.1.1 -p 5828
starting listener...
error: connect failure: Exception ocurred (Error connecting to TCP socket: Connection refused)
could not connect to scanner

NB: we can ping the probe from the device running the listener when running this.

we have also scanned the open ports of the probe and only found the ports 36481 and 36929 open. we tried to used them unsuccessfully.

My guess is that we are misunderstanding the connection process? Could you please enlighten us?

Thx!

NB:
This was tried on mac and ubuntu
The software version is 7.1.0-104 and we are using the latest release of the listener

Sensors

Hello,

Using the cast project (latest version) on linux using Qt I noticed that by connecting the ultrasound probe the IMU sensors (accelerometer, gyroscope, magnetometer) are not displayed or printed. Also checking the code I found no parts of code that mention it.

I was wondering in which project files or libraries their values were received.

Thanks in advance

Cast Examples Not working

So I've been trying to get the examples up and running as a way of ensuring everything is working, and that is where the problems occur. The issues I ran into are these:

  1. In trying to run the python wrappers, the statement import pycast throws an error. The full error is
    Traceback (most recent call last):

File "pysidecaster.py", line 7, in

import pycast

File "/anaconda3/lib/python3.6/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 142, in _import

return original_import(name, *args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/pycast/init.py", line 26, in

import methods

File "/anaconda3/lib/python3.6/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 142, in _import

return original_import(name, *args, **kwargs)

ModuleNotFoundError: No module named 'methods'

and when I try to fix it,

Darrens-MBP:python darren$ pip install methods

ERROR: Could not find a version that satisfies the requirement methods

ERROR: No matching distribution found for methods

with a similar situation occuring when I try to run pycaster.py. I also tried following the linux instructions, which allowed me to run pycaster.py on my own machine, but throws an error regarding the @rpath when Casey (our colleague who actually has the scanner) tried repeating the process on her own machine.

  1. When trying to compile the C++ example in "caster" into an executable, I get this error:

Darrens-MBP:caster darren$ g++ main.cpp -o run.out

main.cpp:56:10: warning: 'auto' type specifier is a C++11 extension

  [-Wc++11-extensions]

for (auto i = 0; i < npos; i++)

     ^

main.cpp:293:21: error: no matching constructor for initialization of

  'std::thread'

    std::thread eventLoop(processEventLoop, std::ref(quitFlag));

                ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Library/Developer/CommandLineTools/usr/include/c++/v1/thread:408:9: note:

  candidate constructor template not viable: requires single argument '__f',

  but 2 arguments were provided

thread::thread(_Fp __f)

    ^

/Library/Developer/CommandLineTools/usr/include/c++/v1/thread:289:5: note:

  candidate constructor not viable: requires 1 argument, but 2 were provided

thread(const thread&);

^

/Library/Developer/CommandLineTools/usr/include/c++/v1/thread:296:5: note:

  candidate constructor not viable: requires 0 arguments, but 2 were

  provided

thread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}

^

1 warning and 1 error generated.

Namely, that the constructor for eventLoop doesn't exist, which is odd, since it seems to have no errors from a technical standpoint, and yet won't compile. It's 100% possible that I'm just overlooking something very simple, but I can't see a way to get everything up and running correctly.
Let me know whatever other information I can provide to help us figure this out.

Can't display Spectral image on screen

Hello

I've been able to display the Ultrasound and RfData feed by following the caster_qt example, however there's no example to show the PwSpectrum and MSpectrum feed. I tried to copy and paste the RfData example to try and use it on the Spectrums, but i can't manage to show a coerent image.
Can someone help me?

Thanks in advance!

iOS / Catalyst / arm64 Support

Hi

I'm interested in deploying the cast API on an iOS device as part of a 3rd party application, however I don't see iOS listed as a supported platform:

  • Is iOS supported available, but undocumented perhaps?
  • If supported is there any references/examples available?
  • If not supported, is it planned for the future, and is there perhaps a timeline?

Regards
Wilmar

Example fails to build on Ubuntu 18.04 due to missing dependencies

Hello everyone!

After upgrading to v8.0.1, the caster example (src/example/caster) fails to build on Ubuntu 18.04 LTS.
This is because libcast.so requires libmysqlclient.so.21 and some other dependencies, that it did not require previously.
The build fails with a linker error:

/usr/bin/ld: warning: libmysqlclient.so.21, needed by ../../../vendor/clarius/lib/libcast.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libodbc.so.2, needed by ../../../vendor/clarius/lib/libcast.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libpq.so.5, needed by ../../../vendor/clarius/lib/libcast.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libsybdb.so.5, needed by ../../../vendor/clarius/lib/libcast.so, not found (try using -rpath or -rpath-link)

The mysql shared library is provided by this package which is only available on Ubuntu 20.04.

I am curious why this dependency is required now. Was this done intentionally?
The mysql requirement is not documented anywhere.

I also noticed that the binary size of libcast.so increased from ~90MB to ~210MB.

Our entire dev team is using Ubuntu 18.04 at the moment, it would be very helpful if upgrading was not required.

Thanks in advance!

Symbol not found - when calling pycast.so (mac version) on Python

Error message as follows

Traceback (most recent call last):
  File "Clarius/ClariusCast_v860/cast-8.6.0/src/python/pycaster.py", line 5, in <module>
    import pycast
ImportError: dlopen(Clarius/ClariusCast_v860/cast-8.6.0/src/python/pycast.so, 2): Symbol not found: __Py_tracemalloc_config
  Referenced from: Clarius/ClariusCast_v860/cast-8.6.0/src/python/pycast.so
  Expected in: flat namespace
 in Clarius/ClariusCast_v860/cast-8.6.0/src/python/pycast.so

Requesting raw data problem

Sorry to disturb, this is probably something really obvious that I am not seeing but when using the caster_qt example program, as I freeze the image and click on the request button, all I get is the message stating "No raw data currently buffered" and I can not seem to understand why. Is there something I should do prior to clicking on that button?

IQ to RF data

Hi,
I need to use RF data for a project. The RF data sampling was low so I decided to use IQ data instead. Do you have any code to convert IQ to RF data?
I tried to convert IQ data to RF myself but it seems that some kind of filtering is required since it was noisy.
Regards,
Ali K. Z. Tehrani

How to activate Waveform button programatically?

I am using the Cast API to collect RF data. It seems the Clarius probe only buffers raw data when the mode is RF and the Waveform button is activated. I can use USER_FN_MODE_RF to turn on RF mode, but I couldn't find the code to activate the Waveform button.

Start time of probe timestamp

Dear team,

We are trying to calibrate the timestamps of the received images with a standard unix timestamp (like time.time() in python for example). We realised that the timestamp that is being sent with the image is basically the countdown from when the probe was turned on, but we can't find the time in which the probe was turned on.

We are referring to this timestamp:
https://github.com/clariusdev/cast/blob/master/src/include/cast/cast_def.h#L56

Is there any way to find the start time of the timestamp of the probe?

Thanks a lot in advance!

Import error for pylisten in python example

Dear Clarius-Team,

thanks for your efforts in building this API. We recently purchased one of your ultrasound scanners and are very happy with the imaging quality. Now we are starting to work with the API. After being able to use the API from the C++ examples, we now also wanted to try the python examples.

However, we have problems importing the pylisten module for your example code (pylistener.py and pysidelistener.py).

I tried to add the pylisten.pyd and the listen.dll to the PYTHONPATH or also copied it in the same directory as the python files, but I keep on getting an import error:
ImportError: DLL load failed while importing pylisten: The specified module could not be found

I use Python3.8 on Win10 64Bit.

( Please excuse this trivial question, I just wanted to rule this one out: The import pylisten refers to the import of the pylisten.pyd DLL from the binaries download, and has nothing to do with the pip-package with the same name (https://github.com/MycroftAI/pylisten), correct? )

Do you have any hint on what I might be doing wrong? Any help is much appreciated.

Best,
Daniel

API not connecting to computer

Hello a colleague of mine (Darren Lund) has been working with [redacted] regarding a Clarius US project. If [redacted] is available please have them contact me? I am needing a specific Clarius IP address and port in order to allow an API connection to work.

I have tried the IP listed on the screen when using the Clarius probe.

I have copies of terminal coding used to help troubleshoot.

Thank you,

-Casey

Running Listener with Virtual Scanner

Hi,
I have just acquire a Clarius probe that should be delivered in the coming weeks.
In the mean time, I am wondering if it is possible to run the listener using the virtual probes of the Clarius App.

Thank you!

Qt-Gui initialization in clariusInitListener

When performing a test on our continuous integration we found that the linux library breaks it, because it wants to connect to a display in clariusInitListener.

There is a work-around specifying QT_QPA_PLATFORM=minimal before initialization. However, there is no obvious reason for the library to connect to a display.

Does the library initialize a QApplication? If yes, can it be turned into a QCoreApplication?

Caster standalone command-line example error

Hello, I am trying to use the caster standalone command-line program but I am getting an error while compiling the program: "Error: the option '--address' is required but missing".

Failed to stream images from the probe to the PC using the CAST API - when we run the pysidecaster.py

When run the pysidecaster.py in anaconda prompt on a windows 10 machine. The GUI opens, we add the IP address and the port number and then press the “Connect” button. The connection is successful but no image shows up in the image section of the GUI. Only a blank black window is shown.

When we freeze the imaging using the Clarius App on the phone, the status bar in the GUI window indicates “Image Stopped” and when we unfreeze the imaging, the GUI window status bar indicated “Image running”. However, we still don’t see any image being displayed.

Here is the log as seen in the anaconda prompt:

(base) C:\Users\xxxx\Desktop\clarius\cast-9.0.0\src\python\python pysidecaster.py
Warning: QT_DEVICE_PIXEL_RATIO is deprecated. Instead use:
   QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
   QT_SCREEN_SCALE_FACTORS to set per-screen DPI.
   QT_SCALE_FACTOR to set the application global scale factor.
WARNING: QApplication was not created in the main() thread.
Warning: QT_DEVICE_PIXEL_RATIO is deprecated. Instead use:
   QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
   QT_SCREEN_SCALE_FACTORS to set per-screen DPI.
   QT_SCALE_FACTOR to set the application global scale factor.
Image Stopped
Image Running

Note that we also get warnings about some libraries.

The "python" folder from which we run the pysidecaster.py contains the following files:

  • cast.dll
  • cast.lib
  • pycast.pyd
  • pycaster.py
  • sidepycaster.py
  • README.md

Error when calling `clariusInitListener` on Android

Dear Clarius-Team,

We are developping an Android app which includes your API and facing an issue when calling clariusInitListener.

Here the simplified code used to test your API

#include <listen/listen.h>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QStandardPaths>

int main(int argc, char* argv[]) {
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl("qrc:/main.qml"));
    QObject* object = (QObject*)engine.rootObjects()[0];

    int success = clariusInitListener(
        argc, argv,
        QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)
            .toStdString()
            .c_str(),
        [](const void*, const ClariusProcessedImageInfo*, const int,
           const ClariusPosInfo*) { return; },
        [](const void*, const ClariusRawImageInfo*, int,
           const ClariusPosInfo*) { return; },
        [](int) { return; }, [](int, int) { return; }, [](int) { return; },
        [](const char*) { return; }, [](int) { return; }, 640, 512);

    if (success == 0) {
        object->setProperty("logText", "Success");
    } else {
        object->setProperty("logText", "Failure");
    }

    return app.exec();
} 

and its associated QML file (main.qml)

import QtQuick 2.0
import QtQuick.Controls 2.1

ApplicationWindow {
    property string logText: ""
    visible: true
    Text {
        anchors.centerIn: parent
        text: logText
    }
}

When I launch the app in Android, I have the following issue

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Xiaomi/santoni/santoni:7.1.2/N2G47H/V11.0.2.0.NAMMIXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 29597, tid: 29615, name: qtMainLoopThrea  >>> org.qtproject.example.clariustest <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: android.
'
    x0   0000000000000000  x1   00000000000073af  x2   0000000000000006  x3   0000000000000008
    x4   00000000000001dc  x5   0000000000008080  x6   0000007f889df000  x7   0000000000000000
    x8   0000000000000083  x9   ffffffffffffffdf  x10  0000000000000000  x11  0000000000000001
    x12  ffffffffffffffff  x13  00000000ffffffff  x14  00000000001dcc50  x15  0030c3689c65c984
    x16  0000007f86fd9ec8  x17  0000007f86f87550  x18  00000000ffffffff  x19  0000007f68f4c4f8
    x20  0000000000000006  x21  0000007f68f4c450  x22  0000000000000019  x23  0000007f6471fe89
    x24  0000007f68f4a364  x25  0000007f647aa000  x26  0000000000000002  x27  0000007f647aa000
    x28  0000007f647aae78  x29  0000007f68f4a100  x30  0000007f86f849e0
    sp   0000007f68f4a0e0  pc   0000007f86f87558  pstate 0000000060000000
backtrace:
    #00 pc 000000000006b558  /system/lib64/libc.so (tgkill+8)
    #01 pc 00000000000689dc  /system/lib64/libc.so (pthread_kill+64)
    #02 pc 0000000000023f28  /system/lib64/libc.so (raise+24)
    #03 pc 000000000001c9ac  /system/lib64/libc.so (abort+52)
    #04 pc 00000000000c29a4  /data/app/org.qtproject.example.clariustest-1/lib/arm64/libQt5Core.so
    #05 pc 00000000000c316c  /data/app/org.qtproject.example.clariustest-1/lib/arm64/libQt5Core.so (_ZNK14QMessageLogger5fatalEPKcz+156)
    #06 pc 000000000012bb78  /data/app/org.qtproject.example.clariustest-1/lib/arm64/libQt5Gui.so (_ZN22QGuiApplicationPrivate25createPlatformIntegrationEv+2904)

Do you have any idea why the initialization of the listener makes the app crash? Could it be because I do not link the library liblisten_plugin.so to my project? Actually, I do not quite understand the purpose and the usage of the liblisten_plugin.so library, and I thought that my issue may be related to it.

If I run the code on Ubuntu 18.04, it works fine.
If I use clariusIsConnected instead of clariusInitListener, it does not crash, meaning that the API can be called successfully from the Android app.

The Android app is built with SDK Version: 3.0, NDK Version: 21.1.6352462, ABI: arm64-v8a.

Thanks in advance!
Émilie

Could not connect to scanner

Hi! I am having the same issue, using a wireless Clarius C3, Ubuntu 18, software version 7.1.0 for listener API. I have the Listener API software license for the probe (though I don't recollect activating anything, just connected to the mobile app). All devices are on the probe's wifi, TCP connection established with the probe, but every time I get a message "could not connect to scanner". I was wondering what resolved the issue for @olim0. Thanks!

Originally posted by @lydiazoghbi in #5 (comment)

newImage contains 0 when listening to the newProcessedImageFn callback

Dear team,

We are trying to create a simple loop that will read incoming processed images from our L15HD and we took the callbacks examples you posted at https://github.com/clariusdev/cast/blob/master/src/example/caster/main.cpp but we are unable to receive images.

Using the callback newProcessedImageFn, the newImage pointer is an address to a variable containing a single zero. Basically, when using this code as a callback to the processed images and listening to it:

/// callback for a new image sent from the scanner
/// @param[in] newImage a pointer to the raw image bits of
/// @param[in] nfo the image properties
/// @param[in] npos the # of positional data points embedded with the frame
/// @param[in] pos the buffer of positional data
void newProcessedImageFn(const void* newImage, const ClariusProcessedImageInfo* nfo, int npos, const ClariusPosInfo* pos)
{
    PRINT << "new image (" << newImage << "): " << nfo->width << " x " << nfo->height << " @ " << nfo->bitsPerPixel
        << "bits. @ " << nfo->micronsPerPixel << " microns per pixel. imu points: " << npos;

    auto image = *(reinterpret_cast<const int*>(newImage));

    if (npos)
        printImuData(npos, pos);
}

The variable image contains a single zero.

Can you please tell us what we are doing wrong?

Our machine is a Windows 10 machine, and our project was compiled in visual studio 2019 by donwloading the lib files from releases and including files and directiories in the same way that was suggested in the provided makefile. The machine is connected to the probe using its own Wifi and the callbacks are called expectedly when the capture session begin.

Thanks in advance!
Dean

Image not streaming

Hello,

I am a new user of Clarius and I want to stream data (image) from Clarius to 3dslicer. I tried to do that by using ClariuStream.apk. However, I couldn’t receive the image in 3d slicer. Therefore, I first want to run the examples to make sure everything is working properly. I tried to run pycaster.py in cast version 9. I copied the files inside the “clarius-cast-v900-windows” folder to the “python” folder and the folder now contains the following files.
• Cast.dll
• Cast.lib
• Pycast.pyd
• Pycaster.py
• Pysidecaster.py
• README.md

Now when I run the pycaster.py it gives this error:

import pycast
ImportError: DLL load failed: The specified module could not be found.

I appreciate it if you can help me in this regard.
Also, if you know how can I get the image in 3d Slicer that would be very helpful.

USER_FN_SET_DEPTH and USER_FN_SET_GAIN switched

Hello

I was trying to increment the depth value with a button using USER_FN_SET_DEPTH, and immediately noticed it wasn't increasing or decreasing the depth, then i tried to do the same thing with the USER_FN_SET_GAIN, and it affected the depth, so i think these two user function commands are switched.

Another thing, when i try to increase the depth in 2cm using this: cusCastUserFunction(USER_FN_SET_GAIN, 2, nullptr) the depth goes to the max, which is 7cm.

The app is up to date and i'm using version 8.0.1

Module not found: pycast.Caster

We currently test a demo device (L7 HD Scanner) and Mr Noethen (Territory Manager, Germany ) and Mrs. Thomas (Support) told us to create a issue tp provide a fast solution about the functions of the research packages.

• Python version 3.7.7
• Pycast version pip install pycast==v0.1.5-alpha
o Also: Github version GitHub - T-002/pycast: Python forecasting and smoothing library

Problem executing python examples:

(venv) C:\Users\E7111\Desktop\clarius_repo\cast\src\python>python pycaster.py --address 192.168.1.1 --port 43299
Traceback (most recent call last):
File "pycaster.py", line 123, in
main()
File "pycaster.py", line 84, in main
cast = pycast.Caster(newProcessedImage, newRawImage, freezeFn, buttonsFn)
AttributeError: module 'pycast' has no attribute 'Caster'

--> Module Caster neither found in pip verison of pycast nor gitrhub version and even commit history

Please consider a fast answer, since we only have our demo device for 3 more days, to evaluate wether we need the research package or not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.