Skip to content

Instantly share code, notes, and snippets.

@alepez
Last active February 11, 2017 02:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alepez/3e9df27bd6fba862f99f9a47e3b7fb72 to your computer and use it in GitHub Desktop.
Save alepez/3e9df27bd6fba862f99f9a47e3b7fb72 to your computer and use it in GitHub Desktop.

Usa mbpoll: https://github.com/epsilonrt/mbpoll

Interroga:

./mbpoll 192.168.1.106 -t 4:hex -r 29 -c 2 -1 -a 1

Chiede 40029 e 40030 (ip address).

Come ci sono arrivato:

40029 -> [40],[029] -> [-t 4:hex],[-r 29]

40030 è il successivo, quindi -c 2 per chiedere due registri

Lo slave id è sempre 1.

Per la temperatura esterna:

./mbpoll 192.168.1.106 -t 4:hex -r 133 -c 2 -1 -a 1 | tail -3 | head -2 | awk '{ print $2 }'

Escono due numeri esadecimali, si possono tradurre in float:

uint16_t regs[2] = {0x043D, 0x40D8};
float externalTemperature = *reinterpret_cast<float*>(regs);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment