Jump to content

crelf

Members
  • Posts

    5,759
  • Joined

  • Last visited

  • Days Won

    55

Posts posted by crelf

  1. Windows is not deterministic, and should not be used for an application that needs to maintain timing less than 1 ms.

    Quick clarification: Windows *is* deterministic, if your acceptable jitter is high enough. LVRT is more deterministic than Windows, but you can't say an OS is deterministic or not - it all depends on your use case.

  2. The more you build a relationship with your sales guys (local and inside) the better they'll understand your expectations and requirements. Remember that most of us aren't the architypal NI customer: we usually can put a system together on our own, and don't need a lot of help, but NI gets a significant portion of their sales from newbies that really appreciate someone in-the-know walking them through it. And, when it comes right down to it, NI's sales guys are there to, well, close sales - and few sales guys closed extra sales by doing nothing. Build a relationship with NI, and overtly tell them how you want your relationship to be - then you should get fewer direct sales calls.

    They'll still track your use of their site (and why not? it's *their* site afterall), but you can mould the relationship.

    ...something tells me they should call them something other than "private message".

    There's no such thing on the interwebs.

    try asking them nicely to stop doing it. it never hurts to ask (nicely).

    Right.

  3. Any interest in using CrowdTilt or similar to raise funds to contract out the migration? I would chip in.

    Or Kickstarter.

    That said, I'm not sure how easy it would be to contract a migration like this - the site's in a pretty bad state, and I think it would take people with a little OpenG knowledge to do it effectively.

  4. Hide the real string control off screen that has focus, then have it use the event for change value updating the string control on screen.

    You disgust me.

    ...my solution was to have a frame decoration, with the same color as the panel, that I position exactly where that ugly black box would be. And the decoration is higher up in the panel order than the combo box.

    See, now, I like that!

  5. Why do your objects have lifetime? Processes (VIs and communications channels) have lifetime. Data does not. These patterns that you're developing in your code come about because of the co-joining of these two concepts, an artifact of other programming languages that are piss poor programming models for a parallel environment.

    :thumbup1:

  6. Some are better than others.

    Agreed.

    But a single byte (max 256 permutations) coupled with 2's compliment yields many more collisions than is useful.

    Not agreed - it's certainly very weak, but that doesn't mean that it isn't useful as a really gross check. The data that I'm sending/receiving has type checks on either side, so coupled with that, this CRC method is okay as a gross indicator step of a multi-step check. I certainly wouldn't suggest it for important or deterministic streams, especially if it's the only check used.

    Anyway, if I'd designed the system I wouldn't have chosen it, but I'm not going to call up the hardware vendor and tell them I refuse to use their hardware just because their CRC isn't up to snuff. :)

  7. As an aside.......

    2's compliment as a CRC really sucks. For example, just try entering the string

    
    PLPARM01:0500000000:0400=32
    
    [/CODE]

    Well, one could argue that any CRC sucks, as there aren't completely mutually-exclusive signatures for all possible permutations of a string input. I'm not saying it's the best CRC, but it's better than nothing in most practical cases, and it's what the COTS hardware manufacturer chose, so I'm stuck with it.

  8. I've seen LabVIEW mature as a programming language greatly over the years, and one thing that is incredibly satisfying to me is the growth of design patterns applied in LabVIEW - especially the surge over the last couple of years. To that end, I was wondering if anyone would like to take a stab at expanding the LabVIEWwiki.org design pattern category? Some of the existing sections could do with a clean up, and there's a bunch of patterns that are missing (especially OO patterns). I know that ni.com has several really good pages on these patterns, but I'd like to see a place for them that's community driven and community editable <- these mean that the patterns can grow beyond just the ideas of NI.

    For those who don't know (don't make me come to your house and slap you - no one wants that), LabVIEWwiki.org is, as it's url suggests, a wiki of LabVIEW goodness, and is maintained by the same good folks that bring you lavag.org. It has some awesome backdoor sections like my favorite: LabVIEW configuration file - go on, dig in there and waste a few hours of your life :)

  9. Ah, this is actually one I don't like.

    Well then you're a stupid poo bum doodie head.

    The syntactic significance of /* ... */ is moot in LabVIEW - what else could a free label be used for on the block diagram but to comment?

    Lots of things - like custom classes of tags that cen be read by scripting nodes (eg: run a report that scans free text labels that are a particular color or start with a particular tag to show all those "fixme" notes).

    I particularly dislike the color contrast chosen for the OpenG comment. I see no value-add except having more colors on your BD.

    It wasn't as much chosen for OpenG, it's an already accepted standard in multiple programming languages - to make it something else is unintuative.

    • Like 1
  10. How about this?

    post-107-0-98195900-1331745133.png

    Nice work todd - that's exactly what I needed! Nothin' like LAVA to feel humbled :)

    OT: Does the Code Capture Tool let you grab control/indicators from the front panel too, or did you edit that in?

    It lets you grab FP nodes too, but with some property exceptions.

  11. So I need to suffix a string with a CRC, and the manual that I'm working with is very sparse on details:

    Checksum must be formed and added to each command. The checksum is the two’s complement. The checksum itself is in BYTE format and thus it may rotate over the max value upon calculation.

    Yep, that's really about all I know :)

    So, for the following ASCII string example:

    PLPARM0001:05:0004=00000032

    the manual tells me that the 2s complement is 0x2E.

    So I know how to do a 2s complement of numbers, and I can think of several ways to do it to a string (or, at least, representations of that string), but does anyone out there know the "right" way to do this before I try to brute force it?

  12. I created two new nodes in LabVIEW. Really neat, eliminated a problem I was having where the existing G solution was too slow. Then I discovered that one of the nodes inadvertently created a hole in the protections of both VI Server security and library encapsulation. So I patched that. And now it was slower than the original solution.

    Story of my life.

    I feel like Dr. Frankenstein having to shoot his own creation just because it started eating a few villagers. *sigh* Back to the drawing board...

    One must consider just how important those villagers are/were.

    PS: That's Franken-steen!

    young_frankenstein1.jpg

    Feels a bit like watching "What's My Line?"

    Sir, you date yourself! I had to look that one up (I was intially thinking of Whose (sic) Line is it Anyway?)

×
×
  • Create New...

Important Information

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