-
Posts
4,883 -
Joined
-
Days Won
297
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by ShaunR
-
LabVIEW already supports 64-bit (File IO>>Zip). If you are after the OpenG stuff, it's all going on here.
-
DLL connect in LabView to control Signal Measure Unit
ShaunR replied to grba121's topic in Calling External Code
Ahh. But to call yourself a LV Architect you do. They even have special orgies every year that no mere mortals, however capable, can join in. They speak in tongues and discuss spells and other voodoo magic that no non-architect can understand or even hear without going insane. Then they go back to their local covens to plan the next act of debauchery with the new curses and sigils they have learnt. Well. Read it now It looks like an ActiveX driver so there's the problem in a nutshell. If it wasn't for that, I expect Gerd would have not needed as much patience (but you are right, he is a saint) -
DLL connect in LabView to control Signal Measure Unit
ShaunR replied to grba121's topic in Calling External Code
Damn. I've been posting on the wrong forum all these years. I'm neither an architect, nor virtual although I am advanced in years . -
Efficient (Semi) Large Array Data Set Manipulation
ShaunR replied to PJM_labview's topic in LabVIEW General
If you can afford to be a frame or two behind, then you might want to split the resizing and unpacking into separate pipelines. -
Named queue vs feedback node global queue
ShaunR replied to infinitenothing's topic in Application Design & Architecture
Indeed. However, by putting it into a sub VI it has only made it more application specific (what are the chances your global, global VI of refs has exactly the right datatypes and clusters from project to project?). For raw data on a particular project it doesn't really matter. You'll create all the queues and then discard them and create new ones from project to project.The advantage being "look Ma, no wires" rather than generic re-use. Once you start looking at messaging for control, however, you will be looking for a generic method and that is when named queues become far more attractive. This is a little VI you will find in almost all of my projects. I use to for command queues for services. It is not application specific since it does not have any application specific data types and look Ma, no wires. SR Queue.zip -
Named queue vs feedback node global queue
ShaunR replied to infinitenothing's topic in Application Design & Architecture
Don't underestimate dynamic queue selection but to add one more - "re-use". If all your global non-rentrant VIs are the same type, (a variant, for instance) all your globals' diagrams will look identical (it's only the refnum you are really after). Then you will notice that all those global diagrams are identical AND all you are doing is enqueuing and dequeuing these. That should be smashing your brain with the Hammer of Re-use Reminding but you will find it oddly difficult to push the Get Refnum, enqueues and dequeues down into a reusable, generic subVI. It's the same issue with events.Encapsulation doesn't enable resuse and no matter how hard you try to encapsulate to create a generic form (a requirement for this type of re-use), you still end up with a specific implementation. However, encapsulation and genericism can be achieved with named queues due to the "Obtain Queue" and is the main advantage of queues over events. -
Basically to echo what Neil is saying. I've recently been building and resolving these errors (I always get it with the package manager). Orphaned VIs or those in a conditional disable are usually the culprits. Sometimes VIs that are referenced on a diagram but not in a lib or project. If you get the VI search dialogue popping up (and you're fast enough) you can click on the dialogues' title bar to freeze it so you can see the VI its trying to load A failed search during build will always cause this error.
-
My guess is that your UDP read is timing out but, since you specifically ignore the timeout, your assuming it is receiving.
-
Well. It gives me the sh@ts (Queue the toilet humour )
-
I'm sure you are aware, but it probably needs to be stated that it is an infringement of the Mac OSX EULA to run it in a VM. They specifically code defensively against it (hence your abominable experiments) . Mac OSX can [legally ] only be run on Apple hardware.
-
Multi-platform binaries are far from trivial. LabVIEW makes cross platform development a breeze, but to create binaries for it to use is still very resource intensive especially as they have just added Linux and Mac 64 bit support in LV2014. That equates to a minimum of 8 different binary builds that must be created, maintained and tested on multiple operating systems, multiple hardware targets and multiple LabVIEW versions and lets not forget build tools, scripts and 3rd party stuff. Testing and debugging alone is a full time job in reality and Rolf has a life and paying work to factor in too. The good news is that once it is done. That should be it for a few years
-
There's an interesting RSA Animate by Dave Coplin. I'm not sure I agree with everything he says, but there are many salient points he raises as to why many feel dissatisfied with work.in the current age. Personally. I think the criteria for job satisfaction is a moving target and changes dependent on age and circumstance. In the beginning most people are primarily concerned with financial and educational reward (the latter mainly to enhance the former). Then family comes along and time at home and flexibility becomes more desirable and work is a means to an end rather than a personal journey. If you are middle class and in a specific field then once you have attained a certain competence in your field; exercising the limits of your knowledge and choosing the interesting tasks seems to be a primary consideration. Towards the twilight of a career, guarding that pension pot seems to be the primary driver. A rare few have a hobby that makes enough money to support a family with oodles left over for a car, house and yacht. Most are not in that category, but those that are tend to be extremely happy both in and out of work. There is a saying, where I come from. Job satisfaction is 20% of your wages. On the surface it seems rather trite except if you re-interpret wages to mean benefits. However, it goes some way to explaining why many are willing to do open source for pennies if not for free as long as a minimal survivable income is catered for.
-
Well. If it works, then it's probably enough. I'm a fan of graphs and stuff. What would be nice is if you graphed the points and either showed or allowed the user to select, with a cursor, the points on that graph - that's just me, though.
-
Well. Sort of relevant.... I have an automatic HTML document generator for help files. I looked at the LV Report Generation Toolkit but it was awkward and I settled on a templated system and regex replacement (header, body footer templates etc). I found that writing HTML with a WISWIG HTML editor (so you know what it will look like) and running a script against it with keyword replacement was easier and more flexible than building a HTML document with the LV Report Generation Toolkit for that use case.
-
TCP Write works when it shouldn't
ShaunR replied to Cat's topic in Remote Control, Monitoring and the Internet
You need to use "GetIpAddrTable" and then look at wType to see if it is MIB_IPADDR_DISCONNECTED. This just reminded me........ I was making fun of my Linux fanatic friend. I said you can tell the difference between a Windows and Linux programmer by how they approach a task. If the task is to tell if you are connected to a network. The windows programmer will call an API function to find out the network card state. A Linux programmer will monitor the LED blinking on the network card with a webcam, pipe it to a file then regex the file to see if the LED is on He scowled. Thought about it and then said, with a smile,. "Nope. We'd get an intern to watch the LED and SMS us on the yacht when it changes" - Touche!. -
There is a lot of information on interpolation in LabVIEW including examples which you can find using the Example Finder.
-
Well. you have descrete increments that luckily correlate to the index. So if your user enters 110 you can just divide by 100 (quotient) and it will give you 1 which you can pass to the index array function to extract the row. The fun begins when you want to get to the closest higher or lower than the value input
-
Error 2: Memory is full - but it isn't
ShaunR replied to ThomasGutzler's topic in Object-Oriented Programming
Naah. You only want to replace your home-grown. memory/handle hungry, local object database. We all know of a self contained, blisteringly fast, serverless RDMS that would fit the bill nicely I don't understand folks that don't use it even if it's just for error logging. -
Error 2: Memory is full - but it isn't
ShaunR replied to ThomasGutzler's topic in Object-Oriented Programming
Perfect use-case (on the surface) for a relational database. -
What do you call a 1 element buffer?
ShaunR replied to Aristos Queue's topic in Application Design & Architecture
Change the word *is* in the current APIs docs to *consists of*. Job done and you can move on . -
What do you call a 1 element buffer?
ShaunR replied to Aristos Queue's topic in Application Design & Architecture
I disagree with this statement. You can only access elements in order, for a queue and only at the end (FIFO, LIFO etc). That is not a restriction for a buffer which is just a common usage term for a storage area that tends to be (but isn't required to be) an intermediate step in processing. Unlike a queue it can be accessed any way you choose including randomly or in parallel, in chunks or whatever you decide. A buffer has more in common with streams than queues as streams are effectively managed buffers. As an exercise in pedantry (I think maybe in tune withe Darin here) A Pipe is none of the above. It is a redirection. (Although for IPC it is usually realised with FIFOs). However. I think you are trying to distinguish between a continuous flow with endpoints (like sockets) and a global shared memory area that can be read and written to/from (like mmap). So. I suggest the terms are correct. - [shared] Buffer and Pipe (although I would call the latter "stream" because I'm not a Linux fanatic). Maybe all that's required is a mnemonic to remember which is which (although if you concentrate on how transfers happen rather than what is transferred, I think it is more obvious) -
Transport.lvlib, which this package depends on, has been updated. It uses a new installer which this one will also use so I will leave it a couple of days for people to check out and break it - then update Dispatcher.
-
LabVIEW, Websockets, and SVG
ShaunR replied to smarlow's topic in Remote Control, Monitoring and the Internet
Close frame?