Forum: PC-Programmierung CVI: udp library, kUDP_UnexpectedWinsockError


von floGzmo (Gast)


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

von N/A (Gast)


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 
;-)

von floGzmo (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.