diff options
author | Jogi Hofmüller <jogi@mur.at> | 2011-12-10 16:12:39 +0000 |
---|---|---|
committer | Jogi Hofmüller <jogi@mur.at> | 2011-12-10 16:12:39 +0000 |
commit | a2b0713b37a5ec05fd83cf6f828a31ccb2b7b16a (patch) | |
tree | 7d1ecb1d4884bfd4a428321f9226bdcb431d104c /tools | |
parent | ignore flac and .raw files @ idm (diff) |
The meter
git-svn-id: https://svn.spreadspace.org/mur.sat@214 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'tools')
-rw-r--r-- | tools/solarmeter/solarmeter.c | 37 |
1 files changed, 37 insertions, 0 deletions
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 <stdio.h> +#include <unistd.h> + +// 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; +} |