Support für BiDiB

SecureACK

BiDiB sorgt dafür, dass Rückmeldungen sicher im PC angekommen. Hierzu dient SecureACK. Bei diesem Verfahren werden die Rückmeldebits vom Host wieder in den Belegtmelder zurückgeschrieben. Dieser vergleicht diese vom Host gemeldeten Daten mit seinen zuvor abgeschickten Daten und bei Abweichungen wird die Übertragung automatisch wiederholt.

Voraussetzung für SecureACK:
Das Feature 2 muss auf 1 eingestellt sein.

Ablauf

Zu Beginn holt man die Belegtmeldungen mit MSG_BM_GET_RANGE ab. Diese Anfrage wird mit einem MSG_BM_MULTIPLE beantwortet. Damit liegt ein Belegtvektor vor, diesen schickt man 1:1 zurück.

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

Ebenso wird verfahren, wenn der Melder eine einzelne neue Belegung schickt:

Host Knoten
  MSG_BM_OCC (mnum1)
MSG_BM_MIRROR_OCC (mnum1)  

Natürlich gilt dies auch für Freimeldungen, diese müssen ebenso quittiert werden:

Host Knoten
  MSG_BM_FREE (mnum2)
MSG_BM_MIRROR_FREE (mnum2)  

Es ist egal, ob jede neue Meldung einzeln quittiert wird oder ob immer ein Summenvektor zurückgeschickt wird – alles was unterschiedlich ist, wird vom Rückmelder periodisch wiederholt.