Help me:Calling C dll to get cluster data

I have read the .d7d data files with the DWDataReaderLib.dll in labview,i can get the data and time_stamp through allocate memory (data and time_stamp)  then call DWGetScaledSamples ,but when i want to allocate the DWChannel structures then call DWGetC​hannelList to get channel list properties,it will fail .In fact,now i don't konw how to get channel list .In my program,i have allocate the DWChannel structures ,but it doesn't export the data ,and when i wire the array of channel list,the labview will destroy.thanks
Attachments:
read DWdata.zip ‏870 KB

You can't do this in the way as in your example. Your DWEvent and DWChannel structures both contain fixed sized string elements. This means they are inlined in the structure. The only way in LabVIEW to create a compatible structure is to create an embedded cluster with the according number of byte elements. So your DWEvent cluster should be really a LabVIEW cluster which contains  an int32 event_type, a 64bit float, and then another cluster containing 200 unsigned 8bit integers. The same rule will accordingly apply to DWChannels.
On return you can then use ClusterToArray and then ByteArrayToString to convert these bytes into a string. You should clip the array to the first 0 byte before converting to a string, otherwise you will always get strings that contain 200 characters, with random characters after the first 0 byte character in the returned data.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Help me :calling c dll for get cluster data

    I have read the .d7d data files with the DWDataReaderLib.dll in labview,i can get the data and time_stamp through allocate memory (data and time_stamp) then call DWGetScaledSamples ,but when i want to allocate the DWChannel structures then call DWGetChannelList to get channel list properties,it will fail .In fact,now i don't konw how to get channel list .In my program,i have allocate the DWChannel structures ,but it doesn't export the data ,and when i wire the array of channel list,the labview will destroy.thanks
    Attachments:
    read DWdata.zip ‏870 KB

    duplicated post: http://forums.ni.com/t5/LabVIEW/Help-me-Calling-C-dll-to-get-cluster-data/td-p/1556722

  • How to call VC++ dll whiich return char[] data type value in powerbuilder

    Hi Everyone,
    I am using PowerBuilder 11.1 build 8123.
    I am calling VC++ DLL in our PowerBuilder application which return char[] data type value.
    I just declare Global External Function:-
         Function  char getOSSectionName() library "DocServClient.dll" alias for "getOSSectionName;Ansi"
    And then call this function in window as:-
         Char      ls_section[1] = 'DOCAPPLICATIONS9X'
         ls_section[1]=getOSSectionName()
    When I check ls_section[1] value in messagebox it display a symbol (please check attached attached image.)
    VC++ function and return variable declaration:-
         __declspec(dllexport) char *  __stdcall getOSSectionName()
           char    SectionName[_MAX_PATH];
    Please let me know that my code is valid or not.
    Please help..

    Hi,
    Thanks to Everyone for your suggestions.
    I am solved my problem to change VC++ function as :-
         Int __declspec(dllexport)  __stdcall getOSSectionName(char* SectionName)
                        instead of
         __declspec(dllexport) char *  __stdcall getOSSectionName()
    and declare global function as:-
           Function int getOSSectionName(Ref char ls_section[100]) library "DocServClient.dll" alias for "getOSSectionName;Ansi"
    and call function in window as:-
         int li_ret
         char ls_section[100]
         string ls_sec
         li_ret=getOSSectionName(REF ls_section)
         ls_sec=ls_section
    Thanks,
    Vikrant

  • How Can we get the data from Non-SAP to SAP in WebDynpro

    Hi,
    I hope u understand my query, How can we get the data from Non-SAP to SAP thru WebDynpro Programming.
    Help out with the steps for getting the data or procedure.
    Regards,
    Mutyapu

    You can expose the APIs in the Non-SAP backend as Web Services, and consume them in SAP by creating an Enterprise Proxy. Then these can be called just like normal class methods from Web Dynpro.
    Regards,
    Nithya

  • Get Delivery date(EKET-EINDT) in MM Pricing routine(group condition)

    Hi All,
    I have created an MM pricing routine RV65A092 in VOFM. So when creating PO(ME21n), this routine will trigger..
    Now the problem is I need EKET-EINDT for grouping condition. It was mentioned to call program SAPLMEPO and get EKET data.
    Please help me how to get delivery date in that routine  which is filled in Item level during PO creation
    Thanks
    Ram

    Hi Ram,
    For SD you have the SAP Note 531835 - Using field PSTYV in the condition access. For MM is simmilar, although you must use the enahncements. Instead use the userexits that note says, use the enhancement LMEKO001 (EXIT_SAPLMEKO_001) to populate fields ZZ in KOMK and LMEKO002 to populate KOMP.
    I hope this helps you
    Regards
    Eduardo

  • Calling a dll from a new menu item in Bridge.  Idiot help needed

    Hi,
    I'm trying to what I believe is a fairly simple script.  I'm coming from a hobbiest Delphi background, and to be honest I'm finding JavaScript a little bit hard to understand.  My requirements are simple - add a new menu item to Bridge which executes a call to a custom dll.  Note I'm not expecting the dll to return anything here.. 
    Looking at the samples provided even I can add the menu item - but getting it to successfully call the dll is a bit of a mystery. 
    The script compiles and adds the menu item, however the menu action doesn't call the dll.  I believe it should be a fairly simple task and was hoping somebody here could steer me right.  Here's my code (as you'll see a clear cut and paste job from the examples ;o)
    Header 1
    function SnpAddMenuItem()
      this.requiredContext = "\tAdobe Bridge must be running.\n\tExecute against Bridge CS6 as the target.\n";
      this.menuID = "snpmyMenu";
      this.menuCommandID1 = "snpAddMenuItemSub1";
      $.level = 1; // Debugging level
    SnpAddMenuItem.prototype.run = function()
      var retval = true;
      if(!this.canRun()) {
      retval = false;
      return retval;
      // Create the menu element
      var newMenu = new MenuElement( "menu", "myMenu", "before Help", this.menuID );
      // Create the menu item
      var alertCommand1 = new MenuElement( "command", "Load Stuff", "at the end of " + this.menuID, this.menuCommandID1);
      alertCommand1.onSelect = function (m1)
            ExternalObject.myDll = new ExternalObject('lib:/C/temp/apmDLL.dll');
            myDll.sendtoACRPM(1);
    //      return retval;
    SnpAddMenuItem.prototype.canRun = function()
      // Must run in Bridge
      if(BridgeTalk.appName == "bridge") {
      // Stop the menu element from being added again if the snippet has already run
      if((MenuElement.find(this.menuID)) && (MenuElement.find(this.menuCommandID)))
    // $.writeln("Error:Menu element already exists!\nRestart Bridge to run this snippet again.");
    // return false;
                MenuElement.remove(this.menuID);
      return true;
      $.writeln("ERROR:: Cannot run SnpAddMenuItem");
      $.writeln(this.requiredContext);
      return false;
    if(typeof(SnpAddMenuItem_unitTest ) == "undefined") {
      new SnpAddMenuItem().run();

    The dll needs to be compatable with the criteria set in the JavaScript Tools Guide. There is an example in the Bridge SDK that can be downloaded from http://www.adobe.com/devnet/bridge.html
    But it need someone who is knowledgeable with c++
    It would be great if someone could write a wrapper to access other external objects.

  • Need adobe ID reset, what contact number do I call? Am struggling getting help.

    Need adobe ID reset, what contact number do I call? Am struggling getting help.

    Call Adobe Customer Support.  But I think they are only operating during US daytime; try chat instead.

  • HELP!!!  Can't get calls or texts or face time on my iphone 4!!

    It started 2 days ago. I cant receive any texts or calls. I can make calls but no one gets my texts. Also, I just tried turning on face time and it just keeps saying "waiting for authorization." I've tried everything on the apple tech support page and still nothing! I don't want to go into a apple store if I don't have to, I'm pretty tight financially right now so if I don't have to spend money to get this fixed I'd be extremely great full!!

    Have you tried speaking to AT&T? There could be a problem with your mobile account.

  • File not found when trying to call a dll on LabVIEW Real Time machine

    I have a dll called "DLLRTTEST" that I've written, and have succesfully called on my host machine.  I'm now attempting to call this dll from a vi that is located on my real time computer.  Currently I get an "Error 7 occurred at Call Library Function Node in DLLRTTEST.vi." message upon execution
    In the attached screenshot I'm trying to ensure that the vi I'm running is in fact located on the real time system.  I then use a "Check if File or Folder Exists.vi" to confirm that the dll that I'm about to call does exist on the real time system as well.  However, I still receive an "error 7 file not found" error from the Call Library Function Node.
    Any help is appreciated.
    Solved!
    Go to Solution.
    Attachments:
    DLL_Call_Screenshot.png ‏61 KB
    DLL_Call_Screenshot.png ‏61 KB

    As nathand already mentioned, depending on your C toolchain your DLL will depend on other DLLs. Usually the according msvcrtXX.dll that matches your Visual C version, if you use Visual C, other runtime DLLs if you use a different C environment. These runtime DLLs are even necessary if you do not call anything in any of your functions, since the DLL makes various initialization steps when it gets loaded and that references some C runtime functions nevertheless. Compiling and linking the DLL with static C runtime is usually also not a clean solution since the linked in C runtime will then reference Windows APIs that are not available on LabVIEW RT.
    Depending on your version of LabVIEW RT you will have some mscvrtxx.dll files in your system directory but it will be an older one than from the latest Visual Studio version. If you can compile your DLL with that Visual Studio version then you should be fine, but could possibly run into new problems if you later upgrade to a newer LabVIEW RT version. Installing the C runtime distributables from newer Visual Studio versions is unfortunately also not a solution, since it references many (undocumented) Windows API functions that are not available in LabVIEW RT.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Security exception when trying to call a DLL from an applet

    Hi all,
    I really hope someone out there can help me. I'm trying to call a windows DLL from an applet but always get some error when the call to the DLL comes. If I run it on the command line (calling a dummy main function that only calls the dll) I don't get any error. However, with the -Djava.security.manager, I get an ExceptionInitialiserError. When running it in a browser, I seem to get any of three errors, the above, securityAccessControlException (as I was expecting) and even NoClassDefFoundError.
    I realise of course that this has to do with the permissions in effect but nothing seems to happen when I change the policy file, so I have to feeling that I'm chaning the wrong file. The one I'm using is the one the JRE entry in the registry is pointing to, Java Runtime Environment->CurrentVersion...
    I even tried giving everything in the applet's directory AllPermission.
    So what I'm wondering is this. Is there any way to check if your policies are actually working and when you update the files, what do you need to do to make the changes take effect?
    Best regards,
    G�sli

    I have the same problem. Have you solved your problem, if so please let me know what the solution is.
    Einar �rn

  • Array limitation when calling VB Dll?

    Today I encountered a problem when calling a Visual Basic DLL in Labview 8.2.1
    I had to pass a 3D Array, with one dimension exceeding 30 000. around that array size I ended up with error -2146828282 when calling the Dll.
    The dll was working fine for weeks. So, is there any limition to the array size, which could cause the error?

    Hi sthu,
    Having 30,000 elements in one dimension of an array should not cause any problems by itself.  The maximum number of elements per dimension in an array is (2^31) – 1 as described in the LabVIEW Help for Grouping Data with Arrays and Clusters.  However, this is also dependent upon the memory available in your computer.  If there is not enough memory available in RAM, you might receive an error when passing the array to the DLL.
    I have included a couple links to pages that discuss LabVIEW memory usage and managing large data sets in LabVIEW.  These might help get your application up and running with the larger array sizes.
    VI Memory Usage
    Managing Large Data Sets in LabVIEW
    Donovan

  • Call a dll with an activeX component gives error

    Hello all,
    My program consist of:
    - Main program
    - DLL's
    How it works:
    The main program is the interface for the user, this main program call's several dll's
    The problem:
    The main program runs withought problems, but when it call's a dll, which also call's an activeX component, I get an error.
    I then made a executable from the dll which then works ok, no problem.
    When I click the retry it runs ok, but when I call it again I get the message again.
    The message does allways accur, but still very often
    Conclusion:
    The error message only comes when I call it as a dll, when the dll is standalone executable no problems occur.
    Below you can see how I call the dll:
    Can someone please help me with this problem?
    greetz,
    Bart

    Hello Bas,
    I have included the vi which calls de dll(executedll.vi) en the dll in VI form(plugin.vi & plugin.lvproj).
    As you can see the dll calls the canconfigurator activex component.
    And closes the activex component when done.
    This plugin will be called several times in the test enviroment.
    gr,
    Message Edited by darkxceed on 02-12-2010 04:33 AM
    Message Edited by darkxceed on 02-12-2010 04:33 AM
    Attachments:
    ExecuteDLL.vi ‏12 KB
    plugin.lvproj ‏8 KB
    plugin.vi ‏31 KB

  • Calling LV DLL from VB

    I have a vi that initializes, measures, and releases
    an OSA instrument. I want to call this routine from VB.
    I used Standard calling convention when making DLL from LV.
    Here is my VB declaration:
    Private Declare Sub OSAMeasurement Lib "C:\ADE\OSAMeasurement.dll" Alias "OSADFBMeasurement" _
    (ByVal GPIB As Long, _
    ByVal Serial_Number As String, _
    ByVal FileName As String, _
    ByVal File_Path As String, _
    ByVal Start_Wavelength_nm As Double, _
    ByVal Stop_Wavelength_nm As Double, _
    ByVal Level_Scale_dB As Double, _
    ByVal Res_nm As Double, _
    ByVal Peak_Wavelength As Double, _
    ByVal Peak_Level As Double, _
    ByVal SMSR As Double, _
    ByVal FWHM As Double, _
    ByVal Mode_Offset As Double, _
    ByRef Level_Array() As Double, _
    ByRef Wa
    velength_Array() As Double, _
    ByVal Array_Length As Long)
    Here is my VB call:
    Call OSAMeasurement(Form1.OSA.PrimaryAddress, _
    (strOXM & Form1!txtOPMNumber), _
    (CStr(CInt(dblSetVoltage)) & "v_Scan.txt"), _
    (txtDataStoragePath & strOXM & " " & Form1!txtOPMNumber & "\"), _
    1520, 1620, 5, 1, Peak_Wavelength, Peak_Level, _
    SMSR, FWHM, Mode_Offset, _
    Level_Array, Wavelength_Array, 1001)
    I get RunTime Error "49"
    Bad DLL calling convention
    What is wrong?
    Any suggestions/comments?
    Attachments:
    OSA.zip ‏703 KB

    Basically what i want to do is to call the microchip's dll called "mpusbapi.dll" from VB6. This dll is written in C++. This dll has some basic functions of usb like MPUSBRead() , MPUSBWrite , MPUSBOpen() etc.
    I have made a usb data acquisition card and i want to communicate with this card by means of VB 6. Please tell me or send a tutorial of calling a DLL from VB 6.
    Any help greatly appreciated
    Attachments:
    _mpusbapi.cpp ‏42 KB
    _mpusbapi.h ‏19 KB

  • Does a developed DLL automatically get linked?

    Hi guys,
    Okay, I created my own DLL for use in a "Call Library Function" vi. This DLL was developed using Visual C and it's coded in C. When I use the DLL in my vi everything works fine. However, when I try to run my vi on another computer, an error comes up during loading that says "cannot find Secondary DLL".
    My question is: does LabVIEW or Visual C automatically link the created DLL to another DLL? I know it can't be like an OBJ file because I deleted files associated with the developed DLL. So I'm guessing it's a Visual C DLL, a LabVIEW DLL, or simply a Windows DLL. Can anyone help? Thanks.
    -Mike

    Hi Vargas,
             I have a similar type of problem. I have used a dll in one of my LabVIEW 7.1 vis. Now when I open the same vi in LabVIEW 8.2, the dll is getting linked correctly but it is still reporting an invalid method error. Only after I select the 'Select Method' from the right click menu and press OK, it is getting linked correctly. I couldnt save it to LabVIEW8.2 as I need them in both. What could be the problem here?
    Thanks,
    Vasanth.
    Ya Ya

  • Error 1073 when building LabVIEW app which calls LabVIEW dll

    I am trying to use application builder to build an application that calls a dll created in LabVIEW. I get an error referencing a vi within the dll (Parse Stored String(multibyte).vi) saying that "This property is writable or this method is available only when the VI is in edit mode." The only option is to Continue which cancels the build. I had sucessfully built this application prior to including vis that call the dll and the program runs fine in the development environment.
    Do you have any idea what is causing this and what I cam do about it?

    I have found a temporary workaround in which I created a dummy dll that removed all functionality from exported vis but had the same name and function signatures. I then built the application using this dummy dll. Once complete, I replaced the dummy dll with the real dll.
    This is not a satisfactory work around because we have to build and maintain two dlls. Also, I'm not sure we can do the same trick when creating the installer with application builder. So, I'd still appreciate any help you can give.

Maybe you are looking for

  • App-pb

    we are run the automatic payment programme, here 10 invoices(1,2,3,4,5,6,7,8,9,10) now here only 1, and 10 wants to  pay other is want block, how can is possible? where we can do the customization for this settings?( remaing is the block is o.k i.e 2

  • BPAV files not picked up by XDCAM transfer

    Okay this is a strange one - I shall describe the steps as they happened. Hopefully somebody can help me. - Edited a vid sequence in FCP. - Tried to import more footage from XDCAM Transfer into FCP but got hard disk full notice. - I moved the source

  • IWeb not recognizing podcast exported from Garage band

    I've been sending my podcasts to iWeb for over a year. I used to host my site on MobileMe but switched to a WordPress site through GoDaddy last year. Regardless, I've always continued to send my podcast to the old iWeb site and pinged iTunes from the

  • Opening dock folders in finder

    I prefer the Tiger dock feature by which if I click on a folder in the dock it immediately opens it in a finder window. In Leopard (which I have just installed) I am required to go through a dialogue before I can do so. Is there anyway of reverting t

  • Corrupt FireFox x64 zip file /firefox/nightly/2014-12-02-03-02-01-mozilla-central/firefox-37.0a1.en-US.win64-x86_64.zip

    After the download of the file "/firefox/nightly/2014-12-02-03-02-01-mozilla-central/firefox-37.0a1.en-US.win64-x86_64.zip" (and also the others like "/firefox/nightly/2014-12-02-03-02-01-mozilla-central/firefox-36.0a1.en-US.win64-x86_64.zip" from th