Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Everything posted by Phillip Brooks

  1. If you're not getting to fancy, maybe websockets? http://lavag.org/topic/13777-hello-websocket-and-svg-goodbye-web-ui-builder/
  2. Thank you LAVA! The hacker of yore did not know that Uniterated For Loops do not pass References! The database is queried and sometimes (seldom) returns ZERO elements. A subsequent UPDATE statement was trying to update ZERO records in a loop and there was no shift register for the DB Connection reference. The next function after the loop was querying the DB with a null connection ref. Now I can relax before going for my echocardiogram today...
  3. that database application that everyone hates to use, that was written 10 years ago (by a hack) has a 'problem' that should be easy to fix. You open the top level BD and VI hierarchy. You see something that made you shudder two years ago when you tried to fix something last time and you just want to run away... Maybe I should just rewrite it... Yeah... Thats it. A rewrite... How hard can it be to devine the undocumented requirements from this steaming pile of...
  4. Maybe the Dell Duo hybrid is a choice. http://goo.gl/kaJy7 Tablet priced, reversible touch screen gives you sort of a tablet, but has keyboard and usable ports. Dual-boot and run LabVIEW? I wonder if there is a lighter version of Linux for this netbook; or maybe jolicloud support...
  5. For some reason, I seem to recall that the large terminals were introduced at the same time as NI's Lego MindStorms software. Aristos Queue is the 1%! Occupy the NI Forums! Don't buy into queues and LVOOP! Down with him and his ways! (Only kidding )
  6. UTC in the news... http://www.popsci.com/science/article/2011-10/dutch-physicist-says-special-relativity-explains-faster-light-neutrinos
  7. So today I learn that LabVIEW has a function that forces a data copy (artificial data change). The "Always Copy" function in the memory control palette should make my merge VI safer, need to test this out...
  8. When the LED color changes, this usually indicates a change in line speed (Gb/100Mb/10Mb). How exactly are you disabling the NIC? I was just playing around this weekend with my NAS at home and had to 'default' the router it was connected to. My netbook PC was recently rebuilt with Win7 and I saw that there is an IPv4 and an IPv6 stack running on the Ethernet port. I kept seeing a strange IP address being assigned by my router to the netbook, and after I disabled Win7 IPv6 and rebooted, the netbook borrowed an address from the router that I expected. If you are just disabling IP (v4?) you might still have another protocol using the NIC. If this is for testing only, I would disable any protocol you don't need.
  9. That has got to be among the most subtle settings I've (n)ever seen! I thought it might be new, but it was there in LV 8.6 as well! I am very dissapointed in myself for missing that So, we can use the native Format into String and Scan from String functions with a single format specifier string to create and convert a timestamp to an ISO-8601 UTC compliant string. Please excuse me now while I search eBay for a slightly used tantō...
  10. OK. Instead of trying to share my bad experiences with quirks of LV time formats, I'll toss out my first example as requested. I'm actually working from a LV2010 machine at the time too!
  11. I don't think its as easy as choosing function A or function B to create the string. The important question to answer is what do we want to use the string for? ISO-8601 is extremely flexible about precision and units. Ton gave the classic example that might be used in recording the basic date and time of an event. He used the UTC (Coordinated Universal Time) option of 8601. A UTC string can only be created using the Format Date/Time String function because the native Format to String function has no flag or option for UTC. There is no Scan from Date/Time String function, so we must break down the UTC string either into a date/time record cluster (yuck) or use the Scan from String function. Just as the Format to String function, there is no accounting for TZ or DST. The solution is to convert the string to a local time stamp, convert that to a string using the Format Date/Time String with UTC format as TRUE, then convert that to a time stamp again. Subtract the last time stamp from the previous to determine the TZ / DST relative time and then subtract to get the true time. (see attached) I personally include the seconds portion in my UTC timestamps. This simply requires adding a %S format specifier. This brings up a question: What precision might someone want to record a timestamp value to? A LabVIEW timestamp is accurate to 0.05421010862427522170... attoseconds. ISO 8601 does support fractional seconds. The spec is nice enough to support a comma or period as a separator between the whole and fractional part, but this is going to be one very long string if we write the full accuracy of the time stamp into the string. I suspect that waveform timestamp data may need to be saved differently than a simple timestamp. Maybe as a cluster of I64 and U64? It typecasts nicely and the seconds (I64) part may be sufficient for the Format Variant to String. ISO 8601 String Tests.vi
  12. If you want relative time ( your first X point = 0) you will need to subtract the timestamp value of the first X data point from every successive data point's timestamp. Subtracting one LabVIEW timestamp from another will result in a double precision value with a unit of seconds.
  13. After a few dark side and twitter posts cursing date and time formatting, I have to say I STRONGLY support using ISO 8601 compliant strings. Be aware that the format specifiers for the "Format Date/Time" primitive are NOT always interchangeable with ISO 8601. I posted an ISO-8601 example on the dark side that supports extended and basic formats as well as ordinal dates. https://decibel.ni.c...t/docs/DOC-7199 I've attached a copy here. 8601 UTC Date-Time String.vi
  14. VI Tester? - http://forums.jki.net/topic/985-vi-tester-home-page/
  15. Is there a test in VI Analyzer to look for references passing through 'for' loops without a shift register? Just use marketing speak and call it "a feature"
  16. I've renamed the existing function to include DBL, created a polymorphic VI using the original function name and added the INT version. I also added the conversion to/from DBL to avoid the coersion. (see image). numeric.llb.zip
  17. Crelf @ well over 13 bits! Better lay off the Vegamite mate! I guess a lot of my posts were miscounted or lost. I'm at around 580 and I think I've contributed a few more than 65 posts since the recovery. LV_Punk lives on as LAVA 1.0 posts only
  18. I agree. This extends a useful function and makes good code reuse.
  19. I saw a strange case of dirty dots that I attributed to the inplaceness algorithm. I posted an example here. The gist of the problem had to do with changing the error wire in a subvi from error-in to error out to passing the data through a native function that MIGHT modify the error. The subVI must contain info that allows the inplaceness algorithm to short-circuit the wire. When I changed the low-level vi, all calling VIs indicate they need a save. Don't know if this is what you are seeing, but it made me crazy for some time. Inplaceness is synonymous with insidiousness ...
  20. This old LAVA post had various examples of what you seem to want. http://lavag.org/top...robber-example/ Unfortunately, the links are all missing. I tried to find my example on my local disk, but it seems to be gone... You can use a picture ring. Add an image to a picture ring control by first using the Edit -> Import Picture to Clipboard menu option in LabVIEW. Select your animated gif file from your disk drive. Then right-click on the picture ring and Select "Import Picture After". You can now set the value of the picture ring to zero or one to hide or show your activity indicator. Use a classic picture ring so you can easily hide the border and set the background for a 'clean' look. Animated Ring Items.vi
  21. Is it better for NI to provide backwards compatible (compat, legacy, oldvers, whatever you want to call them) VIs or to break the code when loading in a new version and requiring the user to understand the change and replace the broken code? I just spent a day cursing at the computer because of a single NI supplied VI called "Write to XML File". See dark-side post here if you care why... In my case, the NI function I called contained calls to subVIs labeled as unsupported. Would NI have cleaned this up if the practice of creating compatible VIs was not an option? Is this a failure of NI to use their own tools on their own libraries or a deficiency in the concept of compatible VIs? It seems to me that a compatible VI should be like deprecating a node in an SNMP tree. Its not supported anymore, but the interface info still needs to be available to allow for selecting a alternate method. My technique would be to provide a shell VI with all inputs required and a native function with required inputs empty to force the VI to a broken state. I would set the VI description to indicate the function is unsupported and provide suggested solutions and/or a reference to the release notes.
  22. This sounds like a development environment issue. Might a compiled version behave differently? (still using LV 8.6 )
×
×
  • Create New...

Important Information

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