I am stunned by TestStand suport engineer's answer to my bug report?

Okay, my HTML is bit rusty. here it is.
So, I ran into this problem that when I put a continued inequality expression (a<x<b) in a Pass/Fail step, it will always pass. This is very easy to duplicate, say you have a local varible x = 3, in a Pass/Fail test step's Data Source Expression you put "0<=Locals.x<=2". Then it will always pass when you run it. If you set b to less than 1, say 0.5, then it will always fail. So I reported this as a bug to NI support. Here is what I got for explanation:
NI support/application engineer:
"I was looking into this behavior further and what is actually happening is that for "a<=x<=b", the program is evaluating a<=x, returning 1 if true or 0 if false, and then checking if that 1 or 0 is <=b. This is why a pass was always returned by your code. I still think that recognizing the continued inequality expression would be a good addition to teststand, so i will suggest this change to R&D."
me:
"In that case, it's just simply wrong (as a bug would cause) since it assumes that b is somewhere between 0 and 1. I don't think that TestStand should check the Boolean return value from evaluating a<=x against b, that does not even make sense or someone did not know what he was doing. It should be reported as a bug, not a feature request for future release."
NI support/application engineer:
"I'm sorry that you feel this way, but this syntax would be executed in the same way by any programming language. the <= or < operators are treated like any operator such as * or +, and so this behavior is completely expected by order of operations. just as a*x*b would find a*x, then apply that result to {result}*b, a<x<b calculates the result of a<x (1 or 0) and applies that result to {result}<b. I do understand your frustration, but this is not a bug; it is completely expected behavior. Please let me know if you have any other questions about this issue."
me:
"Do you really want me to spell this out to you?! I would feel embarrassed if I were you. But you insisted, so here it goes.
You are correct that these operators are treated the same in any programming language. Here is where you got lost, read this again - "just as a*x*b would find a*x, then apply that result to {result}*b, a<x<b calculates the result of a<x (1 or 0) and applies that result to {result}<b."
Why in the world that you would substitute variable x with the result from evaluating a<x for the second comparison x<b?
The answer is that "{result}<b is just NOT the same as x<b". Do you see the problem now?
Do you know the difference between a Boolean and an integer? 1 and 0 can be used to present a Boolean, but when you plug it in an integer comparison and it will be used as an integer which throws the whole comparison out of water. I don't think that any other programming language would do that."
NI support/application engineer:
"I am very sorry that you were not satisfied with my explanation of the problem. I understand that this result is not desirable, but the underlying reason is that TestStand does not understand that you are trying to compare a<x and x<b in the same statement. The continued inequality is an implied conjunction of two comparisons, and TestStand (and other programming languages) do not know how to interpret this implication. I realize that this is not intuitive, and though I would agree that a<x<b seems like it would return 1 if x is between a and b and 0 otherwise, this is not a recognized syntax by TestStand and other languages."

Hi CT,
I agree with you completely that this may be undesired behavior depending upon exactly what code is being written. Thanks for bringing to our attention any behavior that seems undesired, we always want to know about these types of things!
I ran the pseudo code "a<x<b" where a, x, and b are numbers in a few different environments:
VB6: This returns true for any x value.
C#: This does not compile, due to a type mismatch.
C++: This returns true for any x value. 
C: This returns true for any x value. 
LabVIEW: Using comparison functions, this results in a broken wire due to a type mismatch 
LabVIEW: Using a MathScript Node, this returns true for any x value.
I would say, generally speaking, it is accepted behavior to
type cast a Boolean result to an integer when the next function
requires integer parameters. In every language, using  the logical AND operator, as Jigg suggested, removes any chance of ambiguity between the coder and the compiler.  
The good news is that the product suggestion that the support engineer filed on your behalf will still be reviewed by R&D. So, whether this is a bug or a feature request, it will get its due attention.
Message Edited by Evan P. on 10-15-2008 08:25 PM
Evan Prothro
RF Systems Engineer | NI

Similar Messages

  • TestStand/​LabView Engineer - Tektronix, Beaverton, Oregon

    If you are interesting in working in TestStand (and some LabView), you can apply for a job in Tektronix Manufacturing:
    https://jobs.tek.com/OA_HTML/OA.jsp?akRegionCode=I​RC_VIS_VAC_DISPLAY_PAGE&akRegionApplicationId=800&​.....

  • Controlling Matlab via TestStand COM Objects

    I am attempting to control MATLAB via teststand activex com objects.  I set up my module to use the matlab 7 automation server, and when I try to run the sequence, I get this error:
    "Create New Object" in automation call failed.
    No such interface supported
    One reason this can occur is if the interface of your COM server cannot be marshaled. This can happen if your server is not using the default OLE marshaling implementation and does not implement its own proxy and stub code. If you write your server using Visual C++ you can add the oleautomation attribute to your interface in order to use the default OLE marshaling implementation. Alternatively, COM does not require marshaling if the server's threading model is the same as the client thread's apartment. You can try changing your server's threading model or the client thread's apartment to avoid the need to marshal the interface."
    Anyone know how to fix this?
    -Joey

    It turns out this issue was a bug within Matlab itself.  The correct registry keys were not being added for the Matlab ActiveX server with version 7.2.  The bug report is located here.  Once the correct registry keys were added there was no problem calling the Matlab ActiveX interface.
    Pat P.
    Software Engineer
    National Instruments

  • Problem running your example with TCL in TestStand 2.0

    I`m having problems trying to run your example: "Calling TCL Scripts from TestStand 1.0.x". I use TestStand 2.0. In fact, I don`t see any response when running first step in a sequence. Could it be issues related to the TestStand version.

    The example should work in TestStand 2.0.x, since other users have reported that they have successfully done so and nothing has changed in TestStand 2.0.x that would affect its execution.
    In order to get the example to work you will need to have the TCL interpreter installed correctly so that the dll being used in the example can invoke it. If you can programmatically control the interpreter with any other code module as this dll does then this example should work as well. However, if you cannot do this in any way on your system then it is safe to say that nothing will work including the example. Verify that the TCL interpreter will work in this fashion per the vendor's instructions and then try the example again. If you are receiving errors from TestStand
    when executing the sequence let us know about those and we may be able to help you more directly.
    Jason F.
    Applications Engineer
    National Instruments
    www.ni.com/ask

  • -17502;Sys​tem Level Exception - TestStand 3.0 Error

    When CVI adapter is configured for "in-process" mode (CVI not required), and attached TestStand sequence is ran, there is intermittent error -17502. CVI application error handler does not trap this error - it happens on the sequence level. However, this error cannot be seen when adapter is configured for "Execute Steps in an External Instance of CVI" option.
    An input on this issue from the knowledgeable TestStand application engineer is appreciated.
    Attachments:
    DC LNA VVA Batch.seq ‏114 KB

    Jelena -
    One possibility is that something might be corrupting memory and when running the CVI steps externally, the corruption does not affect the sequence editor, OI or TestStand engine, so the error does not occur.
    If the error usually occurs after calling a specific step it is good to review how TestStand is configured to call the code module. If you have access to the source code of this step's code module, it is recommended to do a code review of the code itself. If this does not find anything, try to simplify the scenario by slowly removing TestStand steps and pair down the source code to try to isolate what might be causing the problem.
    This type of intermittent error is always difficult to isolate.
    Scott Richardson
    National Instruments

  • Principle Systems Engineer, Cambridge UK

    PTP are seeking candidates for a new Principle Systems Engineer role:
    http://www.ptpartners.co.uk/principal-systems-engineer-required/
    Product Technology Partners (PTP) is an engineering consultancy specialising in control systems and test & measurement solutions. The company produces custom software and hardware solutions for clients across a wide range of industries. We work extensively with National Instruments hardware and software solutions as well as control systems and hardware from Beckhoff.
    Leading a team of 5 engineers, the Principal Engineer is responsible for the day to day management of the engineering team. This is an excellent opportunity for an experienced senior systems engineer to step up to lead a team. The ideal candidate is likely to come from an electronics or hardware background with experience of designing and building control systems. Experience of writing software in a range of languages would be highly desirable.
    Candidates should enjoy working in a fast paced and dynamic environment and relish the challenge of working on varied projects spanning a range of industries and should therefore be adaptable and flexible. PTP is passionate about training and continuous personal development and there will be opportunity to expand qualifications and practical knowledge. Some UK based travel and occasional international travel are required as part of this role.
    Key requirements
    Master’s degree or Doctorate in an engineering related discipline
    C10 years of industry experience
    Control systems background
    Strong project management skills
    Experience of a consulting environment highly desirable
    Experience of managing a team preferred (but not essential)
    Must have excellent communication skills and customer relation skills
    Experience of test and measurement systems desirable
    National Instruments hardware and software experience highly desirable
    Experience of working with Beckhoff hardware and PLC software is highly desirable
    Experience of writing software in one or more of the following languages:
    National Instruments LabVIEW, CVI and TestStand
    C# using .NET Framework
    C++
     PTP’s offices are situated in the beautiful village of Toft just South-West of Cambridge and enjoys all the Cambridge countryside has to offer including plenty of free parking and a spacious working environment.
    PTP offers a competitive remuneration package plus a company bonus along with a host of benefits:
    Flexible working policy with core hours
    Fully funded company phone
    33 days paid leave per annum (including 8 statutory days)
    Friendly and supportive team
    Company funded training and personal development
    Gym and Leisure Club membership
    Free parking
    Christmas office closure
    Regular company and family outings and pub lunches
    Free refreshments
    Table tennis
    If you think you could be the next member of our team please apply with your CV and covering letter to [email protected]
    Applicants must be eligible to work in the UK at time of application.
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

    Hi,
    Sorry, PM is 'personal message'. Using the NI forums / community pages it's possible to send direct messages to other registered users. Hopefully you should have recieved an email form NI will a link to my message.
    If you're not familiar with the NI forum messaging system then perhaps you could mail mail me at  [email protected] and I will reply to you with the information you requested.
    Chris
    Don't forget to give Kudo's for a good answer !
    LabVIEW Champion
    Certified LabVIEW Architect
    Certified TestStand Architect

  • Teststand automatic test report printing using LabView workaround

    I tried the LabView workaround for the automatic printing of test reports in TestStand (see email message below). 
    It will work if I set the URL to a specific HTML TempReport.  However, TestStand is configured to generate a unique test report for each UUT.  So, in the test report directory there are xml reports and the occasional HTML report, example TestReport_00104.html.  Not sure then what to set the URL to?
    Note:  Your reference number is included in the Subject field of this message.  It is very important that you do not remove or modify this reference number, or your message may be returned to you.
    Hi Bill,
    Thanks you for your reply.
    Right ok. Well, if you are interested in the LabVIEW workaround, I can send this to place it in your modified sequential model.
    The workaround works as desired. It does it all automatically. I have set it to not prompt the user for the print dialogue but this can be easily changed. Therefore, for any example program in Teststand, if it is based on the modified sequential model, an HTML style report will be printed on the default printer automatically.
    It needs to be placed in the following location:
    Within the Sequential Model, within 'Single Pass>>Print Report' do the following:
    - Replace all the 'Main' steps (Navigate to HTML, Print HTML File & Close IE Browser) with the LabVIEW function call.
    - This one function call will do all the steps above at once.
    NOTE: In the LabVIEW VI, you will need to select the correct directory where the new html files are being created. Otherwise the print function will not work. This is called URL. Make you sure you have checked this.
    For ease of understanding I have included these steps in a word document with screen shots.
    As I do not know which version of LabVIEW you might have, I have attached three versions of the .vi file; 2012, 2011 and 2010.
    In regards to the mention of Teststand not having built in functionality for automatic printing of reports, unfortunately this is the case.
    I hope this will be a sufficient workaround for you.
    If you problems implementing this solution, please ask me for further information. However, it should be fairly simple to do.
    Just to inform you, I will be out of the office from 12.45pm today for the rest of the week on annual leave.
    I will be back in the office on Monday 14th January 2013, should you have any further queries.
    Kind Regards,
    Dominic Clarke
    National Instruments
    Applications Engineering
    www.ni.com/support
    Attachments:
    Print HTML file from LabVIEW.zip ‏39 KB

    Hi Bill,
    I managed to implement this.
    In the sequential model I added a LabVIEW action after 'Add Root Tags To XML Report'
    As URL I use a sequence local: Locals.ReportFilePath
    I points to the ML report in my case and then the VI works fine.
    However I'm looking for extra functionality and that is waiting untill printing is completed.
    Can you help me on that ?

  • TestStand function to change Upper/Lower Case?

    How can I perform a "toUpper()" on a variable using TestStand expressions? I want to force all upper case on a string that a user has input, before validating it.
    I know I can do this in a VI, but I would hope that TestStand could do this. There appears to be a set of string functions (like len(), search(), replace(), format()) but I don't see any case manipulation.

    TestStand 2.0.1 does not have these functions, so a code module is the way go. However, it is very likely that these functions will appear in a future version of TestStand.

  • Connection Points using ActiveX in TestStand

    Hi,
    Had a query . Is is possible to register connections points using Test
    Stand. I am having a COM Dll which incorporates Connection Point
    Mechanism. I am able to use this using VC++ client. But not with Test
    Stand Application.
    Regards....

    That should handled in code modules you write rather than purely in a sequence. Your connection point handlers could set TestStand globals, use TestStand synchronization objects (such as queues or notifications), write to files, set DLL globals, or use any of the dozens of other possible methods to communicate with TestStand sequences

  • Downers Grove, IL - Pricipal Software Engineer  Salary to $100K.

    Essential functions include: new product development; design and development of software to control robotic liquid handling equipment and precision analytical instruments used in biomedical research; designing, writing specifications, developing schedules, conducting reviews, coding, documenting and testing PC based and embedded controller software; and participate on, and perhaps lead, software development teams. Minimum requirements include: BS, MS in Electrical Engineering or Computer Science; good communication skills and the ability to function in a cross functional team environment; ability to program C++, Visual basic and DSP code; ability to analytically design software for complex real time machine control systems; 10 years experience in the development of software for new elctro-mechanical products; experience in real time machine control software or robotic control systems; experience with DSP code, Windows NT programming, C++ and COm; and knowledge of biomedical laboratory methods and equipment is a plus. Company offers excellent benefits package.
    If you are interested please send resume attn:Marilu to [email protected] cc:[email protected] or fax 815.459-6314

    Hi 
    I am CLAD Certified with 1.7 Yr of Experience and capable of completing CLD
    Skilled in Micrcontrollers , NI VISA , I2C , SPI , UART , ADC & Designing Custom DAQ...
    but I am from India... 
    is their any option that I can get this job. Since I am not a US Citizen or got work permit . 
    Regards
    Varaprasath M
    CLAD
    email id - [email protected]
    Thanks & Regards
    Varaprasath M
    Certified LabVIEW Developer
    Certified TestStand Developer

  • Learn about NI TestStand from the experts with the NI TestStand Advanced Architectu​re Series

    The NI TestStand Advanced Architecture Series consists of documents covering topics of interest to advanced NI TestStand developers. The series' authors are NI TestStand architects and developers who provide insightful content that goes beyond basic documentation by offering best practices for large and complex projects. The series will release new documents quarterly so check back to see what's new in a few months!
    Follow the link to visit the NI TestStand Advanced Architecture Series.
    Josh W.
    Certified TestStand Architect
    Formerly blue

    Hello J.Venkatesh,
    You should have posted a new post rather than attach it to this post.  Other than TestStand, it has no relation to Tables in Reports.
    Have you looked at some previous post such as the link below
    http://forums.ni.com/ni/board/message?board.id=330​&message.id=3528&query.id=73853#M3528
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Using TestStand Engine API in LabVIEW

    Hi all,
    I am currently working for a proejct where automation of testing is involved, For which NI LabVIEW and TestStand are used. My previous experience is in LabVIEW only and not in TestStand. In the current project I have to develop a UI where user can select the test sequences and execute them  automatically with a simple start command. So I thought to develop a UI in LabVIEW where I will call TestStand APIs in LabVIEW. I have a developed a code by calling the TestStand APIs and able to execute the sequence, but unable to generate the report. Does  any have stuff where in TestStand APIs are called in LabVIEW and test report is generated.
    As I mentioned earlier I haven't worked much in TestStand. I have gone through the TestStand examples like Simple UI. But it didn't helped me much.
    To put our project requirement in simple.
    1.It should  have the UI to select the TestCases (Test Sequences) and an option to select the no.of times the test cases needd to be executed.
    2. It should generate the reports for all the test cases.
    3. UI should support localization.
    Considering the above requirements I have thought to develop UI in LabVIEW calling the TestStand APIs. I also got to know that UI can be developed using TestStand, but I am not sure whether the above mentioned requirments can be fullfilled or not.
    I am attaching the VI what I have developed in the LabVIEW with which I am able to execute the sequences, but unable to generate the report. Kindly look into the VI and let me know what need to be corrected to generate the report using the same VI.
    Thanks and Regards
    Giridhar
    Attachments:
    TestStand_Enginevi.vi ‏21 KB

    If you want to generate a report you'll have to choose an entry point. You should have a look at the LabVIEW OI (operator Interface) shipped with TestStand
    Rodéric L
    Certified LabVIEW Architect

  • Is it possible to create a distributi​on kit or executable file out of a Teststand sequence file that uses CVI standard prototypes​?

    How can i create an executable file or distribution kit of a sequence file in teststand?. I'm using CVI standard prototypes.

    If you want to distribute your sequence files to other machines, there are a few things you must consider.
    1. Create a TestStand Run-Time Engine installer. You can do this by selecting Tools>>Run Engine Installation Wizard.
    2. Distribute your Operator Interface.
    3. Distrbute your code modules (in your case CVI) and sequences.
    We do not have a tool similar to that of Assemble VIs for Distribution for CVI. You will need to ensure that all of your code is copied to the target machine and that TestStand is able to resolve the paths for where these files are located (i.e. Configure>>Search Directories).
    PLEASE REFER TO THE CHAPTER IN THE TESTSTAND USER MANUAL TITLED "DISTRIBUING TESTSTAND".

  • How change the report graph color in teststand

    how change the report graph color in teststand?

    Michael,
    You might also be able to customize the style sheet associated with the report. The TestStand Help provides some information about how to customize ATML or XML style sheets to change report colors based on the status of test steps.
    Please take a look at the following topics; are these helpful?
    ATML Report Style Sheets
    Modifying Cell Background Color Based on Step Status in ATML Test Results 5.0 Reports
    XML Report Style Sheets
    Modifying Cell Background Color Based on Step Status in XML Reports
    Tom
    TestStand Documentation

  • Teststand Report generation doc

    Hi Guys,
    I'm looking into TestStand reports right now, but I have to admit that I'm a little bit lost...
    I would like to get an easy "manual" on how to edit the reports so I can get my own formating in the report...
    For example, I would like to present my test results like this
    Description of test (name)    ||    Low limit    ||   Measurement    ||     High Limit     ||    Pass/Fail.
    This would be the case for every test step.
    Also , I would like to have a customized header with a logo, and some additional Information like operator name, SN, etc
    A solution I was thinking about was to send all my data back in LabVIEW and generate the report from there, which is quite easy... I found a way to get back part of my data, but unfortunately, the NumericLimitTest steps don' return the Result... (the function I used is on this page http://forums.ni.com/ni/board/message?board.id=330&message.id=1311&requireLogin=False) >> TestStand-Labview-Resultlist.vi is the one I used.
    Could you help me on this?
    Thanks a lot
    Matthieu

    Hi Matthieu,
    Here is a Developer Zone article that should help get your starting with understanding how report generation works: Report Generation Explained .
    See the following knowledge base article for information about logging data of a step: How do I Modify a Step Type to Log Data into a Report?
    If you are using an HTML report, please see the following knowledge base article for information about how to customize your header information: Modifying HTML Report Headers to Include Custom Information in TestStand .
    This should get you started with reporting in TestStand.  I think that you will find that TestStand is better suited for reporting as you become more familiar with it.
    Jessica
    National Instruments
    Product Support Engineer

Maybe you are looking for

  • Delivery Performance Report..

    Hi All, We are using ECC 6.0 and want to measure the delivery performance both value and volume wise for the sales orders.Is there any standard way to check this in SAP or I need to use the tables VBEP, VBFA, LIPS and if I need to use these tables wh

  • Activated iTunes Match, now most of my music is missing...

    After I upgraded to IOS6, I activated iTunes Match. Now almost all of music on my iMac is missing. When I click on a song, itunes says it can't find the song and asks if I want to try and locate it. All the songs now have have exclamation marks in a

  • CRITICAL: Error occured while working with configuring .in WAS deploytool

    Hi, I have installed developer workspace WAS edition SP11. I had given a master password to all the users created while installation. But now for deployement and visual administration that password is not working. So i started deploytool to enable Su

  • Posting through FB60

    Hi, During making posting in FB60, when I  enter date, amount or account number, I usually get the the suggestion list of the last entries from system. I can take any entry from that list and no need to enter them manually. I donu2019t know what happ

  • I have been trying...but still failed! Please help...

    Here is my java code: public class BPUSBFinger200 {   private final static BPUSBFinger200 instance = new BPUSBFinger200();   static {     System.loadLibrary("lib/BPUSBFinger200");   private BPUSBFinger200() {   public static BPUSBFinger200 getInstanc