Jump to content

ShaunR

Members
  • Posts

    4,881
  • Joined

  • Days Won

    296

Everything posted by ShaunR

  1. I think it was dead anyway Indeed. I believe LV OOP was invented to give C++ programmers a warm fuzzy feeling and entice them to use Labview. The advantage for beginners that Labview brings is that they are able think in a sequential manner to start with and lay down code in the same order as their thought process when analysing problems. This means that they learn the environment a capabilities of LV quickly whilst still producing tangible results (i.e code that works) without being encumbered by how it works. Once they get used to using LV as a symbolic "scratchpad", they quickly move on to more complex subjects as a natural progression. They also don't have to worry about pointers, memory management and all the other obnoxious stuff that makes other languages so flexible so their time is spent on the problem rather than managing code. However, if you sit them down and explain that you have to spend 3 weeks writing code with (from their point of view) no discernible benefit apart from being able to make other code work. They quickly get confused, frustrated and bored. If they can sit down and in 10 minutes turn a light on and off, or make the computer beep every time they walk past it.....then you have an audience This is true. But when it doesn't give you what you were expecting, then you do! Just because a program contains objects (C++ .net or anything) doesn't mean it is an object orientated program. Non OOP programmers view these objects as "functions" to extract whatever data they need. They (I? ) mainly view them as a container with specialised features not dissimilar to a vi with a case statement that enables selection of a series of sub vis. This view is far less abstract and easier to digest for virgin programmers.
  2. That's where your problem lies. I find it takes 1-2 months for a non-programmer that is eager to learn. You spend 6 months listening to text programmers whining about how they used to do it.
  3. A while ago I was faffing around with mobile phones and knocked this up. Should be a good guide to what you want to do.
  4. 1.5 MB/s is a bit of an odd number. 10BaseT is 1.25 MB/s and 100 BaseT is 12.5. If you have been using it for a while and its stopped working. then it probably has developed a fault and just needs replacing. (Just though I'd clarify that since it was not clear). If you quickly tested but found it unreliable over a period. Then there are a couple of things you can try (I presume you've eliminated the usual stuff like dodgy wires and poor connections). Some devices only support half duplex and can get confused by the probing if set in auto, or can succeed in full auto due to response times but fall over when the inevitable contention occurs. You can try explicitly setting the PCs network to "Half Duplex" and see if that helps. If your device supports wake up on lan. It could be going to sleep. To wake it up, you have to send a "magic packet" your documentation may tell you more. What is the model/manufacturer of the device?
  5. The "Event Structure" has a mouse event case you can select and tie it to your indicator. Then you can invoke another vi with the cluster on its front panel from within the event case.
  6. Unfortunately not. LV 2009 has problems if trying to save to a version less than 8.6 (like completely crashing).
  7. There is a NXT toolkit for labview. It has its own separate "G" compiler. And I believe you can write code in labview which can be imported into the NXT software. How that works, I don't know. Perhaps one of the NI lurkers could shed more light.
  8. Version 2.0.0.0 is now available. Now includes the following: Added support for Tip Strips Now also scans the block diagram of vis and extracts string constants. Added an example build.
  9. The language "behind the scenes" in Labview is C++. "G" IS labview.
  10. As you probably read on the other thread. I cannot save to a version less than 8.6. I did try to download 8.6 and install it to see if I could do what Asbo did, but it fails to install in Windows 7. Perhaps some kind soul will convert it for you as Asbo did for the other poster.
  11. Well. Its not the only reason. It also creates a copy of the data.
  12. I'm no expert on compilers (and I avoid knowing about low level stuff like the plague when I can). But i don't think LV continuously compiles. If I remember correctly, it only does it when you click the "run" button. But that may have changed in recent versions. So all we are really talking about is a "macro" for creating polymorphic vis? We can certainly make polymorphic vis (like the read from spreadsheet file.vi). The only difference between the prims is you cant see the source. There may be a technical difference since we all know LV is really just a big API with a graphical front end, but from the users view it is the same. Its the same with XControls and native controls.
  13. ShaunR

    Alfa String

    I think his definition is "A sense of superiority to all others"
  14. Nope. Lost me again Indeed. But most of your article was about specifying dynamic types. Well. Except for terminology (I think). I was talking about "Strict" type checking rather than "Static" linking. LV doesn't type check at compile time. It does it before compilation to make sure you don't do anything the compiler will object to. Its more like "syntax" checking. OK. I was under the impression that you were promoting dynamic type checking rather than "Generic Programming" (which I've never heard of before) since most of the article was about types. Re- reading it for the 8th time and in that context, your comments in this thread make a bit more sense (hopefully ). We can already wire a number of types to (taking your example) an add function. Is the only concern that it fixes the output to the same type? Are you saying that we should also be able to wire the inputs of an add function to (say) 2 double numbers and wire directly to a string without converting first? Hmmm. Obviously not what I said previously then. This is what is really confusing Don't most of the primitives do this already (numeric functions, comparisons etc)?
  15. I think I see what you are saying. I think the difficulty is that the type philosphy of a language is generally defined at the languages conception as to whether the reponsibilty of type information should be in the compiler or the run-time environment (or both and how much in each). Those that choose "compiler" or "run-time" are pretty much stuck with it and only the hybrids are capable of moving towards natively supporting one or the other. Thats not say though that strict typed systems are unable to "emulate" dynamic typed systems or vice versa. Its just its not natively supported which is I think is what you are suggesting for LV. I think also its a personal choice as to what a particular programmer programmer is comfortable with. The arguements are stacked equally on both sides. Dynamic typing has the advantages you have outlined. But it is also a lot easier to shoot yourself in the foot. Even with the polymorphic vis that Labview provides, it is considered good programming style not to use this feature and instead explicity cast it to the receivers expected type for this reason. For that (amongst others), I prefer strictly typed languages and (if there is a choice of equivelents) choose the strictly typed every time since I don't have many feet and theres too many holes already .
  16. NXT-G is very different. It doesn't have the granularity of LV and is more akin to a LV toolkit rather than G itself. Saying they are both "G" is a bit like saying Delphi, C++, PHP, Java etc are all "TEXT". This is what NXT-G looks like. You can also see that it is completely sequential.
  17. Search and replace SQL on the database with PHPMyAdmin. heres an example. Its not that difficult. http://www.zimmertech.com/tutorials/php/60/mysql-search-replace-phpmyadmin.php
  18. I don't get it Labview IS a strictly typed language (only functions of the same type can be connected and a conscious decision to "cast" must be made to other types) as opposed to (say) PHP which isn't (anything can be assigned to virtually anything). Delphi is another example of a strictly typed language whereas C is loosely typed (I think). The add function you describe is a strictly typed primitive with polymorphism which, in other strictly typed text based langauges, would be an overloaded function. So I don't really see what your getting at. What am I missing?
  19. Do you think that will let me save it in 8.0 then?....lol.
  20. Whilst a "State Machine" (action engine) has many advantageous features. A state machine is used to "break" the dataflow feature of LV so that so that a program can "branch" dependent on dynamic conditions. Your requirement has a sequential nature and doesn't really require one ("Do this" THEN "Do That" THEN "Do It All Again"). What you will end up with in your situation is either sections of code waiting in a particular state until something happens (which deteats the object), or lots of code to check state information to enable a decision to be made on which state to execute next (messy). I would put each "action" into a sub and vi use labviews dataflow to sequence the operations so the top level vi would be farily simple and look something like.... Initialise.vi Heat Up.vi Stabilise.vi Aquire.vi Shutdown.vi But I like simple things
  21. Me too. I even deleted bits until I had just an event case left.....still crashed when trying to save. One point to the man with the magic digits. The secret?
×
×
  • Create New...

Important Information

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