, 2 - - PowerPoint PPT Presentation

2
SMART_READER_LITE
LIVE PREVIEW

, 2 - - PowerPoint PPT Presentation

%&'(.''()*9 '5 A , 2


slide-1
SLIDE 1

, 0,1 (06,(,

!"" 78#$#$

%&'(''()*9

  • CISC 836, Winter 2020

53

%&'(.''()*9

'5 A

2 =

%5

  • (5

,

2 8H(A 88

° K=88

;5 8E8 ?5 E

  • 5

,,

2 H!!E:E

  • ,+(-.%&%&

?;

  • RTOutSignal.h
  • RTMessage.h
  • RTProtocol.h
  • 8
  • RTActor.h
  • RTTiming.h
  • RTLog.h
  • RTFrame.h

(,:,

  • (AH=01
  • =H01=
  • = H=J
  • H=UJ
  • CISC 836, Winter 2020

55

(,:,5

  • ,H

2 !JJ 2 01V=

=

  • CISC 836, Winter 2020

56

slide-2
SLIDE 2

'(,'( &8

  • 88

2 8

  • <RSARTE Installation Directory>/eclipse/rsa_rt/C++/TargetRTS/src

:88

0!1

  • /

F.

  • CISC 836, Winter 2020

57

(0'(,;(0&"

  • CISC 836, Winter 2020

58

'(,'( &8 ,*,

UML-RT CISC 836, Winter 2020 59

'(,'( &8 (,

  • RTTiming

2 8 8 2

° RTTimerNode informAt(RTTimespec)

C/D =8H'RTTimespec now; RTTimespec::getclock(now); timer.informAt(now + RTTimespec(5, 0));'

° RTTimerNode informIn(RTTimespec)

C/D =8H'timer.informIn(UMLRTTimespec(5, 0));’

° RTTimerNode informEvery(RTTimespec)

=8H'timer.informEvery(RTTimespec(5, 0));’

° cancelTimer(RTTimerId)

  • RTTimespec

2 888055CRCDSJCCJJC188055CLDCD1

  • CISC 836, Winter 2020

60

slide-3
SLIDE 3

'(,'( &8 &""",

  • RTLog

2 8 8 2

° log(primitiveType)

.!88

° show(primitiveType)

G!88

° cr(int)

/8!

  • CISC 836, Winter 2020

61

0":,,*,

  • JCD
  • %H% 88'
  • % =

2 ! %! '

  • % 8

2 E8 ' 2 / !E %! 2 Hincarnatedestroy 0RTFrame.h1

  • % 8

2 E88! 8 % % 2 % 55 2 Himportdeport 0RTFrame.h1

CISC 836, Winter 2020 UML-RT

'(,'( &8 7,

  • RTFrame (RTFrame.h)

2 8 8 2 H888

° RTActorId incarnate(RTActorRef & cp)

cp 88!8 8 8 8

° bool destroy(RTActorId)

2 =8

  • CISC 836, Winter 2020

63

.'

88

2 :880 8C8D1

8

2 m HcPort.m().send() 2 m 8 055d31HcPort.m().sendAt(2) 2 !8Hmsg->sapIndex0()8=

° 55 d3 m cmsg->sapIndex0() m !%

  • CISC 836, Winter 2020

64

slide-4
SLIDE 4

'5

888

2 55 8Door !8dPort cPort!%;555 2 8#55)!R8 ! 808881

  • H

#&)H #')H

#&) #')

  • CISC 836, Winter 2020

65

)- &+

  • set timer

“doors open”; “hit key to lock” getchar(); lockPort.lock().send() “doors locked”; “hit key to open” getchar(); lockPort.unlock().send() “lock”+i+”locked”; lockPort.lockStatus(true).send

,+(-.%&%&

  • '(,'( &8,,

RTActor(rtactor.hh)

2

° string getTypeName()

8

° string getName()

88

° int getIndex()

= 88V!88

2 =8

° ,Hlogger.log(“[%s:Controller] Starting up”, this->getName()); ° ,Hlogger.log(“[d%s: Door] Starting up”, this->getIndex());

  • CISC 836, Winter 2020

67

'(,'( &8 2

  • RTOutSignal

2

° bool send(priority)

88 88

° bool sendAt(index, priority)

8 880&1

° int invoke(replyMsg)

55A80reply()1 A C8D

2 8

° D ° 8! ° D!88! ° , 0*rtdata188!8 8 ° 80!881

  • CISC 836, Winter 2020

68

slide-5
SLIDE 5

'(,'( &8 #

  • RTMessage

2 98

° 8V C8D ° 8 0 1

2

° bool defer()

C "D

:HCDCD

2 H 8 2 H

° 8 ° C8D

  • CISC 836, Winter 2020

69

.

:! !C!D 88H

2 C.D ! ‘msg->defer()’

88H

2 .!=

‘p.recall()’ ‘p.recallAll()’ ‘p.recallFront()’

UML-RT CISC 836, Winter 2020 70

.5

GH !CAD ! "0‘recallFront()’1

UML-RT p.m(1).send(); p.m(2).send(); p.done().send(); int d = 1; timing.informIn(RTTimespec(d,0)); p.m(3).send(); msg->defer(); log.log(“[B] received ‘done’”); p.recall(); log.log(“[B] received ‘m(%d)’”, data); p.recall(); CISC 836, Winter 2020 71

<,=,,",5

2 ,!CD055CQD1 2 C ED

° , CDHmsg->defer(); ° !!8Hport.recall();

  • log.log(“Received another request while processing”);

log.log(“Deferring”); msg->defer(); log.log(“Done processing request!”); port.recall(); CISC 836, Winter 2020 72

slide-6
SLIDE 6

'(,'( &8

  • RTProtocol

2 98 8 2

° bool recall()

081 " "

° bool recallAll()

081 " "

° bool recallFront()

081 " "

  • CISC 836, Winter 2020

73

0"<*,

!8

2 !

!8

2 C8ED

° 8H0AJ 31 ° H:0AJ1 ° !"01

  • ,+(-.%&%&

@;

'(,'( &8

  • RTProtocol

2 98 8 2

° bool recall()

081 " "

° bool recallAll()

081 " "

° bool recallFront()

081 " "

° bool registerSAP(string)

G!8!C*J:88D!8 8:8!! =8Hp1.registerSAP(“myService”);

° bool registerSPP(string)

88!CD! :8 888:8

° bool deregisterSAP(), bool deregisterSPP()

  • CISC 836, Winter 2020

75

/,038,<+>

  • CISC 836, Winter 2020

76

slide-7
SLIDE 7

/,038,<+>5

  • ,BA

.A

CISC 836, Winter 2020 77

38,,)-,

2

2 8HEE!!!55E!TJ,W4/?+

  • ,+(-.%&%&

@+

'(,'( &8%,

RTMain

  • static int getArgCount();

° < 88

  • static const char * getArg(int index);

° <!8=

2 =8H

° const char *arg0 = RTMain::getArg(0);

UML-RT CISC 836, Winter 2020 79

*?"",,, ''()

  • 988855

2 0 1055 E :!!1 E=8 2 !!55

° ° 088 81 ° : 055#'& F%&)1 ° =80LL1

2

° =8055: =8 8"1

CISC 836, Winter 2020 UML-RT 80

slide-8
SLIDE 8

*?"",,)-,,%&'(

  • =8F=8

2 F,8HEE5E88

  • ,

2 OD8= 2 8HEE5EA3E'+:EEE=5

  • =8

2 F! !8 8"T

  • "

2 ,01=! ="55= 08HEE85E"1

CISC 836, Winter 2020 UML-RT 81

*?"",,&,

  • =:;

2 558

  • W= 8

2 !

  • =8 !A8

2 M9 2 8

° 8!,

  • =80= 1=

2 055*1 2 2 >

CISC 836, Winter 2020 UML-RT 82

*?"",,930

  • =8

2 =:AA/>

  • T

2 A

CISC 836, Winter 2020 UML-RT 83

38?