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 onlyComplete 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)