LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

UDP read timing out

Solved!
Go to solution

Well, Ruby was running first, so I can't imagine it would report an error. However, I think LabVIEW only had a timeout error and not a connection error.

 

Although, now you have me doubting myself. I'll rerun and check the error tomorrow.

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 11 of 29
(2,430 Views)

what's your hardware and network setup?

-Barrett
CLD
0 Kudos
Message 12 of 29
(2,418 Views)

The computer:

Windows 7 32 bit

http://www.superlogics.com/sl_details.asp?prod=3238

Intel Core i7

Gigabit (10/100/1000 Mbits/sec) Dual LAN subsystem using the Intel 82567L and Intel 82574L Gigabit Ethernet Controllers

NI PCIe-8235

(a handful of other cards, but nothing of consequence)

 

 

Right now, we're communicating with our unit which is an FPGA using one of the motherboard ports.

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 13 of 29
(2,415 Views)

Is it possible to get the unit to calculate the UDP checksums?  Usually this is offloaded to the NIC, but your hardware may be different.  UDP checksum of 0x0000 *should* indicate disabled, but maybe that's not being acknowledged.

-Barrett
CLD
Message 14 of 29
(2,408 Views)

Correct, the hardware does have an offload option. I have tried both enabled/disabled. Although I had previously thought this was for sending only. Does it have an option for verifying received checksums?

 

Everything the unit sends has the IP checksums, but no UDP checksums. Wireshark doens't seem to see a problem with this.

 

 

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 15 of 29
(2,406 Views)

@JW-L3CE wrote:

Unfortunately, I need the net address to specify the card I'm using. This computer has 6 ports. 4 will be used for GigE Vision, and 1 is this custom interface.


According to the LabVIEW Help for UDP Open Function:

net address specifies on which network address to listen. Specifying an address is useful if you have more than one network card, such as two Ethernet cards, and want to listen only on the card with the specified address. If you do not specify a network address, LabVIEW listens on all network addresses. This function broadcasts only on the default network address

 

If you are attempting to broadcast on a specific adapter, you must make that adapter the default in your system. Specifying the net address does not specify which card to broadcast on, only on which card to listen.

 

In your case, it seems you should leave net address unwired. If you do so, do you still receive a timeout error?

Jared A.
Applications Engineer
National Instruments
0 Kudos
Message 16 of 29
(2,390 Views)

Same result with no address wired.

 

The "only on default network address" disturbs me a bit. Later in this project, I hoped to be transmitting simultaneously out of all ports. Does that mean that it will just send out of the port the destination is registered (arp tables) on?

 

Back to my problem and what I've tried:

1) A seperate laptop running XP and a Ruby program was sending UDP packets to my program. All packets were received

2) LabVIEW program running on windows XP talking to the unit. Nothing was received.

3) We used an ethernet tap to monitor the activity... I'm analyzing now

 

Really, I'm starting to think that something in the packet is causing it to get dumped by the card/windows/LabVIEW drivers (yet somehow still get to wireshark). Nothing has seen the packets coming from the unit (except wireshark).

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 17 of 29
(2,383 Views)

Yes, transmit will always be according to the routing tables.

 

I don't know a lot about wireshark, but I assume it's hooking into the network stack at some much lower level and reading raw packets before the operating system has a chance to do anything with them.  Your LabVIEW and Ruby programs are both relying on the operating system to pass packets to them, so if the operating system sees the packets as invalid and drops them, you'll never get them regardless of programming language.

0 Kudos
Message 18 of 29
(2,373 Views)

Good to know. So if I have multiple ethernet ports and windows doens't know where a destination is, it will poll each until it finds the destination?

 

Ok, that was my assumption but I'm REALLY new to networking. Thanks.

 

Since it's probably in the windows layer, should I take this question somewhere else, or does someone have an idea of where to look?

 

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 19 of 29
(2,366 Views)

Some LabVIEW specific questions, if the UDP Checksum (not the IPv4, or ethernet) is invalid. Will LabVIEW report it with a read?

 

If the checksum is 0x0000, will LabVIEW follow UDP protocol and ignore the checksum?

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 20 of 29
(2,359 Views)