-> Hier kostenlos registrieren
Hallo zusammen,
ich hätte da mal eine Frage an euch. Ich verwende aktuell TwinCat3 und bekomme via HTTP POST eine Antwort von einem Server im JSON-Format.
über die Funktion "SetSymbolFromJson" kann ich nun meine Antwort in eine Struktur packen. Das funktioniert auch soweit ganz gut.
Die Probleme:
1. bei der Funktion "SetSymbolFromJson" muss ich den Namen meiner Struktur als String mit angeben. Vertippe ich mich hier, wird einfach nichts in die Struktur geschrieben und ich bekomme auch keine Rückmeldung, dass irgend etwas schief gelaufen ist.
2. Habe ich mich in der Struktur generell geirrt (passt also die Antwort nicht zur Struktur), wird auch einfach nichts in die Struktur geschrieben, ohne dass ich eine Rückmeldung dazu bekomme
Kennt jemand eine Möglichkeit, wie ich auswerten könnte, ob mein Versuch erfolgreich war, die Daten in die Struktur zu packen?
Die Krux dabei ist, dass ich einen Baustein geschrieben habe, der von außen universell verwendet werden kann. D.h. ich weiß aktuell nicht, welche Struktur ich im Endeffekt wirklich habe... hatte zuerst den Gedanken bei jeder Anforderung zum Server die Struktur erst mal mit einem Initialwert zu füllen... dann würde ich ja sehen, wenn sich etwas ändert... Aber wie kann ich das innerhalb meines Bausteins machen, wenn ich als Input (wo später die Struktur drauf gelegt wird) eine "PVOID" Variable habe?
Jemand ne Idee? (Ich hoffe mein Wirres Gerede gibt einigermaßen Sinn )
Codesnipped:
Deklaration meines FB's:
Programmteil:
("sResultValue" enthält den JSON-String)
ich hätte da mal eine Frage an euch. Ich verwende aktuell TwinCat3 und bekomme via HTTP POST eine Antwort von einem Server im JSON-Format.
über die Funktion "SetSymbolFromJson" kann ich nun meine Antwort in eine Struktur packen. Das funktioniert auch soweit ganz gut.
Die Probleme:
1. bei der Funktion "SetSymbolFromJson" muss ich den Namen meiner Struktur als String mit angeben. Vertippe ich mich hier, wird einfach nichts in die Struktur geschrieben und ich bekomme auch keine Rückmeldung, dass irgend etwas schief gelaufen ist.
2. Habe ich mich in der Struktur generell geirrt (passt also die Antwort nicht zur Struktur), wird auch einfach nichts in die Struktur geschrieben, ohne dass ich eine Rückmeldung dazu bekomme
Kennt jemand eine Möglichkeit, wie ich auswerten könnte, ob mein Versuch erfolgreich war, die Daten in die Struktur zu packen?
Die Krux dabei ist, dass ich einen Baustein geschrieben habe, der von außen universell verwendet werden kann. D.h. ich weiß aktuell nicht, welche Struktur ich im Endeffekt wirklich habe... hatte zuerst den Gedanken bei jeder Anforderung zum Server die Struktur erst mal mit einem Initialwert zu füllen... dann würde ich ja sehen, wenn sich etwas ändert... Aber wie kann ich das innerhalb meines Bausteins machen, wenn ich als Input (wo später die Struktur drauf gelegt wird) eine "PVOID" Variable habe?
Jemand ne Idee? (Ich hoffe mein Wirres Gerede gibt einigermaßen Sinn )
Codesnipped:
Deklaration meines FB's:
Code:
VAR_INPUT
bSend : BOOL; //Start send at rising edge
bResetError : BOOL; //Reset Error
sStructName : STRING;
udiSizeOfData : UDINT; // size of struct for data to be send
pData : PVOID; // Adress of struct for data to be send
sContentType : STRING:='application/json'; //optional (init with 'application/json')
sStructNameResult : STRING; //optional (e.g. 'ST_MesCheckSerialsResponse' / init depending on eCurrentMesMode)
udiSIzeOfDataResult : UDINT; // size of struct for data to be received
pResult : PVOID; // Adress of struct for data to be received
sHostname : STRING;
sIdentifier : STRING;
uiPort : UINT;
END_VAR
Programmteil:
("sResultValue" enthält den JSON-String)
Code:
IF pResult<> 0 THEN
fbJsonDataType.SetSymbolFromJson(sResultValue, sStructNameResult, udiSIzeOfDataResult, pResult );
ELSE
bError:=TRUE;
sErrorText:='No valid inputs';
END_IF