Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations SSS148 on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

serial read variable length 1

Status
Not open for further replies.

cstarr

Electrical
Aug 9, 2004
2
I'm new to LabView (v6) and writing a vi to read an unknown number of bytes from a serial port. I am using a while loop and would like to exit when the VISA byte count has been zero for some amount of time.

I created a timeout vi, but can't use it as a subvi, because the while loop doesn't "see" the controls in the calling vi.

Suggestions?

Craig
 
Replies continue below

Recommended for you

One simple and arbitrary way is to start a counter with a 1ms delay (if your can tolerate it). Set a counter timeout threshold and if it reaches it, simply stop the while loop. If within that time the byte count is not 0, then reset the counter and wait for the next 0-byte condition.

It is slightly more complicated if you need a specific timeout period but not that difficult.

Within the while loop, you can use the same counter to indicate that a 0-byte count has been detected. On the first iteration (when 0-byte counter=0) of the 0-byte condition, capture the millisecond tick count into a shift register and on subsequent loops, subtract the current tick count from the original. If it matches or exceeds your timeout time, break out of the loop. Any byte counts detected after the 0-byte condition and before the loop breakout should reset the counter back to 0.
 
Thanks for the information.
LabView should be very helpful once I get used to it.
My vi is starting to have several levels of while/for/case structures. Should I be concerned about getting too deep?
 
Yes and no. If this is your first Labview vi, I wouldn't be concerned so much with proper coding technique as I would be learning how things work and getting the program to behave the way you want. As you gain experience, I would then focus on how to write better code. Of course there is probably a school of thought that says you should take the time to learn proper coding technique.

Generally my rule of thumb is to contain the code to what I can fit on my screen without having to use the horizontal or vertical scrollbars too much. If your code starts to get large, look into condensing some code into subroutines. Making Labview code as easy to read as possible will save you time down the line when you have to debug the code.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor