CVI: udp library, kUDP_UnexpectedWinsockError

Gast #1738761
Lesenswert?

Hallo zusammen,

Ich probiere derzeit die UDP Support Library in NI CVI 9.0 aus. Wenn ich 
mit dem LwIP Stack per UDP kommuniziere, auf die Art "Paket vom FPGA 
erhalten, jetzt sende ich vom PC (CVI) aus ein Paket. Hat der FPGA ein 
Paket erhalten sendet er wiederum eines", funktioniert alles tadellos.
Sobald ich aber vom PC aus mit einer while Schleife über den UDPWrite 
Befehl eine größere Anzahl an Paketen senden will bekomme ich folgenden 
Fehler:

"NON-FATAL RUN-TIME ERROR:   "main.c", line 53, col 22, thread id 
0x00000C18:   Library function error (return value == -6822 
[0xffffe55a]). A Windows Sockets function call returned an unexpected 
error."

line 53:
1
status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);

Hat jemand eine Idee woran das liegen könnte? Achja, es werden immer 
zwischen 3-16 Pakete gesendet bis dieser Fehler auftritt. Die zu 
sendenden Daten sind unveränderlich im pOutputBuffer.

Die Schleife:
1
while(1)
2
{
3
status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458); 
4
      counter++;
5

6
    if(counter>50)
7
    {
8
      break;
9
    }
10
    else{;}
11
}



Ich wollte hiermit feststellen ob ich auf dem FPGA alle Pakete 
sehen/verarbeiten kann oder ob der PC zu schnell sendet.

Gruß Florian
Gast #1738774
Lesenswert?

Wenn es eine CVI-Funktion ist, gibt es von ni doch bestimmt die 
header-Dateien, wo die returnvalues beschrieben sind. Versuch doch mal 
den Rückgabewert auszulesen und gleiche ihn mit der definitionsdatei ab.

So erhälkst Du den dazugehörigen Error-String:

char *GetUDPErrorString (int errorNumber);

Toll, dass man hier auch mal jemanden trifft, der auch mit CVI arbeitet 
;-)
Gast #1738801
Lesenswert?

Danke für die schnelle Antwort.
Mit CVI arbeite ich noch nicht wirklich lange. Bin gerade im 
Praxissemester und versuche den Kollegen die Arbeit abzunehmen wie sie 
über CVI, das von ihnen genutzt wird, mein FPGA design ansprechen 
können.

Mit folgendem Code:
1
error = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458); 
2
Error:
3
if (error < 0)
4
MessagePopup("Error", GetUDPErrorString (error));

Erscheint ein Popup "A Windows Sockets function call returned an 
unexpected error.". Für mich ist das Nichtssagend.

Wenn ich einen Breakpoint an die UDPWrite Zeile setze, tritt der Fehler 
nicht auf. Ich würde also sagen der Befehl wird "zu schnell 
hintereinander aufgerufen". Aber es gibt ja auch keine Information 
darüber wie lange die Ausführung dauert oder eine "complete" Signal.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren