wetzoeker

8.14 — Selecteer vorige DailyRecord Regeling specificaties en typegoedkeuring boordcomputer taxi

Selecteer vorige DailyRecord

Naam | SelectPreviousDailyRecord

Gebruik | Chauffeurskaart

Input gegevens | CurrentDailyRecordPointer (bereik ‘00 14’H t/m (Length_EF.Driver_Activitiy_Data – 1)) PointerOldestDayRecord

Resultaat | DailyRecordPointer || ‘90 00’H OK ‘xx xx’H Foutcode van een van de gebruikte commando’s, afhankelijk van de implementatie

Hiervoor moeten de volgende stappen doorlopen worden:

1. Indien EF.Driver_Activity_Data nog niet geselecteerd is, selecteer EF.Driver_Activity_Data met het commando Select met P1P2 = ‘04 0C’H en data = ‘E8 28 BD 08 0F A0 00 00 01 67 45 53 49 47 4E’H, gevolgd door het commando Select met P1P2 = ‘02 0C’H en data = ‘44 01’H.

2. Indien PointerOldestDayRecord niet was meegegeven als inputgegeven, lees dan PointerOldestDayRecord met het commando Read Binary met offset = 0 en het verwachte aantal bytes in de respons 2.

3. Als CurrentDailyRecordPointer gelijk is aan PointerOldestDayRecord, dan is de geselecteerde DailyRecord de eerste (oudste) en is er geen vorige DailyRecord aanwezig. Breek dan deze functie af.

4. Zet Pointer_1 = CurrentDailyRecordPointer + 4 om de pointer naar PreviousDayRecordLength te verkrijgen.

5. Als Pointer_1 >= Length_EF.Driver_Activity_Data herbereken dan de positie met de formule: Pointer_1 = (Pointer_1 modulo Length_EF.Driver_Activity_Data) + ‘00 14’H (20)

6. Als nu Pointer_1 precies gelijk is aan (Length_EF.Driver_Activity_Data – 1), dan staat de MSB van PreviousDayRecordLength in de laatste byte van EF.Driver_Activity_Data en de LSB op positie ‘00 14’H (20). Voer dan twee keer het commando Read Binary uit met het verwachte aantal bytes in de response gelijk aan 1; één keer met offset = (Length_EF.Driver_Activity_Data – 1) voor Length_1_MSB en één keer met offset = 20 (‘00 14’H) voor Length_1_LSB. Bereken dan PreviousDayRecordLength = 256 x Length_1_MSB + Length_1_LSB.

7. Als ‘00 14’H <= Pointer_1 < (Length_EF.Driver_Activity_Data – 1) is, dan kan PreviousDayRecordLength in één keer worden uitgelezen met het commando Read Binary met offset = Pointer_1 en het verwachte aantal bytes in de response 2.

8. Als PreviousDayRecordLength gelijk is aan ‘00 00’H, dan is er geen vorig DailyRecord en dan moet de functie hier worden afgebroken.

9. Bereken nu voorlopig Pointer_2 = CurrentDailyRecordPointer – PreviousDayRecordLength.

10. Indien Pointer_2 kleiner is dan ‘00 14’H (20), voer dan nog de volgende correctie uit:

Pointer_2 = Length_EF.Driver_Activity_Data – (20 – Pointer_2).

11. Geef nu de gevraagde DailyRecordPointer = Pointer_2 terug.

Regeling
Regeling specificaties en typegoedkeuring boordcomputer taxi
Soort
Ministeriële regeling
Geldend vanaf
19-12-2020
BWB-id
BWBR0027945
Versie
2020-12-19_0

In de hele regeling · Officiële tekst op wetten.overheid.nl