Multiplexer Driver Developer’s Guide
7.5 The +++-Parser
s
7.5The +++-Parser
The following state diagram shows the states of the
Internal states of the ScanRequest Object for scanning each
character in a Send Request for one Port Object
if BreakCount > 0, then send first the breaks. After check for incoming Request also check if Break Count>0 and then '+' characters.
WAIT_CHAR()
Timeout 1s and
rcv. BreakChar '+'
SerMuxSend(), BreakCount=0 If rcv. a SendRequest, then
Flag = SCAN_LATERrcv. char. unequal '+' or Timeout 1s
or difference between current and last Request too big
PLUS
COMPLETE_PLUS
|
| rcv. any character |
|
|
|
| with time differences over One |
|
|
|
| second to the last character |
|
|
|
| or the ScanRequest Timer go to zero |
| if rcv "++" then |
Timeout |
| |||
| in the Timer |
| BreakCount +1 | |
WaitResponseTimer |
|
| ||
|
|
|
|
if receive the MSC Response
if BreakCount = 3
Send MSC
command with ESCAPE =1
1.If the next incoming request has a TImeout to the last request,
W AIT_BREAK | then switch to WAIT_BREAK without | PLUS_TIMEOUT | |
Timerfunction | |||
|
| ||
|
| ||
| 2. if the ScanRequest Timer go to zero. |
|
If rcv. a SendRequest, then |
|
Flag = SCAN_LATER | if Timer go to 0: |
| |
| if STATE_WAIT_BREAK then STATE_WAIT_CHAR |
if Timer go to zero: |
if STATE_PLUS then STATE_WAIT_CHAR
if STATE_PLUS_TIMEOUT then STATE_WAIT_BREAK
ScanRequest | ScanRequest | |
Timer | ||
|
Figure 10: State diagram of the +++-parser
Mux_Drv_DevGuide_v07 | Page 34 of 36 | |
Confidential / Released |
|
|