Jump to content

ShaunR

Members
  • Posts

    4,856
  • Joined

  • Days Won

    293

Everything posted by ShaunR

  1. A very complicated reporting tool. Some things are better for scripting/sequencing than others. Take the step response of an oven, for example. You need to step change the setpoint (SP) and monitor the temperature until a certain value has been achieved as it changes and note the time taken. To determine whether it has finished it's step, you detect the plateau in rate of change. In an application this is trivial and the test time is the time it takes to achieve get within +-% for n secs of SP or when dtemp/dt < x for n points (depends on specification). It is usually also monitored to determine whether it overshot before it got there (which may be a fail). In Test Stand it is orders of magnitude more complicated to achieve the same process and you will probably try to wait x amount of time and hope that the temperature is achieved. However. You will miss the overshoot and that's not the test anyway. So you will write some software to do the state monitoring and calculate the rate of change and, now, you are using Test Stand just as a reporting tool. Test Stand is good for "stateless", pass/fail testing and suffers the same problems as any other scripting/sequencing environment when state and/or continuous monitoring is introduced. It may be that it has served you faithfully for the most part in your testing but it is not a test panacea which, I think, is why you are asking the question.
  2. The trivial answer is the launcher can be run re-entrant so you can run it from multiple scripts with different configurations etc But what you are trying to achieve, from your description, is a poor fit for Test Stand, period. So I expect there will be other things that that perhaps you haven't mentioned (like the background tasks) that will make it difficult to use from Test Stand regardless of the solution. It sounds like you really need an entire application rather than a simple Test Stand integration.
  3. What about VIRefPrepNativeCall and VIRefFinishNativeCall? They sound interesting but maybe a red herring.
  4. I wrote a simple "connector" for test stand a few years ago. It was just a VI launcher which had a standard calling convention (from Test Stand for configuration of the called VI) and a standard output back to Test Stand. It would call any VI with the appropriate FP connectors, dynamically, with parameters supplied from Test Stand. You could call any VI's (DVM, Frequency generators etc) which were wrapped in a normalising VI which created a standard interface for the launcher to call and formatted data to the standard format to be returned. All configuration, reporting and execution was in Test Stand. It took about 5 mins to write the launcher and about 5 mins to write a wrapper VI for each device. The caveat here is that there was already a device VI to wrap. This a similar technique to VI Package Manager which runs the pre and post install VI's.
  5. This is sweet. I think we can use this information to create LabVIEW callbacks for C/C++ functions like we do with .NET.
  6. SQLite does not support concurrent writes.
  7. That's because it is, to all intents and purposes, an internal restructuring (possibly a political one) and the outward effects aren't tangible or possibly even unknown.
  8. this is a little ambiguous. Header Type Length Report ID Data Check Sum...Makes sense if you put commas in the right place Header Type, Length, Report ID, Data, Check Sum. If that was the case then a msg with no data would be something like 7E 03 02 18 9B Is this your interpretation or is it stated as such? Usually a checksum is a CRC. if it is a CRC-8 (there are a number of 1 byte CRCs) then the last value would be 0x29 rather than 0x9B, for example.
  9. I haven't seen that error message for years. If I run a debugger, LabVIEW just dies and the debugger reports an error in the LabVIEw exe. This has been the same through Windows 7-10 on the various machines I've had over the years. Maybe the difference when debugging is because I use the the gdb debugger but the sudden disappearance is consistent; not only on my machines but customers' too.
  10. No need. I will explore this. From experience; a misconfigured CLFN usually results in LabVIEW disappearing without a whimper (either immediately or at some random moment) so i don't see much of a reason to have error checking and wrappers enabled at all. Especially if there is a performance benfit, no matter how minute. It doesn't seem to have a scripting counterpart. Is that correct, or have I just missed it? Is the setting sticky, or does distributed source code require the INI setting too?
  11. Interesting. How does this feature compare with disabling the error checking on the Error Checking tab?
  12. Oh. Sorry. Missed that bit. That's a different kettle of kippers then.
  13. it clearly states that LV 2015 isn't supported and says to forward save it to 2017. It's not really a useful test for it's conversion capabilities.
  14. Your argument is inconsistent. If it's not a priority then making a change to remove it is allocating resource to "the least important". Leaving it in would be the least impactful. However. If you are going to change it then you might as well make it a "Preference" since that is clearly what it is. You don't seem to have a preference or, at least, are indifferent. So why advocate taking away a feature that other people obviously feel strongly about?
  15. Just make it an ini/preference setting. The main tenor of that thread seems to be "I'm not very precise so please remove it" which, from that low point, then devolves into "my work-flow is better than your work-flow".
  16. I've never used the toolkit; I'm just aware of it. I don't know of the limitations or capabilities outside of that page. I would suggest sending them an email explaining what you plan to do and they should be able to tell you.
  17. 150 samples @ 50ms is about 24K/s if the samples are double precision. The default TCPIP buffer in Windows is 8K IIRC and if NAGLE is on, you maybe filling the buffer too quickly. I would try U8, if you are currently using doubles, to reduce the data amount and see if the problem perists. If it resolves it, then I would try turning off NAGLE and increasing the buffer to 65K to use doubles again.
  18. How about the Arduinoâ„¢ Compatible Compiler for LabVIEW
  19. There is a LabVIEW RIO Evaluation Kit which is a fraction of the cost (has FPGA on board). Alternatively you could use the Arduino with Websockets or HTTP and use LabVIEW to communicate with it. There is also an Arduino toolkit, IIRC.
  20. You have to be logged in to see the SQLite software. The main performance criteria for SQLite is the number of rows and/or columns returned/inserted, although there have been significant improvements in recent versions (~15% over 5 years). If you look at the performance graphs, you will see that 0.6 seconds equates to about 450k rows (with 2 columns). The performance test in the Sqlite API for LabVIEW library is based on 10k rows so that you can get repeatable figures and that typically yields 10s of milliseconds. Less than that, and LabVIEW timings become dominant for the purpose of that test. If you are dumping entire tables and performance is a requirement, then a relational database is the wrong tool.
  21. I imagine it is C , C++ or Javascript. NULL is a specific type of invalid pointer in C/C++ languages and "not an object" in Javascript (as opposed to "undefined"). In LabVIEW we don't really have either concepts. In JSON, it is a valid type so it depends on how you want to translate it back into a LabVIEW type. Historically I have converted in the following manner: string->empty, numeric->0, boolean->false etc. Unless, of course, it is in quotes. In that case it is the string "NULL", in whatever case, as it's implicity typed.
  22. Get someone else to do it. It requires knowledge of the memory organisation of LabVIEW and C (and how different structures are allocated and stored) and most of the time a small error will completely crash LabVIEW. I would suggest asking on a C forum.
  23. This demonstrates the difference. reentrancy.zip
  24. Well. This will get you some of the way there (quick and dirty example). SetWindowCompositionAttribute.vi You'll still need to blend the accent colours if you want it to behave and I've no idea what will happen if you try to set the VI transparency..
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.