/
SMI++  Future Developments SMI++  Future Developments

SMI++ Future Developments - PowerPoint Presentation

kinohear
kinohear . @kinohear
Follow
343 views
Uploaded On 2020-08-03

SMI++ Future Developments - PPT Presentation

Boda Franek CERN April 2011 Class inheritance It will be possible to declare a new class inheriting states and actions from a base class that could be overloaded and new ones added  Example ID: 796733

object state smi action state object action smi future developments boda april 2011 cern franek supply power locked move

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "SMI++ Future Developments" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

SMI++ Future Developments

Boda FranekCERN April 2011

Slide2

Class inheritance

It will be possible to declare a new class inheriting states and actions from a base class that could be overloaded and new ones added. 

Example

Class:

POWER_SUPPLY

State: ON ... State: OFF ... State: ERROR ... action: RESET ...Class: SPECIAL_POWER_SUPPLY extends POWER_SUPPLY State: ERROR action: HARD_RESET ...

April 2011

2

SMI++ Future Developments, Boda Franek CERN

Slide3

Testing parameter values

  if (….( PARMA == PARMB)….) when (….( PARMA > 24 )….)

etc

Example

State :

NOT_READY ... action : CONFIGURE (RUN_TYPE) ... if ( RUN_TYPE == “PHYSICS” ) then ... else ... endif ...April 2011

3

SMI++ Future Developments, Boda Franek CERN

Slide4

Simple parameter arithmetic

  PARMA = PARMB + 5 PARMA=3*PARMB

Example

Object :

RUN_CONTROL

Parameter : int RETRIES = 0 ....State : ERROR Action : RECOVER RETRIES = RETRIES + 1 if ( RETRIES < 4 ) then ... move_to READY else RETRIES = 0

move_to ASSISTANCE

endif ....

April 2011

4

SMI++ Future Developments, Boda Franek CERN

Slide5

Dynamical loading of object names

from action parameters insert $(parameter-name) in ‘set-name

implemented

  do ‘action-name’ $(parameter-name)

If (….. ( $(parameter-name) in_state READY ) ….) tricky ? ExampleAction : CONFIGURE ( POWER-SUPPLY) ... do SWITCH-OFF

$(POWER-SUPPLY)

do SWITCH-ON $(POWER-SUPPLY)

do CONFIGURE $(POWER-SUPPLY

)

...

if ( $(

POWER-SUPPLY

)

in_state

READY

)

move_to

OK

move_to

FAILED

April 2011

5

SMI++ Future Developments, Boda Franek CERN

Slide6

Wait until

construct

  

Object :

O

... State : S ... Action : A .... wait_until condition1 action1 condition2 action2 ... contitionn actionn end_wait_unit ...this will suspend the execution of the action X until any of the conditions is TRUE. The number of conditions is arbitrary.

 

April 2011

6

SMI++ Future Developments, Boda Franek CERN

Slide7

Example

Wait until

construct

cont

Object :

RUN_CONTROL ...State : READY ... Action : START_RUN .... do START all_in SUBSYSTEMS wait_until (all_in SUBSYSTEMS in_state RUNNING) move_to RUNNING (any_in SUBSYSTEMS in_state

ERROR ) do RECOVER end_wait_unit

...

April 2011

7

SMI++ Future Developments, Boda Franek CERN

Slide8

foreach

instruction  

foreach

‘name1’ in ‘set-name1’, ‘name2’

in ‘set-name2’ etc instructions to be executed on the members of the setsendforeachExampleAction : A ...foreach UNIT in SPECIAL-UNITS do $(UNIT

) SWITCH-ON if ( $(

UNIT) not_in_state READY

) then move_to

ERROR

endif

end_foreach

...

SPECIAL-UNITS is an

ObjectSet

of

hardware units that have to be

started up in a certain order one by one

this would become even more interesting when operating on more than one

Object Set

simultaneously

April 2011

8

SMI++ Future Developments,

Boda

Franek

CERN

Slide9

Objects, states and actions should be allowed any number of

qualifiers accessible to User Interfaces

April 2011

9

SMI++ Future Developments, Boda Franek CERN

On-the-fly access to State ManagerWould be possible to change some of the parameters of State Manager without re-starting.For example Diagnostic print level when things misbehave.Using a special command ala ‘SMI_SEND_COMMAND’

Slide10

April 2011

SMI++ Future Developments, Boda Franek CERN

10

If

instruction( To unlock or not to unlock, that is the question )Object : O ... State : S ...

Action : A ... if (....X...Y...Z...) then

....

endif ....

If Processing

When if instruction starts being executed,

a

ll the objects referenced in its condition

a

re either locked or ‘lock action’ is queued.

Every object has

action queue

Actions taken out

by

Scheduler

f

or execution

Actions put on

b

y

do instructions

o

f other objects

empty

empty

Action in progress

Actions queued

Object locked

Z

X

Y

Object locked

Action in progress

Object locked

Object locked

Z

X

Y

Object locked

Object locked