Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


torekp last won the day on January 3 2018

torekp had the most liked content!

Community Reputation


About torekp

  • Rank
    Very Active

Profile Information

  • Gender
  • Location
    SE Michigan

Contact Methods

LabVIEW Information

  • Version
    LabVIEW 2012
  • Since

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. As my avatar would say: Missed it by THAT much!
  2. I searched for "DLL" in titles of posts to the forum on Application Builder etc, and got 0 results. Which is wrong -- I know because I have posted a topic with "DLL" in the title! What gives?
  3. I left off an important fact about what I was doing, and apparently, doing wrong. After DAQmxWriteDigitalU32, I was doing DAQmxGetWriteTotalSampPerChanGenerated, DAQmxGetWriteCurrWritePos, and DAQmxGetWriteSpaceAvail. Those diagnostics told me how the problem proceeded, but they also helped cause it. Now that I commented them out, it has run for 17 hours, whereas mean time to failure was <1 hour when the diagnostic commands were used. Ever see the movie Mystery Men? One of the heroes, Invisible Boy, has his super-power only when no one is looking. My cDAQ task can do its job, as l
  4. Thanks guys. I already went to direct connection from computer to cDAQ, and that seemed to lengthen the duration without this error - although it's so intermittent that it's hard to tell. I've never heard of NAGLE before, and on reading about it, it sounds like a likely suspect. I'll see if I can finagle something. (Hmm, I probably shouldn't pun-ish people for answering my questions!) Edit: Fin Nagle didn't do me any favors. Network traffic is 416 Kbps sent, which makes sense for my data plus a relatively small header per packet. When I watch task manager as it crashes, the fall-off
  5. I've got a cDAQ-9185 chassis with four 9477 digital output modules, connected to my computer by Ethernet, writing samples at under 3 kHz (almost 150 samples, every 50 ms). The task keeps giving error -200292 (could not write samples, not enough space) but the real problem is that samples stop being generated. And that happens when there is a long time (~100 ms) between just before my DAQmxWriteDigitalU32 statement (in CVI LabWindows) and just after. It seems that the attempted write doesn't go through until it's too late. I have "Do Not Allow Regeneration" set, for what I think are good re
  6. Just a quick idea, I didn't try to run your code. But I doubt that Excel tolerates an index less than 1. Is it possible that the count of "Shapes" is 0? Is it possible that the Sheet Index was 0, which in turn causes the count of Shapes to be 0?
  7. Wow, conditional auto-indexing in loops has been around since Labview 2012? How the heck did I not notice this?
  8. DLL functions or shared variables? Or something else? I have a Labview 2014-64 executable (or I can build a DLL) that runs one piece of equipment, the X-ray. The other engineer has a large CVI Labwindows 2015 + MS Visual Studio 2012 (C++) executable that runs everything else. I want the Labview code to be a slave of the CVI code, accepting commands to turn X-ray On or Off, reporting failures, and the like. Translating the X-ray code into C++ would be possible in principle, but not fun. Shared variables look easy, but I'm kinda scared of them. I would define all the shared variab
  9. For what it's worth, for some classifiers (PLSDA for example), I've gotten better results by using a sequence of binary classifiers, rather than just doing all-vs-all. Dunno if this applies to SVM, but I suspect it could. Might be worth the effort.
  10. After getting a PM from Xuan-Thai, I realized that if you want to sort more than two classes, my other statistical modeling post might be useful as a "prequel" to using this SVM code. That other post: Using the Multiple Discriminant Analysis (MDA) example could help you pick which two groups of classes to separate first. Then you would rinse and repeat, always separating along the most easily discernible lines. For example in the graph from my other thread that you can (depending on your browser?) partially see above, it makes sense to separate white from red-and-green first. The MDA
  11. Thanks! Sorry, I wasn't clear. I'm not trying to use a DLL in Labview. I'm trying to use a DLL (that Labview created) in C++. I read the first website on the "C Struct Hack" and tried to apply it to your advice, yielding this: int i; int len = 2, len2 = 3; int32_t datasz[2]={2,3}; double data1d[6] = { 1,2,3,11,12,13}; double aresult[2][2]; DoubleArray dataouta; DoubleArray datain; void viGet(DoubleArrayBase * result) { for (i=0; i<4; i++) aresult[i/2][i%2] = (result->element); } void viSet(DoubleArrayBase * myArray) { (myArray->dimS
  12. So I created a DLL from a Labview VI that has a 2D array input (and some scalar inputs) and some 2D array outputs. Labview creates a .h file with these lines And then it defines the 2D array arguments to my function as being of this type: "void __cdecl Linear_discrim_4dll(DoubleArray *dataObsFeat, int32_t grpAsz," etc etc. Trouble is, I have no idea how to fill out this structure so that the DLL can use it. Say for simplicity I had a 2 by 3 input called dataObsFeat with elements {1,2,3; 11,12,13}; how would I create the object with these values in C or C++ and pass it to the funct
  13. Ah, thank you! I tried this guy's advice item number 7 and it worked. A bit brute-force, but maybe that's OK. (I'm not using typedefs.)
  14. Yes it was. However my only other option for where the .chm file goes is "same as caller", which also fails.
  • Create New...

Important Information

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