Jump to content

Grampa_of_Oliva_n_Eden

Members
  • Posts

    2,767
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by Grampa_of_Oliva_n_Eden

  1. No I hadn't, but I just did. :-) Failed in both Windows Server 2008 and Vista. Not that I'm really surprised. From what I've been reading, MS changed their network implementation for Vista/2008/7. So if it doesn't work in one that might make it more likely it wouldn't work in the others.

    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

  2. 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?

    post-7603-0-84059000-1308119754_thumb.pn

    Without really thinking too much...

    If you use complex notation the work is generally simler since you can just add vectors.

    Ben

  3. 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

  4. 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

    • Like 1
  5. 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

  6. 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.

    post-941-0-53784500-1306406297_thumb.png

    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.

    post-941-0-53784500-1306406297_thumb.png

    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

  7. ...

    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

    • Like 1
  8. 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

  9. 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."

  10. 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

  11. 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

  12. 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!:rolleyes:

    Ben

    • Like 1
  13. 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

  14. 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

    • Like 2
  15. 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

×
×
  • Create New...

Important Information

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