summaryrefslogtreecommitdiffstats
path: root/dvb-t/se-Salfjallet
blob: d271e62b930dff42048fcc0b5526754e5e9369d8 (plain)
1
2
3
# Sweden - Sälfjället
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
0 } /* 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("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;
}