全球FlexSim系统仿真中文论坛

搜索
查看: 2076|回复: 0
打印 上一主题 下一主题

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
" w8 a3 {* @) C0 i) T  e1 u8 A- C2 j6 g& s8 }5 c( B6 j4 L/ d
如何获取Activity的统计信息?
, P: I1 b2 t8 O; {0 R3D实体的属性面板中可以查看统计信息。
2 W3 h% e8 C& D$ ?3 B  S& R6 h
0 p3 S% U- I3 l4 E. z同时可以通过Object.stats属性来获取相关信息。* O) ]( L6 D, c7 T: U  ]+ c

* v" @. \5 x- z3 L) B, p; H& `Activity也有属性面板+ h3 E5 O* ^. S4 ^
1 ]+ O, h$ G1 o: a+ o3 H4 |0 v, G
但是Activity却没有stats属性,无法通过属性获取统计信息。7 u$ d% J7 p' b% }9 @

" d  T1 m) B  {. P原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。# N* {5 j( f/ w
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
: w; U# K1 `% `5 |/ |; r/ Z3 D1 j/ o
: H7 g2 Z7 A, i: {* b+ m- w作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
' f* ^1 F: b( b0 o$ H3 G% V  D) p) U1 H! A
其中就有stats属性,可以获取统计信息。
9 M- I% `) o8 C: p5 l! a7 N4 y2 h" C8 Y& b
那如何使用代码获取Activity的统计信息呢?/ u. g  p- R, k# e: Z) N0 y
第1种方法,使用getstat命令。- H6 r" @8 E+ L, y' f
getstat (node object, str name, int flag [, var p1, var p2, var p3])
) G5 n9 O" x+ _. D7 E( v' [- pReturns the statistic value for the given objectDescription
# C; K9 j( W* d9 wIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
) a* X# m: y. t4 QExample:5 Y3 ]- _8 W5 O( y8 x+ O- F. H, M
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    5 p- l# ^3 ?' _! W0 i
  2. // getstat requires between 4 and 6 parameters:- K( L; |) y& z1 b
  3. activity, // 1. the object (shared asset or activity) that has the statistic* z" S: t) |. C8 X- k- H
  4. "Content", // 2. the name of the statistic1 ]& {7 l* C$ M/ ~$ z
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    * J1 ~2 H* R4 B1 C+ |2 T3 \
  6. // 4. an optional parameter the instance object (usually current)
    $ B2 w! ^! V. C8 p/ s5 r+ |
  7. // 5. an additional parameter to help resolve which data to get
    & x& c- b* `: F! Q! m0 n: W
  8. // 6. an additional parameter to help resolve which data to get
    + c& B# _$ U6 E- o9 F
  9. );
复制代码

7 z! i9 s: i" |) H4 }第2种方法,转换activity的类型。$ w3 A' S! Q% X6 x* m  G5 p* M
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?9 @; i4 ?$ K. {4 M" z
转换的方式有2种:& f  Z" ]$ `2 j( P, Z4 w4 z8 Y
方法1,使用as关键字:
; k( N, F9 r+ W  ?2 F0 s( U
  1. activity.as(Object).stats.input.value;7 F8 q. p" h5 L1 _, ^9 N) E
复制代码

8 D) c) b9 ?/ b6 o, R& _2 l; v8 v  t方法2,将activity声明为Object类型的变量:
: _: N3 }( ?& v# |. D' Q
  1. Object Obj_activity=activity;
      ?( h1 s+ v( o* c& _
  2. return Obj_activity.stats.input.value;
复制代码

* L8 r3 Y1 p$ D- e" b8 t! }3 s* Y/ b- C  z: e9 X1 l9 l
# [6 {/ }9 d! ^+ ~/ ~9 e

3 t3 o8 g* U: t+ @5 G& q; o7 T% a
( A1 T* R+ O  t' K( r) V( c+ \* K* u( W& f
( o& L/ s; X3 D, |8 Z- k( i

1 ~- v$ ?( d$ h: E: Y, e8 h: z0 W

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-9-16 06:57 , Processed in 0.081467 second(s), 15 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表