input: FrameInformation (LocalFI), ReservationBoard (ReservationBoard), Received |
FrameInformation(s) (ReceivedFIs), Local Node Identifier (NodeId) |
output: Updated ReservationBoard and FrameInformation |
() bool Collision False, Owned False; |
() int Position −1; BCH Channel ; |
() for to Length(LocalFI) do |
() BCH Heard BasicChannel(LocalFI, ); |
() foreach in receivedFIs do |
() Position Shift(, ); |
() Channel BasicChannel(, position); |
() Collision False; |
() Owned Owner(Channel); |
() if Owned and NotSameId(Channel, Heard) then |
() Collision True; |
() break; |
() end |
() end |
() if Collision then |
() UpdateBoard(Reservationboard, , Free); |
() UpdateFI(LocalFI, , Free); |
() if = Id(Heard) then |
() Collision(True); |
() EnterContention(); |
() end |
() else |
() if (AdditionalAndExpired(Channel)) then |
() UpdateBoard(board, , Free); |
() else |
() UpdateBoard(board, , Reserved); |
() end |
() end |
() end |