Jump to content

Dan DeFriese

Members
  • Posts

    201
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Dan DeFriese

  1. QUOTE (bodacious @ Oct 29 2008, 10:51 AM) I don't believe you can "broadcast" using the TCP primitives as this would violate Transfer Control Protocol. Broadcasting with the UDP primitive is simple just set the send to IP to 255.255.255.255 or 0xFFFFFFFF as shown in the screenshot. However, broadcasting in this way sends the UDP datagram from all network interfaces on the machine (at least in Windows). You can use UDP Multicast to limit this to a specific subnet. What do mean by responsive nodes? Can you describe your app a litte more?
  2. QUOTE (v_pan @ Oct 24 2008, 04:58 PM) Glad to hear it! QUOTE (v_pan @ Oct 24 2008, 04:58 PM) However, the minimum delay that it works correctly is at 5ms. If I need to reduce it what I have to do;(e.g 10,100us). At this point (assume 9600 baud) requires ~1 ms per byte (1/9600 * 10). Now, if worst case we send "A -4096/n" or 8 bytes ("/n" is 1 byte) then 8 ms is the fastest interval you can transmit (evidently, your dac processing is consuming 3 ms for a delay of 5 ms to continue to function). If you set the baud rate to 115K then, in theory, you could send messages at ~800 uS interval. If you move to a binary protocol you could transfer all three dac values using 5 to 6 bytes including a header, data, and checksum. However, before building such a VI you should become familiar with state-machine implemenation in LabVIEW. Also, I recommend reading Serial Port Complete by Jan Axelson if possible. (Though, I think his USB Complete kinda stinks.) Anyway, best of luck and happy wiring . ~Dan
  3. QUOTE (mballa @ Oct 24 2008, 10:58 AM) I plan on attending, workload permitting.
  4. QUOTE (Ton @ Oct 24 2008, 12:56 AM) My thoughts exactly... Nonetheless, here's my nickel: I’m not a linguist by any means. However, if the existence of B, C, and F are dependent upon the existence of D and E, wouldn’t the removal of D and E be contingent upon the removal of B, C, and F? My vote would be to bend the common usage of “contingent” for use as a noun is this case. Thus, in the project item context menus: Show Dependants = (Highlight the VIs in the dependencies list.) = Downstream Dependence Show Contingents = (Highlight the VIs in the project source.) = Upstream Dependence It’s not that I dislike new words, but aren’t we taught to reuse. IMHO, recasting the word “contingent” as a noun makes much more sense than trying to invent a new word. ~Dan
  5. QUOTE (horatius @ Oct 23 2008, 04:44 PM) Right Click the boolean terminal then select Create -> Invoke Node -> Initialize to Default. Use dataflow to ensure this invoke node execute immediately when the VI runs.
  6. QUOTE (v_pan @ Oct 23 2008, 03:55 PM) Looks like a simple whitespace problem... a few extra in the VI and none in the pic. In order for the Scan From String primitive to work it will need to see two distinct strings (e.g. A<space>123). example: printf ("A%d\n",lut); // becomes printf ("A %d\n",lut); // notice the space between 'A' and '%d' Likewise, the format string input to Scan From String in LabVIEW should compliment this with: "%s %d" as in the example. Play with Scan From String in a blank VI and use the LabVIEW help to get a good feel for this function as well as its compliment Format Into String... These are extremely useful. ~Dan
  7. There is an option "Maintain proportion of window for different monitor resolutions" in the VI Properties dialog. It doesn't always work perfect in that it sometimes to distort the spacing of FP objects.
  8. QUOTE (v_pan @ Oct 22 2008, 03:42 PM) Yes, see the updated example. I've create a simple stub to simulate what "should be coming from your uC.
  9. QUOTE (v_pan @ Oct 20 2008, 03:48 PM) Before I invested in making creating a binary protocol. I would keep it simple and transmit ASCII. For example: int_16 adc_value = 0; ... while (PRESSED == GetButtonState()){ adc_value = ReadADC(); printf ("ADC Value: %d\n", adc_value); sleep(some_time); } Verify that your reading data correctly using Hyperterm: ADC Value: 12345 ADC Value: 12345 ADC Value: 12345 ADC Value: 12345 ADC Value: 12345 ADC Value: 12345 In LabVIEW, experiment with with my previous example (try enabling the termination character with the char set to 0x0A "\n"). Also make sure that the #bytes your're reading is greater than whats being sent (>17). Once your syncronized and getting the correct data use the Scan From String primitive located on the string function palette to convert the numeric back to decimal (the scan string should be "ADC Value: %d"). This value can then be used as the input to the chart. I'll try sending an example when I have more time.
  10. Hi jcarmody, I noticed in your profile that your working in aerospace. If your company has an account with ARINC you may want to check out "ARINC 625-1 Quality Manangement Process for Test Procedure Generation". The back of this manual contains a fairly decent TS example and some development checklists. ~Dan
  11. QUOTE (jcarmody @ Oct 20 2008, 05:09 AM) I believe Perforce (the tool NI claims to use internally) is free for 1-2 seats used non-commercially. I have yet to take the CLA (I'm taking the CLD on the 31st), but I'd be surprised if the test required in-depth knowledge of a specific SCC tool.
  12. Hey SJ, I'm a little a little concerned at this point and not really sure what your trying to accomplish. It kinda sounds (and looks) like you need help with your homework... Which is fine by me as long as I'm "helping" and not playing proxy. If I do the work for you, I also do the learning (I never took statistics, so again, this is fine by me ), but you'll get left out in the end. So before we continue please think through your work using pseudo code and repost. I suspect that by doing so you'll be able to answer most, if not all, of your own questions. LAVA and I will be around if you really get stuck, however, we can't do the work for you. ~Dan
  13. QUOTE (Seraph @ Oct 20 2008, 12:57 AM) Yes, look in the help for "Application Builder". This is available with the professional version or as an add-on toolkit for full and base versions. Note that like many non-MS development tools... you'll also need to install the runtime engine called "LabVIEW RTE" on the target PC prior to executing your stand alone application. ~Dan
  14. Try this... I think you just need to use a different function.
  15. QUOTE (Aristos Queue @ Oct 19 2008, 10:39 PM) Well, that's not very boolean! QUOTE (Aristos Queue @ Oct 19 2008, 10:39 PM) When we introduce a brand new VI type, it is much better for code to light up with errors that scream "this code has never been intended to handle this new VI type and you should visit it to explicitly handle it somehow" as opposed to silently doing something that may or may not be valid to do with that type. By all means, scream loudly! However, IMHO it would be more beneficial to know this type of error at edit-time rather than get surprised at run-time... The same way property nodes behave with different control types. In the example, the property node shows that the VI type is PolyVI... so why does the node have to provide unavailable properties?
  16. QUOTE (sjkim0329 @ Oct 19 2008, 10:43 PM) Sorry, I don't have LV8.6 yet can you do a "File -> Save for Previous Version" to 8.5 or earlier and re-submit?
  17. QUOTE (sjkim0329 @ Oct 19 2008, 10:20 PM) What do you mean by error. Can you post your example?
  18. QUOTE (Jim Kring @ Oct 19 2008, 08:57 PM) This doesn't make sense to me either. But then again, neither does throwing an error when the user cancels a file operation. QUOTE (Jim Kring @ Oct 19 2008, 08:57 PM) Shouldn't these properties simply output FALSE if you try to read them for VI subtypes (Poly VIs, Globals, CTLs, etc.) that don't have the property? If these VI types don't "have" the property I would expect that the property node should reflect this fact by breaking. Similar to the way control property nodes do. I'm curious to here what NI has to say. ~Dan
  19. Try this example. Let me know if this is helpful. ~Dan
  20. We've got past the first hurdle..no more IO error. The error I see here is timeout, which is what we expect (once a second, unless we're sending correct #number of bytes to it). Guess what, if you send more than what's expected... you'll get the "might be more data error code" ... We'll get to that later. So the next question is why are we interpreting the data incorrectly. Can you post your hyperterminal setup. What about the the UART setup code for the micro. My first suspect is the is that the number of bits or stop bits in the word are not equal between the transmitter and receiver. This would result in differenent data seen each time. This would normally result in parity error but not when have parity set to none. Also, since your micro is sending a newline character you can play the Send Term Char and Enable Term Char controls in the example VI. ~Dan P.S. If your using an Atmel AVR let me know?
  21. QUOTE (PaulG. @ Oct 15 2008, 08:24 AM) I'm sold!!!
  22. QUOTE (v_pan @ Oct 18 2008, 05:00 PM) Hello V, I re-wired your example to utilize dataflow using the error cluster. We want to setup -> flush -> read -> close, in that order. I put the read VI in a while loop so we will read continuously at the interval set by timeout. Try the updated example and we can go from there. ~Dan
  23. QUOTE (LV_FPGA_SE @ Oct 9 2008, 10:08 PM) I think Battle Ship would be fun!
  24. Can't you just use 'To Double Precision Float' primitive on the numeric >> conversion pallete? It takes arrays. What's the significance of "150 uV Pk-Pk"? ~Dan
×
×
  • Create New...

Important Information

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