[Oberon] FPGA - nRF24L01 `RPI Net' server
Tomas Kral
thomas.kral at email.cz
Thu May 24 09:03:01 CEST 2018
On Thu, 24 May 2018 06:45:54 +0200
Jörg <joerg.straube at iaeth.ch> wrote:
> head1.typ is very important as it steers/controls the whole state
> machine of Net.Mod.
Now I see, Net.Mod states = (0, 1, 2, 4, 5).
5 means `no repsonse' and is set by the timeout, head1.typ = 255;
But I need to somehow distinguish when the receive transaction
completes through a timeout normally (last seqno) / abnormally
(lost seqno).
EDIT
Solutions
[1]
ReceiveFiles*
...
IF done THEN Files.Register(F); (**) head1.typ := 0 (**); reply(0) ELSE
end := 0 END
[2]
Introduce a new / reuse an existing message, confirming normal transfer
completion, telling last seqno sent, file transfer done and complete.
[3]
Increase delay in SCC.ReceiveHead()
...
from IF Rcvd(0) THEN
to IF Rcvd(50) THEN (* just a guess *), but this may be unreliable
In all cases, 255 is kept in the header1 and confuses next Net file
user operation. Net.ReceiveHead() needs typically 20> iterations until
it sees data and only then SCC.ReceiveHead() clears the receiver.
--
Tomas Kral <thomas.kral at email.cz>
More information about the Oberon
mailing list