Main.Bf3UploadContinue

This command is used to transfer the data of a BEC2/BF3 file block by block to the reader.
The host transfers the data block of the BEC2/BF3 file which has been requested by the reader previously. The response parameter RequiredAction indicates how the host has to proceed afterwards:

For more details about implementation, please refer to the help topic Implement wired upload via the host.

Properties

Parameters (request frame)

Name Type/Size Description
DataAdr Integer (32 bits) Address of data block that is being transferred. Has to correspond to the ReqDataAdr parameter in the reader's response to the previous command (i.e. the last Bf3UploadContinue or the Main.Bf3UploadStart command).
Length of Data Integer (16 bits) Length of Data in byte
Data Raw data Data requested by the reader

Returned values (response frame)

Name Type/Size Description
RequiredAction Bit mask (8 bits) Next action required from host
RFU Integer (bit mask area 0xFC) Zero padding
Reconnect Boolean (bit 0x02) If this bit is set to 1, the host has to disconnect and reconnect to the reader.
Continue Boolean (bit 0x01)

If this bit is set to 1, the host has to continue by transferring the next data block of the BEC2/BF3 file.

If this bit is set to 0, the reader has received all required data blocks: Upload is completed.

ReqDataAdr Integer (32 bits) Start byte of next data block requested by the reader
ReqDataLen Integer (16 bits) Number of bytes of next data block requested by the reader. This value may also be 0.
AdditionalFields Bit mask (8 bits) Bit mask of additional parameter fields that the response contains
RFU Integer (bit mask area 0xFC) Zero padding
ContainsEstimation Boolean (bit 0x02) If this bit is set to 1, the response contains estimation information fields.
ContainsReconnectRetryTimeout Boolean (bit 0x01) If this bit is set to 1, the response contains the ReconnectRetryTimeout field.
Optional field, condition: ContainsReconnectRetryTimeout
ReconnectRetryTimeout Integer (32 bits)

If a reconnect is requested, this field specifies how long the host has to try (time period in ms).

You need to add the ReconnectRetryTimout to the OS-specific base reconnect timeout.
For Windows, we recommend a base reconnect timeout of 10000 ms. For all other platforms, please check how long it takes for a reader to be available again after a reboot.
Optional field, condition: ContainsEstimation
EstimatedNumberOfBytes Integer (32 bits)

This is an estimation of the total amount of data bytes that have to be transferred from the host to the reader to upload the current BEC2/BF3 file.

This information is only returned once as soon as the reader has gathered enough data to perform this estimation.

Note:
In special cases, e.g. if you re-perform a firmware upload that was aborted before, the reader returns a worst-case estimation that may be higher than the actual amount of data bytes to transfer.

EstimatedTimeOverhead Integer (32 bits)

This is an estimation of the total time in ms the reader requires for additional internal tasks during the upload, which lead to occasional communication pauses.

If the reader can maintain communication during such a task, it keeps responding to calls of the Bf3UploadContinue command; the ReqDataLen response parameter will then be set to 0. If the reader can't maintain communication, it asks for a reconnect with an additional retry timeout, which is indicated by the optional ReconnectRetryTimeout parameter.

This information is only returned once as soon as the reader has gathered enough data to perform this estimation.