Programming Andor EMCCD GUI with Timed Structures

Hi everyone,
I am currently trying to program a GUI using Labview 2009 for Andor EMCCD camera IXon. I think basically there are 3 things that need to be monitored while running the program.
1. Monitor the temperature of camera to ensure that it is stable at -70 deg C
2. Monitor the inputs from user settings.
3. To do live imaging, viewing and recording of image or image capture (functionality).
For a start, I am actually planning to use three timed loop to run in parallel. I have attached my sample code below. Does anyone know that Is it a good approach and efficient approach to do it? Or is there any other better approach?
Greatly appreciate all your comments and feedback.
Kind regards,
Han Yen
Attachments:
Andor_live_0.0.2.vi ‏105 KB

Actually I haven't benchmark yet. The vi is not fully tested yet. I saw some examples on textbooks using loops so I am just a little concern whether I am on the right track since I have not much experience with labview..

Similar Messages

  • Timed structure for output in producer consumer data acquisition

    Hello LabVIEW community,
    I have a bit of a problem.  I am writing a program that is primarily for data aquisition but has a few control features as well.  I need the program to aquire and write several channels of data at a relitively high speed.  The program does this fine ( in the top 3 loops fo the program).  I need the program to also send a seires of two output signals in response to a particular condition.  When a certain channel registers a value of above a specified number, I need an output channel to write an anologue signal for 225 seconds and then a signal of a differnt value to the same channel untill the condition occurs again (not for several hours).
     I put this action in a timed structure inside of a case structure. The case structure and timed structure are inside of a second consumer loop.  I have no idea if this is ligitimate.  This event takes much longer than any of the other loops which run at 1 or 2 seconds. When I exicute the program with "highlight exexutuion" this longer (case/ timed ) loop never executes. I asssume this has to do with the mismatch in time scales of this loop and the other loops in the program.  I also didn't really understand the help information on timed structures, so its possible that I just need better/ different inputs to the timed stuctures.  
    If anyone can see any obvious problem in the code or suggest a better way to do the output function I would really appreciate the help.  My code is attached.   
    Thanks,
    Jo

    I can't figure out how to fix your code, but I can point out the things I see wrong with it.
    1.  You are dequeueing elements from the same queue in the same loop.  In one you are not taking the element, and in parallel, you are taking an element.  I see that in your bottom two loops.  Why?  That code won't execute until the queue gets two elements in it.  And which dequeue gets it first and which gets it second is an arbitrary race condition.  So there is no certainly of order (first 4 vs. last 4 currents in the one loop), or which gets kept and which gets discarded (in the other loop.)
    2.  You are creating and/or clearing DAQ tasks in every loop iteration.  Tasks should be created before a loop, used inside the loop (read or write), then cleared once the loop is done.  Anything else is wasteful, time consuming, and could lead you to run out of resources.
    3.  You are using the STOP function which is pretty much like hitting the abort button on the toolbar.  No program should ever stop that way.  All loops should exit gracefully.
    4.  You have a data dependncy between your bottom two loops because of the boolean wire running from one to the other.  That bottom loop will only run once (if the value is True), or run forever (if the value is false).
    5.  Use of the dynamic datatype.  You are taking waveforms, converting them to a blue wire, then coercing them into another datatype such as just displaying a scalar in an indicator.  A lot of unnecessary conversions there.
    6.  Your thermometer indicators have a digital display you can make visible.  Then you won't need the separate numeric indicator to display the value.
    7.  For loop that runs only 1 time because of the constant wired to the N terminal.  Get rid of the For Loop.
    8.  Check your spelling.  The word "Temperatures" on the graph, and one instance of "distillate" is missing an "l".
    Until all of these problems are fixed, it is not worth talking about timing of timed structures.  Some of these problems were discussed in your other thread.  http://forums.ni.com/t5/LabVIEW/producer-consumer-missing-channels/m-p/3159757#M911255   But now it seems like you've made things even more complicated without fixing the basic problems.

  • Is there a way to interface Labview Web GUI with Fusion Charts?

    Is there a way to interface Labview Web GUI with Fusion Charts for dynamic web presentation?
    http://www.fusioncharts.com/

    I have a ballistics program which our clients can use (see attached).  Basically there is a series of Cascading Combo boxes that the user must select for Bullet Manufacturer, Caliber, and Bullet ID.  The program then goes out to the relevant data file (.CSV) and provides ballistic inputs for the selected projectile.  The user is also required to enter in additional data, such as Sight Height, LOS Range, Temp, etc..  Once all data is input, the user either hits the Calculate Button or the Tab (I'm using Event Structures and I now realize this is an issue for Web UI Builder), and the data gets passed to a MathScript which then crunches numbers and spits output to fill a table and a series of Graphs based upon the tablulated data (if so desired).
    I was hoping to use Labivew for the first two parts ( Data Collection and Number Crunching) and use something like Fusion Charts for the presentation.  I tried learning Ruby on Rails.  I was successful with the Ruby part (basically the Mathscript portion) but really got hung up on the Rails section and the need for something like JSON to interface with it.  Could not find a useful source of information which really showed you how to combine the two effectively. 
    Attachments:
    Ballistics1.JPG ‏144 KB
    Ballistics2.JPG ‏265 KB

  • Can I control pages in tab control with case structure?

    Hi there!
    I'm quite new to Labview and my company wants me to make some programs for testing of electronics. I'm currently working on the GUI and I would like to control three pages in a tab control with buttons.
    I only got the base package of Labview 2009 so I can't use Event structure.
    If you open my .vi you can see I have a tab control with three pages. In the first page I got a "Start" button that should open the next page in the tab control. In the middle page I have a "Tilbake (Back)" button that should go back to the previous page. The button called "Lagre (Save)" should work as a next button and go to the last page. On that page I have a "Tilbake(Back)", "Ny test(New test -> go to first page again)" and "Avslutt (Quit)".
    The buttons under the tab control where something I copied from an example just to try out. That works perfectly, but I cannot edit the Event Structure from the example.
    Is this possible to solve with Case Structure? Or maybe there are other solutions? Feel free to edit my .vi if you like
    Thanks for the help!
    Regards,
    Even Myhre
    Test engineer
    Regards,
    Even
    Certified LabVIEW Associate Developer
    Automated Test Developer
    Topro AS
    Norway
    Solved!
    Go to Solution.
    Attachments:
    Test GUI.vi ‏29 KB

    Hi again!
    Well it solved my problem, but I got a strange error while running my program.
    When I press "start", the tab control changes page. When I press "tilbake(back)" it is totally random how many clicks it is necessary for it to change back to the first page. It can be from 1 to 20-30 clicks. Which is very strange since all other navigation buttons works perfect. "Tilbake(back)" button on the last page works correctly and has the same structure as the "tilbake(back)" button on the middle page.
    I have tried all the different options on how the button will response on a press.
    Regrads,
    Even
    Regards,
    Even
    Certified LabVIEW Associate Developer
    Automated Test Developer
    Topro AS
    Norway
    Attachments:
    Test GUI2.vi ‏28 KB

  • Program updating the value with succeeding 0

    Hi
    We have got a problem.
    We have developed a program to update the value of the condition type. The upload file will have the SO, line item, condition type and value.
    In the background, the sales order change BAPI is called and the value of the condition type is updated. There is no bug in the program for this functionality with reference to the problem.
    When I upload, the value is getting uploaded correctly. But for some users, the value is updated with an additional 0 at the end. For example if 78 is the value of a condition type, the update happens as 780. The strange behaviour is that if I take that user id and password and upload in my laptop, the value is correctly uploaded without any addtional 0.
    We have checked the user profile of all the problamatic users. They are fine. The xls sheet decimal notation is checked and they are also fine. There is no bug in the program, as it is working fine for many users.
    What else should I be checking to solve this issue. An ABAPer advised to check the GUI level difference. I dont know how to do that but there should not be any such difference in the GUI versions for the users.
    Can somebody put some light on this issue.

    Hi Navaneetha,
    The Excel version is the same for you and the user?
    Can the same be debugged and rectified?
    Regards
    Saurabh

  • How to use STRANS to translate XML to ABAP with deep structure

    every experts, I want to use Tcode: STRANS to translate XML to ABAP, But it does not work well,
    here is XML code,I want to translate this XML into an an Inter table gt_orders with deep structure of oeb, and colum oeb is also and intertable,how can I do this.
    <?xml version="1.0" encoding="gb2312" ?><axmt410><ObjectID>setSalesOrder</ObjectID><azp01>000000</azp01><oea00>1</oea00><ta_oeaecn>SO-140227-3041</ta_oeaecn><oea03>25325017</oea03><oea02>2014-02-27 17:44:44.0</oea02><ta_oea002>2763.0</ta_oea002><ta_oea001>0.0</ta_oea001><oea14></oea14><oea15>25325017</oea15><oea23>RMB</oea23><oeaconf>S3</oeaconf><oea10></oea10><oeaud01>null</oeaud01><ta_oea007></ta_oea007><oea25>101</oea25><ta_oea008>0</ta_oea008><ta_oea009>null</ta_oea009><oeauser>Hanjingya</oeauser><ta_oeanday>2014-02-27 17:44:44.991</ta_oeanday><ta_oeamday>2014-02-28 08:30:14.866</ta_oeamday><ta_oeacday>2014-02-28 08:30:14.866</ta_oeacday><oeaud02>0</oeaud02><ta_oea030>null</ta_oea030><oeb><oeb03>1</oeb03><oeb04>7400208249</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address1</ta_oeb003><ta_oeb004>zhangdagui、zhanglan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb><oeb><oeb03>2</oeb03><oeb04>7400208250</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address2</ta_oeb003><ta_oeb004>zhangdagui、chenlan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb></axmt410>
    I write these codes in SAP XSLT  editor
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
       <xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
       <xsl:strip-space elements="*"/>
       <xsl:strip-space elements="*"/>
       <xsl:template match="/">
         <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
           <asx:values>
             <ORDERS>
               <xsl:apply-templates select="//axmt410"/>
             </ORDERS>
           </asx:values>
         </asx:abap>
       </xsl:template>
       <xsl:template match="axmt410">
         <OBJECTID>
           <xsl:value-of select="ObjectID"/>
         </OBJECTID>
         <AZP01>
           <xsl:value-of select="azp01"/>
         </AZP01>
         <OEA00>
           <xsl:value-of select="oea00"/>
         </OEA00>
         <TA_OEAECN>
           <xsl:value-of select="ta_oeaecn"/>
         </TA_OEAECN>
         <OEA03>
           <xsl:value-of select="oea03"/>
         </OEA03>
         <OEA05>
           <xsl:value-of select="oea05"/>
         </OEA05>
         <OEA02>
           <xsl:value-of select="oea02"/>
         </OEA02>
         <TA_OEA002>
           <xsl:value-of select="ta_oea002"/>
         </TA_OEA002>
         <TA_OEA001>
           <xsl:value-of select="ta_oea001"/>
         </TA_OEA001>
         <OEA14>
           <xsl:value-of select="ora14"/>
         </OEA14>
         <OEA15>
           <xsl:value-of select="ora15"/>
         </OEA15>
         <OEA23>
           <xsl:value-of select="ora23"/>
         </OEA23>
         <OEACONF>
           <xsl:value-of select="oeaconf"/>
         </OEACONF>
         <OEA10>
           <xsl:value-of select="ora10"/>
         </OEA10>
         <OEAUD01>
           <xsl:value-of select="oeaud01"/>
         </OEAUD01>
         <TA_OEA007>
           <xsl:value-of select="ta_oea007"/>
         </TA_OEA007>
         <OEA25>
           <xsl:value-of select="ora25"/>
         </OEA25>
         <TA_OEA008>
           <xsl:value-of select="ta_oea008"/>
         </TA_OEA008>
         <TA_OEA009>
           <xsl:value-of select="ta_oea009"/>
         </TA_OEA009>
         <TA_OEA013>
           <xsl:value-of select="ta_oea013"/>
         </TA_OEA013>
         <TA_OEA014>
           <xsl:value-of select="ta_oea014"/>
         </TA_OEA014>
         <TA_OEA015>
           <xsl:value-of select="ta_oea015"/>
         </TA_OEA015>
         <TA_OEA016>
           <xsl:value-of select="ta_oea016"/>
         </TA_OEA016>
         <TA_OEA017>
           <xsl:value-of select="ta_oea017"/>
         </TA_OEA017>
         <TA_OEA018>
           <xsl:value-of select="ta_oea018"/>
         </TA_OEA018>
         <TA_OEA019>
           <xsl:value-of select="ta_oea019"/>
         </TA_OEA019>
         <TA_OEA020>
           <xsl:value-of select="ta_oea020"/>
         </TA_OEA020>
         <TA_OEA021>
           <xsl:value-of select="ta_oea021"/>
         </TA_OEA021>
         <TA_OEA022>
           <xsl:value-of select="ta_oea022"/>
         </TA_OEA022>
         <TA_OEA028>
           <xsl:value-of select="ta_oea028"/>
         </TA_OEA028>
         <OEAUSER>
           <xsl:value-of select="oeauser"/>
         </OEAUSER>
         <TA_OEANDAY>
           <xsl:value-of select="ta_oeanday"/>
         </TA_OEANDAY>
         <TA_OEAMDAY>
           <xsl:value-of select="ta_oeamday"/>
         </TA_OEAMDAY>
         <TA_OEACDAY>
           <xsl:value-of select="ta_oeacday"/>
         </TA_OEACDAY>
         <OEAUD02>
           <xsl:value-of select="oeaud02"/>
         </OEAUD02>
         <TA_OEA030>
           <xsl:value-of select="ta_oea030"/>
         </TA_OEA030>
         <OEB>
           <xsl:for-each select="oeb">
             <OEB03>
               <xsl:value-of select="oeb03"/>
             </OEB03>
             <OEB04>
               <xsl:value-of select="oeb04"/>
             </OEB04>
             <OEB05>
               <xsl:value-of select="oeb05"/>
             </OEB05>
             <OEB17>
               <xsl:value-of select="oeb17"/>
             </OEB17>
             <OEB13>
               <xsl:value-of select="oeb13"/>
             </OEB13>
             <OEB15>
               <xsl:value-of select="oeb15"/>
             </OEB15>
             <OEB12>
               <xsl:value-of select="oeb12"/>
             </OEB12>
             <OEB09>
               <xsl:value-of select="oeb09"/>
             </OEB09>
             <TA_OEB001>
               <xsl:value-of select="ta_oeb001"/>
             </TA_OEB001>
             <TA_OEB002>
               <xsl:value-of select="ta_oeb002"/>
             </TA_OEB002>
             <TA_OEB003>
               <xsl:value-of select="ta_oeb003"/>
             </TA_OEB003>
             <TA_OEB004>
               <xsl:value-of select="ta_oeb004"/>
             </TA_OEB004>
             <TA_OEB005>
               <xsl:value-of select="ta_oeb005"/>
             </TA_OEB005>
             <TA_OEB006>
               <xsl:value-of select="ta_oeb006"/>
             </TA_OEB006>
             <OEBUD01>
               <xsl:value-of select="oebud01"/>
             </OEBUD01>
           </xsl:for-each>
         </OEB>
       </xsl:template>
    </xsl:transform>
    and I use below ABAP program for a test, but the items from XML can not translate into Interner table gt_orders-oeb[]
    TYPE-POOLS abap.
    CONSTANTS gs_file TYPE string VALUE 'C:\temp\order02.xml'.
    * This is the structure for the data from the XML file
    TYPES:
       BEGIN OF typ_s_oeb,
         oeb03     TYPE string,    "
         oeb04     TYPE string,    "
         oeb05     TYPE string,    "
         oeb17     TYPE string,    "
         oeb13     TYPE string,   
         oeb15     TYPE string,   
         oeb12     TYPE string,    "
         oeb09     TYPE string,    "
         ta_oeb001 TYPE string,    "
         ta_oeb002 TYPE string,    "
         ta_oeb003 TYPE string,    "
         ta_oeb004 TYPE string,    "
         ta_oeb005 TYPE string,    "
         ta_oeb006 TYPE string,    "
         ta_oeb013 TYPE string,    "
         ta_oeb014 TYPE string,    "
         ta_oeb015 TYPE string,    "
         ta_oeb016 TYPE string,    "
         ta_oeb017 TYPE string,    "
         ta_oeb018 TYPE string,    "
         ta_oeb019 TYPE string,    "
         ta_oeb020 TYPE string,    "
         ta_oeb021 TYPE string,    "
         ta_oeb022 TYPE string,    "
         oebud01   TYPE string,    "
       END OF typ_s_oeb.
    TYPES: typ_t_oeb TYPE TABLE OF typ_s_oeb WITH KEY oeb03.
    TYPES:
       BEGIN OF typ_s_order,
         objectid   TYPE string,   "
         azp01      TYPE string,   "
         oea00      TYPE string,   "
         ta_oeaecn  TYPE string,   "
         oea03      TYPE string,   "
         oea02      TYPE string,   "
         ta_oea002  TYPE string,   "
         ta_oea001  TYPE string,   "
         oea14      TYPE string,   "
         oea15      TYPE string,  
         oea23      TYPE string,   "
         oeaconf    TYPE string,   "
         oea10      TYPE string,   "
         oeaud01    TYPE string,   "
         ta_oea007  TYPE string,   "
         oea25      TYPE string,   "
         ta_oea008  TYPE string,   "
         ta_oea009  TYPE string,   "
         oeauser    TYPE string,   "
         ta_oeanday TYPE string,   "
         ta_oeamday TYPE string,   "
         ta_oeacday TYPE string,   "
         oeaud02    TYPE string,   "
         ta_oea030  TYPE string,   "
         ta_oea013  TYPE string,
         ta_oea014  TYPE string,
         ta_oea015  TYPE string,
         ta_oea016  TYPE string,
         ta_oea017  TYPE string,
         ta_oea018  TYPE string,
         ta_oea019  TYPE string,
         ta_oea020  TYPE string,
         ta_oea021  TYPE string,
         ta_oea022  TYPE string,
         ta_oea025  TYPE string,
         oeb        TYPE typ_t_oeb,
        END OF typ_s_order.
    * Table for the XML content
    DATA: gt_itab       TYPE STANDARD TABLE OF char2048,
           gs_itab       LIKE LINE OF gt_itab.
    * Table and work ares for the data from the XML file
    DATA: gt_orders     TYPE STANDARD TABLE OF typ_s_order,
           gs_orders     TYPE typ_s_order.
    * Result table that contains references
    * of the internal tables to be filled
    DATA: gt_result_xml TYPE abap_trans_resbind_tab,
           gs_result_xml TYPE abap_trans_resbind.
    * For error handling
    DATA: gs_rif_ex     TYPE REF TO cx_root,
           gs_var_text   TYPE string.
    * Get the XML file from your client
    CALL METHOD cl_gui_frontend_services=>gui_upload
       EXPORTING
         filename                = gs_file
       CHANGING
         data_tab                = gt_itab
       EXCEPTIONS
         file_open_error         = 1
         file_read_error         = 2
         no_batch                = 3
         gui_refuse_filetransfer = 4
         invalid_type            = 5
         no_authority            = 6
         unknown_error           = 7
         bad_data_format         = 8
         header_not_allowed      = 9
         separator_not_allowed   = 10
         header_too_long         = 11
         unknown_dp_error        = 12
         access_denied           = 13
         dp_out_of_memory        = 14
         disk_full               = 15
         dp_timeout              = 16
         not_supported_by_gui    = 17
         error_no_gui            = 18
         OTHERS                  = 19.
    IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    * Fill the result table with a reference to the data table.
    * Within the XSLT stylesheet, the data table can be accessed with
    * "IPERSON".
    GET REFERENCE OF gt_orders INTO gs_result_xml-value.
    gs_result_xml-name = 'ORDERS'.
    APPEND gs_result_xml TO gt_result_xml.
    * Perform the XSLT styleshee
    TRY.
         CALL TRANSFORMATION zfx_so_xml_to_abap
         SOURCE XML gt_itab
         RESULT (gt_result_xml).
       CATCH cx_root INTO gs_rif_ex.
         gs_var_text = gs_rif_ex->get_text( ).
         MESSAGE gs_var_text TYPE 'S'.
    ENDTRY.
    LOOP AT gt_orders INTO gs_orders.
    ENDLOOP.

    The simplest way seems to me is to use a XSL file for that. The <xsl:output> attributes doctype-system and doctype-public generate the DTD declaration <!DOCTYPE YOUR_ROOT SYSTEM "yourDTDfile.dtd"> and <!DOCTYPE YOUR_ROOT PUBLIC "yourDTDfile.dtd">, respectively.
    When calling transformerInstance.transform() the XSLT processor performs the identity transformation - it just copies elements, attributes, content, processing instructions and comments to the result stream.
    If you're using an xsl file for your transformation already, simply add <xsl:output doctype-system="yourDTDfile.dtd"/> to your existing XSL file.
    If you're only using the identity transformation you'd need to change the line of code where you obtain the transformer instance from the TransformerFactory to:
    t_factory.newTransformer(new StreamSource("test.xsl"));
    and use this as test.xsl:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output doctype-system="yourDTDfile.dtd"/>
       <!-- this is the identity transformation -->
       <xsl:template match="*|@*|comment()|processing-instruction()|text()">
          <xsl:copy>
             <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
          </xsl:copy>
       </xsl:template>
    </xsl:stylesheet>Good luck.

  • ABAP program issues..Unicode program "ITAB" must have the same structure?

    Dear Expert,
    I coded below code in se38, but system give below error message, could please kindly advie issue reason? Thanks!!
         Error message: A line of "ITAB" and "LINE" are not mutually convertible. In a Unicode program "ITAB" must have the same structure layout as "LINE" independent of the length of a . Unicode character. Unicode character.          
    REPORT  ZTEST_HIHIHI.
    Data: begin of line,
    num type i,
    sqr type i,
    end of line,
    itab type standard table of line with key table_line.
    Do 5 times.
    line-num = sy-index.
    line-sqr = sy-index ** 2.
    append line to itab.
    enddo.
    loop at itab into line.
    write: / line-num, line-sqr.
    endloop.
    clear itab.

    Hello Hoo Laa,
    This is because the way you have defined LINE, it is a structure & not a data type. Hence you are facing the issue
    You have to change the data declaration to:
    itab LIKE STANDARD TABLE OF line WITH KEY table_line.
    BR,
    Suhas

  • Unable to put a timed structure in a parallel for loop, error -808

    If I try to place a Timed Structure in a Parallel For Loop, the TS needs a different structure name per instance to prevent collisions. However, setting the Structure Name node  to something unique per instance doesn't work, I get error -808. Have I missed something?
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

    That got me thinking - something to do with the number of compiled parallel instances.
    Indeed, the compiler creates a number of parallel instances of the for loop in the compiled code (in my case 8), and uses the number requested at the Parallel Instances terminal (just under the Iterations terminal), which is set to 2. Therefore the compiler has created 8 instances of the Timed Structure, each in its own for loop instance, but they all have the same defined Structure Name. When launched, there is an immediate conflict because they can't share the same name, and error -808 is launched before the set Structure Name function can change it. Hence the error still shows when requesting only one instance, because the other seven still exist.
    I guess this means you can't have Timed Structures (or Timed Loops for that matter too) in a Parallelised For Loop?
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

  • Programming multiple smart cards with multiple smart card readers in a PC causes a PCSCException in a smart card that is in progress

    Hi,
    I develop a Java code using smartcardio API to program a smart card. My GUI allows to add at most 5 smart card readers that will wait for card present, then do authentication and program the smart card with an application, then wait for card removal. This is a separate thread running in a loop for each smart card reader added as programmer.
    The problem occurs when a certain smart card is in progress and I inserted another smart card to another smart card reader.  Both smart card reader halts and throw sun.security.smartcardio.PCSCException: Unknown error 0x8010002f.
    I also observed that every time there is an attempt to insert/remove a smart card in the smart card reader that is connected to the USB port would cause the programming in progress to be interrupted and throw the PCSCException.
    These are some exceptions I got during my testing:
    sun.security.smartcardio.PCSCException: Unknown error 0x8010002f
      at sun.security.smartcardio.PCSC.SCardTransmit(Native Method)
      at sun.security.smartcardio.ChannelImpl.doTransmit(ChannelImpl.java:171)
    java.lang.Exception: Loader Record Failed: 6E | 0 //Sometimes I got this return code SW1 0x6E SW2 0x00 which means an APDU with an invalid 'CLA' bytes was received. I had check the command before it was sent and it was correct.
    Help me understand this issue. I think the CardTerminal.isCardPresent(), CardTerminal.waitForCardPresent(0), and CardTerminal.waitForCardAbsent(0) cause this issue that CardChannel.transmit(apduCommand) is interrupted or the smart card insertion/removal causes the CardChannel.transmit(apduCommand) is interrupted.
    Regards,
    Knivez

    Hi,
    when you work with one smartcard reader only usually you address the slot -1 that means "the first found".
    But to deal with multiple readers you have to use slots of course since one reader will be slot 0, next reader will be slot 1 and so on...
    So a credential object will be identified on a system by a couple
    <slot,alias>
    After that, the way to address slots (I mean the syntax) depends on the classes you are using...
    Bye

  • Function call in SAP GUI with errors

    Dear All,
                 When i am calling FM of Comports using OLE Integration i got " Function call in SAP GUI with errors" error
    now my front end version is 6.40. how to solved this problem.
    In my Function Module i am creating object like this
    CREATE OBJECT O_OBJ 'MSCOMMLib.MSComm.1'.
        IF SY-SUBRC <> 0.
          RAISE NO_CREATE_OBJECT.
        ENDIF.
    it raised the sy-subrc = 2 this error is "Function call in SAP GUI with errors"
    send to me how to handle this error.
    Thank,
    Vijay.g

    Hi Vijay,
    We are facing the same issue.
    Interestingly
    From program's code only we are facing this issue.
    If we display the program and Execute (Direct processing), it is working fine.
    Can you please share how you resolved this issue.
    Thanks
    Sreedhar

  • Creating dynamic internal table with deep structure

    Hi all,
    I need to create an internal table with deep structure dynamically. I've already created tables with method 'create_dynamic_table' but I'm struggling with the deep structure.
    I would need an internal table with the following structure:
    DATA: BEGIN OF lt_t1,
    s1 TYPE REF TO data,
    s2 TYPE REF TO data,
    END OF lt_t1.
    S1 and S2 have to be tables.
    It might be possible with RTTS but all the examples in the forums (that I've found so far) are related to at least one DDIC-structure. And that's my problem because both tables are created during runtime.
    Thank you in advance
    Nicola

    Hi Frédéric,
    I hope my english is good enough to explain it correctly:
    We use a function builder for SEM-BPS which copies data from one Cube to another. This Cube is transactional, so you can't easily read a structure out of DDIC.
    The export parameter of this function builder is a table with type 'any table'.
    Until today we used a fixed definition e.g.:
      TYPES:
        BEGIN OF xtyp_chas,
         /sie/sr_ocomp TYPE /b52/oisr_ocomp,
         /sie/ts_03psp TYPE /b52/oits_03psp,
         0activity     TYPE /bi0/oiactivity,
         0acty_elemt   TYPE /bi0/oiacty_elemt,
         0costelmnt    TYPE /bi0/oicostelmnt,
         0co_area      TYPE /bi0/oico_area,
         0creditor     TYPE /bi0/oicreditor,
         0currency     TYPE /bi0/oicurrency,
         0curtype      TYPE /bi0/oicurtype,
         0db_cr_ind    TYPE /bi0/oidb_cr_ind,
         0fiscper      TYPE /bi0/oifiscper,
         0fiscper3     TYPE /bi0/oifiscper3,
         0fiscyear     TYPE /bi0/oifiscyear,
         0metype       TYPE /bi0/oimetype,
         0network      TYPE /bi0/oinetwork,
         0part_actty   TYPE /bi0/oipart_actty,
         0part_cctr    TYPE /bi0/oipart_cctr,
         0piobjsv      TYPE /bi0/oipiobjsv,
         0project      TYPE /bi0/oiproject,
         0unit         TYPE /bi0/oiunit,
         0vtdetail     TYPE /bi0/oivtdetail,
         0vtstat       TYPE /bi0/oivtstat,
         0vtype        TYPE /bi0/oivtype,
         0bus_area     TYPE /bi0/oibus_area,
         0cashdetail   TYPE /bi0/oicashdetail,
         0cashtype     TYPE /bi0/oicashtype,
         0comp_code    TYPE /bi0/oicomp_code,
         0coorder      TYPE /bi0/oicoorder,
         0cs_dimen     TYPE /bi0/oics_dimen,
         0cs_unit      TYPE /bi0/oics_unit,
         0int_bus      TYPE /bi0/oiint_bus,
         0part_abcpr   TYPE /bi0/oipart_abcpr,
         0part_coord   TYPE /bi0/oipart_coord,
         0part_wbsel   TYPE /bi0/oipart_wbsel,
         0piovalue     TYPE /bi0/oipiovalue,
         0profit_ctr   TYPE /bi0/oiprofit_ctr,
         0ps_obj       TYPE /bi0/oips_obj,
         0statussys0   TYPE /bi0/oistatussys0,
         zfbwheroj     TYPE /bic/oizfbwheroj,
        END   OF xtyp_chas,
        BEGIN OF xtyp_kyfs,
          0amount      TYPE /bi0/oiamount,
          0quantity    TYPE /bi0/oiquantity,
          zf03oaws     TYPE /bic/oizf03oaws,
          zf03oqty     TYPE /bic/oizf03oqty,
          zf03ozsta    TYPE /bic/oizf03ozsta,
        END OF xtyp_kyfs,
        BEGIN OF xtyp_zf03g003,
          s_chas TYPE xtyp_chas,
          s_kyfs TYPE xtyp_kyfs,
        END   OF xtyp_zf03g003,
        xtyp_zf03g003_t TYPE HASHED TABLE OF xtyp_zf03g003
                          WITH UNIQUE KEY s_chas.
    DATA: lt_ibm_data TYPE xtyp_zf03g003_t,
          ls_ibm_data TYPE xtyp_zf03g003.
    So one table (s_chas) contains the characteristics of the Cube and the other (s_kyfs) contains the keyfigures. That's exactly the format we need for the export parameter. At the end of the program, we use the following coding to fill the export table (eto_chas):
    loop at lt_ibm_data into ls_ibm_data.
      collect ls_ibm_data-s_chas into eto_chas.
    endloop.
    So in this moment I give this table the structure that is needed to move the data into the cube. I can't change the requirement because it is a standard interface.
    I would like to change that coding to be dynamically. Because if somebody changes a charasteristic or a keyfigure in the cube, we would have to change the function builder too. I don't think that the SEM-BPS department will let us know every time they've changed something anyway.
    So I hope that my explanation wasn't too confusing
    Nicola

  • Transaction iView( Tcode) Error: Function call in SAP GUI with errors

    Hey Guys:
                  I use Transaction iView to show the ABAP application on Portal. The application works to import data from client to BW. After I fill all the information and execute the application, the system returns the error message " Function call in SAP GUI with errors".
    The ABAP application works fine on SAP GUI, so it should not be the program problem.
    Any Suggestion for this will be nice. Thanks for your help.

    Hey Duy:
            Thanks for your response. I check the servers which i have access, and all of them cannot work correctly.
    First, other iViews(Dynpro,BW Report,BSP,KM...) work fine.
    Second, our backend system is a BW server.
    I try to do so on our EP production and development, also connect them to our BW production and development servers. All of those are failed and have the same problem.
    The t-code comes from our abap program and register on BW server, and hte program works fine when I use SE38 to execute it.
    PS. The Transaction iView works fine before, but I have no idea why it just crash now.
    Please let me know if you have any suggestion about this.

  • ALV dynamic with deep structure

    Hi All,
    I need to program an ALV Report with a deep structure based on a outbound proxy  structure, so I should pass to ALV function or ALV Method a dynamic table and a dynamic structure.
    I tried to do it but I got a dump using this function module REUSE_ALV_GRID_DISPLAY with these parameters: STRUCTURE_NAME and T_OUTTAB.
    Please, some suggestions about this.
    Thanks in advance.
    Alexis.

    Hi Vasanth
    this is my example:
    DATA: tl_proxy TYPE TABLE OF zpidt_operacion.
    DATA: sl_proxy TYPE zpidt_operacion.
    sl_proxy-dt_operacion-dt_cab_operacion-vkorg = '0001'.
    APPEND sl_proxy TO tl_proxy.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program = sy-repid
        i_structure_name   = 'ZPIDT_OPERACION'
      TABLES
        t_outtab           = tl_proxy
      EXCEPTIONS
        program_error      = 1
        OTHERS             = 2.
    Please, could you tell me how I have to do it.
    Thanks,
    Alexis.

  • What is the Program Reporting in the Project template structure?!

    Dear All,
    I have a question regarding the program reporting that in the Project Structure what it's used for. In addition i have a question about the two check-boxes under the program reporting what it's used for also:-
    a) Setup Project as a program.
    b)Allow linked project to belong to multiple program.
    Thanks in advance.

    Here's a quick overview on Program reporting:
    A program is a collection of projects linked in a hierarchical fashion. The Oracle Projects program management functionality enables you to create a program by linking multiple
    projects (and programs) to form a program hierarchy.
    Programs enable you to view and manage workplan and financial information for a group of projects. This capability provides you with benefits that are not available when
    you manage each project individually. With programs, you can specify how multiple projects are interrelated within a program and review interrelated project information
    as a whole. You can track and report on rolled-up planned, actual, and forecasted effort, cost, and revenue, as well as progress and schedule information for all projects in the
    program hierarchy.
    Therefore, as a program manager, you have a strategic focus on the overall program, rather than a tactical project-centric focus.
    The linking of projects within a program follows a top-down approach. If you have the appropriate security privileges, then you can navigate to and drill down into the individual linked projects within the program hierarchy.
    To enable program reporting you have to select the 'Setup Project as a Program' button on your project. Also you can allow one project to be part of one or many programs, so the second check box "Allow linked project to belong to multiple program" controls that feature.
    Dean

  • Running Java program outside Jdeveloper -- issue with dependent libaries

    Hello, I am using Jdeveloper 11.1.1.7 and have built a java application that imports XML Files into Oracle, then exports an XML file for others to pick up.  I use jaxb, java persistance, and javax.mail etc....
    when I run the application in Jdeveloper it works properly, and now I am trying to place the application in my u:\temp directory to test run from the command line.  Later I will move this all to linux to run.
    In Jdeveloper I followed the directions about adding all the dependent jars into the application using the File Groups ( http://tompeez.wordpress.com/2011/06/01/creating-a-jar-file-in-jdeveloper/ )
    Doing this creates a very big jar file with all of the dependent jar files in it called xmlseprocessing.jar  and then I run it as such in dos
    set classpath=.;javax.mail_1.4.jar;xmlseprocessing.jar
    u:
    cd u:\temp
    C:\Oracle11117\Middleware\jdk160_24\bin\javac commandLineStartup.java
    C:\Oracle11117\Middleware\jdk160_24\bin\java  commandLineStartup
    I get this error: 
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException
    I look on the internet, and finally decide to grab the javax.mail_1.4.jar and put it in my u:\temp directory, and update the classpath, and run it, but then I get this error.
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
            at in_jpa_db_objects.JavaServiceFacade.<init>(JavaServiceFacade.java:19)
            at util_import_factory.OraConnInput.OraCleaner(OraConnInput.java:43)
            at startup.startImport.processIncomingXMLs(startImport.java:49)
            at startup.startAll.startupProcesses(startAll.java:92)
            at commandLineStartup.main(commandLineStartup.java:23)
    Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
            ... 5 more
    My assumption is that I am going to have to grab every jar, add it to my local directory and create a very long path like oracle does when starting the application from jdeveloper (see below)
    QUESTION:  Given that I have added all of the required libraries to the xmlseprocessing.jar -- why is this happening?  Any solution?  Am I doing something wrong?
    Points awarded!!!!  Any help would be greatly appreciated.
    This is what I see in the log window when I run the application in Jdeveloper. 
    C:\Oracle11117\Middleware\jdk160_24\bin\javaw.exe -clientlasspath C:\JDeveloper\mywork\xmlProcessing20131021_1100\.adf;C:\JDeveloper\mywork\xmlProcessing20131021_1100\XML_SE\classes;C:\Oracle11117\Middleware\wlserver_10.3\server\lib\weblogic.jar;C:\Oracle11117\Middleware\modules\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\Oracle11117\Middleware\modules\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\Oracle11117\Middleware\modules\com.bea.core.antlr.runtime_2.7.7.jar;C:\Oracle11117\Middleware\modules\javax.persistence_1.0.0.0_2-0-0.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xmlparserv2.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xml.jar;C:\Oracle11117\Middleware\modules\javax.jsf_1.1.0.0_1-.jar;C:\Oracle11117\Middleware\modules\javax.ejb_3.0.1.jar;C:\Oracle11117\Middleware\modules\javax.enterprise.deploy_1.2.jar;C:\Oracle11117\Middleware\modules\javax.interceptor_1.0.jar;C:\Oracle11117\Middleware\modules\javax.jms_1.1.1.jar;C:\Oracle11117\Middleware\modules\javax.jsp_1.2.0.0_2-.jar;C:\Oracle11117\Middleware\modules\javax.jws_2.0.jar;C:\Oracle11117\Middleware\modules\javax.activation_1.1.0.0_1-1.jar;C:\Oracle11117\Middleware\modules\javax.mail_1.1.0.0_1-4-.jar;C:\Oracle11117\Middleware\modules\javax.xml.soap_1.3.1.0.jar;C:\Oracle11117\Middleware\modules\javax.xml.rpc_1.2.1.jar;C:\Oracle11117\Middleware\modules\javax.xml.ws_2.1.1.jar;C:\Oracle11117\Middleware\modules\javax.management.j2ee_1.0.jar;C:\Oracle11117\Middleware\modules\javax.resource_1.5.1.jar;C:\Oracle11117\Middleware\modules\javax.servlet_1.0.0.0_2-5.jar;C:\Oracle11117\Middleware\modules\javax.transaction_1.0.0.0_1-ar;C:\Oracle11117\Middleware\modules\javax.xml.stream_1.1.1.0.jar;C:\Oracle11117\Middleware\modules\javax.security.jacc_1.0.0.0_1-1.jar;C:\Oracle11117\Middleware\modules\javax.xml.registry_1.0.0.0_1-0.jar;C:\Oracle11117\Middleware\jdeveloper\ide\macros\..\..\..\oracle_common\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;C:\Oracle11117\Middleware\jdeveloper\ide\macros\..\..\..\oracle_common\modules\oracle.nlsrtl_11.1.0\orai18n.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.odl_11.1.1\ojdl.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.dms_11.1.1\dms.jar -Djavax.net.ssl.trustStore=C:\Oracle11117\Middleware\wlserver_10.3\server\lib\DemoTrust.jks commandLineStartup

    rp0428,
    Thank you for your reply.  Please understand that I am on a tight deadline and have spent two weeks writing an application that I cannot run outside of jdeveloper.  I only have some experience with java -- I have been working with Jdeveloper extensively, but have only been deploying to Weblogic, so a lot of this is foreign to me.  
    I had not noticed the comments underneath.  I now understand that I need to extract all the jars that are dependent (all the files added to my jar file when I added the File Group Library), and did so.  I also found a blog on this  https://blogs.oracle.com/bwb/resource/Jdev_jar_deployments/Creating_Jar_Deployments_with_JDeveloper.html
    So I have all these jars and the jar of the application that was created.   I created a small class called commandLineStartup.java that simply had a main method in it, where I called the program to run in my xmlseprocessing.jar
    I created a bat file that set the classpath (which I painstakingly created by taking the startup script that Jdeveloper created when running the program and replaced the various directory structure to match the location was running from
    ///// a.bat file runs this:
    set classpath=C:\temp\xmlseprocessing.jar;%dir%\wlfullclient.jar;C:\temp\javax.mail_1.1.0.0_1-4-1.jar;C:\temp\wljmsclient.jar;C:\temp\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\temp\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\temp\com.bea.core.antlr.runtime_2.7.7.jar;C:\temp\javax.persistence_1.0.0.0_2-0-0.jar;C:\temp\xmlparserv2.jar;C:\temp\xml.jar;C:\temp\javax.jsf_1.1.0.0_1-2.jar;C:\temp\javax.ejb_3.0.1.jar;C:\temp\javax.enterprise.deploy_1.2.jar;C:\temp\javax.interceptor_1.0.jar;C:\temp\modules\javax.jms_1.1.1.jar;C:\temp\javax.jsp_1.2.0.0_2-1.jar;C:\temp\javax.jws_2.0.jar;C:\temp\javax.activation_1.1.0.0_1-1.jar;C:\temp\javax.xml.soap_1.3.1.0.jar;C:\temp\javax.xml.rpc_1.2.1.jar;C:\temp\javax.xml.ws_2.1.1.jar;C:\temp\javax.management.j2ee_1.0.jar;C:\temp\javax.resource_1.5.1.jar;C:\temp\javax.servlet_1.0.0.0_2-5.jar;C:\temp\javax.transaction_1.0.0.0_1-1.jar;C:\temp\javax.xml.stream_1.1.1.0.jar;C:\temp\javax.security.jacc_1.0.0.0_1-1.jar;C:\temp\javax.xml.registry_1.0.0.0_1-0.jar;C:\temp\ojdbc6dms.jar;C:\temp\orai18n.jar;C:\temp\ojdl.jar;.
    C:\Oracle11117\Middleware\jdk160_24\bin\javac commandLineStartup.java
    C:\Oracle11117\Middleware\jdk160_24\bin\java  commandLineStartup
    /////  This is the commandLineStartup file
    public class commandLineStartup{
        public static void main(String[] args) {
      startup.startAll s = new startup.startAll();
                   s.startupProcesses() ;
    I found this also on including the meta-inf directory files.   https://blogs.oracle.com/bwb/resource/Jdev_jar_deployments/Creating_Jar_Deployments_with_JDeveloper.html
    Now it blows up with this error  java.lang.NoClassDefFoundError: weblogic/utils/NestedException
    So I scour the internet and find a solution to create a wlFullClient.jar (http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html),
    Now I run it and get Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/management/WebLogicMBean
    And now I get this:  Exception in thread "main" java.lang.NoClassDefFoundError: oracle/dms/console/DMSConsole
    This is absolutely crazy.  I am doing this all manually and by hand, which is error prone.  There has got to be a better way of doing it.  Does ant make it so you can deploy and run? Is there some program that does this for me?   What happens when I throw this out on linux?  Another two days of idiotic troubleshooting?
    Thank you,
    Stuart
    All I want to do is run the thing.  I have now spent two days putting files into this and that directory, creating the Jar with and without the dependent jars and trying every combination.
    Up to this point I have been impressed with Java.  Now I am about to throw my computer out the window.

Maybe you are looking for

  • How do I download all my songs from iCloud without having to click on each one?

    I have two computers and I would like to have my iTunes library on both. How do I download all my songs from iCloud without having to click on each one?

  • ClassCastException with javax.jms.ObjectMessage

    Hello           I have the following problem:           I filled a JMS queue with ObjectMessages containing a so called container class (self written, plain old java class implementing serializable).           I have also written a Servlet that runs

  • Cisco ACS 5.2 authentication against multiple LDAP servers

    Hi Folks, I have a wireless network that uses ACS 5.2 to handle authentication.   The ACS is integrated with an Active Directory LDAP server (my_ldap) and is working correctly at the moment.    The authentication flow looks like this:  - User tries t

  • Re: Can WLS 8.1 sp5 work with WLP 8.1 sp2?

    We were thinking of upgrading WL server that our WLP 8.1 uses from 8.1 sp2 to 8.1 sp4. Can WLS 8.1 sp5 work with WLP 8.1 sp2? Manish

  • Pga and temp

    Hi Sometimes I hit unable to extent temp errors. My db version is oracle 9i. I guess the pga is not set. I am not sure why total PGA inuse has a value in second query.. Is there any impact if I set pga? SQL> show parameter pga NAME TYPE VALUE pga_agg