LRI512
APPENDIX A
The following pseudo-code describes how the
anti-collision could be implemented on the VCD,
using recursive functions.
Algorithm for Pulsed Slots
function push (mask, address)
function pop (mask, address)
function pulse_next_pause
function store(LRI512_UID)
; pushes on private stack
; pops from private stack
; generates a power pulse
; stores LRI512_UID
function poll_loop (sub_address_size as integer)
pop (mask, address)
mask = address & mask
; generates new mask
; send the Request
mode = anti-collision
send_Request (Request_cmd, mode, mask length, mask value)
for sub_address = 0 to (2^sub_address_size - 1)
pulse_next_pause
if no_collision_is_detected
; LRI512 is inventoried
then
store (LRI512_UID)
else
; remember a collision was detected
push(mask,address)
endif
next sub_address
if stack_not_empty
then
poll_loop (sub_address_size)
collision
endif
end poll_loop
; if some collisions have been detected and
; not yet processed, the function calls itself
; recursively to process the last stored
main_cycle:
mask = null
address = null
push (mask, address)
poll_loop(sub_address_size)
end_main_cycle
40/54