You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Modelbahn/z21emu/z21emu.h

53 lines
1007 B

/*
* z21emu.h
*
* Created on: 16.12.2017
* Author: steffen
*/
#ifndef Z21EMU_H_
#define Z21EMU_H_
#include "config.h"
#define DEFAULT_CONFIG ETCPREFIX"/z21emu.conf"
#define RBUS_BYTESPERGROUP 10
#define RBUS_GROUPS 2
#define RBUS_MAXSENSORBYTES (RBUS_GROUPS*RBUS_BYTESPERGROUP)
#define XLAN_TURNOUT_MAX 1024
#define XLAN_TURNOUTBYTES (XLAN_TURNOUT_MAX / 8)
enum {
I2CREGTYPE_UNDEF,
I2CREGTYPE_DI,
I2CREGTYPE_DO
};
struct s_rbussensor {
unsigned char status; // current value
unsigned char last; // last value
unsigned char i2c_addr; // i2c address
unsigned char i2c_reg; // i2c register
};
extern struct s_rbussensor rbus[RBUS_MAXSENSORBYTES];
struct s_xlanturnout {
unsigned char i2c_addr; // i2c address
unsigned char i2c_reg; // i2c register
unsigned char output; // current value
unsigned char last; // last value
};
extern struct s_xlanturnout xlturn[XLAN_TURNOUT_MAX];
extern int debug;
void xlan_turnout (int addr, bool enable);
#endif /* Z21EMU_H_ */