Commit e96829a
Fix USERDATA PDU header size (10 bytes, not 12)
USERDATA PDUs use a 10-byte header without error_class/error_code,
while ACK/ACK_DATA use 12-byte headers. This was causing "Data section
extends beyond PDU" errors when parsing USERDATA responses from real PLCs.
Changes:
- s7protocol.py: parse_response() now detects PDU type and uses correct
header size (10 bytes for USERDATA, 12 bytes for ACK/ACK_DATA)
- server/__init__.py: Build USERDATA responses with 10-byte header
- client.py: Check for errors in data section return_code for USERDATA
responses (errors are in data section, not header)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent 20e6416 commit e96829a
3 files changed
+33
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1297 | 1297 | | |
1298 | 1298 | | |
1299 | 1299 | | |
1300 | | - | |
| 1300 | + | |
1301 | 1301 | | |
1302 | 1302 | | |
1303 | 1303 | | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
1304 | 1310 | | |
1305 | 1311 | | |
1306 | 1312 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1162 | 1162 | | |
1163 | 1163 | | |
1164 | 1164 | | |
1165 | | - | |
| 1165 | + | |
1166 | 1166 | | |
1167 | 1167 | | |
1168 | | - | |
1169 | | - | |
1170 | | - | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
1171 | 1187 | | |
1172 | 1188 | | |
1173 | 1189 | | |
| |||
1185 | 1201 | | |
1186 | 1202 | | |
1187 | 1203 | | |
1188 | | - | |
1189 | | - | |
1190 | 1204 | | |
1191 | 1205 | | |
1192 | 1206 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1980 | 1980 | | |
1981 | 1981 | | |
1982 | 1982 | | |
1983 | | - | |
1984 | | - | |
| 1983 | + | |
| 1984 | + | |
1985 | 1985 | | |
1986 | | - | |
| 1986 | + | |
1987 | 1987 | | |
1988 | | - | |
| 1988 | + | |
1989 | 1989 | | |
1990 | 1990 | | |
1991 | 1991 | | |
1992 | 1992 | | |
1993 | 1993 | | |
1994 | 1994 | | |
1995 | | - | |
1996 | | - | |
1997 | 1995 | | |
1998 | 1996 | | |
1999 | 1997 | | |
| |||
2031 | 2029 | | |
2032 | 2030 | | |
2033 | 2031 | | |
2034 | | - | |
| 2032 | + | |
2035 | 2033 | | |
2036 | | - | |
| 2034 | + | |
2037 | 2035 | | |
2038 | 2036 | | |
2039 | 2037 | | |
2040 | 2038 | | |
2041 | 2039 | | |
2042 | 2040 | | |
2043 | | - | |
2044 | | - | |
2045 | 2041 | | |
2046 | 2042 | | |
2047 | 2043 | | |
| |||
0 commit comments