-
Posts
1,156 -
Joined
-
Last visited
-
Days Won
102
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Neil Pate
-
-
-
Definitely do not break the VI would be my vote.
-
Tom, I have seen lots of instability in the past when doing parallel VISA reads. Admittedly these were using USB<-->232 converters and I always laid the blame on flaky USB converters.
-
Yes I installed all my LabVIEW versions into the C: SSD. But then I got a 500GB SSD Mini-PCI card in my notebook besides the 500GB hybrid HD
Sorry guys, but couldn't let this pass!
Pah that's nothing..., my Oculus Rift dev kit should be arriving soon so I will soon be able to code in one more dimension than you
(I wish...)
- 1
-
I have this type of setup too; my C drive is a 160GB SSD, and my D drive is a 2TB HDD. Understandably, I store the vast majority of my files on drive D. And for me, the NIFPGA folder appeared on drive D without me having to do anything. I did install LabVIEW on that drive; did anyone here install it on their SSD?
I install everything on my SSD (240 GB). Especially LabVIEW; I switch between quite a few different projects in many different versions of LV, so I really like it to load nice and snappily. I would definitely prefer to offload the NIFPGA directory somewhere else though, as the SSD is not helping at all for that stuff.
-
The remark about supported OSes for a certain functionality is anyhow often misleading in MSDN. For one the documents tend to get outdated (notice the absence of Windows 7 which is more or less simply Vista but in a usable form) while on the other hand Microsoft tends to also update the documentation regularly changing support information to only mention the latest versions, even though that API or functionality really existed already much earlier. Most Windows APIs on MSDN claim to be supported since Windows 7 by now even if they already existed in Windows 95.
The strange thing about the mklink document is that it mentions Vista, and 8, but not 7 which clearly sits in between the two. Surely just a documentation error I think?
-
Great idea, I will give it a try.
I think this also supports Win 7 even though it is not mentioned.
-
I have the same situation. I moved the MDF and Update folder to a secondary drive and have not noticed any problems so far. That was about 2 months ago. I left the NIFPGA, since in place since I figured it was used for compiling.
I just looked at the ProgramData\National Instruments\MDF\ProductCache and it's sitting at 800MB, as opposed to the 15GB it was before, so it seems to be repopulating.
Anyone know what the MDF folder is for?
I think the MDF directory is used when you build an installer which needs additional components. LabVIEW first looks in the MDF directory to see if a copy of the other component installer is there.
- 1
-
So the ProgramData\National Instruments directory is getting very big on my disk, approaching 80 GB with the Update Service and installers (MDF). This along with with 40 GB in the NIFPGA directory is getting a bit silly.
My primary disk is a nice fast SSD, but it is not huge. As such I want to move as much of this stuff off the c:\ as possible.
I have moved the Update Service stuff onto bigger (mechanical) HDD, this is possible by changing the preferences of the NI Update Service. I don't yet know if this has actually worked, as I manually moved all the files after changing the preferences.
Does anybody know if it is possible to move the NIFPGA and ProgramData\National Instruments\MDF somewhere else?
-
Not so trivial in native labview since to read contiguous bytes using the array subset, you need to split and wrap the array by making copies and sewing them together again. You'll be lucky of it doesn't get a lot slower than a rotate.
There is one that uses direct calls to the LV memory manager though, but a rotate is much easier.
Yes, that's what I normally do (keeping track of whether we have wrapped around or not etc). I have never done any benchmarks, always just done it that way.
Quite often my circular buffers have a method to read n samples rather than the whole buffer, so I find I need to keep track of a separate read pointer.
-
Nice work. This is such a good use of XNodes adapting to type behaviour.
Couple of questions though...
In the Read, there is a Rotate 1 D array, is this not quite an expensive operation?
Could that could be removed if a Read Pointer was introduced?
-
But one question remains: Is there a shell of some kind I can connect to?
Not to the best of my knowledge on the "older" cRIOs. The brand-spanking new ones do actually use Linux (the old ones use VxWorks or Pharlap for their RTOS) so perhaps that does have a shell you can ssh into or something. Hoping to try this out soon
-
Aww, there's no beta for LabVIEW right now; just other products. Thanks though.
The LabVIEW beta normally rolls out around about January or February.
-
For science. (You monster.)
We do what we must because we can.
-
I have seen things like this where "stale" classes were inside Diagram Disable Structures, everything generally ran fine until one day the build just broke for no apparent reason.
May be totally unrelated to your problem though...
-
There are people who may claim that agreeing with me on a LVOOP architecture issue may be a clear indication that you have not fully understood the problem at hand.
You have a Starcraft II avatar, already that gets you points in my book :-)
I have actually approached the problem slightly different, as I did not like the Strategy object needing to do the VISA read, and due due to the asynchronous nature my device sends data (all on its own it periodically sends data). I have implemented the Received data (and the parsing thereof) as a type of Strategy pattern, but the actual reading of the characters on the serial port is done somewhere else.
-
I'm sure regular expression could do it too.
As someone wiser (and more sarcastic) than myself has already pointed out...
Some people, when confronted with a problem, think
“I know, I'll use regular expressions.†Now they have two problems.
- 1
-
If it 'aint broke, don't fix it. (Not kool-aid, more like resisting the Tribbles. )
I like to try and extend my understanding of things wherever possible, so I can make informed decisions later. This often means trying out features or design techniques I have not used in the past to see if there are better ways of accomplishing things. This is how I have evolved my style over the years. Sometimes the experiment works, sometimes it does not, but I always get to keep some knowledge from the exeperience.
One thing I am trying to get my head around is proper OO design (forget LabVIEW for now). This is something I have some understanding of, but could certainly do with more practice; hence the original question.
I agree now with Shane that this looks a lot like the Strategy Pattern.
-
*sigh*
the kool-aid is nice this time of year
-
Hi All,
I have a set of classes representing an instrument driver which allows for different firmware versions. The instrument can operate in certain modes, and depending on the mode it periodically returns a different number of characters. What I would have done up till now is have a "mode" enum in the parent, and have a single Read method and inside that using a simple case structures read a different number of bytes depending on the mode, and then parse the string accordingly. No problem here, very simple to implement.
What I want to do now is remove the enum, and make it a class. (it is my understanding that have type-defined controls inside a class can lead to some weirdness).
So I figure I create a mode class (and child classes corresponding to the different modes my instrument can be in), and then at run-time change this object. Each of these mode child classes would implement a Read function, and they would know exactly how many bytes to read for their specific mode. This seems a bit weird as I would be implementing the Read function in the Mode class which does not feel like the right place to put it. Alternatively I can implement a BytesToRead function in each of the Mode classes and then also a Parse method.
Does this sound sensible?
Is this going to be complicated by the fact that my actual class holding the mode object is an abstract class?
-
If you truly want to do this from LabVIEW do yourself a favour and get a serial sniffer and capture a download that has been successfully done via the AVR tools.
Doing this kind of thing from first principles is, in my experience, quite a bit of frustration finally followed by extreme satisfaction when it all works nicely.
Good luck if you are trying to write the bootloader, expect much suffering!
-
Thanks for the help everybody. I think I am going to take a little bit of time to digest this all.
-
Another neat trick is you can open an explorer window, and have a specific file in that folder selected using the /select switch when calling explorer from a command line. I tried this, this morning and it worked but for some reason the new windows were minimized. Probably another switch I'm missing.
That should work, it certainly works fine on my PC. It is the technique used by the nifty Show VI In Folder quick-drop plugin http://decibel.ni.com/content/docs/DOC-22461
-
I am getting there... slowly... sometimes I think my understanding of something is like a really strong permanent magnet that resists all attempts to change it, but once it is finally done it is done for good . At the moment my understanding is resisting change!
Can anybody furnish me with a simple example of when Preserve Run-Time Class is recommended/necessary?
Professional Society
in LAVA Lounge
Posted
I am a member of the IEEE, and have been since I was a student (so about 18 years in total). But honestly I do not really get much from it, other than a magazine each month which occasionally have some interesting articles.