Jump to content

Recommended Posts

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?

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...