全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
, c( P, O8 w" V/ x; i3 Q& E( U/ m$ I$ u; c, H* a4 L$ v' I2 ?
如何获取Activity的统计信息?
8 y' [  S: D' `$ b3D实体的属性面板中可以查看统计信息。
: p0 O" G8 Y# y( A8 a! v/ m
; c  Q) C4 p; K! ^( g同时可以通过Object.stats属性来获取相关信息。, [6 I5 \  d3 z

. l; d. n: q3 I8 B' k9 F! tActivity也有属性面板  |6 W. N* _% m$ Z

" J! k& h3 M! I+ ~! ^但是Activity却没有stats属性,无法通过属性获取统计信息。* q9 d1 B. d6 B9 \% D
8 C2 \0 l% v% a7 }# E( u
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。3 k$ F% K% e: L7 K
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。' u9 ]1 v! S. \' H3 v

6 ?, W: Q" T. A, j作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:1 V) X8 F& [- U( k% ^2 c" Z( @5 ^

8 P3 r2 U- l8 R! S! b4 v: I+ z其中就有stats属性,可以获取统计信息。4 x5 t& P- ]" K* [! V* Q$ k
) t$ y  t3 r" K5 {: [) S( w( b
那如何使用代码获取Activity的统计信息呢?4 D( [- z" J1 \9 _9 k
第1种方法,使用getstat命令。
- t  [: N' j3 i( {( dgetstat (node object, str name, int flag [, var p1, var p2, var p3])
, ]. s) b* U6 G- p  T- x# L' OReturns the statistic value for the given objectDescription, Y0 X/ q9 D" a1 F  S  t  h& t* E
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
( a' j; `6 z4 v& v9 NExample:2 u4 u4 P9 [& k0 _8 R7 t# k2 b: `
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    . l$ }2 z* _! Y) T7 q
  2. // getstat requires between 4 and 6 parameters:
    1 L/ A# r; a9 y1 J
  3. activity, // 1. the object (shared asset or activity) that has the statistic% b0 c+ v# B6 v/ Z0 s
  4. "Content", // 2. the name of the statistic
    - `* C0 i3 }( h/ R& ~4 w
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)/ ~5 l! R  P3 X
  6. // 4. an optional parameter the instance object (usually current)
    9 E5 w$ b* G% ?  f" S6 W  o( {
  7. // 5. an additional parameter to help resolve which data to get" }; H: _4 _3 G7 m
  8. // 6. an additional parameter to help resolve which data to get
    ( i4 |! g' W  X4 q3 P/ B
  9. );
复制代码

# D/ [9 c. u- e" E7 [0 r第2种方法,转换activity的类型。
/ R2 t2 k3 L4 Q. ^: l7 I" O既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
: `" ?6 l4 a/ F1 O. a$ p* J/ Z转换的方式有2种:
, ?5 h/ P+ B$ o5 U4 T4 B. o* K2 t方法1,使用as关键字:
* z. i/ E8 ?0 a+ u
  1. activity.as(Object).stats.input.value;
    5 b/ @9 `+ x% z$ e! T% T
复制代码

3 G: ~5 M) w1 O$ {5 l8 L& X5 a. P* Q方法2,将activity声明为Object类型的变量:
1 o2 s# {8 k8 V2 [$ A' e2 _
  1. Object Obj_activity=activity;
    . P9 R! \6 Q, t
  2. return Obj_activity.stats.input.value;
复制代码
' Y4 W! P) t6 C

, w+ N9 i8 x, T+ V
1 A( H; ?, U% h/ [% U3 Y6 o
; r; M5 T' ~. H6 ^' j. n6 Y; l1 y% M  I! A" @, \& U  U4 G, K
& b; W3 _/ n# @
; D- a; j5 F6 C/ i# w

: P( L# h! k# |% @+ Y0 C

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-5-20 00:24 , Processed in 0.061871 second(s), 14 queries .

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

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