Jump to content

Recommended Posts

Geschrieben

Moin,

ich versuche mich gerade daran mit meinen Stacks per TCP/IP zu kommunizieren via SPS (Codesys).

Nun stehe ich vor dem Problem das bei TCP/IP das Packet Layout die UID als uint32 vor sieht. Docu TCP/IP

Meine UIDs sind aber Strings, kein uint32 was ja ein Zahlenformat ist. Wie geht das?

Wie wandel ich z.B. meine UID 6JKUg4 in einen uint32 um? Oder kann ich den dazugehörigen Zahlenwert irgendwo im BrickViewer finden?

 

Geschrieben

Stimme, die Dokumentation schweigt sich darüber aus, ich werde das gleich verbessern. Die Stringversion der UID ist Base58 kodiert mit diesem Alphabet:

 

123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ

 

6JKUg4 entspricht also 3765642289.

 

Base58 (de)kodiert Funktionen kannst du z.B. dem Source Code der verschiedenen API Bindings entnehmen:

 

https://github.com/Tinkerforge/generators/blob/master/c/ip_connection.c#L520

 

https://github.com/Tinkerforge/generators/blob/master/python/ip_connection.py#L68

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...