-
Posts
2,767 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Grampa_of_Oliva_n_Eden
-
-
Ding ding ding ding... we have a winner ... in my book.
Ben
-
If you agree that Tau should be added to LabVIEW, please vote for it on the Idea Exchange.
In the meantime, I have attached a VI version of the constant so you can start replacing that other pesky constant right away.
For more information, see the The Tau Manifesto
Happy Tau Day, everyone!
For member of the Engineering Honor Society (Tau Beta Pi) they can now update their signatures with LV constants.
Ben
-
I'm working with 3-point vectors (x, y, and t) where x and y define the location of point p and t defines the angular orientation of point p relative to the vector's frame of reference. For example, if vector AB is (2, 3, 30), that means point B (B is actually the origin of another frame of reference) is located at x=2 and y=3 in A's coordinate space and it is oriented +30 degrees with respect to A's coordinate space.
Now the problem:
Given vector AB in unknown coordinate space A, how can I calculate vector BA in coordinate space B? In other words, knowing only vector AB's values (2, 3, 30), I need to find vector BA. I'm pretty sure it's solvable mathematically--I can sketch it out on paper and visualize the solution. What I have so far works for some restricted situations but isn't robust enough to handle an arbitrary input.
Any ideas?
Without really thinking too much...
If you use complex notation the work is generally simler since you can just add vectors.
Ben
-
My boss needs me to create/find an object which converts compression force into rotational torque.
The object needs to be cylinder shape with max 1.5 cm height and 5 cm diameter. The max compress distance is 0.5cm.
Does anything like that in market?
A pinion gear meets that criteria. Combined with a rack.
http://www.sdp-si.com/eStore/CoverPg/Gears.htm
Ben
-
Thanks a lot!!!
The information here is of great help!
Glad it helped. That one example has been used to answer dozens of 3D questions.
Take care,
Ben
-
I have another problem.
Is there a way to adjust the Z-axis? I was able to plot my mesh but the Z-axis is not uniform with each plot.
Is there a way to programmatically control Z-axis.
Thanks again for the help.
Z Axis scale range.
See this thread on the Dark-Side were I posted a worse case tutoial.
http://forums.ni.com/t5/LabVIEW/Multiple-polar-plots-into-a-3d-plot/m-p/270676#M144155
Ben
- 1
-
Data.zipSorry for the earlier post.
I am quite new here.
Anyway, here's problem.
I need to plot my data from a set of text files and I want to present it like this Cone_mesh.jpg
However, when I try to plot it, what I get is this : Actual_plot.jpg
Choose plot style >>> Lines
What you have now is level lines.
Ben
-
I've been refactoring some prototype code that uses globals extensively. Consider the following situation...
One loop writes to the global infrequently in response to a front panel event. A parallel loop reads from the global on every iteration. My understanding is that LV creates a copy of the data in a global every time it is read (eager copying) rather than waiting to for someone else to attempt to change the global while the data is in use (lazy copying) before making a copy. Eager copying makes more sense for LV's primary market, but I've kind of been talking myself out of it.
Can anyone confirm?
as I understand them...
For any single global...
LV does a copy to all instances of the read when writing to any write local. 20 read locals means copy the dat 20 times bfore the write is done.
Ben
- 1
-
Hi Ben,
I decided to follow your idea of using lvlib for the aggregate classes.
I'm at the point where I'm about to refactor the test engine..
Now my question is...
Since the Engine must be spawned for each modem / radio combination being tested (minimum / usually 2), should it be a Dynamic Process? Or called from a Dynamic Process?
Or should the engine core simply be re-entrant? Or should I create a Dynamic Dispatch vi?
Or... should it be a Dynamic Dispatch set as re-entrant... And yes, I'm aware of the warning:
"Reentrant VIs can only have dynamic dispatch terminals if they share clones between instances. This VI preallocates a clone for each instance. You must either change the terminal in the connector pane to not be dynamic or edit VI Properties to modify the reentrancy behavior."
I have difficulty wrapping my mind around the Dynamic Dispatch.. The glossary does not help......
"A VI that defines a method of a LabVIEW class. Dynamic dispatch member VIs are VIs with the same name that occur throughout the class hierarchy. Similar to polymorphic VIs, LabVIEW determines at run time which member VI to call. "
(PS: yeah... it's my old nick... couldn't remember which email address I used for my other account)
The best I can do real fast is to show you the code.
Go to my image gallery on the dark-side here.
http://forums.ni.com/t5/media/gallerypage/user-id/9539/album-id/192
Starting with an image called something like "create new object" there is a series of images that show one method. there are are others but that is just what I have readily availabel to share.
Dynamic dispatching in non-LVOOP terms.
If you wanted to write this Vaporware we are talking about using non-LVOOP you would have maybe an enum that came along with all of your code that would select the proper falvor of code depending on the devices youare useing testing etc. This would be a lot of tedious work but you could do it. Dynamic dispatching moves that selection enum to the LV domain and LVOOP does the tracking and slection for you at run time without you doing anything other than describing the rules using the config options for the classes.
have fun,
Ben
-
FOr agregate classes (classes that have in them other classes) I will generally use a library and put them all in the library. This helps on the VI hierachy screen since I can colapse libraries and focus only on the parts I am developing today.
Ben
-
Hi Ray
To solve to problem with having tests running in parallel, I normally use Active Objects.
I.e. I dynamically create a Referenced Based “Test” Object when needed, and when that object is created a back ground process starts. So for every Object that gets created a dedicated process VI in launched. http://goop.endevo.n.../DesignPatterns
For the HAL layer, this is normally how my design looks like.
Cheers,
Mike
Ray,
OOP is al about "Patterns" and all I did was match your challenge with the posted solution.
TO All,
Any ideas on how to go about handling the "Who gets to use the multimeter now" question when multiple Active Objects are running independantly of each other?
Ben
Hi Ray
To solve to problem with having tests running in parallel, I normally use Active Objects.
I.e. I dynamically create a Referenced Based “Test” Object when needed, and when that object is created a back ground process starts. So for every Object that gets created a dedicated process VI in launched. http://goop.endevo.n.../DesignPatterns
For the HAL layer, this is normally how my design looks like.
Cheers,
Mike
Ray,
OOP is al about "Patterns" and all I did was match your challenge with the posted solution.
TO All,
Any ideas on how to go about handling the "Who gets to use the multimeter now" question when multiple Active Objects are running independantly of each other?
Ben
-
...
I want the architecture to be scalable to expect such an unexpected combination. I know the concept of superclass does not exist in LVOOP, but how would I handle that?
Basically, I want to be able to run tests in parallel using the same engine. But I do not want to create an engine that has a fixed amount of UUTs that are run. As a matter of fact, I want the same engine to run the tests on the low side as well as the high side while not caring that it is high or low (other than the child that configures the frequencies appropriately based on how or high).
Basically, I want to make sure I design the proper construct for such a solution using LVOOP.
Thanks,
R
I'll throw out one idea to address the unknown number engines running. Tomi wrote about a Worker Pool here.
http://lavag.org/topic/11362-worker-pool/page__p__68339__hl__worker__fromsearch__1#entry68339
I did my own version before reading how to do it better and used a control that I could write the target class (Child of generic "Do Something" class) to control its character.
Handling various hardware interfaces in a "instantly infinately configurable" manner is a question above my pay-grade (free). Preventing conflicts between the various Workers accessing that I/O is something I'll sit-back and wait for others to advise.
Ben
I'll throw out one idea to address the unknown number engines running. Tomi wrote about a Worker Pool here.
http://lavag.org/top...h__1#entry68339
I did my own version before reading how to do it better and used a control that I could write the target class (Child of generic "Do Something" class) to control its character.
Handling various hardware interfaces in a "instantly infinately configurable" manner is a question above my pay-grade (free). Preventing conflicts between the various Workers accessing that I/O is something I'll sit-back and wait for others to advise.
Ben
Can we put restratints of any kind on the I/O demands or do we we have to allow for high throughput performance?
WIll hardware be in the same area, room building city...?
Ben
- 1
-
Well the customer is always right. Or at least they always need you to make them feel that way. I have found that putting an idea into the customers head in such a way that they think it was their idea is the best way to handle these types of customers. The best way to do that is with the right questions.
[OT]
I had a boss that never liked any idea anyone ver came up with but he liked his and eventually I figured his memory was not so good. So the phrase "I was thinking about that idea of yours and think is was a good one..."
He was much easier to manage that way.
Ben
-
Hi,All:
Recentely I write some code for system integration,however,I am often confused about the LabVIEW achitecture.
I want to apply a standard architecture for all kinds of applications(Real time DAQ Acquisition,Audio analysis and so on), but it is difficult for me to make sure which type of architecture is most suitable, I hope the architure can well integrate with the following features: Multi-task(DAQ application), Good error handle mechanism, Good for system update.
Some achitectures I saw are options for the requirements:
1,State machine with String meassage or Queue based(Such as JKI State machine): This is traditional way to write LabVIEW code,but
this is a single task achitecture,if I setup a high speed DAQ and analysis system. This achitecture is limited for this kind of application,
because DAQ system should have 2 task: Data acquisition and analysis,even data storage. So how to use this type of state machine for multi task
application?
2,Engine based State machine architecture: Setup some engines(DAQ engine,Error handler engine,Data analysis engine),LabVIEW UI just control the
engine run mode, using message queue to communication with various of engine. I don't know how to use it in Run-time mode,because this achitecture
is based on Queue message and Dynamic call mechanism. so the engines should be VI rather than EXE.
3,LabVIEW OOP architecture: I hardly use this architecture,how about it? Is this a suggested way or best way for system architecture?
The above is 3 main architecture I often see,could you give me some suggestions for selecting the best architure?
Thanks,
Standard acrhitectures are good for standard problems but your is not standard so... Let the application determine its structure. Imagine implementing the application a 100 years ago with faithful assistants (vey fast assistants) that tielessly carry out their job. Give them official titles and draw up how they interact to accomplish the job. Use that set of documentation to guide you program development.
Whatever design you come up with can be implemented in LVOOP if you are up to it. The ability to dynamically load now classes is a nice feature that allows modes to application to support future changes but it does introduce some complexity that you don't run into with a non-LVOOP app.
Just my 2 cents,
Ben
Re the QSM
I was describing what I was going through to convert an app developed using the QSM to my wife and buddy Friday night and stumbled apon the explanation
"A QSM is the Worm Oroboros implemented in software. It eats its tail and is best managed by keeping it starved. Let it feed iteslf and it will explode."
-
resolved on the dark-side... re-entrant switch
Ben
-
Well done! Remove this line fix the issue.
Anyway, I don't know how this key has appeared in my LabVIEW.ini.
It would be interesting to know what is the purpose of this line and if the behavior can be reproduce on other LabVIEW installation.
Thanks for help,
Olivier
After thinking about it, I have to confess that I think I have seen that as well but did not stop to question if that was right or wrong. When I saw it, I habitiually hit "ctrl-a" and did not give it a second thought. So if hitting "ctrl-a" gives you all of the classes then I ahve have seen the same. If not, forget me.
Ben
-
The bits in that number map to the buttons on the tool bar of the hierachy screen. I had reported a bug where LV started forgetting my preferences for that screen. I was able to force it by copying that switch from an older version.
Maybe my bug got fixed?
I'll have to look.
Ben
I think that bug was fixed.
Ben
-
At a guess, this line looks the most relevant:
Try removing only it and see what happens. I have no idea what that config token controls, but it's the only one I see that I'm not at least vaguely aware of its purpose, and its name is related to the problem described.
The bits in that number map to the buttons on the tool bar of the hierachy screen. I had reported a bug where LV started forgetting my preferences for that screen. I was able to force it by copying that switch from an older version.
Maybe my bug got fixed?
I'll have to look.
Ben
-
RE: CS terminology
Yes those term would help those being tested if they know them but the time the same in writting the question could inhibit the non-CS types.
I would like NI to put together an glossery of all CS terms that COULD be used on a CLA exam. It would include all of those phrases that non-CS type may not be familiar with by name.
The CLA Glossery would;
Be posted as part of the exam prep matial
Included in the CLA application
Included as part of the exam packet.
I feel it would;
help the CS types relax about the terminology
Aide in prep for the exam
Allow non-LV types to get a better picture of what a CLA has to know.
I do not feel it would in anyway decrease the effectiveness of the exam. After all, the exam is not a CS terminology exam.
Re: What Aristos said about a CLA training rookies. Thank you!
Ben
- 1
-
I really like this idea. (Maybe because I think I would do much better in that kind of test.) I don't know how practical it would be to do in real-life, but it is much more aligned with the skill set I think of when someone talks about an architect.
...
Lot s of good thoughts there. Please excuse my laziness with quoting you.
The interactive nature of a review process would help bridge the gaps transfering your solution to the minds of those ding the evaluation. I think it could also help out with the terminology barier (Non-CS types who kick-ass in LV but never took any official cousrse... How exactly do you pronounce "boolean" anyway?) as well. I had been designing application for years before I figured out what "Use Case" was talking about (Yes, I admit it ! I was teaching myself to design and implement software before any college ever concidered including it as course work. I recall having a PHD from Pitt floowing me around asking question while I was fixing his hard-drive.
Re: Patterns
The intent of Patterns serves multiple roles. Not only do they help us idientify solutions to well defined situations but they also are a form of short-hand that should eliminate the need to explaining them.
I hope you find the chance to confront this challenge again some time. I do not feel I am alone in saying;
"There is chair with "DAKLU" in the virtual hall of CLA waiting for you."
Take care,
Ben
-
Resolution:
...
And less time to do things like... you know... earn money.
I am glad that you resolved the issues.
I am still opposed to timed testing but I wil have to wait to push that agenda again.
Take care,
Ben
-
Hello All,
I appreciate the feedback and will attempt to put it to good use, beginning right now. I can provide some history and some insight into how came to where we are and where we are going as well as information on the appeals process.
...
We understand that failure is a frustrating experience – especially for a person with a good amount of experience and obvious esteem by his peers. There are numerous reasons why someone with good credentials can fail. They might get distracted and spend too much time on particular area; they might simply overlook one or more key deliverables.
...
Thanks
Zaki Chasmawala
Senior Engineer - Training & Certification
National Instruments
As a measurement guy and the dyslexic mascot I have to ask if the test results are true measurement of a candidates worthiness for CLA or are the number indicative of an artificial value that requires skill other than those required for a CLA.
I feel a timed test introduces many other factors that we can not compensate for.
Alternatives?
THe certification can be turned into a project. Candidate gets exam spec days ahead of time to allow them to review and think about. They should also be able to submit interogatory Q's to get the spec clarified (I was confused by more than one spce in the exams that were not clear to me). These interogatories would play a part in the evaluation since good questions are part of what a CLA really has to do. The CLA could generate diagrams to doc their design and submit same. If the CLA candidate chooses to use tool-kits or re-use code, they would submit copies of these tool-kits prior to the exam.
On the day of the exam the Candidate would dial-in for a web-Ex to present the design and answer questions.
So no time limits and no coding.
Just my two cents,
Ben
And re-certification changes as well!
Every five years the re-cert candidate will submit code examples of projects developed since cretification. The Exam would be a casual review to ensure the candidate still works with LV.
All of the interesting stuff learned by the Examiner should be documented and fed back to NI training so that the loop closes and teh entire LV world "is better for this..."*
Ben
* From The Unreachabel Star, Man of La Mancha
- 2
-
Everything you wrote seems correct. Did you have a question or an observation?
Like the manual says, arrays of flat data are stored contiguously. Arrays of variably-sized data are not stored contiguously, though the array of handles to those elements is stored contiguously.
If you ask LabVIEW to flatten the data, say to write it to a file in one pass, it will have to allocate a string large enough to copy the array into. There are other, more clever, ways to write a large dataset to a file.
Welcome to LAVA!
Yepper!
BUT provided you are not trying to prove that monkeys with typewritters eventually writting the King James Bible theory of evolution then we usually have to realy on a human to generate that much text. But when it comes time to monitor their blood pressure while typing, those numbers can pile up fast so that is the trap that often trips us up.
Ben
-
How do you not see that as dataflow? I'm a bit confused.
It sis an exception to pure dataflow since the VI's following the skipped sub-VI execute even though they do NOT get the data from the skipped Sub-VI.
Ben
Issues TCP-ing with a C program on same computer
in Remote Control, Monitoring and the Internet
Posted
Plese forgive me for not reviewing this thread for Qs already asked.
Desktop Trace Execution shows no clues?
Doesn't NI Spy have TCP stuff buit in?
Do you have acces to a LAN analyzer or a Sniffer?
Dumb questions can and should be ignored.
Ben