beautypg.com

5 the +++-parser, The +++-parser, Figure 10 – Siemens 7 User Manual

Page 34: State diagram of the +++-parser, Multiplexer driver developer’s guide

background image

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