Jump to content

ShaunR

Members
  • Posts

    4,849
  • Joined

  • Days Won

    292

Posts posted by ShaunR

  1. who wrot ehti

    NI evaluation kits with Hardware only have 'out of the box' solutions that work with an ARM7 or a Cortex-M3. I am interested in an NI "out of the box" solution supporting the ARM9 to minimise configuration time and increase my productivity.

    I recently emailed 'Jamie Brettle' (Product Manager for LV Embedded S/W) who wrote this article. and asked him if NI has any plans to release something for the ARM9 and here was his response:

    "Just to give some context in the choices of chips that we picked - given ARMs plans for the Cortex M line of processors, we anticipate that their performance will reach that of the ARM9 line while providing the benefits of the Cortex architecture (reduced power consumption, memory size). When this happens LabVIEW should be able to take advantage of this additional processing capabilities.

    I'm not sure of a timeline for that (both from NI's and ARM's perspective) but in the interim we will keep an eye on the requests from our customers to provide an out of box ARM9 experience.

    I will keep you up to date with any developments that happen."

    So if you have written LabVIEW code for an ARM9, how did you find the experience and would you have preferred an "out of the box" solution if it existed ?

    regards

    Peter Badcock

    Product Development

    ResMed Ltd

    I was interested in the ARM deveopment toolkit and asked the sales rep to come in, demo it and leave it with me for a couple of weeks. Long story short, I didn't bother with the demo kit and he left with it.

    The toolkit I saw was basically a C generator. there were limited vis that enable you to do certain things, but you cannot modify them. If you look inside theres nothing in them. When I asked (for example) "this matrix display demo, how do I modify it ?" He said you generate the c code and modify the c code to whatever you want :blink:

    It looked to me like a C template generator that you then go into and modify in the C environment of your choice. You might as well either write in in C in the first place or give it to a C coder since they are 10-a-penny. The sales guy couldn't really come up with a good reason for me to spend £3K on a toolkit when we've got ten C programmers on the payroll.

  2. Our company has been getting an increasing number of orders for devices that use CAN bus. I have zero CAN bus experience so I'm shopping for a good (and preferably cheap) CAN interface/adapter that comes with handy-dandy LabVIEW drivers and/or examples to use for testing. Thanks in advance. cool.gif

    As its your first time, go with what you know!

    http://www.ni.com/can/

  3. The program reads voltage that is changing with time .. but from testing i have a table of pound force VS voltage .. SO how can i calculate the voltage input ( thats always changing with time ) and convert that value to pound force.

    Use the express vi "Scaling and Mapping" in the "Signal Operation" palett and choose "interpolated". You can then define your table and use the vi to convert your readings fr any voltage.

  4. I think I am hijacking this thread.

    I think it was dead anyway :P

    I am also confusing the issue. I am pretty sure that OOP of some form in LabVIEW is more attractive to an OOP programmer from another language than no OOP in LabVIEW, but I too am uncertain about using LVOOP with beginners. I am a very poor OOP programmer that is really enjoying learning. I think LVOOP is a tool that I can use to simplify coding for others. I will try the experiment.

    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 :)

    I think that LabVIEW objects can be used without adding the complexity you talk about. I also point out that non-OO programmers are usually very comfortable using C++ and .Net classes in LabVIEW. You don't have to know how to create a class to use a class.

    But I am sure there is a topic about this elsewhere.

    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? :P ) 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.

    • Like 2
  5. .....I find it takes almost a year (10-20 hours /week) to get someoneprogramming by themselves in LabVIEW even if they are very good at Javaor another language.....

    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.

  6. Hi,

    I'm new to this forum and also a beginner in labview. Currently i'm doing a project that requires me to send sms to mobile phones with GSM modem. I'm using the GSM modem (usb), which is connected to the laptop. I wish to send sms to mobile phone using labview 8.6. Would anyone give me some advice how i can get started and have the vi as a reference? Thanks, will greatly appreciate.

    Fellie

    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.

    • Like 1
  7. I'm working in a food plant and we are required locate the PC 100ft from the USB Daq device during testing (Stay out of production's way).

    The client bought a USB to Ethernet converter box to do this. It was tested with the system and it seemed to work.

    Today it is not working. We can find the Daq device in Max no problem but as soon as we start acquiring data The device gets lost and Max no longer sees the device.

    We took the computer and pluged it into the daq device bypassing the USB extender and sure enough it worked with no problems.

    The USB to Ethernet convert specs say it can transmit up to 1.5MB/s. I am only sampling at 100 Samples /sec which is nowhere near that rate.

    Has anyone else experienced a problem with USB extenders? If so how did you fix the problem? or

    Does anyone know of a proven USB - Ethernet - USB extender that will work with USB 2.0?

    Thanks

    Mark

    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?

  8. I currently have a few numerical indicators in the application I'm working on. When the output from the indicators reaches a certain level the indicator begins to blink.

    Here is my question:

    I would like the user to be able to click on the blinking indicator to bring up a cluster control which contains buttons for certain options in dealing with the alarm. Is this possible? If not what would be the best option?

    I don't know how to make an event happen when the user clicks on the indicator.

    Any help would be much appreciated, thanks alot!

    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.

  9. What you say about calling the code in the runtime is of course correct.

    Reading the site it seems that they simply do a web crawl and assign the number of hits to the number of users somehow. Not terribly reliable but it's at least SOME kind of indicator I suppose.

    I've never used NXT so I'm not aware of the differences. I was led to believe it was more or less LabVIEW (or at the very least based heavily on LabVIEW). I suppose exposing kids to inherent parallelism might not lead to much joy on Christmas morning....

    Shane.

    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.

  10. While the IDEs may be radically different, are you so sure that the language "behind the scenes" is so different to warrant calling it a separate language to G?

    Shane.

    The language "behind the scenes" in Labview is C++. "G" IS labview.

  11. thanx alot but there is one problem i am using labview 8.2 and the attachment saving in 8.5

    could u plz reupload in 8.2 version

    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.

  12. Actually Labview does type check at compile time. Labview is always compiling your code behind the scenes while you're in the dev environment. Ergo, in Labview compile time == dev time. (Compiling is part of the process of building an executable, but building an executable != compiling.)

    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.

    No. I imagine a properly implemented generic vi in Labview would behave in much the same way as a polymorphic vi, except that you wouldn't have to write individual sub vis for each data type you want to support. You create a single vi with 'type placeholders' and Labview automatically creates the correct "sub vi" based on what you connected to the input terminal.

    So all we are really talking about is a "macro" for creating polymorphic vis?

    Some prims do, but we can't create classes or vis that do this. That's what Tomi is asking for.

    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. Nope. Lost me again :P

    Err.. I think you misunderstood. Sorry, I need to try to be more clear. I am talking about only static i.e. compile time type systems. Forget dynamic languages for now, I am not referring to dynamic type systems. I don't think dynamic type systems fit to LabVIEW dataflow paradigm very well.

    Indeed. But most of your article was about specifying dynamic types.

    In a statically typed language like LabVIEW, type checks are done at compile time. In LabVIEW the type checks are done actually at development time, but it doesn't matter for now. The whole idea of static type checking is to prohibit type mismatch at runtime. This far we both agree.

    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.

    Now generic programming IS NOT the same thing as dynamic type system. Generic programming can be made 100% type safe using type parameters and compile time type checking with a static type system. All type related bugs can be avoided like currently in LabVIEW.

    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 :P ).

    The actual type comes into play when you place a VI that uses generic types on a block diagram. When you connect a wire with a specific type to a input that depends on some type parameter T, the type parameter T gets bound to the type you connected. That fixes the type of all inputs and outputs that depend on this particular type parameter. In dynamic programming, the type of the output terminals would be of type Dynamic. With type parameters the type of the output is fixed to something specific instead.

    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?

    As an example, consider a method creating a LIFO (last in, first out) stack of anything. In dynamic programming you would have an input of type Dynamic. The output terminal returning the stack would be of type Dynamic as well. In type parameter based generic programming the input would be of generic type T and the output would be of type Stack[T] (stack of items of type T). When you connect say integer I32 to the input of the create stack method, then the output would become fixed to a type Stack[i32] (stack of items of type I32).

    Hmmm. Obviously not what I said previously then.

    This is what is really confusing :unsure: Don't most of the primitives do this already (numeric functions, comparisons etc)?

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

  15. NXT-G (Mindstorms version of LabVIEW?) is listed at # 35 (0.237 %), one place above LabWindows CVI (#36 - 0.226%) whereas LabVIEW is at #48 with 0.162%.

    This would place the Language G at a total of (0.237% + 0.162% = 0.399%) which would place it at #26, one place ahead of FORTRAN.

    Aren't NXT-G and LabVIEW actually the same Language (G) ?

    Shane.

    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.

    NXT-G%20Clap.png

    You can also see that it is completely sequential.

    • Like 1
  16. Do you mean all the links you've ever posted? Hmmmm - I don't think there's an easy way to do that other than editing each individual post. Anyone with php knowledge got any ideas?

    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

  17. Hi

    I posted a new article to ExpressionFlow regarding type parameters. For me it is the one of the most missed features in LabVIEW. Check out the post.

    Introduction to Type Parameters

    EDIT: Seems like the links to expressionlfow still don't work from LAVA. Please copy paste from below

    expressionflow.com/2009/10/23/introduction-to-type-parameters/

    Tomi

    I don't get it :unsure:

    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?

×
×
  • Create New...

Important Information

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