Multiplexer Driver Developer’s Guide

7.5 The +++-Parser

s

7.5The +++-Parser

The following state diagram shows the states of the +++-parser.

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

 

 

 

Request-Flag =SCAN_LATER

 

 

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

->WaitResponse

->Timer

Timer

 

Figure 10: State diagram of the +++-parser

Mux_Drv_DevGuide_v07

Page 34 of 36

2006-9-27

Confidential / Released

 

 

Page 34
Image 34
Siemens 7 manual +++-Parser