全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 3 `* k2 {! ^% \3 ]- e
( c2 g1 G$ g6 V
如何获取Activity的统计信息?
6 Q/ h' c( W5 D0 G, `3D实体的属性面板中可以查看统计信息。' }) `; K1 X7 Y$ j3 c" Z

8 V' _$ v9 p0 y同时可以通过Object.stats属性来获取相关信息。3 P/ G7 S  k7 V
' h* N& k0 ?+ R- T. e8 J; @
Activity也有属性面板
# c, g$ y) z- o; c# s& B! v+ c1 f" z5 v: M/ g+ }- n' `( F7 b8 ~
但是Activity却没有stats属性,无法通过属性获取统计信息。9 l: l8 S1 r- P

. I  g5 S, ^+ V  V% D# T原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。1 i1 Z  }( R8 m6 \5 O
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
* y7 S! m% R% ?3 g7 a1 v+ @9 `1 A1 A! b, K% C7 g
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:5 V+ H1 s1 Q( c: r4 A

1 ]' z1 ^+ |$ g$ u1 ^6 h! L其中就有stats属性,可以获取统计信息。
( T) c2 z( l$ U, K( I! }* w+ k
# S& T9 {  k4 V& L2 R; x0 Z那如何使用代码获取Activity的统计信息呢?
9 j- d( X3 F! `7 f  n第1种方法,使用getstat命令。  d7 c0 G5 i6 k  r" _
getstat (node object, str name, int flag [, var p1, var p2, var p3])+ p% R( s% Y8 o" c+ Q! C
Returns the statistic value for the given objectDescription
( o) q2 V; V- `4 j# p$ hIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.' |1 _6 q$ [8 ?( \" x( {. Q
Example:
% q# g& A- c5 W* A8 N
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(* w: X4 F4 ^5 K1 A" k! I& G
  2. // getstat requires between 4 and 6 parameters:
    $ J4 u0 f/ W: w( n1 \
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    4 W& y8 H. x6 C
  4. "Content", // 2. the name of the statistic5 B, ~8 x1 M5 D. F& B- `) o
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)- B- S- k" k# b0 I; M
  6. // 4. an optional parameter the instance object (usually current)2 N4 P5 {5 k" @0 i5 y6 U. x% {
  7. // 5. an additional parameter to help resolve which data to get
    " O, ]+ t$ m5 K$ \- I
  8. // 6. an additional parameter to help resolve which data to get2 J+ F1 k, B, O  [
  9. );
复制代码
& ~" V# \- G# ^$ c" x$ D7 b  H
第2种方法,转换activity的类型。+ n9 R5 ?( l. b2 F5 F; @, g
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?# Y' Q4 h( V) I  B
转换的方式有2种:
! U8 J( l/ V, r/ U方法1,使用as关键字:
3 x# G% g6 |; h8 `1 C
  1. activity.as(Object).stats.input.value;
    3 `- L- i2 \$ N) Z7 `2 m
复制代码
5 d" e. V( D9 I
方法2,将activity声明为Object类型的变量:
, |* v0 v( d* Z! H, N% I" e
  1. Object Obj_activity=activity;
    + f, l( d4 B( k* s
  2. return Obj_activity.stats.input.value;
复制代码

6 [& w( i( ]( z. `! m$ s
/ \% r) X2 f* S; ]0 S* ?$ N0 `# e  w( A

9 O8 K/ L. _( S( j6 h/ q. o& G3 H9 F) _& t0 T, ^2 w
4 v2 [4 m2 Y! W0 b7 [; [/ w
" q. u+ J) l. w- Z) Y+ H& k
& d4 j6 K: s3 Q' @

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-9-17 16:05 , Processed in 0.073396 second(s), 15 queries .

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

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