Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Library doesn't open



  • I am trying to link Bitscope library, http://www.bitscope.com/software/library/ to QtCreator 5.6. I followed the normal instructions of adding an external library and this code was produced in .pro
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'C:/Program Files (x86)/BitScope/Library/' -lBitLib
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'C:/Program Files (x86)/BitScope/Library/' -lBitLibd
    else:unix: LIBS += -L$$PWD/'C:/Program Files (x86)/BitScope/Library/' -lBitLib

    INCLUDEPATH += $$PWD/'C:/Program Files (x86)/BitScope/Library'
    DEPENDPATH += $$PWD/'C:/Program Files (x86)/BitScope/Library'

    But when build produces an error
    :-1: error: LNK1104: cannot open file 'BitLibd.lib'

    Thanks in advance for a solution


  • Lifetime Qt Champion

    Do you have BitLibd.lib in C:/Program Files (x86)/BitScope/Library?
    In general you should avoid using directories with blanks, this is a source for problems.



  • @jsulm Thank you very much for replying
    The Library has BitLib.lib.
    BitLibd.lib was created since I kept the default tick on in "Add 'd' suffix for debug version" in the 'add library' dialog. Even if I uncheck it and add the library:
    The code created in .pro is
    unix|win32: LIBS += -L$$PWD/'C:/Program Files (x86)/BitScope/Library/' -lBitLib

    INCLUDEPATH += $$PWD/'C:/Program Files (x86)/BitScope/Library'
    DEPENDPATH += $$PWD/'C:/Program Files (x86)/BitScope/Library'

    and the error remains as
    :-1: error: LNK1104: cannot open file 'BitLib.lib'

    I tried qmake -> build procedure but still the error remains.
    Even tried deleting '$$PWD' in paths as suggested in a similar thread but the problem remains.



  • @manuja I assume your development enviroment is Windows. If so, could it be possible you uninstall BitScope library from default installation folder (i.e. C:/Program Files (x86)/BitScope) and install it again under a path without spaces (i.e. C:\BitScope)?
    I've tried and I was able to build a simple Qt console application just for Windows and adding by hand these lines to the .pro file:
    INCLUDEPATH +=C:/BitScope/Library
    LIBS += -LC:/BitScope/Library -lBitLib



  • @Pablo-J.-Rogina Thanks for the reply.
    Yes I am working in Windows. I changed the installation folder to C:, reinstalled the library and added the lines you suggested. Then it created a number of errors as
    mainwindow.obj:-1: error: LNK2019: unresolved external symbol BL_Count referenced in function "public: _cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
    And the error appears for all the BL
    * functions.

    When I go with the .pro code created automatically when adding the library the earlier error remains. That is:
    :-1: error: LNK1104: cannot open file 'BitLib.lib'
    :(



  • I changed the installation folder to C:
    Could you state the full path of your installation folder?
    And could you post the contents of your .pro file?



  • @Pablo-J.-Rogina
    unix|win32: LIBS += -L$$PWD/C:/BitScope/Library/ -lBitLib

    INCLUDEPATH += $$PWD/C:/BitScope/Library
    DEPENDPATH += $$PWD/C:/BitScope/Library

    This is the .pro code that is generated automatically.

    C:\BitScope\Library - The full path of library

    Thanks



  • It looks like you're not following my recommendations :-)
    Forget about the automatically created .pro file, change it by hand. Please compare the two lines I posted with what you have now...



  • @Pablo-J.-Rogina I'm sorry but I did try the lines you suggested as I mentioned in my first reply to you. But it created 11 errors for each of the BL_ functions in my mainwindow.cpp.
    Maybe the error is now with the functions I used.
    I directly copied from the sample code on the Bitscope Library manual, these lines:
    BL_Intro(BL_ZERO); /* optional, default BL_ZERO /
    BL_Delay(BL_ZERO); /
    optional, default BL_ZERO /
    BL_Rate(MY_RATE); /
    optional, default BL_MAX_RATE /
    BL_Size(MY_SIZE); /
    optional, default BL_MAX_SIZE /
    BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL); /
    choose the channel /
    BL_Trigger(BL_ZERO,BL_TRIG_RISE); /
    optional when untriggered /
    BL_Select(BL_SELECT_SOURCE,BL_SOURCE_POD); /
    use the POD input /
    BL_Range(BL_Count(BL_COUNT_RANGE)); /
    maximum range /
    BL_Offset(BL_ZERO); /
    optional, default 0 /
    BL_Enable(TRUE); /
    at least one channel must be initialised */

    Very much appreciate your support :)

    I'll add the full code just in case:
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "limits.h"
    #include "bitlib.h"

    int x1=0, yl=0, x2=0, y2=0, x3=0, y3=0, x4=0, y4=0;
    #define MY_DEVICES 1 /* open one device only /
    #define MY_PROBE_FILE "" /
    default probe file if unspecified */

    #define MY_DEVICE 0
    #define MY_CHANNEL 0
    #define MY_MODE BL_MODE_FAST
    #define MY_RATE 1000000 /* capture sample rate /
    #define MY_SIZE 4 /
    number of samples to capture */

    MainWindow::MainWindow(QWidget parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    BL_Intro(BL_ZERO); /
    optional, default BL_ZERO /
    BL_Delay(BL_ZERO); /
    optional, default BL_ZERO /
    BL_Rate(MY_RATE); /
    optional, default BL_MAX_RATE /
    BL_Size(MY_SIZE); /
    optional, default BL_MAX_SIZE /
    BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL); /
    choose the channel /
    BL_Trigger(BL_ZERO,BL_TRIG_RISE); /
    optional when untriggered /
    BL_Select(BL_SELECT_SOURCE,BL_SOURCE_POD); /
    use the POD input /
    BL_Range(BL_Count(BL_COUNT_RANGE)); /
    maximum range /
    BL_Offset(BL_ZERO); /
    optional, default 0 /
    BL_Enable(TRUE); /
    at least one channel must be initialised */
    }

    MainWindow::~MainWindow()
    {
    delete ui;
    }

    void MainWindow::on_btnCharge1_clicked()
    {
    x1 = ui->txtCharge1->text().toInt();
    }

    void MainWindow::on_btnCharge2_clicked()
    {
    x2 = ui->txtCharge2->text().toInt();
    }

    void MainWindow::on_btnCharge3_clicked()
    {
    x3 = ui->txtCharge3->text().toInt();
    }

    void MainWindow::on_btnCharge4_clicked()
    {
    x4 = ui->txtCharge4->text().toInt();
    }

    void MainWindow::on_btnCalibrate_clicked()
    {

    QVector<double> x(4),y(4);
    x[0]=x1;
    y[0]=yl;
    x[1]=x2;
    y[1]=y2;
    x[2]=x3;
    y[2]=y3;
    x[3]=x4;
    y[3]=y4;
    ui->Plot->addGraph();
    ui->Plot->graph(0)->setData(x, y);
    // give the axes some labels:
    ui->Plot->xAxis->setLabel("x");
    ui->Plot->yAxis->setLabel("y");
    // set axes ranges, so we see all data:
    ui->Plot->xAxis->setRange(0, 100);
    //ui->Plot->yAxis->setRange(0, 1);
    ui->Plot->replot();
    

    }


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Did you check that both Qt and BitScope are built for the same architecture ?



  • @manuja I've just created a basic Qt GUI application, I hope you can grab code snippets from Bitbucket (sorry no time for a full Git repository).

    The application just displays a main window, nothing fancy, but by doing that most of the Bitscope functions you posted previously are called from QMainWindow constructor, so that proves Qt was able to build and run the application.

    As @SGaist mentioned please pay attention to what Bitscope version you're using (I mistakenly used x64 version initially, reinstalling i386 made the way with my environment: Win 7, Qt 4.7.4 and MinGW 32 bit)



  • @Pablo-J.-Rogina Thank you very much!!!
    I'll try this. I actually tried the same library functions in a C++ console application on Codeblocks and they worked fine. I'll try with your code. Thanks again :-)



  • Hello I have problems to use functions of bitlib.lib.
    I created a project without Qt, a c++ application, in qt-creator 4.9.2 (Community) version and build with the Qt 5.13.0 MinGW 64-bit and qmaxe.exe. It works for the function BL_Initialize() and every function with the return type void. But the others are not working and i get undefined reference to BL_Delay for example. Mabye someone had the same problem and can help me.

    Thanks in advance for a solution

    Alex

    //ConnectBitScope.pro
    TEMPLATE = app
    CONFIG += console c++11
    CONFIG -= app_bundle
    CONFIG -= qt
    
    SOURCES += \
            main.cpp
    HEADERS += \bitlib.h \
        bitlib.h
    
    
    INCLUDEPATH +=C:/BitScope64/Library
    LIBS += -LC:/BitScope64/Library -BitLib
    
    
    
    //main.cpp
    #include <iostream>
    #include <bitlib.h>
    using namespace std;
    
    #define MY_DEVICES 1                            /* open one device only */
    #define MY_PROBE_FILE ""                        /* default probe file if unspecified */
    
    #define MY_DEVICE 0
    #define MY_CHANNEL 0
    #define MY_MODE BL_MODE_FAST
    #define MY_RATE 1000000                         /* capture sample rate */
    #define MY_SIZE 4                               /* number of samples to capture */
    
    int main()
    {
        cout << "Hello World!" << endl;
       void BL_Initialize();
       
       /* optional, default BL_ZERO */
       // BL_Delay(BL_ZERO);                          /* optional, default BL_ZERO */
       // BL_Rate(MY_RATE);                           /* optional, default BL_MAX_RATE */
       // BL_Size(MY_SIZE);                           /* optional, default BL_MAX_SIZE */
       // BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL);    /* choose the channel */
       // BL_Trigger(BL_ZERO,BL_TRIG_RISE);           /* optional when untriggered */
       // BL_Select(BL_SELECT_SOURCE,BL_SOURCE_POD);  /* use the POD input */
       // BL_Range(BL_Count(BL_COUNT_RANGE));         /* maximum range */
      //  BL_Offset(BL_ZERO);                         /* optional, default 0 */
      //  BL_Enable(true);
        return 0;
    }
    
    //bitlib.h
    /* bitlib.h -- BitScope Library Version 2.0 FG12CLBR
     *
     *     http://bitscope.com/software/library/guide/2.0/
     *
     * Copyright (C) 2018 BitScope Designs http://bitscope.com
     *
     * You may use this library software for any purpose, or distribute it
     * or derivative works in any form subject to the terms of the BitScope
     * Library Software Licence V1.1.
     */
    #ifndef _BITLIB_H
    #define _BITLIB_H
    
    #if !defined(__cplusplus) 
    #ifndef _bool_
    #define _bool_
    typedef unsigned int bool;
    #endif
    #ifndef TRUE
    #define TRUE 1
    #endif
    #ifndef FALSE
    #define FALSE 0
    #endif
    #endif
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
     /* magic values */
    
    #define BL_MAX_RATE 0       /* request the maximum rate */
    #define BL_MAX_TIME 0       /* request the maximum time */
    #define BL_MAX_SIZE 0       /* request the maximum size */
    #define BL_TRACE_FORCED 0   /* trace without (waiting for) trigger */ 
    #define BL_TRACE_FOREVER -1 /* trace without timeout (possibly forever) */
    #define BL_ZERO 0           /* zero volts (ground, reference, etc) */
    #define BL_ASK -1           /* request a prevailing value */
    
     /* select/report tokens */
    
        enum { BL_COUNT_DEVICE, BL_COUNT_ANALOG, BL_COUNT_LOGIC, BL_COUNT_RANGE };
        enum { BL_SELECT_DEVICE, BL_SELECT_CHANNEL, BL_SELECT_SOURCE };
        enum { BL_STATE_IDLE, BL_STATE_ACTIVE, BL_STATE_DONE, BL_STATE_ERROR };
        enum { BL_SOURCE_POD, BL_SOURCE_BNC, BL_SOURCE_X10, BL_SOURCE_X20, BL_SOURCE_X50, BL_SOURCE_ALT, BL_SOURCE_GND };
    	enum { BL_COUPLING_DC, BL_COUPLING_AC, BL_COUPLING_RF };
        enum { BL_MODE_FAST, BL_MODE_DUAL, BL_MODE_MIXED, BL_MODE_LOGIC, BL_MODE_STREAM };
    	enum { BL_TRIG_RISE, BL_TRIG_FALL, BL_TRIG_HIGH, BL_TRIG_LOW, BL_TRIG_NONE };
        enum { BL_VERSION_DEVICE, BL_VERSION_LIBRARY, BL_VERSION_BINDING, BL_VERSION_PLATFORM, BL_VERSION_FRAMEWORK, BL_VERSION_NETWORK };
    	enum { BL_SYNCHRONOUS, BL_ASYNCHRONOUS };
    
     /* Library API | Types */
        
        typedef int      ( BL_Acquire_t )         ( int, double * ); 
        typedef void     ( BL_Close_t )           ( void );
        typedef int      ( BL_Count_t )           ( int );
        typedef int      ( BL_Coupling_t )        ( int );
        typedef double   ( BL_Delay_t )           ( double ); 
        typedef bool     ( BL_Enable_t )          ( bool); 
        typedef int      ( BL_Error_t )           ( void );
        typedef bool     ( BL_Halt_t )            ( void );
        typedef char *   ( BL_ID_t )              ( void );
        typedef bool     ( BL_Index_t )           ( int );
        typedef void     ( BL_Initialize_t )      ( void );
        typedef double   ( BL_Intro_t )           ( double ); 
        typedef char *   ( BL_Log_t )             ( void );
        typedef int      ( BL_Mode_t )            ( int ); 
        typedef char *   ( BL_Name_t )            ( char * );
        typedef double   ( BL_Offset_t )          ( double );
        typedef int      ( BL_Open_t )            ( const char *, int );
        typedef double   ( BL_Range_t )           ( int );
        typedef bool     ( BL_Receive_t )         ( char *, int, int );
        typedef double   ( BL_Rate_t )            ( double );
        typedef int      ( BL_Select_t )          ( int, int );
        typedef void     ( BL_Send_t )            ( char *, int );
        typedef int      ( BL_Size_t )            ( int ); 
        typedef int      ( BL_State_t )           ( void ); 
        typedef double   ( BL_Time_t)             ( double );
        typedef bool     ( BL_Trace_t )           ( double, bool ); 
        typedef bool     ( BL_Trigger_t )         ( double, int );
        typedef char *   ( BL_Version_t )         ( int );
        
     /* Library API | Function Pointers */
        
        BL_Acquire_t BL_Acquire;
        BL_Close_t BL_Close;
        BL_Count_t BL_Count;
        BL_Coupling_t BL_Coupling;
        BL_Delay_t BL_Delay;
        BL_Enable_t BL_Enable;
        BL_Error_t BL_Error;
        BL_Halt_t BL_Halt;
        BL_ID_t BL_ID;
        BL_Initialize_t BL_Initialize;
        BL_Intro_t BL_Intro;
        BL_Log_t BL_Log;
        BL_Mode_t BL_Mode;
        BL_Name_t BL_Name;
        BL_Offset_t BL_Offset;
        BL_Open_t BL_Open;
        BL_Range_t BL_Range;
        BL_Rate_t BL_Rate;
        BL_Receive_t BL_Receive;
        BL_Select_t BL_Select;
        BL_Send_t BL_Send;
        BL_Index_t BL_Index;
        BL_Size_t BL_Size;
        BL_State_t BL_State;
        BL_Time_t BL_Time;
        BL_Trace_t BL_Trace;
        BL_Trigger_t BL_Trigger;
        BL_Version_t BL_Version;
            
    #ifdef __cplusplus
    }
    #endif
    
    #endif /* _BITLIB_H */
    
    

  • Lifetime Qt Champion

    @alexfi Is there only one library file? Sometimes functionality is spread across several library files.


  • Lifetime Qt Champion

    @alexfi said in Library doesn't open:

    -BitLib

    This is wrong



  • @jsulm
    There are two files available. The 64bit version and the 32bit version, I tried both and installed them into the C: programm folder.
    after I get the undefinded reference there error there was the collect2.exe error.



  • @christian-ehrlicher
    I tried -lBitLib before, but there was the error lBitlib not found. After I changed the to -BitLib it was found. I thought that was linux syntax. Mabe you can help me to get this run.
    I installed the library in the C: folder after that I include this two lines in the pro file. i also added the header file in the project

    INCLUDEPATH +=C:/BitScope64/Library
    
    LIBS += -LC:/BitScope64/Library -lBitLib
    
    

    then i receive cannot find lBitLib

    the structure of the library folder is following:

    ->Library
       ->Document
       bitlib.def
       BitLib.dll
       bitlib.h
       BitLib.lib
       BitLib.pas
    
    -BitLib.dll
    -BitScope.prb
    -BitServe.prb
    
    


  • @alexfi spolier alert: not tested! Could it be possible you need this? this is, telling the linker to use a library that doesn't follow the libNAME.so convention


  • Lifetime Qt Champion

    It's msvc, so according to the docs it must be

    LIBS += C:/BitScope64/Library/BitLib.lib



  • @pablo-j-rogina

    I am not sure how to include this correct in my pro. file do you have an example or some explanations for this?

    g++ -o build/bin/myapp _mylib.so other_source_files
    

    Thank you for your help!!!

    @Christian-Ehrlicher
    I tried this also, but I get the undefined reference.

    Thank you also for your help!!!

    i also changed the library files from 64bit to 32bit because of that

    //qmake: qmake.exe ConnectBitScope.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    


  • @alexfi said in Library doesn't open:

    do you have an example or some explanations for this?

    have you checked the answers to that post? (hint: see #1...)


  • Lifetime Qt Champion

    @alexfi said in Library doesn't open:

    LIBS += -LC:/BitScope64/Library -lBitLib

    I have done that several times and it used to work with MinGW and MSVC too. Can you show the linker command line from Compile Output?

    Which MSVC version do you use?

    The reason to prefer the -L/path/to/lib -llibname syntax is that Creator recognizes this and adds /path/to/lib to your Run Environment so your program finds the DLL automatically.


  • Lifetime Qt Champion

    @christian-ehrlicher I used that syntax before, but even MSVC can be feed with the Linux syntax (I guess qmake maps that), and that has advantages in Creator, see my last post.



  • @aha_1980
    I think this is the Compile Output you need:

    
    g++ -Wl,-subsystem,console -mthreads -o debug\ConnectBitScope.exe debug/main.o  -LC:\BitScope32\Library\BitLib.lib   
    debug/main.o: In function `main':
    C:\Users\adm-eep\Documents\ConnectBitScope\build-ConnectBitScope-Desktop_Qt_5_13_0_MinGW_64_bit-Debug/../ConnectBitScope/main.cpp:23: undefined reference to `BL_Open'
    collect2.exe: error: ld returned 1 exit status
    mingw32-make[1]: *** [Makefile.Debug:66: debug/ConnectBitScope.exe] Error 1
    mingw32-make: *** [Makefile:38: debug] Error 2
    mingw32-make[1]: Leaving directory 'C:/Users/adm-eep/Documents/ConnectBitScope/build-ConnectBitScope-Desktop_Qt_5_13_0_MinGW_64_bit-Debug'
    

    I use the MSVC 11.0

    @Pablo-J-Rogina

    I saw the example but i think this is for librarys with the ending .so I am no sure how to use this in my case


  • Lifetime Qt Champion

    @alexfi said in Library doesn't open:

    I use the MSVC 11.0

    In that case, something is really weird set up - no wonder that it doesn't work.

    Your compile output clearly shows the MinGW linker running.

    Can you please show the screenshots of Tools > Options > Kits for Kits, Qt versions and compilers?

    Regards



  • @alexfi said in Library doesn't open:

    librarys with the ending .so

    you may want to try with .lib in your case



  • @aha_1980 4_1568639741565_QT_version.JPG 3_1568639741565_Qbs.JPG 2_1568639741565_Kit.JPG 1_1568639741564_debugger.JPG 0_1568639741564_compiler.JPG

    @Pablo-J-Rogina
    I tried it like this :

    g++ -o$$PWD/ $$PWD/BitLib.lib
    
    but i get the "extra characters after test expression" error
    
    

  • Lifetime Qt Champion

    @manuja said in Library doesn't open:

    LNK1104

    This shows that you used the msvc linker before

    BitLib.lib

    This shows that the library was build with msvc
    So if bitlib is a plain C library you can create a proper import lib with reimp & co (google is your friend) or you can try to link directly against the dll -> -lC:/BitScope64/Library/BitLib.dll - it should work with a recent MinGW version iirc.
    If it's a c++ library than you have to recompile it with g++ to get a proper import lib (BitLib.a)



  • @christian-ehrlicher
    okay, if i under stand you right i have to reimport the lib, because it is written in c BitScope Librarys and this Bitscope example in C .

    I tried this:

    LIBS += -lC:/BitScope64/Library/BitLib.dll - it 
    
    

    the direct link doesn't work if I use it like this because of the ending "- it".

    is the reimport something i do in my actual project or is external work?


  • Lifetime Qt Champion

    @alexfi said in Library doesn't open:

    because of the ending "- it".

    Where does this come from? Your library is named BitLib.dll ...



  • @christian-ehrlicher sorry my fault. I just didn't read the following sentence after your recommendation, but i also tried it without and it gave me back undefined reference. Now i try to find out how to reimport the lib.


  • Lifetime Qt Champion

    @alexfi Just a note: the only Kit you have is one for MinGW not MSVC...



  • @jsulm thank you for your answer. Do I understand this right, that these basic settings should work?



  • I solved my problem with BitScope. Here a short overview of the setup:

    First I just downloaded the 32bit library:
    http://my.bitscope.com/download/?p=download
    FileType: Drivers&Libraries:
    bitscope-library_2.0.FE26B_i386.zip

    ->run the .exe file and a folder is created, in my case in c:/programm files/bitscope.

    I copied the folder to d:/bitscope, because I thought qt-creator has problems with the space in "programm files", it also works in c:.

    Then I created a new QT project "QT Widgets Application"
    For debugging, I use QT.5.13.1 MinGW 32-Bit

    Modified the .pro file with following:

    code_text
    HEADERS += \
            bitlib.h
    INCLUDEPATH +="D:\BitScope\Library"
    INCLUDEPATH +="D:\BitScope"
    
    LIBS +=  "D:\BitScope\Library\BitLib.lib"
    

    I copied the "bitlib.h" file of the library folder in the project folder
    and the "BitLib.dll" in the debug folder of my current project, where you find the .exe file after you build your project the first time.

    To use the library you just have to add in your .cpp file

    code_text
    #include<bitlib.h>
    
    #define MY_DEVICES 1 /* open one device only */
    #define MY_PROBE_FILE "" /* default probe file if unspecified */
    
    #define MY_DEVICE 0
    #define MY_CHANNEL 0
    #define MY_MODE BL_MODE_FAST
    #define MY_RATE 5000 /* capture sample rate */
    #define MY_SIZE 12270 /* number of samples to capture */
    #define max_SIZE 12270
    #define n_of_ms 2
    
    Project::Project(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Project)
    {
        ui->setupUi(this);
    
        setUpGrafics();
    
    /*
         * Open and select the first channel on the first device.
         */
         printf("\nStarting: Attempting to open %d device%s...\n",MY_DEVICES,MY_DEVICES!=1?"s":"");
         QString sVar;
         sVar.sprintf("\nStarting: Attempting to open %d device%s...\n",MY_DEVICES,MY_DEVICES!=1?"s":"");
    
         if ( ! BL_Open(MY_PROBE_FILE,MY_DEVICE) ) {
    
                printf("Failed to find a devices.\n");
         }
         if ( BL_Select(BL_SELECT_DEVICE,MY_DEVICE) != MY_DEVICE ) {
             printf("Failed to select device %d.\n",MY_DEVICE);
      
         }
         if ( BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL) != MY_CHANNEL ) {
             printf("Failed to select channel %d.\n",MY_CHANNEL);
     
         }
        /*
         * Prepare to capture one channel...
         */
         if ( BL_Mode(MY_MODE) != MY_MODE ) {
             printf("Failed to select mode %d.\n",MY_MODE);
    
         }
         BL_Intro(BL_ZERO); /* optional, default BL_ZERO */
         BL_Delay(BL_ZERO); /* optional, default BL_ZERO */
         BL_Rate(MY_RATE); /* optional, default BL_MAX_RATE */
         BL_Size(MY_SIZE); /* optional, default BL_MAX_SIZE */
         BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL); /* choose the channel */
         BL_Trigger(BL_ZERO,BL_TRIG_RISE); /* optional when untriggered */
         BL_Select(BL_SELECT_SOURCE,BL_SOURCE_POD); /* use the POD input */
         BL_Range(BL_Count(BL_COUNT_RANGE)); /* maximum range */
         BL_Offset(BL_ZERO); /* optional, default 0 */
         BL_Enable(TRUE); /* at least one channel must be initialised */
        /*
         * Capture and acquire the data...
         */
         printf("   Trace: %d samples @ %.0fHz = %fs\n",BL_Size(BL_ASK),BL_Rate(BL_ASK), BL_Time(BL_ASK));
         if ( BL_Trace(BL_TRACE_FORCED,BL_SYNCHRONOUS) ) { /* capture data (without a trigger) */
              int i, n = MY_SIZE; double d[MY_SIZE]; /* let's get 5 samples */
              BL_Select(BL_SELECT_CHANNEL,MY_CHANNEL); /* optional if only one channel */
    
              if ( BL_Acquire(n, d)  == n ) { /* acquire (i.e. dump) the capture data */
                  printf("Acquired:");
                  for (i = 0; i < n; i++)
                      //printf(" %f", d[i]);
                //  printf("\n\n");
                  Data3.append(d[i+j*n_of_ms]);
                     printf(" %f", Data3.value(i));
              }
    
          }
    
    
    
         printf("Data acquisition complete. Dump Log...\n");
         printf(BL_Log());
       
         BL_Close(); /* call this to release library resources */
    
    }
    

    I don't know why, but I got troubles when i wanted to call the functions of BitLib.lib in the main.cpp
    so I just called them in the project.cpp and it worked well.

    With the sample code of https://www.bitscope.com/software/library/guide/2.0/
    after I changed in the code the dynamic array to an fixed value and "TRUE" to "true" and deleted the " goto exit," jumps
    This example runs.

    Thanks everyone for your help, I hope this will help following BitScope QT users.
    Have a nice Day!



  • Hello,

    i need your help again.
    there is one functionality I need from BitScope which is not given in the BitLib, specific I want to switch an output of the BitScope Micro. I got the hint to use https://docs.bitscope.com/LYK5QKSL/#programming but I am not sure, if i can setup this with QT. Do you have any ideas, for that?

    kind regards

    alex



  • @AlexFi please open your own post for this new topic. Thanks.


Log in to reply