feat(e10): SIC e10 part marker client, pattern generator and eDNC simulator
Groundwork for replacing a Telesis pinstamp with a SIC Marking e10 while
keeping the existing eDNC/MarkTelesis operator workflow. MarkTelesis has a
hardcoded marker-type enum and eDNC is serial-only, so the plan is a
translator that impersonates a Telesis controller on a COM port. These are
the pieces that translator will be built from, all verified against a real
e10 (a P63, firmware "E10 P63 (20140924)").
scripts/e10-client.py
e10-V6 protocol client. Marking path and file transfer both use the BINARY
protocol: the text protocol uses space as its delimiter, so it cannot carry
a field cleared to a single space nor the space runs in real marked text,
and it has no checksum. Includes fault decoding against the manual's fig 1,
and a guard that refuses to overflow a variable's declared buffer.
scripts/make-e10-pattern.py
Builds marking files with DECLARED variables. The controller's own protocol
cannot create one: NEWFILE/INSERTTEXTLINE/SAVEFILE writes the reference but
leaves the variable count at zero, and SETVAR then fails. Template-based,
copying through byte-for-byte everything the format notes do not explain.
scripts/simulate-ednc.py
Parses a part program, substitutes tokens and emits the byte-exact frames
MarkTelesis would send, then translates them for the e10 and can drive one.
The wire format came from disassembling MarkTelesis.exe rather than from a
capture: frame builder at 0x401cf0, and the type letters at their call
sites. Note there is no station ID, unlike the Backup470 dialect.
scripts/fake-telesis.py
Answers as a Telesis controller so MarkTelesis will hold a conversation
long enough to be recorded, with switches to force NAK and timeout paths.
reference/e10/
52-file snapshot off the bench controller, used as the corpus for reversing
the MARK_V5.0 format and for testing without hardware. ConfigCtrl is
excluded and gitignored - it stores the supervisor password in cleartext.
GE part programs are excluded for the same reason.
Three hardware findings worth knowing:
- The controller TRUNCATES SILENTLY to a variable's declared buffer size
while SETVAR still answers ok, and GETVAR echoes the full value back so
it cannot detect this. Guarded client-side against the size in the file.
- It refuses to mark when a referenced variable is unset, which makes an
unset field fail loudly rather than marking the previous part's data.
- Setting variables does not modify the stored file, so backups will not
churn on every marked part.
This commit is contained in:
31
reference/e10/README.md
Normal file
31
reference/e10/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# SIC e10 reference snapshot
|
||||
|
||||
Pulled off the bench controller (a P63, firmware `E10 P63 (20140924)`) on
|
||||
2026-08-27 with `scripts/e10-client.py backup`. 52 files: marking files,
|
||||
scribble logos, and the controller's own config files.
|
||||
|
||||
Used as the reference corpus for reversing the `MARK_V5.0` marking file format
|
||||
and for testing the e10 client without hardware attached.
|
||||
|
||||
## Deliberately missing: ConfigCtrl
|
||||
|
||||
`ConfigCtrl` is the controller configuration file. **It stores the programmer
|
||||
and supervisor password in cleartext**, so it is not in this repo and must
|
||||
never be committed. It is kept outside git at
|
||||
`~/pxe-images/e10-ConfigCtrl-2026-08-27.kind1`, mode 0600, following the same
|
||||
convention as the other site-sensitive artefacts (ADR-015).
|
||||
|
||||
`.gitignore` blocks `ConfigCtrl*` and `*.kind1` under this directory so a
|
||||
future snapshot cannot reintroduce it by accident.
|
||||
|
||||
This has a direct consequence for the backup design: **any e10 snapshot that
|
||||
includes the controller config contains a live credential.** Whatever ACL
|
||||
protects the partmarker backup tree on the share has to account for that, and
|
||||
the ShopDB asset panel must never render the file's contents.
|
||||
|
||||
## Part programs
|
||||
|
||||
GE part programs are NOT in this repo - they carry part numbers and marking
|
||||
content. They live outside git at `~/pxe-images/e10-testing/partprograms/`,
|
||||
alongside the testing README. `.gitignore` blocks the path here so one cannot
|
||||
be added by accident.
|
||||
51
reference/e10/snapshot-2026-08-27.sha256
Normal file
51
reference/e10/snapshot-2026-08-27.sha256
Normal file
@@ -0,0 +1,51 @@
|
||||
70cce4c34a91027ed94bbe8b756598eee8af17f2d002f3460bd90d990fb436b4 AROBAS.scribblelogo
|
||||
10e2f1aa3071ca2d84a5349166ed3c660b8ff008eb944ef92cfc5274f005599e C151TEST.marking
|
||||
d3221a50bcaca36382797b7f6e8f8e8faa50324e37a9e3b4505b3642a048493d C151ZATEST.marking
|
||||
e091265e92eb2b6f205cf9df04eac49197e6af32c87b8c18142a56c2c7219b92 C153DTEST.marking
|
||||
64e0af0dc88768918c855ac79476eafd4f847a6457c3cc887a67965ccf1dc207 C153TEST.marking
|
||||
1e6e804d24110ae1e6737a02019ffa4b2fd5a439dbf63197e81761ff279a0042 C153ZA_TEST.marking
|
||||
3b11990968ddefa701de6fdcd3b2b6c444628aa131b883c800b6cb23cdde63de C303TEST.marking
|
||||
2e838035bea993f4b41ed3aef294492745d5d7ac09b46a40eca2b63e61f0e28b CE.scribblelogo
|
||||
477790ff20bf8e19dfc61091af720be628cabc861062b3bfbae573cf7d2e9eb0 DIAMETR1.scribblelogo
|
||||
af6bb7fc933a0204ae2d13428abf1e690b84875c77a6b135be702eff33a69cb5 DOLLAR.scribblelogo
|
||||
414e0eef39661ce6974c332ff87fd1e33e32dca16d4c3fcb180844d3f712fe27 EURO.scribblelogo
|
||||
e0084b66cb4a03e2aba6cc7342eead6a91610ad915d66f9ae2c734f99b772ac7 File-Select.kind1
|
||||
2c04cfccfe998cec4f2174b5f4afb38f674606b1fea4de0cf27762e9d1811de9 FLECHE.scribblelogo
|
||||
e54393d2f36be9c038b435cd378bef7841bdebecd2f5377ae061179250a60b46 FolderDef.kind1
|
||||
0979584b27575fd47098af4c247ce3753ca230682bf81e1b4981c3473ea31da2 I111DTEST.marking
|
||||
466c52d43773f34953db31812f041ed5607f6a439018382e5a4c632378609e1d I111STEST.marking
|
||||
faf4e6c890038fa694efb0c5e71b90882ef963f77b88eb78cbca6b9e3913c9ed I113DTEST.marking
|
||||
5c023699db1bc23f1486fbe1bd9dbf47020be0745eabe3d6a0f39f01af0d24bb I113STEST.marking
|
||||
82c4eb3df4fa3c999ac852dd76ffb115e6e183e1266efbeb5e59711ad054efe3 I141_ATEST.marking
|
||||
ca605734925a2369ad27370a628afc8d78197dd2916059413066282278aa064b I141TEST.marking
|
||||
f60c08c64e67ee15da84e6af251f103b1851d30aa64b72ae685bd0a7d635091b I52TEST.marking
|
||||
cb5c02fad724be06f5ca7ec2e07684ca1c6e876dbe9fc93d8c5b2a4d027b76e5 I61HATEST.marking
|
||||
ab7e80458d29f40643c5f29b028998ee461449c2fb60654b8eb7d1db0dac66d9 I61STEST.marking
|
||||
a1a649f60076a12af8cebf7dddd21a6a50b4679e2263a0959880fe634ee19395 I81-ATEST.marking
|
||||
276157a44ad7b0d5b658c0207b66344f1b6c7747d600435150b4f08cb3c2319d I81TEST.marking
|
||||
a3958d8271b395431cbbd9b70fbf992bec29d4fdc50aed3a89352b94040ce3ce MIRE.scribblelogo
|
||||
51f32036eafdc34ee296c7af0f99497961a85c88e9490698782f80d0f0bbd5a4 NEW.marking
|
||||
517b1254b6c7636d25cee78c41d4164d523069db6477119c7b3934c9953a3092 NF.scribblelogo
|
||||
e9c628286a4a5e8dd21e40524081dc16f56e7d252eff4a0bc60885153d677836 P122_40TEST.marking
|
||||
87899b8fcd02a53ce2b7cece87b22339a326e0d0e3a4471d405413623bf9f8ce P122TEST.marking
|
||||
fa1dc4effb6af039c47665597183030bf77939e68f0e6ee7c21dce6b258ed249 P62TEST.marking
|
||||
ed5c962db3376f43ec5a0b0bdeb3d42df0d08671d86d199995dbd065ef27cd72 PHONE.scribblelogo
|
||||
7a8749129203e4729a3f40b63d98963ce658c5c523d701a20817cc243375a598 POWER.scribblelogo
|
||||
b280f55cefb8467f2e5bc72bf573ac1b12e2c37aaed7b65cc01994cfd596a9bb RECYCLAG.scribblelogo
|
||||
49bf169537af2b2d830331dd8d263e684bc6a831cfcaf2dadd7d3005c80507f2 ROUND.scribblelogo
|
||||
f7d6a767b43d8d990937edc87c64fe16e3df48a2a62bdd182d8ee0570dbb6b65 RROUND.scribblelogo
|
||||
b63008e8a99d098774db34e5eb759ee7ce2cb6935061aad4f4639ad1d3101214 RU.marking
|
||||
befeb2d21947be021bfa8bcbacfa1a1a9410cf07a1502425d16dae0efedad3b3 SAVE_ACC_1.kind7
|
||||
d9cb28a5ca4742d2a99b302cada595171d9aba83892973f6c09a00f5a04b9be8 SENSINTE1.scribblelogo
|
||||
90d36b9d0167d6343fb71fbc65750d4f162a31d394bf6fd15700481608b66b43 SIC.scribblelogo
|
||||
5223b4860a45e531c04ea68038e5654504ff07968cb31ed409879dafc3dcd3d6 SQUARE.scribblelogo
|
||||
a3ffe9466ef36622242e9b878cf3a5059428db3580fe623f99a62b0f0bff6252 STAR.scribblelogo
|
||||
7fe8657ba86d3d048d5b1ff529bde7dcd138946a8aed54284d51f959d8d7815c TENSION.scribblelogo
|
||||
c0061f304587e65597a6a685d009f5e36dae49aa662f5cbc2ed8bc8d5c13c124 TERRE.scribblelogo
|
||||
6dacf2f4ce950e9a29bdc525b43966fe05e00166d668a6108e48a89a1e4463c4 TEST_DB1.marking
|
||||
e510e74205dc57d106c0ab5484200a7a7ba8616c3d9580bc45500be00b04dc6f TEST_DB2.marking
|
||||
3aefdb0845861635ba9c9bbe73ebb020736786ff688267a1e048f281481d20a5 TEST_DB3.marking
|
||||
95a4056868e686d14766d74158ac781b91903df158fde5691f003d3aca0324be TEST.marking
|
||||
de6574fa8579b4fe1d2d9f627f9f203354eafd2a2facbf183c1656d2f2d053d2 TESTP120.marking
|
||||
f6a519fb92aff6efdd59caaded3728f38b878b83fa51ac37ca081b452a8d960c TEST_RU.marking
|
||||
73aa19ae9f2feef8b85dc5de2659b097b8580470be69c2afd758fe30b6def398 TRIANGLE.scribblelogo
|
||||
BIN
reference/e10/snapshot-2026-08-27/AROBAS.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/AROBAS.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C151TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C151TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C151ZATEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C151ZATEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C153DTEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C153DTEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C153TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C153TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C153ZA_TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C153ZA_TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/C303TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/C303TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/CE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/CE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/DIAMETR1.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/DIAMETR1.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/DOLLAR.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/DOLLAR.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/EURO.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/EURO.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/FLECHE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/FLECHE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I111DTEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I111DTEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I111STEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I111STEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I113DTEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I113DTEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I113STEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I113STEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I141TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I141TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I141_ATEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I141_ATEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I52TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I52TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I61HATEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I61HATEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I61STEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I61STEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I81-ATEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I81-ATEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/I81TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/I81TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/MIRE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/MIRE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/NEW.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/NEW.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/NF.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/NF.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/P122TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/P122TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/P122_40TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/P122_40TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/P62TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/P62TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/PHONE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/PHONE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/POWER.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/POWER.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/RECYCLAG.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/RECYCLAG.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/ROUND.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/ROUND.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/RROUND.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/RROUND.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/RU.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/RU.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/SAVE_ACC_1.kind7
Normal file
BIN
reference/e10/snapshot-2026-08-27/SAVE_ACC_1.kind7
Normal file
Binary file not shown.
5
reference/e10/snapshot-2026-08-27/SENSINTE1.scribblelogo
Normal file
5
reference/e10/snapshot-2026-08-27/SENSINTE1.scribblelogo
Normal file
@@ -0,0 +1,5 @@
|
||||
зз##0>
|
||||
M^n~
|
||||
<EFBFBD><10>Ќ#Й0У>ЬMв^жnз~ж<>в<EFBFBD>ЬЌУЙЙУЌЬ<D08C>в<EFBFBD>ж~зnж^вMЬ>У0Й#Ќ<19><10>
|
||||
~n^M
|
||||
>0##н"ИЙ"нн
|
||||
BIN
reference/e10/snapshot-2026-08-27/SIC.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/SIC.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/SQUARE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/SQUARE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/STAR.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/STAR.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TENSION.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/TENSION.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TERRE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/TERRE.scribblelogo
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TEST.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TEST.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TESTP120.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TESTP120.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TEST_DB1.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TEST_DB1.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TEST_DB2.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TEST_DB2.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TEST_DB3.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TEST_DB3.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TEST_RU.marking
Normal file
BIN
reference/e10/snapshot-2026-08-27/TEST_RU.marking
Normal file
Binary file not shown.
BIN
reference/e10/snapshot-2026-08-27/TRIANGLE.scribblelogo
Normal file
BIN
reference/e10/snapshot-2026-08-27/TRIANGLE.scribblelogo
Normal file
Binary file not shown.
Reference in New Issue
Block a user