29#ifndef PROTOCORE_S7COMM_H
30#define PROTOCORE_S7COMM_H
34#if PROTOCORE_ENABLE_S7COMM
42#define S7_PROTOCOL_ID 0x32
45#define S7_ROSCTR_JOB 0x01
46#define S7_ROSCTR_ACK 0x02
47#define S7_ROSCTR_ACK_DATA 0x03
48#define S7_ROSCTR_USERDATA 0x07
51#define S7_FUNC_SETUP_COMM 0xF0
52#define S7_FUNC_READ_VAR 0x04
53#define S7_FUNC_WRITE_VAR 0x05
56#define S7_AREA_INPUTS 0x81
57#define S7_AREA_OUTPUTS 0x82
58#define S7_AREA_FLAGS 0x83
59#define S7_AREA_DB 0x84
60#define S7_AREA_COUNTER 0x1C
61#define S7_AREA_TIMER 0x1D
82#define S7_SYNTAX_S7ANY 0x10
90 uint32_t byte_address;
91 uint8_t transport_size;
100 uint32_t byte_address;
101 uint8_t transport_size;
103 uint8_t data_transport_size;
118 const uint8_t *param;
126 uint8_t transport_size;
137 uint16_t max_amq_calling;
138 uint16_t max_amq_called;
140} S7commBuildSetupArgs;
148 const S7ReadItem *items;
150} S7commBuildReadRequestArgs;
158 const S7WriteItem *items;
160} S7commBuildWriteRequestArgs;
168} S7commParseHeaderArgs;
177} S7commReadNextItemArgs;
214 S7commBuildSetupArgs build_setup_args;
215 S7commBuildReadRequestArgs build_read_request_args;
216 S7commBuildWriteRequestArgs build_write_request_args;
217 S7commParseHeaderArgs parse_header_args;
218 S7commReadNextItemArgs read_next_item_args;
224extern S7commVars S7commV;
229 void (*
const build_setup)(uint8_t *work);
230 void (*
const build_read_request)(uint8_t *work);
231 void (*
const build_write_request)(uint8_t *work);
232 void (*
const parse_header)(uint8_t *work);
233 void (*
const read_next_item)(uint8_t *work);
238void protocore_s7comm_build_setup(uint8_t *work);
239void protocore_s7comm_build_read_request(uint8_t *work);
240void protocore_s7comm_build_write_request(uint8_t *work);
241void protocore_s7comm_parse_header(uint8_t *work);
242void protocore_s7comm_read_next_item(uint8_t *work);
248static const S7commNs S7comm __attribute__((unused)) = {
249 .build_setup = protocore_s7comm_build_setup,
250 .build_read_request = protocore_s7comm_build_read_request,
251 .build_write_request = protocore_s7comm_build_write_request,
252 .parse_header = protocore_s7comm_parse_header,
253 .read_next_item = protocore_s7comm_read_next_item,
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS