29#ifndef PROTOCORE_S7COMM_H
30#define PROTOCORE_S7COMM_H
39#define S7_PROTOCOL_ID 0x32
42#define S7_ROSCTR_JOB 0x01
43#define S7_ROSCTR_ACK 0x02
44#define S7_ROSCTR_ACK_DATA 0x03
45#define S7_ROSCTR_USERDATA 0x07
48#define S7_FUNC_SETUP_COMM 0xF0
49#define S7_FUNC_READ_VAR 0x04
50#define S7_FUNC_WRITE_VAR 0x05
53#define S7_AREA_INPUTS 0x81
54#define S7_AREA_OUTPUTS 0x82
55#define S7_AREA_FLAGS 0x83
56#define S7_AREA_DB 0x84
57#define S7_AREA_COUNTER 0x1C
58#define S7_AREA_TIMER 0x1D
79#define S7_SYNTAX_S7ANY 0x10
83size_t pc_s7_build_setup(uint8_t *buf,
size_t cap, uint16_t pdu_ref, uint16_t max_amq_calling, uint16_t max_amq_called,
91 uint32_t byte_address;
92 uint8_t transport_size;
97size_t pc_s7_build_read_request(uint8_t *buf,
size_t cap, uint16_t pdu_ref,
const S7ReadItem *items,
size_t n);
104 uint32_t byte_address;
105 uint8_t transport_size;
107 uint8_t data_transport_size;
119size_t pc_s7_build_write_request(uint8_t *buf,
size_t cap, uint16_t pdu_ref,
const S7WriteItem *items,
size_t n);
131 const uint8_t *param;
136bool pc_s7_parse_header(
const uint8_t *buf,
size_t len, S7Header *out);
142 uint8_t transport_size;
153bool pc_s7_read_next_item(
const uint8_t *data,
size_t data_len,
size_t *offset, S7DataItem *out);
User-facing configuration for ProtoCore.