Petit Modbus 2.0
Loading...
Searching...
No Matches
PetitModbusPort.h
Go to the documentation of this file.
1
5#ifndef __PETIT_MODBUS_PORT_H__
6#define __PETIT_MODBUS_PORT_H__
7
8
9#define PETIT_CRC_TABULAR (0x4040)
10#define PETIT_CRC_BITWISE (0x2020)
11#define PETIT_CRC_EXTERNAL (0x9090)
12
13#define PETIT_INTERNAL (0x1333)
14#define PETIT_BOTH (0x1222)
15#define PETIT_EXTERNAL (0x2222)
16
17#define PETIT_USER_LED_NONE (0x7777)
18#define PETIT_USER_LED_FN (0x5555)
19#define PETIT_USER_LED_DEF (0x3333)
20
21// file with user-defined constants
22#include "PetitModbusUserPort.h"
23
24// functions defined by petit modbus
25extern void PetitRxBufferReset(void);
26extern pb_t PetitRxBufferInsert(pu8_t rcvd);
27extern pb_t PetitTxBufferPop(pu8_t* tx);
28
30// data defined for porting
31#if defined(PETIT_COIL) && \
32 (PETIT_COIL == PETIT_INTERNAL || PETIT_COIL == PETIT_BOTH)
33 pu8_t PetitCoils[NUMBER_OF_PETITCOILS];
34#endif
35#if defined(PETIT_REG) && \
36 (PETIT_REG == PETIT_INTERNAL || PETIT_REG == PETIT_BOTH)
37extern pu16_t PetitRegisters[NUMBER_OF_PETITREGISTERS];
38#endif
40
41#if defined(PETIT_INPUT_REG) && \
42 (PETIT_INPUT_REG == PETIT_INTERNAL ||\
43 PETIT_INPUT_REG == PETIT_BOTH)
44extern pu16_t PetitInputRegisters[NUMBER_OF_INPUT_PETITREGISTERS];
45#endif
46
47// functions to be defined for porting
48extern void PetitPortTxBegin(pu8_t tx);
49extern void PetitPortTimerStart(void);
50extern void PetitPortTimerStop(void);
51extern void PetitPortDirTx(void);
52extern void PetitPortDirRx(void);
53#if defined(PETIT_CRC) && PETIT_CRC == PETIT_CRC_EXTERNAL
54extern void PetitPortCRC16Calc(pu8_t Data, pu16_t* CRC);
55#endif
56
57#if defined(PETIT_COIL) && \
58 (PETIT_COIL == PETIT_EXTERNAL || PETIT_REG == PETIT_BOTH)
59extern pb_t PetitPortCoilRead(pu16_t Addr, pu8_t* Data);
60extern pb_t PetitPortCoilWrite(pu16_t Addr, pu16_t Data);
61#endif
62
63#if defined(PETIT_REG) && \
64 (PETIT_REG == PETIT_EXTERNAL || PETIT_REG == PETIT_BOTH)
65extern pb_t PetitPortRegRead(pu8_t Addr, pu16_t* Data);
66extern pb_t PetitPortRegWrite(pu8_t Addr, pu16_t Data);
67#endif
68#if defined(PETIT_INPUT_REG) && \
69 (PETIT_INPUT_REG == PETIT_EXTERNAL || \
70 PETIT_INPUT_REG == PETIT_BOTH)
71extern pb_t PetitPortInputRegRead(pu8_t Addr, pu16_t* Data);
72#endif
73#if !defined(PETIT_USER_LED) || PETIT_USER_LED == PETIT_USER_LED_NONE
74#define PetitLedSuc()
75#define PetitLedErrFail()
76#define PetitLedCrcFail()
77#define PetitLedOff()
78#elif defined(PETIT_USER_LED) && PETIT_USER_LED == PETIT_USER_LED_FN
79extern void PetitLedSuc(void);
80extern void PetitLedErrFail(void);
81extern void PetitLedCrcFail(void);
82extern void PetitLedOff(void);
83#endif
84#endif /* __PETIT_MODBUS_PORT_H__ */
pu8_t PetitRegChange
Definition PetitReg.c:47
#define PetitLedErrFail()
void PetitRxBufferReset(void)
Definition PetitModbus.c:62
#define PetitLedCrcFail()
pb_t PetitRxBufferInsert(pu8_t rcvd)
Definition PetitModbus.c:75
pb_t PetitTxBufferPop(pu8_t *tx)
Definition PetitModbus.c:94
#define PetitLedSuc()
#define PetitLedOff()
#define pu16_t
pb_t PetitPortCoilRead(pu16_t Address, pu8_t *Data)
#define NUMBER_OF_PETITREGISTERS
void PetitPortTimerStart(void)
pb_t PetitPortCoilWrite(pu16_t Address, pu16_t Data)
#define PetitPortCRC16Calc(a, d)
pb_t PetitPortRegWrite(pu8_t Address, pu16_t Data)
pb_t PetitPortRegRead(pu8_t Address, pu16_t *Data)
#define NUMBER_OF_INPUT_PETITREGISTERS
#define pu8_t
void PetitPortTxBegin(pu8_t tx)
void PetitPortDirRx(void)
void PetitPortDirTx(void)
void PetitPortTimerStop(void)
#define pb_t