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