Connect to openSenseMap: Type Mobile/GPS timestamp

Ich nutze in Blockly „Connect to openSenseMap“, um Daten zur openSenseMap hochzuladen. Dies funktioniert auch prima, wenn ich als Type „Stationary“ auswähle. Wenn ich auf Type „Mobile“ umschalte, dann gibt es die folgenden zusätzlichen Attribute: „latitude“, „longitude“, „altitude“, „timestamp (RFC 3339)“. Diese können durch das GPS-Module gefüllt werden. Ich schreibe diese mit „set … to“ in Variablen, die ich dann „Connect to openSenseMap“ übergebe. Dies funktioniert auch für „latitude“, „longitude“ und „altitude“, aber nicht für „timestamp (RFC 3339)“. Ich erhalte beim Kompilieren die folgende Fehlermeldung:

*There has been an error

{„exit“:„Command failed: 1: Uncaught Fatal Exception“,„process“:"/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino: In function ‚void loop()‘:\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:154:39: error: cannot convert ‚arduino::String‘ to 'char’ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:156:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:158:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:160:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:162:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:164:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\n/tmp/295ebdab-da8f-4f7b-999e-6bf3fd3bf360/sketch.ino:166:39: error: cannot convert ‚arduino::String‘ to ‚char*‘ for argument ‚4‘ to ‚void submitValues(float, float, float, char*)‘\n submitValues(lat,lon,alt,timestamp);\n ^\nexit status 1\n"}*
Error id 1: Build or Upload failed.

Interessant scheint mir folgendes zu sein:
cannot convert ‚arduino::String‘ to 'char’ for argument ‚4‘ to 'void submitValues(float, float, float, char*)*

Das würde bedeuten, dass timestamp den falschen Typ besitzt. Was kann ich tun? Hat jemand eine Idee?

Tschüß und viele Grüße,
Frank

Hi @sungg005,

kannst du einen Screenshot von den Blöcken hier hochladen? Dann kann ich das mal nachbauen und mir genauer anschauen.

Viele Grüße

Mario

@sungg005, danke! Ich schaue mir das mal an. Ich habe den Beitrag mit den Bildern erstmal wieder entfernt, da alle IDs und Passwörter in den Blöcken sichtbar waren.

Dummer Fehler von mir…

am einfachsten kannst du das Problem lösen, indem du den Block für das GPS Modul direkt an den Block für die openSenseMap hängst:

Beim Block für das GPS Modul werden im Hintergrund bereits Variablen angelegt, damit alles korrekt ausgelesen wird.

Das Problem aktuell tritt auf, dass der Block für die openSenseMap eine char* erwartet, die Variable standardmäßig allerdings als String angelegt wird. Wenn du die GPS Blöcke direkt anhängst wird alles korrekt zugewiesen.

Viele Grüße
Mario

Es funktioniert so, wie du es beschrieben hast! DANKE!