- AuthorSearch Results
Found in Topics
Jacks posted on May 9, 2023 at 8:11 am View this postTopic: Crash sm_api library.
in forum SM Series DiscussionsWe are having problems with the sm_api library. When using it with SM200C, in an absolutely arbitrary interval, our application crashes completely with an error in the Windows log (screenshot attached). The api version we use is the latest 2.3.3 (the same was observed in the previous one). Device firmware 9.9 (more than 40 pcs) and one with 8.8. The PCs are configured according to the instructions for the SM200C. All possible tests for the operation of RAM have been completed, everything is fine with it. The problem arises when receiving a trace. We ask for your advice and help in eliminating this problem.
Can’t add screenshots, site says Error: Slow down; you move too fast. From Text:
From Event viewer
Faulting application name: Atdi.AppServer.Svchost.64.exe, version: 1.0.0.0, time stamp: 0xe02756a4
Faulting module name: sm_api_x64.dll, version: 0.0.0.0, time stamp: 0x629e5a23
Exception code: 0xc0000005
Fault offset: 0x000000000005940d
Faulting process id: 0x160c
Faulting application start time: 0x01d97f452637d434
Faulting application path: C:\ATDI\DeviceServer\Atdi.AppServer.Svchost.64.exe
Faulting module path: C:\ATDI\DeviceServer\DLL\sm_api_x64.dll
Report Id: 013daf79-b44a-43fa-a2d1-9deff58071cc
Faulting package full name:
Faulting package-relative application ID:Found in Replies
CCanaff posted on April 14, 2023 at 2:02 am View this postIn reply to: SDK Python on Linux – dependencies between .so files
CCanaffParticipantLooks like it doesn’t work if bb_api.so is also present in the bbdevice directory as a copy of libbb_api.so or as a symbolic link…You have to be sure to make the bblib =CDLL(“bbdevice/libbb_api.so”)
in the bbdevice/bb_api.h file and to get the two libraries bbdevice/libbb_api.so and bbdevice/libftd2xx.so without file or symbolic link referring to bb_api.so in the bbdevice directory.
And the LD_LIBRARY_PATH have to be set.Now it works…
Thanks for your help,
Charles
Found in Replies
Roger posted on April 13, 2023 at 10:54 am View this postIn reply to: SDK Python on Linux – dependencies between .so files
RogerModeratorHi Charles,
Try renaming both .so files to have a “lib” prefix, and updating the CDLL call accordingly. So, the bbdevice directory would contain libbb_api.so and libftd2xx.so. The call would be
bblib = CDLL("bbdevice/libbb_api.so")
You are correct that LD_LIBRARY_PATH needs to be set. We are updating the documentation.
Thanks for reaching out.
-Roger
Found in Topics
CCanaff posted on April 13, 2023 at 2:29 am View this postHi!
I try to run the SDK on Linux Ubuntu. It is ok for C++. I managed the libraries but, for Python, I did not succeeded. I changed the CDLL call in the bbdevice/bb_api.h to use
the .so version of bb_api.so (instead of the dll for Windows). It looks like make correct access to the bb_api.so file…but the bb_api.so file looks like getting a dependency to the libftd2xx.so and it gives me the following error :python3 list_devices.py
(I tried it with the other scripts…same result…it is on the first lines on the import call)<….from bbdevice.bb_api import *
ImportError: libftd2xx.so: cannot open shared object file: no such file or directory….>So it looks like putting the path of the libraries (which include the libftd2xx.so)
in the LD_LIBRARY_PATH solved the problem but an other error popped :<<….from bbdevice.bb_api import *
ImportError: dynamic module does not define module export function (PyInit_bb_api)…>I am not used in interfacing C++ shared libraries dependencies with Python…
I tried to change stuff in the bb_api.h but it doesn’t seems to work.It may be simple Python’s adjustments…
Can somebody help me on that ?
Thanks,
CharlesFound in Replies
- This reply was modified 2 years, 6 months ago by
MVincent.
MVincent posted on March 9, 2023 at 4:36 am View this postIn reply to: VSG60 Crashing & Spike (BB60C) Disconnected
MVincentParticipantI’d like to add that in my case, the issue was Linux not allocating enough memory to USB devices.
As soon as I enabled the VSG60A while the BB60C was running, the application would either crash or disconnect one or both devices.
https://signalhound.com/sigdownloads/SDK/online_docs/vsg60_api/index.html contains instructions on how to solve:
sudo sh -c ‘echo 32 > /sys/module/usbcore/parameters/usbfs_memory_mb’Additionally, here’s how to make these new settings persist at boot:
Create a file: /etc/modprobe.d/signalhound_usb.confContaining:
# 16mb per signalhound device is needed, we set 3x that value here to have some head-room
options usbcore usbfs_memory_mb=48Next reboot, this will automatically be applied!
Found in Topics
JGeng posted on October 12, 2022 at 8:57 am View this postTopic: Changing center freq in iq capturing
in forum BB Series DiscussionsHello,
I’m acquiring IQ data using bbGetIQUnpacked API.
I was hoping to hopping from one frequency to another, do I have to reconfigure using bb_configure_IQ_center and then reinitiate again?
That takes about couple ms and I’m hoping not having a large gap when switching frequency.
Thanks.Bests,
JingFound in Replies
Jacks posted on October 12, 2022 at 3:05 am View this postIn reply to: SM200C get NMEA messages
JacksParticipantAnswer to my question.
This was a bad example for C# in API. More precisely, the wrong import of the library. Correct like this:
[DllImport(DLL_NAME_Win32, EntryPoint = “smGetGPSInfo”, CallingConvention = CallingConvention.Cdecl)]
private static extern SmStatus smGetGPSInfo_Win32(int device, SmBool refresh,
ref SmBool updated, ref long secSinceEpoch, ref double latitude,
ref double longitude, ref double altitude, [Out] char[] nmea, ref int nmeaLen);Found in Topics
- This topic was modified 2 years, 11 months ago by
Jacks.
Jacks posted on October 12, 2022 at 2:02 am View this postTopic: SM200C get NMEA messages
in forum SM Series DiscussionsGood afternoon!
There is SM200C, we need to receive NMEA messages. Now the SMGetGPSInfo function returns the coordinates and height, respectively, the gps works. But there is no data in the NMEA messages, i.e. the array is not filled, although the size is clearly changing.
What could be the problem?
We think that problems can be of the following type:
1. NMEA messages are disabled by default. And then they need to be turned on. How?
2. Some problems with api. We use C#, and everything is done according to the examples from C++, and before that there were no problems.Found in Replies
Andrew posted on October 4, 2022 at 9:00 am View this postIn reply to: BB60C API
AndrewModeratorHi MMohseni,
If you download the SDK (link below) and look in the examples folder for the BB60C, you will see a folder for C# that includes a wrapper API and an example of how to use it. This example can be easily modified and extended to suit your purposes.
https://signalhound.com/software/signal-hound-software-development-kit-sdk/
Andrew
Found in Topics
MMohseni posted on October 4, 2022 at 7:03 am View this postTopic: BB60C API
in forum BB Series Discussionshi dears,
I want to know how to retrieve spectrum info (Frequency and amplitude (Specially amplitude)), for example in C# program or another.Found in Topics
- This topic was modified 3 years ago by
Jacks.
Jacks posted on August 31, 2022 at 7:12 am View this postTopic: Channel power in spike with SM200C.
in forum SM Series DiscussionsGood afternoon, now I’m working with SM200C.
In the spike of the latest version, when measuring the channel power for a stable signal and changing the type of window, the channel power also changes, it seems to me wrong.
It looks like this change is 10 * Math.Log10(windowBW).
Is this a bug in the spike? The same is observed when measuring through the API. Should I subtract the constant 10 * Math.Log10(windowBW) from all levels on the trace, as I do now?Found in Replies
Andrew posted on August 17, 2022 at 9:33 am View this postIn reply to: Cannot capture all the event through spike software
AndrewModerator1) When using the I/Q recorder the scale factor is not recoverable, so you will have to use the data as full scale if saving as 16-bit ints. If using the API you can store the scaling factor separately and use it to convert to dBm if needed. The reference level being used as the scale factor does not apply with the I/Q recording utility.
2) Check out the docs for more information on scaling, we use this approach for both our BB and SM line of receivers. I/Q values have a similar scale as a voltage, but need additional conversion if you want to use them as a voltage.
https://signalhound.com/sigdownloads/SDK/online_docs/bb_api/index.html#IQDataTypesAndrew
Found in Replies
JGeng posted on August 17, 2022 at 6:48 am View this postIn reply to: Cannot capture all the event through spike software
JGengParticipantHi Andrew,
Thanks for the reply. That’s more clear for me. So if I use the IQ recorder, it will set to 16 bits for IQ data for default, and I have to do the transform and correction(based on the documentation) :
1. The correction value can only be acquired through API or there’s a table for finding it? I’ve tested that it seems only relate to the the reference level set, is that correct?
2. I’m always confused about what is the unit for acquired raw data(there’s different setting in api) for either IQ recorder or bbGetIQ api? Is is the voltage or power? mV or dbm or else?
Thanks,
JingFound in Replies
- This reply was modified 3 years ago by
Andrew.
Andrew posted on August 15, 2022 at 9:07 am View this postIn reply to: Cannot capture all the event through spike software
AndrewModerator1) My guess is that 0 duration just means the event lasted for a single sweep, and 0 bandwidth means that only a single point in the sweep exceeded your threshold. Does that line up with what you are seeing?
2) Using the recorder in Spike means that you would only have to write code that parses those files and looks for events. Using the API gives you more flexibility to write files in a format that’s better for you, and also you can automate more of the recording process vs manually saving the files in Spike. It’s the same underlying data/samples in both approaches.
Our data rate is 160MB/s. Using the API you can choose whether to receive 16 or 32-bit complex values. The 16-bit are shorts, and 32-bit are floats.
Retrieving I/Q data via the API is by default continuous. If you set the purge flag to false, the I/Q data will be continuous. The API stores about 1/2 second worth of I/Q data internally, so you must not let this internal buffer “wrap/overflow/etc”, otherwise you will have a gap in samples. You must continually poll the API for the duration of time/samples you need. You can detect gaps by monitoring the sample loss parameter and the status flag returned from the bbGetIQ function. You can request arbitrarily large buffers sizes from the API if desired. If you plan on streaming for long periods of time, I suggest requesting buffer sizes around ~1/60th of a second. This is still a small enough buffer to quickly allocate and does not call into the API (which has a small amount of overhead) too many times per second.
Andrew
Found in Replies
JGeng posted on August 15, 2022 at 8:21 am View this postIn reply to: Cannot capture all the event through spike software
JGengParticipantHello Andrew,
Thanks for all the reply. I’ve tested those solutions you suggested, and have some following questions :
1. In interference hunting mode, I can collect event with 0 duration and 0 bandwidth. I’m guessing the 0 duration is due to rounding or truncating, but what does 0 bandwidth means and what is the precision for duration and bandwidth?
2. I would like to capture all small duration event so it seems capturing IQ and do post processing is what I should do. What’s the difference between using IQ recorder and write my own code with API?
For IQ recorder : I still need to verify it’s correctness since a 40M/s sample rate has rate 150.94 MB/s so that means there’s still a loss(theoretically should be 160MB/s)?
And also, the api shows that the IQ data is stored in 32 float but the IQ recorder is recording 16 bits(and normally the recording device in the past is storing in 16 bits so I’m a little confused)For API : I’ve tested to acquire by using bbGetIQ() function, what is the mechanism for BB60C to update the buffer? I call the function several times and it actually get all the data from the buffer out. How do I get the next data without making a gap? Do you suggest anyone that can answer the question for bb_API?
Many thanks.
JingFound in Replies
Andrew posted on July 20, 2022 at 10:44 am View this postIn reply to: Cannot capture all the event through spike software
AndrewModeratorHi Jing,
The interference hunting mode is not a real-time measurement, it operates using standard sweeps. This means for short duration events like the ones you are measuring, you can miss them. Increasing the RBW can help improve sweep time.
If all of your events are within a 27MHz span, you can use our real-time measurement mode to be able to visualize all events in the frequency domain, and use our sweep recorder to capture these events. The data format for the sweep recording is different than the recorded data in interference hunting mode, but all events that have 2ms duration will be visible.
You can also record events in zero-span using the I/Q recorder in zero-span mode. You can set up a video trigger and capture a sequence of I/Q time domain files that should contain a significantly higher percentage of the events than you capture in interference hunting mode. Depending on how the pulses arrive, it may not capture 100% of them.
Another option is to use the API in I/Q streaming or real-time mode to capture data and programmatically store the events of interest.
Andrew
Found in Replies
Andrew posted on July 5, 2022 at 9:00 am View this postIn reply to: Multi-channel IQ Recording
AndrewModeratorTuong,
The I/Q recorder in Spike is not open source. That being said, we could look into extracting some useful code from the recorder as an example for customers to use. I will consider what this would look like.
We have a much older open source recording utility that was written for the BB60A/C many years ago. It illustrates multi-threaded recording of full IF/IQ data. It will likely not compile against our current APIs, but it might be helpful for you.
https://signalhound.com/sigdownloads/BB60C/BB60_Demos.zip
Andrew
Found in Topics
AKumar posted on June 10, 2022 at 9:07 pm View this postTopic: BB60C-API for ARM
in forum BB Series DiscussionsWant to call the APIs using an ARM-based device.
Hence like to compile the libraries to execute in an environment based on AArch64.
Request you to share the supporting libraries if Feasible.Found in Replies
Andrew posted on June 6, 2022 at 11:38 am View this postIn reply to: what is needed to switch modes SM200C?
AndrewModeratorWhen you stop and exit the software are you calling smCloseDevice or smAbort? If not it’s possible the device is still active. If you stop and exist the LED should have gone back to solid green. Flashing indicates data transfer.
I’m not aware of any outstanding issues that prevent the instrument from going between different modes like this. The API can only operate in one measurement mode at a time.
If you had two instances of your software running, this could certainly create this type of issue (let’s say your previous instance of your software didn’t fully close and is still running in the back ground) Our API does not stop you from interfacing the device from two different processes (which is not recommended or supported).
Are you monitoring the status’s returned from the API. When you mention getting garbage data, is it possible you are simply not getting any data and the API is throwing an error? (maybe you are just looking at uninitialized memory?)
If you continue to have issues after further investigations you can contact us directly at support@signalhound.com. You could also create a small sample application that illustrates the problem and we can try to reproduce it on our end.
Found in Topics
JHoy posted on April 13, 2022 at 3:17 pm View this postUsing the API I have found the temperature reading does not update when calling the sa_query_temperature( ) function after the device has been initialized using the sa_initiate( ) function.
The voltage reading using the sa_query_diagnostics( ) function returns the following error after the device has been initialized using the sa_initiate( ) function.
“Error -9: {‘error_string’: b’Cannot perform requested operation while the device is active’} in sa_query_diagnostics()”
Is there a way to fix this without closing the device? I need to monitor the temp to know when to apply a device calibration while the device is saving data.
Thank you.
- This reply was modified 2 years, 6 months ago by
- AuthorSearch Results