aboutsummaryrefslogtreecommitdiffstats
path: root/FAQ
blob: cdd72a7d9adc76f755ca2cdb9a91149c6b549cdb (plain)
1
2
3
4
5
6
7
8
9
10
#
# $Id: FAQ,v 1.1 2000/03/22 07:33:50 reinelt Exp $
#

lcd4linux Frequently Asked Questions

Q: Where can I buy LCD's from Matrox Orbital in Germany or Austria?

A: Germany: Elektronikladen (http://www.elektronikladen.de/seriallcd.html)
   Austria: MEGATON (http://www.elektronikladen.de/ela-oesterreich.html)
mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
// 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("rain=%d\n", mbregister[6]&1);
printf("GPS/RTC=%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;
}