Skip to main content

How to update readers

This section will give a technical explanation of how to update readers.

ReaderConfigurator is the object in charge of managing the update. To create a ReaderConfigurator, use the ReaderConfiguratorFactory.

let readerConfigurator = ReaderConfiguratorFactory.createConfigurator(delegate: delegate)

Where the delegate implements the ReaderConfiguratorDelegateprotocol. Each delegate callback will guide you into completing the configuration, and asking for needed data.

On the ReaderConfiguratorDelegate.onConfigurationRequired method, you must provide a ReaderConfigurationFiles object. There are several factories according the configuration type and the reader used, firmware configuration can be done as follows:

QPOS

QposReaderConfigurationFactory.qposFirmwareFiles(firmware: url)

Where firmware contains the bundle file provided from Geopagos.

MagicPOS

MagicPosReaderConfigurationFactory.qposFirmwareFiles(firmware: url)

Firmware configuration is the same as QPOS.

In the case that the bundle file does not contain a configuration that matches the configuration type and the reader requested, it will return a .invalidConfiguration error.

QPOS Mini firmware update (Edge case)

In the case Firmware update fails, the reader is left in a “boot state” (not response to press any key). In this case it is necessary to use a special device to finish the update.

let qposMiniFirmwareRestoreDevice = QposMiniFirmwareRestoreDevice(device: device, readerInfo: readerInfo)