The DLL Help

Hello!

Could you help me, how to call this function in Labview? It is very important for me!

Thank you!

I am on the GetCameraList pointer parameter.


Tags: NI Software

Similar Questions

  • DLL Help application retired that we use now?

    Hello

    I used to search for DLL files in an online database provided by Microsoft.  It seems that it is no longer available.  It shows the DLL Help request was withdrawn on February 8, 2010 and is no longer accessible.

    Is there an available from Microsoft or another reputable vendor or Google my only option?

    Thanks for your time.

    Hello

    You will need to find a third party solution as the database was withdrawn on February 8, 2010.

    http://support.Microsoft.com/dllhelp/?DllType=file&l=55&S=1&x=17&y=14&Alpha= {KW_UTF8} & ei = UTF-8 & oe = UTF-8

    You can use your favorite search engine to find third-party solutions.

    Note: Using third-party software, including hardware drivers can cause serious problems that may prevent your computer from starting properly. Microsoft cannot guarantee that problems resulting from the use of third-party software can be solved. Software using third party is at your own risk.

  • Impossible to install FSX Deluxe, receive the error message "could not load the DLL: Gameuxinstall helper.

    Original title: installation of FSX

    When you try to install the FSX Deluxe I keep getting unable to load the DLL: Gameuxinstall helper

    Hello

    What is the version of the operating system installed on your computer (if it is x32bit or x64bit version)?

    I suggest you to contact Microsoft Flight Simulation support to improve the assistance on the issue:

    https://microsoftflight.com/en-us/contactus/

    You can also check out the link below:
    http://www.Microsoft.com/products/games/FSInsider/community/pages/default.aspx

    http://support.Microsoft.com/kb/910816

    http://social.technet.Microsoft.com/forums/en-us/w7itproappcompat/thread/641b3933-3C3a-4077-8a1e-e271b3c19a95

    If you use windows x64bit OS Microsoft Flight Simulator x Deluxe is not supported.

    Reference: http://www.microsoft.com/windows/compatibility/windows-7/en-us/Search.aspx?l=en-us&type=Software&s=Flight%20simulator%20deluxe&os=64-bit

    Hope this information is useful.

  • Windows registry is linked to the .dll files? HELP several BSoD and browse... crashed during post! for the love of God

    Must be quick, title says it all
    Windows registry is responsible for the .dll files?
    SFC shows SEVERAL DLLs not missing, no installation CD.
    Not good recovery CD.
    I have the copy of the registry before changes but online before browser support multiple and many BSOD.
    Will post now as browser crashed early in post and the 5 th time in half an hour.

    Thanks for the reply Elizabeth23, but I finally found the part of the SFC.

    SFC showed 167 system missing files - if you continue to press Cancel > continue every time SFC tells you to put in your Windows installation CD eveeentually happen to you at the end of his race - and I ran 3 times and each time got 167.
    Now I had some of the 'missing' located in System32 .dll files, but some were also in i386 and the drivercache but I had not located a bit; but I knew that something is not right I had found some system 'missing' files and after that a few hunting came across a site that said to check the registry key
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
    CurrentVersion\Setup

    and under SourcePath my entry is a file that does not exist 'Temp' so I changed the entry to C:\WINDOWS rebooted and ran SFC/scannow and it scanned without stopping.
    Weird as the registry key was in a file that is no Temp because I ran many SFC
    times in the last 2 months and it always scanned all the files in the operating system without a hitch...

    My computer is still BSoDing out, had two after SFC took place without a hitch.

  • The application or the DLL C:\Program Files\Mozilla Firefox\MOZCRT19.dll is not a valid Windows image. Please check this against your installation diskette

    The application or the DLL C:\Program Files\Mozilla Firefox\MOZCRT19.dll is not a valid Windows image. Please check this against your installation diskette.
    Help, please. I was unistalling firefox and reinstall them again at least 10 times, but still does not solve the problem

    This has happened

    Each time Firefox opened

    few days back

    User Agent

    Mozilla/4.0 (compatible; INTERNET EXPLORER 6.0; Windows NT 5.1; SV1; InfoPath.2)

    I have the same problem

    deleted expletives - Maurane

  • Adapter DLL: Name of the function change & params without unloading of the DLL

    Hello

    I use teststand adapters API to dynamically build a DLL call step. Each dll function is called through this subsequence "DLL Manager."

    Tried 2 methods (here is a summary of the code):

    1 ActiveX as follows:

    CommonCModule.ModulePath = myDllpath

    CommonCModule.FunctionName = myFunc (Note: this call unload the DLL previously loaded)

    Module-> LoadPrototype

    (to set the params)

    2 steps statement:

    RunState.Sequence.Main ["Call DLL function']. TS. SData.Call.LibPath = myDllpath

    RunState.Sequence.Main ["Call DLL function']. TS. SData.Call.Func = myFunc (Note: this is a step, but the info seems not be updated-online the new feature is called not properly)

    Module-> LoadPrototype

    (to set the params)

    The two methods is exactly the same behavior, but good for the 1st function I call a work or if I dump the dll after the execute step.

    However, is there a way to use these steps (or other) at stage configuration, but without unloading the DLL between each call. In my test sequence, I must OpenConnection with the object to be measured before starting my orders, as well as the dll should not be discharged to keep the connection open...

    for example

    (1) OpenConnection()-online this function takes the handle of communication with the device

    (2) myCommand1()

    (3) myCommand2()

    (4) CloseConnection()

    Thank you for the help

    C.

    If I understand your question, there are several ways to solve the problem. The easiest is to place a call to the dll before your loop that you never change programmatically. This step will then keep the loaded dll (if any stage that uses a dll is loaded, then the dll remains loaded. A dll is unloaded when all the steps that use it are unloaded.). Another option is to have just internally your call to the dll LoadLibrary on itself so that it is never unloaded. You then leave the process to unload the dll well. Another option is to add the code directly to the sequence that explicitly, charge and discharge your dll with the Win32 API LoadLibrary and FreeLibrary.

    That said, what you describe, if I understand correctly, looks like a very unusual use of TestStand. Looks like you use TestStand as a dll calling rather than as a sequencer and write your own sequencer above it instead. Have you thought to generate an entire sequence to run in teststand, rather than a step at a time? Basically, convert your test script in a TestStand sequence.

    Hope this helps,

    -Doug

  • Nidll.TLC, was eliminated for the dll system RT?

    I am currently trying to call some model (*.mdl) in LabVIEW to transform the models of the dll.  The models are manufactured and converted with Mathworks Simulink and LabVIEW I intend to open via call library function node of the dll.  So far, I've downloaded NI Veristand and the model Interface Toolkit, which gave me options of file system target:

    NIVeristand.tlc

    NIVeristand_VxWorks.tlc

    But I don't have an option for nidll.tlc (I understand can be opend in LabVIEW Veristand instead), and I wonder why.  This option has been removed for RT targets?

    Hi Abe,

    Yes, nidll.tlc is obsolete as of 2012. In particular, nidll.tlc has been installed by the NI LabVIEW Simulation Interface Toolkit (SIT) which reached its end of life in 2012. SIT, however, was replaced by the model Interface Toolkit LabVIEW; This kit replaces nidll.tlc by NIVeriStand.tlc. Note that the interface of the model generated by nidll.tlc and NIVeriStand.tlc are very similar; Indeed, nidll.tlc was the NIVeriStand.tlc Foundation. A model generated by NIVeriStand.tlc can be opened in LabVIEW VeriStand.

  • LabVIEW crashes after the call to the DLL

    Hi all

    I'm working on writing a wrapper for a dll. The call to the dll works fine a returns the appropriate values, but as soon as I close the VI dev LabVIEW environment crashes. Any help to avoid the same. I've been through a lot of posts and I tried varying the types of data sent to the dll, but again it gets crashed.

    the dll function that I use is the prototype (with the calling convention of type C)

    int nomfonction (Struct * cfg, UCHAR dNumber, UCHAR hTYPE)

    The varables UCHAR I'm passing as of 8-bit unsigned integers.

    For the structure, I did a cluster and pass with adapted to the Type and handles.

    The DLL is running very well and the VI stops, too, but as soon as I try to close the dev environment VI crashes. Help, please.

    Thank you.

    It is always possible that there is a bug in your DLL, or you're a failure calling a function in the DLL that is required in order to properly clean. The problem is perhaps not the way you have set up the call library function node.

    If you post: your VI; the header file that defines the structure of the cfg and the function prototype; and all the documentation on the function, so we can tell you if it is properly configured. Without this information there is little we can do.

  • How to change the .h to correctly practice the .dll

    Hello world

    I have a problem with a .h file to control my cnc-planet engine.

    I don't know how to edit.

    For example, I have the following function not recognized by Labview:

    extern "C" CNC_ERROR CALLCONV Connect();

    I tried with: int Connect(); Int32 Connect(); int CNC_ERROR Connect() and int32 CNC_ERROR Connect() with no result.

    Perhaps, it's the statement variable...

    It is written as follows:

    enum CNC_ERROR: int
    {
    CNC_SUCCESS = 0 X 00000000.
    CNC_ERROR_FAIL = 0 X 00000001,
    CNC_ERROR_NOT_IMPLEMENTED = 0 X 00000002,
    CNC_ERROR_NOT_INITIALIZED = 0 X 00000003,
    CNC_ERROR_DEVICE_NOT_FOUND = 0 X 00000004,
    CNC_ERROR_DEVICE_NOT_READY = 0 X 00000005,
    CNC_ERROR_DEVICE_NOT_CONNECTED = 0 X 00000006,
    CNC_ERROR_SEND_FAILED = 0 X 00000007,
    CNC_ERROR_LICENSE = 0 X 00000008,
    CNC_ERROR_RAWDATA = 0 X 00000009,
    CNC_ERROR_DEVICE_PARAMS = 0X0000000A,
    };

    I don't know how to change in a way that undrestand Labview...

    Any help?

    Thank you very much.

    PS: The integral .h file

    #pragma once

    #ifndef __AFXWIN_H__
    #error include 'stdafx.h' before including this file for PCH
    #endif

    enum CNC_ERROR: int
    {
    CNC_SUCCESS = 0 X 00000000.
    CNC_ERROR_FAIL = 0 X 00000001,
    CNC_ERROR_NOT_IMPLEMENTED = 0 X 00000002,
    CNC_ERROR_NOT_INITIALIZED = 0 X 00000003,
    CNC_ERROR_DEVICE_NOT_FOUND = 0 X 00000004,
    CNC_ERROR_DEVICE_NOT_READY = 0 X 00000005,
    CNC_ERROR_DEVICE_NOT_CONNECTED = 0 X 00000006,
    CNC_ERROR_SEND_FAILED = 0 X 00000007,
    CNC_ERROR_LICENSE = 0 X 00000008,
    CNC_ERROR_RAWDATA = 0 X 00000009,
    CNC_ERROR_DEVICE_PARAMS = 0X0000000A,
    };

    enum CNC_STATUS: int
    {
    CNC_STATUS_NONE = 0 X 00010000,
    CNC_STATUS_CONNECTED = 0 X 00010001,
    CNC_STATUS_DISCONNECTED = 0 X 00010002,
    CNC_STATUS_UNPLUGED = 0 X 00010003,
    CNC_STATUS_DATAERROR = 0 X 00010004,
    };

    enum CNC_CODE: unsigned char
    {
    CNC_CODE_Unknown = 0,
    CNC_CODE_OK = 1,
    CNC_CODE_Pos = 2,
    CNC_CODE_Stop = 3,
    CNC_CODE_Error = 8,
    };

    enum CNC_PLANE: unsigned char
    {
    CNC_PLANE_Unknown = 0,
    CNC_PLANE_XY = 1,
    CNC_PLANE_YZ = 2,
    CNC_PLANE_ZX = 3,
    CNC_PLANE_UV = 4,
    CNC_PLANE_VW = 5,
    CNC_PLANE_UW = 6,
    };

    enum CNC_SPINDLE: unsigned char
    {
    CNC_SPINDLE_Unknown = 0,
    CNC_SPINDLE_Stopped = 1,
    CNC_SPINDLE_CW = 2,
    CNC_SPINDLE_CCW = 3,
    };

    enum CNC_COOLANT: unsigned char
    {
    CNC_COOLANT_Unknown = 0,
    CNC_COOLANT_Off = 1,
    CNC_COOLANT_On = 2,
    };

    enum CNC_VERSION: unsigned char
    {
    CNC_VERSION_Unknown = 0,
    CNC_VERSION_MK1 = 1,
    CNC_VERSION_MK2 = 2,
    };

    #define CALLCONV __stdcall

    Reminder for the UBS state changes
    empty typedef (__stdcall TStatusCallback) (State CNC_STATUS);

    Reminder of the changes in the status of the drive
    (typedef) empty (__stdcall TDataCallback)
    Code CNC_CODE, //status
    unsigned char bufferFree //amount of free buffers - don't start a new order if it is less than 4
    int numExecuting, number of running command
    keysLimit unsigned char, unsigned char keysJog, //state of the limit and jog buttons
    Put int, int posC, int POSD, int posB //position of the four axes in steps
    unsigned char output);                    Exit status of the controller (flood, mist, axis)

    extern "C" CNC_ERROR CALLCONV (BSTR * result);
    HID
    extern "C" CNC_ERROR CALLCONV HidInitialize();
    extern "C" CNC_ERROR CALLCONV HidFinalize();
    extern "C" BOOL CheckHidInitialized() CALLCONV;
    extern "C" CNC_ERROR CALLCONV GetHidDeviceList(BSTR* deviceList);
    extern "C" CNC_ERROR CALLCONV GetHidDeviceInfo(int vid, int pid, BSTR* vendorName, BSTR* productName, BSTR* serialNumber);
    extern "C" CNC_ERROR CALLCONV GetHidDeviceInfoByName(BSTR device, BSTR* vendorName, BSTR* productName, BSTR* serialNumber);

    Controller of
    extern "C" CNC_ERROR CALLCONV Connect();
    extern "C" CNC_ERROR CALLCONV Disconnect();
    extern "C" BOOL CALLCONV IsConnected();
    extern "C" CNC_ERROR CALLCONV GetDeviceInfoEx(BSTR* vendorName, BSTR* productName,)
    BOOL * crafts, int * serialNumber.
    unsigned char * ver_year, unsigned char * ver_month, unsigned char * ver_day);
    extern "C" CNC_ERROR CALLCONV GetDeviceInfo(BSTR* vendorName, BSTR* productName, BOOL* diy);
    extern "C" CNC_ERROR CALLCONV RegisterStatusCallback(TStatusCallback *statusCallback);
    extern "C" CNC_ERROR CALLCONV RegisterDataCallback(TDataCallback *dataCallback);

    extern "C" CNC_ERROR CALLCONV GetState)
    CNC_CODE * code,.
    char * bufferFree,.
    int * numExecuting,.
    char * keysLimit, char * keysJog,
    int * posA, int * posB, int * posC, int * POSD.
    char * output);
    extern "C" CNC_ERROR CALLCONV SetDeviceParams)
    int axis1StepsPerMM, int axis2StepsPerMM, int axis3StepsPerMM, int axis4StepsPerMM,
    unsigned char axisLimitSwitch,
    Double axis1Backlash, double axis2Backlash, double axis3Backlash, double axis4Backlash.
    Double axis1Accel, double axis2Accel, double axis3Accel, double axis4Accel.
    (double axis1InitSpeed, double axis2InitSpeed, double axis3InitSpeed, double axis4InitSpeed);

    extern "C" CNC_ERROR CALLCONV CmdInfo(int* num);
    extern "C" CNC_ERROR CALLCONV CmdWrite(int* num);
    extern "C" CNC_ERROR CALLCONV CmdMoveAxes(int* num, double posA, double posB, double posC, double posD, double speed, BOOL startAccel, BOOL endAccel);
    extern "C" CNC_ERROR CALLCONV CmdMoveAxesDelta(int* num, double posDeltaA, double posDeltaB, double posDeltaC, double posDeltaD, double speed, BOOL startAccel, BOOL endAccel);
    extern "C" CNC_ERROR CALLCONV CmdPos(int* num, double posA, double posB, double posC, double posD);
    extern "C" CNC_ERROR CALLCONV CmdDwell(int* num, double seconds);
    extern "C" CNC_ERROR CALLCONV CmdEStop(int* num);
    extern "C" CNC_ERROR CALLCONV CmdStop(int* num);
    extern "C" CNC_ERROR CALLCONV CmdPause(int* num);
    extern "C" CNC_ERROR CALLCONV CmdPauseNow(int* num);
    extern "C" CNC_ERROR CALLCONV CmdResume(int* num);
    extern "C" CNC_ERROR CALLCONV CmdResumeNow(int* num);
    extern "C" CNC_ERROR CALLCONV CmdOut(int* num, unsigned char output);
    extern "C" CNC_ERROR CALLCONV CmdOutNow(int* num, unsigned char output);
    extern "C" CNC_ERROR CALLCONV CmdSpindle(int* num, CNC_SPINDLE direction, double speed);
    extern "C" CNC_ERROR CALLCONV CmdSpindleNow(int* num, CNC_SPINDLE direction, double speed);
    extern "C" CNC_ERROR CALLCONV CmdCoolant(int* num, CNC_COOLANT flood, CNC_COOLANT mist);
    extern "C" CNC_ERROR CALLCONV CmdCoolantNow(int* num, CNC_COOLANT flood, CNC_COOLANT mist);
    extern "C" CNC_ERROR CALLCONV CmdNothing(int* num);

    Hello

    Rather than edit the .h file, it is easier to use the dll call function to define exactly what are the arguments, and return the function.

    Thanks for your replies.

    M.

  • Get the DLL string (memory allocated for DLL)

    Hi, I'm aware there are a lot of discussions around this topic, but there are a lot of variations and I've never used before LabVIEW, and I seem to have a hard time at a very basic level, so I hope someone can help me with the below simple specific test case to put me on the right track before I pull my hair remaining.

    I've created a DLL with a single function "GenerateGreeting". When it is called, it allocates enough memory for the string "Hello World!" \0"at the pGreeting of pointer, copy this string to the pointer and sets the GreetingLength parameter to the number of allocated bytes (in the DLL in the end, I want to use, there is a DLL function to free the memory allocated for this way).

    I created a header file to go with the DLL containing the following line.

    extern __declspec(dllimport) int __stdcall GenerateGreeting(char* &pGreeting, int &GreetingLength);
    

    I then imported the LabVIEW file using the import Shared Library Wizard. That created a "generate Greeting.vi' and everything seems somewhat sensitive for me (although this does not mean a lot right now). When I run the vi, the ' GreetingLength on ' display correctly '13', the length of the string, but "pGreeting out" shows only three or four characters (which vary in each race), place of the string that is expected of junk.

    The pGreeting parameter is set to the 'String' type, the string "String pointer C" format, size currently Minimum of 4095. I think the problem is that the DLL wants to allocate memory for pGreeting; the caller is supposed to pass a unallocated pointer and let the DLL allocates memory for the string the right amount, but LabVIEW expected the DLL to write in its buffer préallouée. How to with LabVIEW? Most of the functions in the DLL in the end, I want to use work this way, so I hope that's possible. Or I have to rewrite all my DLL functions to use buffers allocated by the appellant?

    The vi , header and the DLL are atteched, tips appreciated. Edit - cannot attach the dll or the headers.

    tony_si wrote:

    extern __declspec(dllimport) int __stdcall GenerateGreeting(char* &pGreeting, int &GreetingLength);
    

    Although char * & pGreeting is actually a thing of C++ (no C compiler I know would accept it) and this basically means that the char pointer is passed as a reference. So, technically, it's a double referenced pointer, however nothing in C++ Specifies that reference parameters should be implemented as a pointer at the hardware level. So free to decide to use some other possible MECHANISM that takes the target CPU architecture support a C compiler constructor. However, for the C++ compilers, I know it's really just syntactic sugar and is implemented internally as a pointer.

    LabVIEW has no type of data that allows to configure this directly. You will have to configure it as a whole size pointer passed as a pointer value and then use a call MoveBlock() or the support VI GetValuePtr() to copy the data on the pointer in a string of LabVIEW.

    AND: You need to know how the DLL allocates the pointer so that you can deallocate it correctly after each call to this function. Otherwise you probably create a leak memory, since you say that the first 4 bytes in the returned buffer always change, this feature seems to assign to each run of a new buffer that you want to deallocate correctly. Unless the DLL uses a Windows such as HeapAlloc() API function for this, it should also export a function according to deallocate the buffer. Functions like malloc() and free() from the C runtime cannot always be applied in the same version between the caller and callee, so that calling free() by calling on a buffer that has been allocated with malloc() in the DLL may not work on the same segment of memory and result in undefined behavior.

  • Insert the .dll file Ocean Optics Jaz

    Hello

    I want to use the package of spam (Ocean Optics) in Labview 2009. But I have no idea how use the .dll file in Labview. I already found tools > import > shared library.

    Insert the SPAM32. DLL file. But in the same menu, you must also insert a header file. But where can I found it? Or I do something wrong?

    Could someone help me with this?

    Stephan

    Finally I found the answer

  • Problem setting up base appeal of the DLL (win32 API?) for the control of coherent laser Verdi-G

    I'm trying to set up a call to the DLL to control a coherent laser Verdi-G.

    I can't know the right way to set up calls. In the attached Demo.cpp, there is a function "RunTests". It's kinda my final goal. Functions send some commands to query the device. I'm going to need to send commands like this (along with several others, some of which take arguments... but I think I can understand that on mine)

    My problem is getting started. I can't even talk about the device. I tried a few different ways to set up the call to the DLL, but they have always will plant the computer. I don't know if I am missing a few parts such as the initialization of a method to speak via USB or other parts.

    I added my own .vi tries as well as some of the .c, the .cpp & the .h files associated provided with laser control software. I may have missed the relevant records; I'm happy to add them if someone sees a necessary file / referenced.

    Any help would be appreciated.

    Thanks for your time!

    Turns out I missed the included .vi which belongs to install them the package. I was looking directly on their CD.

    I would mark this closed if I saw a button for this?

  • Dial 1172 error, a run-time error of a VI in the second time in the DLL

    Hi all

    I am a beginner in labVIEW.

    I have to write a test program in labVIEW that uses a DLL created by another programmer.

    I called the DLL of my labVIEW for control of DIOs, a serial port, communicate with a slave device, a flashing task.

    During the test program, I found that the program is OK if I use it just once, however, if I want to execute coninuously using one-loop While, it failed with

    Error 1172.

    As far as I could understand, it seems that the DLL creates a log file in C:\ so that he was called for the first time, and the process does not take control of this logfile even after the closure of the DLL.

    Then when the DLL is called for the second time, it looks for the same log file to write new info, but as he was taken control by the previous process, there is an error.

    Please find the attached files.

    Hope there will be someone who can help me to point out my mistakes in my vi or suggest me a solution for this.

    Thank you and best regards

    Aung

    (Because the system does not accept the attachment of the DLL, I changed the extension to .pdf for the DLL file)

    This is the DLL file (I have lack of attachment in the post)

  • Strange corrupted data in the transition to the DLL

    I'm working on an application that needs to communicate with a set of instrument drivers in a DLL.  Mostly it works very well, and I can transfer data backwards between LabVIEW and the DLL without any problem except for a very frustrating bug.  I created a small test DLL, with only the features of 'Set' and 'Get' and another function to print a report of the values within the DLL.  This library (with source code) and a set of screws similar to ones I use in the main application are attached.

    The device settings are stored in the DLL in a series of structures of C, for which I made corresponding clusters in LabVIEW.  Using the 'MoveBlock' function to transmit data to and from the DLL by reference, most of the clusters/structures transfer perfectly.  A same contains strings (arrays of char in c) which are complicated to deal with, but it works very well.

    Unfortunately, there is a single cluster ("General settings" in the attached screws) that contains a set of 13 digital items, mainly the type integer, with two double rooms at the end ("Acq. "delay" and "Hold after").  All integer types successfully transfer to the DLL, but double rooms are corrupt, usually appearing as a gibberish as #. # 315 e. When you use the Visual Studio debugger and setting breakpoints to check the values inside the DLL, they appear generally as denormalized (#DEN).  The corrupted values change when the entries of LabVIEW are changed - sometimes even the two values in the DLL change when only a single entry is adjusted.  In addition, when the data is passed to LabVIEW the correct values are retrieved, so it seems that the binary representation must be preserved in the transfer, even if it is somehow misinterpreted in the DLL.  Even more curious is that another cluster in the application ("Presets") contains also full and double types these values are all successfully transferred to the DLL, so it doesn't seem to be anything special about the double.

    I tried on two different computers (Win7, a 32-bit and 64-bit) and see exactly the same thing - same corrupted values are the same. If anyone has experience with something like this, or can offer suggestions, I'll be very grateful, because I am pulling my hair out over this.  I'm sorry the joint screws are so complicated - I wanted to keep as much structure as possible from the actual application.  The main 'TestLIB_SetAndGet.vi' VI sets all the values in the DLL, writes a text file with some of them of in the DLL and then copies the data to LabVIEW.  As mentioned above, the relevant parameters are "Acq. delay "and" Hold after ' cluster 'General Settings'. " Their values appear in the report on the 4-5 lines.  Also note that the double 'Preset event' and 'Preset time' in the 'presets' cluster are transferred correctly, appear on lines 17 and 16 of the report.

    Thanks in advance for your suggestions!

    It seems that troubled alignment.

    Read this Article: http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/how_labview_stores_data_in_memory/ (especially the section on clusters)

    Try adding #pragma pack (1) before the struct declarations

    Andrey.

  • Sinc filter using the DLL implementation

    Dear all,

    I'm trying to implement a sinc filter to a data flow that I receive from card FPGA. The C code is already working and now I'm trying to do is to implement the same algo on LabVIEW or make DLL and use it and I'm doing the later approach (don't know which one is better, any ideas?). I use this tutorial and it works very well for me in the case of the same example IE multiplication please see the VI attached.

    I'm getting streams of raw data in the .csv file, and then I like to read this file. So what I have to do is apply a sinc filter so that every 32 points in this data set will be 1 sample for my position. I enclose you an example of a .csv file for data, a txt file of code C (for just to give you an idea of 3rd order) who work already, my dll and VI.

    More specifically I have problems about the selection of parameters for the DLL for example what should I choose in the settings of the DLL LabVIEW function that corresponds to "unsigned char * data" as well as for others, as written in the C code. If someone can provide me with some VI he created to implement the sinc function or some ideas it would be also great.
    Any help or advice you guys will be highly appreciated.

    Kind regards

    Kuhn

    There are a lot of discrepancies between what you do in your VI and that your text file watch is C code.

    (1) the order of the parameters is VERY different.

    (2) you are using int64 in the LabVIEW diagram, but int in C code. Under 32-bit Windows and 64-bit (and also Linux), an int type is ALWAYS a 32-bit value.

    (3) read you in a table 1 d of channels and proceed to the node library call as native data. This requires a handful of LabVIEW LabVIEW handles string table. Expect a VERY big difference to byte array pointer in C code.

    You convert the strings in a byte, and then configure the node library call to pass it as an array of integers not signed 8-bit, passed as a pointer of table data.

Maybe you are looking for