lib/mbselib.h

Thu, 08 May 2014 22:36:51 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 08 May 2014 22:36:51 +0200
changeset 31
89dd2b691701
parent 29
ac763b87ee25
child 32
3bac8fd4173d
permissions
-rw-r--r--

Added library code to read DHT11 temperature/humidity sensor

#ifndef	_MBSELIB_H
#define	_MBSELIB_H

#include "../config.h"

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <syslog.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>
#include <getopt.h>

/* mosquitto */
#include <mosquitto.h>

#ifdef HAVE_WIRINGPI_H
/* wiringPi */
#include <wiringPi.h>
#include <pcf8574.h>
#include <lcd.h>

#endif

#define TRUE 1
#define FALSE 0

#define MBSE_SS(x) (x)?(x):"(null)"

/* rdconfig.c */
typedef struct _key_list {
    char	*key;
    int		(*prc)(char **);
    char	**dest;
} key_list;

typedef struct _w1_therm {
    struct _w1_therm    *next;
    char                *master;                /* Master for this device       */
    int                 bus;                    /* Reserved for ds2482-800      */
    char                *name;                  /* Name of this device          */
    char                *alias;                 /* Friendly name                */
    int                 present;                /* 1=present, 0=absent          */
    int                 lastval;                /* Last valid value             */
    int			update;			/* Value updated		*/
} w1_therm;

typedef struct _rc_switch {
    struct _rc_switch	*next;
    char		*address;		/* Address code			*/
    char		*alias;			/* Friendly name		*/
} rc_switch;

typedef struct _sys_config {
    char		*name;			/* Configuration name		*/
    char		*mosq_host;		/* mosquitto server hostname	*/
    int			mosq_port;		/* mosquitto server port	*/
    w1_therm		*w1therms;		/* 1-wire temp sensors		*/
#ifdef HAVE_WIRINGPI_H
    int			lcd_cols;		/* LCD display columns		*/
    int			lcd_rows;		/* LCD display rows		*/
    int			rx433;			/* 433 MHz receiver pin		*/
    int			tx433;			/* 433 MHz transmitter pin	*/
    rc_switch		*rcswitch;		/* 433 MHz RC Power switches	*/
#endif
} sys_config;



void killconfig(void);
int  rdconfig(char *);


/* xutil.c */
char *xmalloc(size_t);
char *xstrcpy(char *);
char *xstrcat(char *, char *);


#ifdef HAVE_WIRINGPI_H

/* lcd-pcf8574.c */
// Defines for the pcf8574 Pi LCD interface board
#define AF_BASE         100

#define AF_RS           (AF_BASE + 0)
#define AF_RW           (AF_BASE + 1)
#define AF_E            (AF_BASE + 2)
#define AF_BACKLIGHT    (AF_BASE + 3)
#define AF_DB4          (AF_BASE + 4)
#define AF_DB5          (AF_BASE + 5)
#define AF_DB6          (AF_BASE + 6)
#define AF_DB7          (AF_BASE + 7)

void setBacklight (int);
int  initLCD (int, int);



/* rc-switch.c */

int  toggleSwitch(char *);
int  toggleTypeA(char *, char *, bool);
int  toggleTypeB(int, int, bool);
int  toggleTypeC(char, int, int, bool);
int  toggleTypeE(char, int, bool);

void enableReceiveIRQ(int interrupt);
void enableReceive(void);
void disableReceive(void);
bool available(void);
void resetAvailable(void);

unsigned long getReceivedValue(void);
unsigned int getReceivedBitlength(void);
unsigned int getReceivedDelay(void);
unsigned int getReceivedProtocol(void);
unsigned int *getReceivedRawdata(void);

void enableTransmit(int);
void disableTransmit(void);

char *dec2binWzerofill(unsigned long, unsigned int);


/* dht11.c */
void dht11Read(void);
void dht11Init(int, int, int);


#endif


#endif

mercurial