39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
/*---------------------------------------------------------------------------
|
|
modbus.h
|
|
|
|
Communication routines for Eurotherm ModBus instruments
|
|
|
|
Markus Zolliker, Aug 2005
|
|
----------------------------------------------------------------------------*/
|
|
|
|
#ifndef MODBUS_H
|
|
#define MODBUS_H
|
|
|
|
#include "ease.h"
|
|
|
|
#define MODBUS_BAD_CRC -3090
|
|
|
|
typedef enum { modBusFloat, modBusInt, modBusTime } ModBusType;
|
|
|
|
int ModBusHandler(void *eab);
|
|
|
|
void ModBusPutFloats(EaseBase * eab, int adr, int npar, float val[]);
|
|
/* put floats with contiguous adresses */
|
|
|
|
void ModBusRequestValues(EaseBase * eab, int adr, int npar);
|
|
/* request floats or time (not int) with contiguous adresses */
|
|
|
|
float ModBusGet(EaseBase * eab, int adr, int type);
|
|
/* get value from the ModBusRequestValues command (no int!) */
|
|
|
|
void ModBusRequestValue(EaseBase * eab, int adr, int type);
|
|
/* request one value of arbitrary type */
|
|
|
|
float ModBusGetValue(EaseBase * eab, int type);
|
|
/* get this value */
|
|
|
|
void ModBusPutValue(EaseBase * eab, int adr, int type, float val);
|
|
/* put one value of arbitrary type */
|
|
|
|
#endif
|