SDK DocsMag Session

MagSession — Magnetic Encoding

evolis.MagSession reads and writes data on the magnetic stripe of a card.

Constructor

MagSession(connection: Connection)

Automatically calls init() to reset all track data.

Track Management (In-Memory)

These methods only operate on in-memory data — nothing is sent to the printer.

set_track(track, format: MagFormat, data: str)

Configure a track before writing.

ms = evolis.MagSession(co)
ms.set_track(evolis.MagTrackNumber.TRACK1, evolis.MagFormat.ISO1, "LAST/FIRST^TITLE")
ms.set_track(evolis.MagTrackNumber.TRACK2, evolis.MagFormat.ISO2, "1234567890123456")
ms.set_track(evolis.MagTrackNumber.TRACK3, evolis.MagFormat.ISO3, "0000000000")

Also accepts integer track indices (0, 1, 2).

get_data(track) -> str

Retrieve track data after a read() call.

rc = ms.read()
if rc == evolis.ReturnCode.OK:
    print("Track 1:", ms.get_data(evolis.MagTrackNumber.TRACK1))
    print("Track 2:", ms.get_data(evolis.MagTrackNumber.TRACK2))

get_format(track) -> MagFormat

Get the format of a specific track.

set_format(track, format: MagFormat)

Change the format for a track without changing its data.

get_coercivity() -> MagCoercivity

Get the coercivity setting (OFF, LOCO, HICO).

set_coercivity(c: MagCoercivity)

Set coercivity before writing.

ms.set_coercivity(evolis.MagCoercivity.HICO)

get_status(track) -> ReturnCode

Get the result of the last read/write for a specific track.

init()

Reset all track data, formats, and results.

Printer Operations

write(timeout_ms: int = 30000) -> ReturnCode

Write configured tracks to the card. If no card is present, one is inserted from the input tray.

rc = ms.write()
if rc != evolis.ReturnCode.OK:
    print("Write failed:", rc)

read(timeout_ms: int = 30000) -> ReturnCode

Read all three tracks from the card.

read_tracks(t0: bool, t1: bool, t2: bool, timeout_ms: int = 30000) -> ReturnCode

Read only the specified tracks.

rc = ms.read_tracks(True, True, False)  # read track 1 and 2 only

Complete Write Example

import evolis
 
with evolis.Connection("Evolis Primacy") as co:
    ms = evolis.MagSession(co)
    ms.set_coercivity(evolis.MagCoercivity.HICO)
    ms.set_track(evolis.MagTrackNumber.TRACK1, evolis.MagFormat.ISO1, "SMITH/JOHN^MR")
    ms.set_track(evolis.MagTrackNumber.TRACK2, evolis.MagFormat.ISO2, "4111111111111111")
 
    rc = ms.write()
    print("Mag write result:", rc)

Complete Read Example

import evolis
 
with evolis.Connection("Evolis Primacy") as co:
    ms = evolis.MagSession(co)
    rc = ms.read()
    if rc == evolis.ReturnCode.OK:
        print("T1:", ms.get_data(0))
        print("T2:", ms.get_data(1))
        print("T3:", ms.get_data(2))
    else:
        print("Read error:", rc)