Pass a "pointer type" into DLL

Hi! I am planning to do this thing:
  A. Create an array
  B. Pass its pointer into a sub-VI
  C. In this sub-VI, use this pointer in a function of a DLL library
  D. The function of the DLL library will write something into place defined by the pointer
My aim is to read back the result by viewing that array at step A.
My question is..
1. how to pass a pointer via VIs? Use Call be reference node in the mother VI, what about the daughter VI then?
2. if I am passing a pointer into the DLL, should I choose "value" or "pointer to value" in the call library node?
Raymond

duplicate post, continue here!
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome

Similar Messages

  • Error passing in RECORD type into API

    Gurus,
    Getting the following error when I try and pass a RECORD type into an API. Am I passing it in properly?
    Any help is appreciated.
    Thanks,
    -Scott
    Here's my error:
    fnd_descr_flex_col_usage_pkg.load_row
    ERROR at line 21:
    ORA-06550: line 21, column 4:
    PLS-00306: wrong number or types of arguments in call to 'LOAD_ROW'
    ORA-06550: line 21, column 4:
    PL/SQL: Statement ignored
    Here's my anon block:
    declare
    TYPE who_type IS RECORD
    created_by NUMBER,
    creation_date DATE,
    last_updated_by NUMBER,
    last_update_date DATE,
    last_update_login NUMBER
    v_who_type who_type;
    v_sysdate date;
    begin
    select sysdate
    into v_sysdate
    from dual;
    v_who_type.created_by := 0;
    v_who_type.creation_date := v_sysdate;
    v_who_type.last_updated_by := 0;
    v_who_type.last_update_date := v_sysdate;
    v_who_type.last_update_login := 0;
    fnd_descr_flex_col_usage_pkg.load_row
    (x_application_short_name => 'SPL',
    x_descriptive_flexfield_name => 'HR_LOCATIONS' ,
    x_descriptive_flex_context_cod => '441',
    x_application_column_name => 'ATTRIBUTE5',
    x_who                          =>  v_who_type,
    x_end_user_column_name => 'District',
    x_column_seq_num => 10,
    x_enabled_flag => 'Y',
    x_required_flag => 'N',
    x_security_enabled_flag => 'N',
    x_display_flag => 'Y',
    x_display_size => 50,
    x_maximum_description_len => 50,
    x_concatenation_description_le => 25,
    x_flex_value_set_name => '50 Characters',
    x_range_code => '',
    x_default_type => '',
    x_default_value => '',
    x_runtime_property_function => '',
    x_srw_param => '',
    x_form_left_prompt => 'District',
    x_form_above_prompt => 'District',
    x_description => '');
    ...

    I followed Tubby's advice and called the package to which the RECORD type was defined, however, I'm getting a "no data found" error in the called package. The purpose of "internally" definining the record type inside my Anon block was so that I could assign variables locally.
    Help from you gurus would be greatly appreciated!
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at "APPS.FND_DESCR_FLEX_COL_USAGE_PKG", line 508
    ORA-06512: at line 21
    Please do not refer me to any more EBS forums or links.  This is a coding question, not an EBS question.
    For the guy who asked, here is the procedure definition:
    PROCEDURE load_row
    (x_application_short_name IN VARCHAR2,
    x_descriptive_flexfield_name IN VARCHAR2,
    x_descriptive_flex_context_cod IN VARCHAR2,
    x_application_column_name IN VARCHAR2,
    x_who IN fnd_flex_loader_apis.who_type,
    x_end_user_column_name IN VARCHAR2,
    x_column_seq_num IN NUMBER,
    x_enabled_flag IN VARCHAR2,
    x_required_flag IN VARCHAR2,
    x_security_enabled_flag IN VARCHAR2,
    x_display_flag IN VARCHAR2,
    x_display_size IN NUMBER,
    x_maximum_description_len IN NUMBER,
    x_concatenation_description_le IN NUMBER,
    x_flex_value_set_name IN VARCHAR2,
    x_range_code IN VARCHAR2,
    x_default_type IN VARCHAR2,
    x_default_value IN VARCHAR2,
    x_runtime_property_function IN VARCHAR2,
    x_srw_param IN VARCHAR2,
    x_form_left_prompt IN VARCHAR2,
    x_form_above_prompt IN VARCHAR2,
    x_description IN VARCHAR2)

  • Pass TestStand error type directly into function parameter

    Hi,
    I am using TestStand 4 and Labwindows CVI 8.5.
    I wonder if it is possible to pass Standard Step error type into CVI function parameters.
    I think it would be more simple to pass one parameter instead of passing Error code, Error occurred state and Error message into function prototype.
    I tried to use tsErrorDataType struct defined into tsutil.h into my function prototype.
    In TestStand, I pass Step error type into function parameter but it does not work.
    TestStand displays an error meaning parameters does not match function prototype.
    Thank you for your help.

    Hi Tartempion,
    In order to pass the TestStand Error Container as one parameter to a function in a CVI DLL, you must use a struct that is typedef'ed and create an .fp file that is included as a type library for the DLL. When you create a .fp file to add to a DLL, the DLL will not build unless all structs/enums are typedef'ed. Thus, I wouldn't advise using the tsutil.h because you would have to go through and typedef every single struct and enum in the header file.
    Instead, you can simply create a typedef'ed struct in your projects header file and create an .fp file with the struct specified as a data type. Then in TestStand, when you call the function you would need to ensure that the parameter is of Category "C Struct", and type "Error". The attached zip file contains a CVI 8.5 project that demonstrates this along with a TestStand 4.0 sequence file that demonstrates how to pass the parameter to the function by reference. In case you run into trouble creating the .fp file please refer to the following KnowledgeBase. The instructions are for enums but easily correspond to structs as well:
    TestStand and LabWindows/CVI Enumeration Data Types
    Hope this helps!
    Manooch H.
    National Instruments
    Attachments:
    PassTSError.zip ‏19 KB

  • How can I pass a file refnum into and out of external c++ code? What type does it convert to in c++?

    I am trying to write external c++ code that will read a file already opened by Labview and therefore assigned a refnum. (Unfortunately, I definately can't use the standard Labview vis.) However I am not sure what c++ type to use in order to manage the refnum.
    All help and thoughts appreciated. Thanks,
    Joanna

    You could do ALL your file handling in C or C++ (MFC CFile for
    example) and pass Microsoft file handles into and out of LabVIEW
    instead of LabVIEW file references into and out of C. This may be an
    easier way to attack the problem.
    You could create a DLL in MSVC that exports a FileOpen function, a
    FileClose function and a FileRead and/or FileWrite Function and then
    call that DLL from place to place as required in your code.
    It would help us if you would explain what kind of data you are trying
    to read or write and what the application is. Is it binary data?
    text files? Do you need some special Win32 file system feature like
    file mapped memory? I guess what I am asking is what is your
    motivation for doing file handling in C or C++?
    Douglas De Clue
    LabVIEW developer
    [email protected]
    "Rolf" wrote in message news:...
    > A LabVIEW file refnum is an internal Magic Cookie to LabVIEW and there is no
    > way to directly extract the actual information assigned to that Magic
    > Cookie.
    > However the CIN Reference Manual describes one function which allows to
    > retrieve a lower level "File" handle and at least on Windows 32 bit and
    > LabVIEW
    > from version 5 up to and including 6.1 this "File" LabVIEW datatype directly
    > maps
    > to the Win32 API "FILE" Handle.
    >
    > The function to use is
    >
    > MgErr FRefNumToFD(LVRefNum refNum, File *fdp);
    >
    > It is declared in extcode.h or one of its dependant headers and exported
    > from "labview.lib"
    > all located in the cintools directory and you can link this lib also to a
    > normal DLL project.
    > However calling this DLL then from any other process than LabVIEW or a
    > LabVIEW
    > executable will not initialize the DLL anymore correctly.
    >
    > Your best option if you need to write in C(++) should be to use the LabVIEW
    > file manager
    > functions described on the External Code Manual (manual/lvexcode.pdf) on
    > this File handle.
    > If you need to use directly some Win32 API functions with it please note
    > that although currently
    > the "File" in the LabVIEW file manager functions matches the FILE in Windows
    > 32 bit API
    > functions this is an undocumented and hence unsupported feature. The next
    > LabVIEW version
    > may actually use a different datatype for its "File" parameter to the
    > LabVIEW file manager calls
    > and your use of assuming File == FILE may simply crash.
    >
    > Also operating on a file refnum in LabVIEW which has been accessed directly
    > with Win API
    > functions may result in strange behaviour such as the file read/write mark
    > not being updated as
    > you would maybe expect it.
    >
    > "Jo" wrote in message
    > news:50650000000800000016520000-1023576873000@exch​ange.ni.com...
    > > How can I pass a file refnum into and out of external c++ code? What
    > > type does it convert to in c++?
    > >
    > > I am trying to write external c++ code that will read a file already
    > > opened by Labview and therefore assigned a refnum. (Unfortunately, I
    > > definately can't use the standard Labview vis.) However I am not sure
    > > what c++ type to use in order to manage the refnum.
    > > All help and thoughts appreciated. Thanks,
    > > Joanna

  • How do I create a 1d array that takes a single calculation and insert the result into the first row and then the next calculation the next time the loop passes that point and puts the results in thsecond row and so on until the loop is exited.

    The attached file is work inprogress, with some dummy data sp that I can test it out without having to connect to equipment.
    The second tab is the one that I am having the problem with. the output array from the replace element appears to be starting at the index position of 1 rather than 0 but that is ok it is still show that the new data is placed in incrementing element locations. However the main array that I am trying to build that is suppose to take each new calculation and place it in the next index(row) does not ap
    pear to be working or at least I am not getting any indication on the inidcator.
    Basically what I am attempting to do is is gather some pulses from adevice for a minute, place the results for a calculation, so that it displays then do the same again the next minute, but put these result in the next row and so on until the specifiied time has expired and the loop exits. I need to have all results displayed and keep building the array(display until, the end of the test)Eventually I will have to include a min max section that displays the min and max values calculated, but that should be easy with the min max function.Actually I thought this should have been easy but, I gues I can not see the forest through the trees. Can any one help to slear this up for me.
    Attachments:
    regulation_tester_7_loops.vi ‏244 KB

    I didn't really have time to dig in and understand your program in depth,
    but I have a few tips for you that might things a bit easier:
    - You use local variables excessively which really complicates things. Try
    not to use them and it will make your life easier.
    - If you flowchart the design (very similar to a dataflow diagram, keep in
    mind!) you want to gather data, calculate a value from that data, store the
    calculation in an array, and loop while the time is in a certain range. So
    theres really not much need for a sequence as long as you get rid of the
    local variables (sequences also complicate things)
    - You loop again if timepassed+1 is still less than some constant. Rather
    than messing with locals it seems so much easier to use a shiftregister (if
    absolutely necessary) or in this case base it upon the number of iterations
    of the loop. In this case it looks like "time passed" is the same thing as
    the number of loop iterations, but I didn't check closely. There's an i
    terminal in your whileloop to read for the number of iterations.
    - After having simplified your design by eliminating unnecessary sequence
    and local variables, you should be able to draw out the labview diagram.
    Don't try to use the "insert into array" vis since theres no need. Each
    iteration of your loop calculates a number which goes into the next position
    of the array right? Pass your result outside the loop, and enable indexing
    on the terminal so Labview automatically generates the array for you. If
    your calculation is a function of previous data, then use a shift register
    to keep previous values around.
    I wish you luck. Post again if you have any questions. Without a more
    detailed understanding of your task at hand it's kind of hard to post actual
    code suggestions for you.
    -joey
    "nelsons" wrote in message
    news:[email protected]...
    > how do I create a 1d array that takes a single calculation and insert
    > the result into the first row and then the next calculation the next
    > time the loop passes that point and puts the results in thsecond row
    > and so on until the loop is exited.
    >
    > The attached file is work inprogress, with some dummy data sp that I
    > can test it out without having to connect to equipment.
    > The second tab is the one that I am having the problem with. the
    > output array from the replace element appears to be starting at the
    > index position of 1 rather than 0 but that is ok it is still show that
    > the new data is placed in incrementing element locations. However the
    > main array that I am trying to build that is suppose to take each new
    > calculation and place it in the next index(row) does not appear to be
    > working or at least I am not getting any indication on the inidcator.
    >
    > Basically what I am attempting to do is is gather some pulses from
    > adevice for a minute, place the results for a calculation, so that it
    > displays then do the same again the next minute, but put these result
    > in the next row and so on until the specifiied time has expired and
    > the loop exits. I need to have all results displayed and keep building
    > the array(display until, the end of the test)Eventually I will have to
    > include a min max section that displays the min and max values
    > calculated, but that should be easy with the min max function.Actually
    > I thought this should have been easy but, I gues I can not see the
    > forest through the trees. Can any one help to slear this up for me.

  • Passing record type into function [error: identifier must be declared]

    Hi,
    I have a record type defined in my procedure
    type chk_tab is record(
    effect date,
    count number(9)
    type chk_typ is table of chk_tab index by binary integer;
    chk_typ_rec chk_typ;
    I have to pass the effect and count into another function, i tried doin as below:
    function name: func_chk_typ
    func_chk_typ(effect, count);
    this returns an saying "identifier effect needs to be declared"
    I am required to pass these values from the record type into the function, How can i over come this??
    Any help is very much appreciated.

    Hi Hemz,
    Find below code.
    Function Code:
    CREATE OR REPLACE FUNCTION fetch_band(eff in date,ineff in date)
    return number
    is
      lu_cb_sysid  NUMBER;
    BEGIN
    select fk_cb_sysid
    into lu_cb_sysid
    from ia_for_icon
    where cr_ans_date >= eff
    and cr_ans_date < ineff;
    RETURN lu_cb_sysid;
    END fetch_band;Procedure code. Here I have embedded the function.
    CREATE OR REPLACE procedure abc(a varchar, b number) is
      type cns_tab_record is record(
        eff   date,
        ineff date);
      type cns_tab_typ is table of cns_tab_record index by binary_integer;
      cns_tab cns_tab_typ;
      v_lu_cb_sysid NUMBER;
    BEGIN 
      -- Here you have to assign the values to your table type record.
      -- For example I am passing two values SYSDATE and SYSDATE - 10
      cns_tab(1).eff := SYSDATE;
      cns_tab(1).ineff := SYSDATE - 10;
      v_lu_cb_sysid:= fetch_band(cns_tab(1).eff, cns_tab(1).ineff);
    END abc;But I am just wondering why you are using table type datatype here.
    Hope above code will help you.
    Thanks,
    Suri

  • Pass a value to a dll under labview

    I have to build a dll under cvi and use it under labview. my problem is to pass a value to this dll from labview.
    But when I use it, labview return an error code and close the software...
    I can return value from the dll to labwiew but not the contrary. can you help me please.
    I am a beginner and I am sorry for my english..."
    don't think it's a calling convention beceause When I use the box "call a dll" in labview and I select my dll, I can see all functions I have create in the dll (just the extern functions). for the datatype, I use int or unsigned int and sometimes char. and I can receive this value in labwiew...
    but for the pointer that's certainly my problem
    this is the sourcecode of my function. I drive a digital
    to analogue converter and I want to select the exit (There is 4 exit 0x00,01,10,11 )and a voltage (0 to 255 in décimal):
    void __stdcall dac_sortie_tension (int sortie, int tension)
    outp(LPT1+0x000,4); /* not important*/
    outp(LPT1+0x400,sortie);
    outp(LPT1+0x000,2); /* ecriture de l'adresse2*/
    outp(LPT1+0x400,0x00); /* not important*/
    outp(LPT1+0x000,3); /* not important*/
    outp(LPT1+0x400,tension);/*write voltage*/
    if I use a constant to "sortie" & "tension" it's OK...
    I try to use this:
    void __stdcall dac_sortie_tension (int *sortie, int *tension)
    but it's the same..."
    when I select the fonction in labview, I can see them
    but there isn't argument' ("sortie" & "tension") and I have a void like this:
    void fonction (void)
    what is the problem..
    I can give argument to the function but there aren't used..."

    /*draven*/;
    You need to configure the function manually. Once you select the dll and select the function, select the button Add a Parameter After. You can change the name of the parameter to sortie, keep the Data Type as long and then change the Pass field to Pointer to Value. Click again the Add a Parameter After button and do the same for the your variable "tension".
    For more information about calling external code in LabVIEW, refer to the following document (which should be also included with LabVIEW):
    Using External Code in LabVIEW
    Instructions on-line are here:
    An Overview of Accessing DLLs or Shared Libraries from LabVIEW
    Check also examples here:
    Communicating with External Applications
    Regards;
    Enrique Vargas
    www.visecurity.com
    www.vartortech.com

  • What is the most efficient way to pass LV data to a dll?

    For efficiency, this question primarily becomes important when passing large arrays, structures containing large arrays, or generally, any large block of data to a dll.
    The way the dll setup appears and the .c file it create for the dll call, it appears that labVIEW directly passes data in whatever native passing format LV requires without copying the actual data if you select the "Adapt to Type" as the "Type" option. If I pass an array, for example, the .c file contains the type definition of a labVIEW array, i.e., (size,data), and depending whether I select handle or handle pointer, the data passed is either a handle or handle pointer to the array. Likewise, if I pass a LV structure, the .c file will con
    tain the typedef to the structure and the data passed is either a pointer, or pointer to a pointer. These are, I believe, labVIEW native types and do not require copying.
    On the other hand if an array is passed as an array type, then it is converted to a C array that requires LV to copy the array on both sides of the call.
    I further assume all structures can be passed to the memory manager to be manipulated, although I'm actually not sure that you could resize an array pointer in the dll. That seems a bit dubious, but then I guess upon return LV could query the memory manager to determine the array pointer size.
    That�s how I would think things work. If not, could someone please correct me?
    Kind regards,
    Eric

    Eric,
    Let me tell you something about me too...
    I've been working with LabVIEW for (just) 4 years. That is, 40 hours a week
    professionally, 10 hours a week privatelly. I've started with LV4, and went
    through all versions and revisions until 6.0.2 (6.1 will come soon, but
    first I have to finish some major projects.
    During this time I've been working on lots of interfaces with the windows
    OS. Some 'dll' things I've worked on: OpenGL interface, MSXML driver,
    keyboard hooks, mouse hooks, GDI interfacing, calling LV dll's from
    assembler, calling assembler dll's from LV, creating threads, using serial
    interrupts, etc. I'm now (also) working on a way to automatically generate
    documentation (much more then the 'export VI stings') from a VI. This
    requires 'under the hood' knowledge about how VI's work.
    When I had to make a fast routine for a project one time, I choose
    assembler, because I had this knowledge. Also, I wanted to use pure SIMD
    opperations. The operation had to modify an array of DBL's. The SIMD uses
    the same format (IEEE 754, I think), so it was easy. But when it came to
    testing, it appeard that the routine only paid off if the routine was 'long'
    enough. The routine was n*O^2, where n was a parameter. When the array was
    large, and n small, the overhead of copiing the array to modifiable memory
    was relativelly large, and the LV routine was faster.
    When I get a pointer to a LV array, I can use this pointer to modify the
    data in the array. This can (I think) only be done if LV copied this data,
    just like LV is doing when a wire is split to be modified.
    It might be that this copiing can be prevented, e.g. by using other data
    types, or fiddling with threads and reentrance... If you want to optimally
    benefit from dll's I'd look for a way to keep the data in the dll space, or
    pass it once at initialisation. You could use CreateHeap, HeapAlloc,
    AllocGlobal, and other functions. You can use these functions in LV, or in
    the dll. Once you have a pointer to the (one and only) data space, you can
    use this to pass to the dll functions.
    I think LV does not show the memory in question in the profiler, but I'm not
    sure.
    Using the "Adapt to type" option might just result in a internal convertion
    during 'compile' time, and might be exactly the same as doing it yourself.
    Perhaps you can share a bit about the application you are making, or at
    least why you need the speed you are seeking?
    Regards,
    Wiebe.
    "Eric6756" wrote in message
    news:50650000000500000025C60000-1042324653000@exch​ange.ni.com...
    Greg,
    There are two relevant documents which are distributed with labVIEW,
    in labVIEW 6i, (hey, I'll get around to upgrading), the first is
    titled, "Using External Code in LabVIEW", the second is application
    note 154, "LabVIEW Data Formats".
    Actually, a statement Wiebe@air made on my previous question regarding
    dll calls, "Do dll calls monopolize the calling thead?" provoked this
    line of questions. Based on other things he has said, I gather he is
    also using dlls. So as long as we're here let me ask the next
    question...
    If labVIEW must make a copy of the passed data, does it show up as
    additional memory blocks in the vi profiler? In other words, can you
    use the profiler to infer what labVIEW is doing, or as you put it,
    infer whether there is a clever passing method available?
    As a personal note Greg:
    First, as a one time engineering student and teaching assistant, I
    don't recall hearing or using the terms "magical", or "clever". Nor I
    might add, do I find them in print elsewhere in technical journals.
    While I don't mind NI marketing in their marketing documents, used
    here in this mostly educational forum, they strike me as arrogant,
    and/or pompous.
    I like NI's products because they work and are reliable. I doubt it
    has anything to do with magic, has somewhat more to do with being
    clever, but is mostly due to the dogmatic persistence of your
    engineers. I rather doubt any of them adjoin the term "magical" or
    even "clever" to their solutions. I believe the term "best" is
    generally accepted with the qualifier "I've or we've found". At
    least, that has been my engineering experience.
    Second, many of my questions I can sort out on my own, but I figure as
    long as your willing to answer the questions, then your answers are
    generally available to others. The problem is that one question seems
    to lead to another and specific information gets buried in a rather
    lengthy discourse. When I come here with a specific question, it
    would be nice to find it asked and answered specifically rather than
    buried in the obscurity of some other question. As such, at some
    point in these discussions it might be appropriate to reframe a
    question and put at the top. In my opinion, that decision is
    primarily yours as you have a better feel for the redundancy of
    questions asked and/or your answers.
    Anyway, the next question I'm posting at the top is, "Do the handles
    passed to a dll have to be locked down to insure other threads don't
    move the data?"
    Thanks,
    Kind Regards,
    Eric

  • Why am I getting File not Found alert when I type into my browser?

    Why do I keep getting a File not Found alert when I type into my browser?
    I have been using firefox for about 4 yrs now with very few problems. The problem I am having is that when ever I go to type in anything into my browser I keep receiving this message:
    (Scroll down to see the rest)
    File not found
    Firefox can't find the file at jar:file:///C:/Program Files (x86)/Mozilla Firefox/omni.jar!/chrome/en-US/locale/browser-region/region.propertieschronic+fatigue+syndrome.
    I recently installed Firefox 5.0 and this keeps happening. It happened with the 4.0 version a couple of days ago but mostly it is the 5.0 version that I am having problems with. When ever I want to do a search I have to manually type in google.com. Is there a solution to fix this?

    The NuGet is a dll that was built with 4.0.0.0.  The easiest thing to fix problem is target you VS project to use Net 4.0.  You could get a new version of NuGet, but if you do make sure you rebuild your entire project.  The dependencies in
    the VS compiler doesn't always recognize updated libraries.  So I normally rename the bin folder in the project and then delete the bin folder.  VS will create a new bin folder and then rebuild all the source files.  If your project contains
    multiple projects then remember to delete the bin from all projects.
    jdweng

  • Question on the parameter type of DLL functions

    Question on the parameter type of DLL functions
    I am trying to develop an interface to control a laser with LV8.2  I am planing to use the VI “Call Library Function Node” to call the DLL and set the exact same parameters of functions in the DLL.
    According to the DLL manual of the laser, there are six functions.  One of the prototypes is:  function getstatuspointer : pointer. I don't know how to set this parameter for the function. Is there anyone who can give some hints? Thanks!
    BTW :The following is a description of the function:
    This function returns a 32 bit pointer to the STATUS data structure (Tstatusrec). In the 32 bit DLL, every application is using its own copy of the data structure (local
    memory). The data structure is a packed structure. "packed" means that the fields in the structure are not aligned on word or double-word boundaries.
    Tstatusrec = packed record
                            size : word;
                            initstat : byte;
                            queuefill : byte;
                            anzapp16 : word; (not used)
                            anzapp32 : word;
                            anzdock16 : word; (not used)
                            anzdock32 : word;
                            dll16ver : tchararray; (not used)
                            dll32ver : tchararray;
                            excimerver : tchararray;
                            excimer : TExcimerStatus;
                      end;

    Hi Jack,
    This is a good starting point when using Call Library Function node. Check out this Help Page
    Van L
    NI Applications Engineer

  • How to pass a jsp variable into javascript??

    <p><%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
    <p><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    <p><html>
    <p><c:set var="binrmapi" value="http://localhost/paas-api/bingorooms.action;jsessionid=XXXXXX?userId=TEST2&sessionId=1&key=1" />
    <p><c:import var="testbinrm" url="${fn:replace(binrmapi, 'XXXXXX', jsessionid)}"/>
    <p><c:set var="tuples" value="${fn:split(testbinrm, '><')}" />
    <p>Time until next game
    <p><c:forEach var="tuple" items="${tuples}">
    <p><c:if test="${fn:contains(tuple, 'row ')}">
    <p> <p><code>
    <p> <c:set var="values" value="${fn:split(tuple, '=\"')}" />
    <p> <font color="blue">
    <p> <c:out value="${values[17]}" />
    <p><c:set var="remainingtime" value="${values[17]}" />
    <p> </font>
    <p> </code>
    <p></c:if>
    <p></c:forEach>
    <p><form name="counter"><input type="text" size="8" name="d2"></form>
    <p><script>
    <p>var milisec=0
    <p>var seconds=eval("document.myForm.remaining").value;
    <p>function display(){
    <p> if (milisec<=0){
    <p> milisec=9
    <p> seconds-=1
    <p>}
    <p>if (seconds<=-1){
    <p> milisec=0
    <p> seconds+=1
    <p> }
    <br>else
    <p> milisec-=1
    <p> document.counter.d2.value=seconds+"."+milisec
    setTimeout("display()",100)
    <p>}
    <p>display()
    <p></script>
    <p></body>
    <p></html>
    <p>This is my code that i was working on, in the jsp part of the script, i get a api call and save a value of time in the variable remainingtime.. and in the javascript, i try to have a countdown clock counting down the remaining time.. but i guess it doesnt work.. how can i get that working? thanks alot
    Message was edited by:
    hamham3001
    Message was edited by:
    hamham3001
    Message was edited by:
    hamham3001
    Message was edited by:
    hamham3001

    Re: How to pass a jsp variable into javascript??Here is the sameple one, hope it will solves your problem.
    <html>
    <body>
    <form name=f>
    <%!
    String str = "A String"
    %>
    <script>
    var avariable = <%=str%>
    <script>
    </form>
    </body>
    </html>
    Let me know if you face any problem

  • Converting OBJECT Type into RECORD Type

    folks,
    Is there a way to Convert a OBJECT Type into a RECORD Type in Oracle PL/SQL, Because i have a stored procedure with RECORD Type as a IN parameter and as we know that we JDBC doesn't support calling or returning RECORD Types , So i was thinking of sending a OBJECT type and convert that to a RECORD type,
    I appreciate any help with the code or point to the documentation,
    thanks
    KM

    folks,
    Is there a way to Convert a OBJECT Type into a RECORD Type in Oracle PL/SQL, Because i have a stored procedure with RECORD Type as a IN parameter and as we know that we JDBC doesn't support calling or returning RECORD Types , So i was thinking of sending a OBJECT type and convert that to a RECORD type,
    I appreciate any help with the code or point to the documentation,
    thanks
    KM

  • Time stamp & array passed in a cluster through DLL are not accepted by Teststand

    I am trying to pass  Timestamp & array data [string array]   in a cluster  from DLL  is not  getting recognized by testsand.
    The action module (DLL)  Output (cluster)  generates   error "System Level Exception.[Error Code: -17502] "
    the png file shows the cluster
    I spoke to NI support & they  suppose that its time stamp that generates error
    but some fields (numeric, string) i am able to read
    Attachments:
    clustererror.PNG ‏41 KB

    Hello aparab,
    here is a link to another forum, which solves your issue:
    time stamp, data type for dll:
    http://forums.ni.com/t5/LabVIEW/time-stamp-data-type-for-dll/td-p/1085375
    to summarize:
    there are two possibilities to pass a cluster with a timestamp from LV to TS:
    1. use a string for the timestamp, although a numeric double might be easier to work with in TestStand
    2. use packed library

  • How can I embed Variant To Data in a subVI and pass in the Type input?

    If I use Create Control on the Type input of Variant To Data, I get an undefined type error unless I insert a control of a specific type into the cluster control that was created. This seems to prevent passing a parameter into a subVI for this purpose.

    > I'm interested in extending the functionality
    > of Variant to Data, such as using it or not based
    > on an additional input. Clearly, LabVIEW will not
    > allow this with the current design.
    I do not see what you mean by "using it or not based on an additional input". What would the output of this function be, if it were "not used"? What exactly are you trying to do?
    Personally, I have long wanted a polymorphic data type. If a polymorphic control were connected to a VI's connector pane, it would be defined by the calling VI. Once a calling VI wired a data-type to a polymorphic input of a subVI the type would propogate into the subVI.
    > As to the existing documentation on the type data
    > returned by Flatten to String, I find it
    rather
    > incomplete.
    With the release of LabVIEW 7, NI has updated App Note 154 to include some more data types (and subtypes). If you haven't seen this, I suggest you take a look.
    > I have created many types that cannot be decoded
    > using the available documentation. This alone,
    > makes an analytical solution difficult.
    Do you mean compound data types like clusters and arrays? Almost all data types can be decoded just fine with the available documentation. The only types that are not very straight-forward are the waveform data type, refnums, and typedefs. If you give me an example, perhaps I can help.
    > Adding
    > LabVIEW version dependency really makes this
    > solution fragile.
    I don't agree. LabVIEW may add new types in new versions of LabVIEW, but fundamentally the typecodes and structure of flattened LabVIEW data types have not changed at all (even though NI does reserve the right to change this in future releases of LabVIEW). Do have specific examples of t
    his?
    Cheers,
    -Jim

  • Passing of condition type while creating an order

    Hello Friends,
    I am stuck in a unique situation.
    I can create an order using BAPI_SALESORDER_CREATEFROMDAT1  .
    However I have to pass condition type 'ZAB'.But this BAPI does not have any provision to pass the condition type.
    Please guide me as to how this can be achieved.
    Solutions will be rewarded handsomely with points.
    Regards
    Nilesh

    Hello vasu
    thanks a lot for your suggestion.
    I am checking BAPISDHD1 the data type for the field kschl to pass the
    exact condition type.
    However I dont see any foeld where yoy can pass the condition type.
    Do you know which is the exact field where we can pass it.
    Oncae again thanks a lot for your suggestion
    Regards
    Nilesh

Maybe you are looking for

  • F4 help for file on selection screen thro objects

    Hi Every one, this report is working , but as i am working ECC6.0 it is showing the obsolete statements how to rectify it . pls anybody let me know, tables rlgrap. TYPES : BEGIN OF TAB, MATNR TYPE MATNR , MTART TYPE MTART, END OF TAB. DATA : ITAB TYP

  • Wireless Keyboard issues after battery change

    I've search the forums for an answer and can't seem to come up with anything. I have an older white wireless keyboard. It's been running great on my Mac Pro since day one, no battery changes since new, about 9 months now, maybe a bit more. The batter

  • How to make instruments persistent...

    Hi Forte Experts I keep setting the KeepAliveCycle parameter on my server, and it seems to disappear every now and then (at reboot?) So what is the correct procedure to set and keep this parameter alive... Do I have to modify the startup scripts to s

  • SSIS Expressions Problem

    Hi All, Please help on the SSIS issue. i have a package.It contains Foreach loop container,Inside foreach loop container,I have one Dataflow task(Inside dataflow task,i am using Oledb source(table),I am populating  Data into Flat file)with flat file

  • Deploying a third-party portlet.

    I have downloaded and installed Oracle Application Server 10g, using the "Portal and Wireless" installation type. I have a J2EE web app, packaged as a JSR-168 compliant portlet in a WAR file, and I am floundering around trying to figure out how to de