Skip to main content

Macsha

Macsha's One4All system is a chip/tag (RFID) protocol, not a clock. It's documented here under External Timers — not Chip/Bib Timing — to match the Macsha entry in the Device dropdown and the built-in Help. (Carmen is placed here for the same reason.)

Setup​

Open the Initialize External Timers dialog, then on an empty slot (one of the numbered device rows):

  1. Set Device to Macsha.
  2. Set Port to 10002.
  3. Check the TCP box.

External Timers dialog with Device set to Macsha, Port 10002, and TCP checked

RunScore then prompts for the One4All ID (0–15) for that decoder:

Input dialog prompting for the One4All ID, 0 to 15

Each ID maps to a fixed IP address on the network: 192.168.1.(10 + ID) — for example, ID 0 is 192.168.1.10 and ID 15 is 192.168.1.25.

One4All IDIP address
0192.168.1.10
1192.168.1.11
2192.168.1.12
3192.168.1.13
4192.168.1.14
5192.168.1.15
6192.168.1.16
7192.168.1.17
8192.168.1.18
9192.168.1.19
10192.168.1.20
11192.168.1.21
12192.168.1.22
13192.168.1.23
14192.168.1.24
15192.168.1.25

Connection behavior​

RunScore is the TCP client for Macsha — it connects out to the One4All decoder's IP address above, port 10002. RunScore never listens for Macsha to connect in.

Once connected, RunScore:

  1. Sends PUSHTAGS; true to switch the decoder into push mode.
  2. Waits for both a HELLO_ message and a PUSHTAGS acknowledgment from the decoder (order doesn't matter — they may arrive separately or concatenated).
  3. Sends START to begin receiving passings.

When you stop the slot (or remove it), RunScore automatically sends STOP to shut the connection down cleanly — this isn't a manual step:

External Timers dialog with the Macsha slot's Start/Stop set to Stop

Incoming data​

Once passings start arriving, they show up in Enter/Edit Results like any other timer:

Results screen for event TIME showing two live passings and a 'Not found' runners added to database message

Each passing record is semicolon-delimited:

<PassingNo>;<TimerCode>;<ChipNumber>;<Date>;<Time>;<Antenna>;<SeenCount>;<EPC>;...;<Checksum>

RunScore only reads two fields:

  • ChipNumber (field 3) is used directly as the bib number — there's no separate chip-to-bib lookup for Macsha, so a runner's chip number must match their bib number in the database.
  • Time (field 5) — RunScore accepts both time formats Macsha has used: h:m:s.fff (version 3.1+) and h:m:s,fff (version 3.0). Sub-second precision is milliseconds (3 digits, e.g. 10:01:20.005); RunScore rounds up to hundredths internally.

Because the chip number is treated as the bib number, an unrecognized chip/bib is handled the same way as any other timer. If NOT FOUND ADDED is enabled (see Results Options), RunScore adds the runner to the database automatically — shown above as 'Not found' runners added to database.

Exported/imported JSON

If you hand-edit an exported timer JSON file (see Import and Export), Macsha's internal device code is MACSCHA, not MACSHA.

Reference​

Macsha publishes their One4All protocol documentation at help.macsha.com.