Support for BiDiB

SecureACK

BiDiB ensures that feedback signals safely arrived in the PC, this is made with SecureACK. With this method, the acknowledgement bits from the host will be written back to the occupancy detector. The detector compares these data reported by the host with its previously submitted data. The transmission will be utomatically repeated in case of deviations.

SecureACK requirements:
Feature 2 must be set to 1.

Sequence

At the beginning, messages need to be fetched with MSG_BM_GET_RANGE. This request is answered with a MSG_BM_MULTIPLE and a occupancy vector becomes available wich needs to be send back 1:1.

Host Knoten
MSG_BM_GET_RANGE (start, end) 
  MSG_BM_MULTIPLE (base, size, data(i)...data(n))
MSG_BM_MIRROR_MULTIPLE (base, size, data(i)...data(n))  

And similar, if the detector sends a new single occupancy:

Host Knoten
  MSG_BM_OCC (mnum1)
MSG_BM_MIRROR_OCC (mnum1)  

Of course this also applies to non occupancy messages, they also need to be acknowledged:

Host Knoten
  MSG_BM_FREE (mnum2)
MSG_BM_MIRROR_FREE (mnum2)  

It doesn't matter if each new message is acknowledged individually or whether getting a vector sum will be returned - all differences will be periodically repeated from the occupancy detector.