aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonathan McCrohan <jmccrohan@gmail.com>2012-05-20 22:05:03 +0100
committerJonathan McCrohan <jmccrohan@gmail.com>2012-05-20 23:26:36 +0100
commit7249087222c562b7afd16d76eb31de6a83aa98ef (patch)
treed4c74bbc65d34f2bb053116a67b75b36062b59c5 /src
parent96117e05c387c930c9619e3ae5c0ad0b4da196d2 (diff)
downloadverteco-7249087222c562b7afd16d76eb31de6a83aa98ef.tar.gz
weatherstation_test.c: initial commit
Diffstat (limited to '')
-rw-r--r--src/weatherstation_test.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/weatherstation_test.c b/src/weatherstation_test.c
new file mode 100644
index 0000000..b2cfab4
--- /dev/null
+++ b/src/weatherstation_test.c
@@ -0,0 +1,73 @@
+// gcc weatherstation_test.c -o weatherstation_test `pkg-config --libs --cflags libmodbus`
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <modbus.h>
+
+#define SLAVE_ID 1
+#define START_ADDRESS 0
+#define NUMBER_REGISTERS 17
+
+#define DEBUG_MODE 1
+
+int main(int argc, char *argv[])
+{
+
+modbus_t *ctx;
+int16_t mbregister[64];
+int rc;
+
+ctx = modbus_new_rtu("/dev/ttyUSB0", 19200, 'E', 8, 1);
+modbus_set_slave(ctx, SLAVE_ID);
+
+modbus_set_debug(ctx, DEBUG_MODE);
+
+printf("Verteco Elsner Weatherstation\n\n");
+
+if (ctx == NULL) {
+ fprintf(stderr, "Unable to create the libmodbus context\n");
+ return -1;
+}
+
+if (modbus_connect(ctx) == -1) {
+ fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
+ modbus_free(ctx);
+ return -1;
+}
+
+rc = modbus_read_input_registers(ctx, START_ADDRESS, NUMBER_REGISTERS, mbregister);
+
+
+if (rc == -1) {
+ fprintf(stderr, "ERROR: %s\n", modbus_strerror(errno));
+ return -1;
+}
+
+printf("Read %i mbregisters\n\n", rc);
+
+printf("temperature=%d\n", mbregister[0]);
+printf("sun_south=%d\n", mbregister[1]);
+printf("sun_east=%d\n", mbregister[2]);
+printf("sun_west=%d\n", mbregister[3]);
+printf("light=%d\n", mbregister[4]);
+printf("wind=%d\n", mbregister[5]);
+printf("GPS/RTC=%d\n", mbregister[6]&255);
+printf("rain=%d\n", mbregister[6]>>8);
+printf("day=%d\n", mbregister[7]);
+printf("month=%d\n", mbregister[8]);
+printf("year=%d\n", mbregister[9]);
+printf("hour=%d\n", mbregister[10]);
+printf("min=%d\n", mbregister[11]);
+printf("second=%d\n", mbregister[12]);
+printf("azimuth=%d\n", mbregister[13]);
+printf("elevation=%d\n", mbregister[14]);
+printf("long=%d\n", mbregister[15]);
+printf("lat=%d\n", mbregister[16]);
+modbus_close(ctx);
+modbus_free(ctx);
+
+ return 0;
+}
/span> 2004-06-05[lcd4linux @ 2004-06-05 14:56:48 by reinelt]reinelt3-24/+37 2004-06-05[lcd4linux @ 2004-06-05 06:41:39 by reinelt]reinelt11-42/+87 2004-06-05[lcd4linux @ 2004-06-05 06:13:11 by reinelt]reinelt9-69/+327 2004-06-02[lcd4linux @ 2004-06-02 10:09:22 by reinelt]reinelt4-180/+183 2004-06-02[lcd4linux @ 2004-06-02 09:41:19 by reinelt]reinelt18-114/+211 2004-06-02[lcd4linux @ 2004-06-02 05:56:25 by reinelt]reinelt1-2/+6 2004-06-02[lcd4linux @ 2004-06-02 05:35:55 by reinelt]reinelt1-0/+20 2004-06-02[lcd4linux @ 2004-06-02 05:27:59 by reinelt]reinelt26-0/+2405 2004-06-02[lcd4linux @ 2004-06-02 05:14:16 by reinelt]reinelt2-17/+31 2004-06-01[lcd4linux @ 2004-06-01 06:45:28 by reinelt]reinelt18-71/+241 2004-06-01[lcd4linux @ 2004-06-01 06:04:25 by reinelt]reinelt2-25/+25 2004-05-31[lcd4linux @ 2004-05-31 21:23:16 by reinelt]reinelt1-37/+49 2004-05-31[lcd4linux @ 2004-05-31 21:05:13 by reinelt]reinelt5-77/+111 2004-05-31[lcd4linux @ 2004-05-31 16:39:05 by reinelt]reinelt11-180/+535 2004-05-31[lcd4linux @ 2004-05-31 06:27:34 by reinelt]reinelt1-0/+40 2004-05-31[lcd4linux @ 2004-05-31 06:24:42 by reinelt]reinelt2-7/+29 2004-05-31[lcd4linux @ 2004-05-31 05:38:02 by reinelt]reinelt8-42/+94 2004-05-31[lcd4linux @ 2004-05-31 01:31:01 by andy-b]andy-b1-10/+12 2004-05-30[lcd4linux @ 2004-05-30 08:25:50 by reinelt]reinelt2-30/+92 2004-05-29[lcd4linux @ 2004-05-29 23:30:20 by reinelt]reinelt1-1/+9 2004-05-29[lcd4linux @ 2004-05-29 15:53:28 by reinelt]reinelt3-9/+25 2004-05-29[lcd4linux @ 2004-05-29 01:07:56 by reinelt]reinelt2-21/+25 2004-05-29[lcd4linux @ 2004-05-29 00:27:14 by reinelt]reinelt8-11/+214 2004-05-28[lcd4linux @ 2004-05-28 14:38:10 by reinelt]reinelt2-1/+41