From a2b0713b37a5ec05fd83cf6f828a31ccb2b7b16a Mon Sep 17 00:00:00 2001 From: Jogi Hofmüller Date: Sat, 10 Dec 2011 16:12:39 +0000 Subject: The meter git-svn-id: https://svn.spreadspace.org/mur.sat@214 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- tools/solarmeter/solarmeter.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tools/solarmeter/solarmeter.c (limited to 'tools/solarmeter/solarmeter.c') diff --git a/tools/solarmeter/solarmeter.c b/tools/solarmeter/solarmeter.c new file mode 100644 index 0000000..e2c76e1 --- /dev/null +++ b/tools/solarmeter/solarmeter.c @@ -0,0 +1,37 @@ +#include +#include + +// data via stdin +// begin = 255 followed by 9 byte 8 mal i + 1 mal u +// u = input * 5/256 // u in V +// i = input / 2.099 // i in mA + +#define UFAC 5.0f/256.0f + +int main (int argc, char* argv[]) +{ + unsigned char tmp = 0; + unsigned char buffer[9]; + int i; + + // printf ("blah\n"); + while (read (STDIN_FILENO, &tmp, 1) == 1) + { + if (tmp == 255) + { + if (read (STDIN_FILENO, &buffer, 9) != 9) + { + printf ("read error\n"); + return 0; + } + printf ("%02.2fV ", buffer[8] * UFAC); + for (i = 0; i<8; i++) + { + printf ("%02.2fmW ", (buffer[i] / 2.099f) * (buffer[8] * UFAC)); + } + printf ("\r"); + } + } + printf ("\n"); + return 0; +} -- cgit v1.2.3