全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
5 _7 J3 m0 I  W, A2 ?+ X- G; k) z1 E# K, e6 P2 b) [" E
如何获取Activity的统计信息?7 _' t$ n' y1 {" o, P; @
3D实体的属性面板中可以查看统计信息。% h$ s. f( {9 z" E* _2 i! c

5 l; G* L! F; ]: S! _  o5 Y同时可以通过Object.stats属性来获取相关信息。& H" Y, `% d& f! ^; H+ j% k: \

# }. C) v, ^! ?4 X; ~Activity也有属性面板! v& y/ H" t% ?; K

( K( m+ u: E. R/ {# S% w( u' e但是Activity却没有stats属性,无法通过属性获取统计信息。1 L# I8 S6 X5 {0 Q* b) V  W

" W: S- {) v) }5 Q- z$ C原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。1 u' }" f0 M+ r! r0 I( W
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。/ ]6 m# E$ Z! C1 t
9 G! b& C* u3 ^; {; ?
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:: l, T" {( f, ?% ?9 k
# D- n) G$ h+ K2 w" P
其中就有stats属性,可以获取统计信息。
$ Z! x, N7 I) l" _
2 I/ z4 {  z& ~; f那如何使用代码获取Activity的统计信息呢?4 J9 y0 K! F8 i% s3 c1 X6 v6 n
第1种方法,使用getstat命令。$ A* z6 Z# n) _$ y& I* Z
getstat (node object, str name, int flag [, var p1, var p2, var p3])
5 q5 p8 x& Q9 r* ?: CReturns the statistic value for the given objectDescription
5 C, M8 }3 s6 e% ]: s, zIt is preferred to use Object.stats instead. Gets the specified statistic from the given object., `1 W; ~9 f( ~
Example:2 y# {8 E. ^) c9 _3 b
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(" O4 ?8 Q  b% }% Z- M
  2. // getstat requires between 4 and 6 parameters:
      x( T7 U& Q( y6 i7 k9 p
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    1 J5 D" T' W- t' l- ?+ r$ U  @: A
  4. "Content", // 2. the name of the statistic+ e6 i' E5 l" z/ a; m, e8 C  W
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    + h/ e+ X- N) F: U1 P
  6. // 4. an optional parameter the instance object (usually current). `6 r8 @$ l0 {# ^
  7. // 5. an additional parameter to help resolve which data to get
    * J* R6 O9 d% i
  8. // 6. an additional parameter to help resolve which data to get
    9 D& P/ U7 _. y0 Z% T! U3 V  Y
  9. );
复制代码
+ `! H) _3 C- ^1 }# l) q) @
第2种方法,转换activity的类型。1 [& j+ j8 ]# \; E
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
1 d4 t) A" {4 p' ~转换的方式有2种:
- H0 u3 b0 n5 ^7 s, g, C方法1,使用as关键字:2 ~  C+ i4 S1 j4 l
  1. activity.as(Object).stats.input.value;/ y" L  p( ?. }3 s
复制代码

! ?* E8 [. m1 N. H7 @9 F0 w) h- [方法2,将activity声明为Object类型的变量:9 y: l, \: i9 t  O0 G3 Y9 ^
  1. Object Obj_activity=activity;
    & k9 g1 t5 J! {$ H; c2 l
  2. return Obj_activity.stats.input.value;
复制代码

! D0 H2 T* C5 y; G+ y4 g: X* a* T( q$ J3 {, i% R

- Y6 g# D9 g- {- z0 w% h* L
2 J, g# \) @3 E$ R/ L, }
7 L* y1 q; [" U4 n. ?/ t/ K. g; [* Z. h- x# q. i( O1 i. m
) _, |7 z8 T8 P+ R& E" Z( @
4 L9 R* s4 K7 c0 q, {. K' A

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-28 07:12 , Processed in 0.070475 second(s), 14 queries .

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

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