Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Sireader is a python module to communicate with a SportIdent main station to read out SportIdent cards. SportIdent is an electronic punching system mainly used for orienteering events.

Sireader supports two major operation modes. It can be used for complete card readout or in control station mode to send punches from a control. The first mode is typically used for card readout after the finish line to read the card data into an event software. The second mode is used to get live result from an intermediate control.

Website: http://bosco.durcheinandertal.ch/

GIT Repository: http://git.durcheinandertal.ch/?p=sireader.git;a=summary

Usage

There are 3 classes in the sireader module. SIReader is the base class containing common functions. It’s imported to have easy access to it’s constants. SIReaderReadout implements classical card readout. SIReaderControl implements a station configured as control which continuously sends punches.

First import the relevant classes:

from sireader import SIReader, SIReaderReadout, SIReaderControl

SIReader only supports the so called “Extended Protocol” mode. If your base station is not in this mode you have to change the protocol mode first:

# change to extended protocol mode
si.set_extended_protocol()

To use a SportIdent base station for card readout:

from time import sleep

# connect to base station, the station is automatically detected,
# if this does not work, give the path to the port as an argument
# see the pyserial documentation for further information.
si = SIReaderReadout()

# wait for a card to be inserted into the reader
while not si.poll_sicard():
    sleep(1)

# some properties are now set
card_number = si.sicard
card_type = si.cardtype

# read out card data
card_data = si.read_sicard()

# beep
si.ack_sicard()

To use a base station as a control sending punches:

# configure station
si.set_operating_mode(SIReader.M_CONTROL)
si.set_station_code(99)
si.set_autosend()

# connect to station
si = SIReaderControl()

# poll for new punches
punches = si.poll_punch()

# reset station configuration
si.set_operating_mode(SIReader.M_READOUT)
si.set_autosend(False)

Finally set the station back to basic protocol:

# change back to basic protocl
si.set_extended_protocol(False)

API Documentation

Complete documentation is contained in the module source code and can be read online at:

http://bosco.durcheinandertal.ch/epydoc-sireader/

This documentation is autogenerated from the source code and represents the version in the GIT repository.

Release files for sireader (latest release)

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sireader (latest release)
File Size Uploaded
sireader-1.0.0.tar.bz2 23.5 kB Details

Release files / sireader-1.0.0.tar.bz2

Download URL sireader-1.0.0.tar.bz2
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e5a5a331a9a79f20fab358f70129c1c37cafffad4e15335470753d3838a64613
BLAKE2b-256 checksum
How to use checksums
2c4af6b3cbd8ef6beabe5802074a06a2eb7e0869b05d6faa212b4cf107d6cd06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.1.3

2 release files

1.1.1

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0.dev

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page