全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
% P) k# t5 o5 n# q6 d) k) l! H$ I
如何获取Activity的统计信息?
/ e. J) m5 k* d' F" E$ {2 o3D实体的属性面板中可以查看统计信息。9 }  B& e* x' M5 N6 I: U
2 l& E6 M; |0 C2 [, a
同时可以通过Object.stats属性来获取相关信息。: `) R" I" {; K6 Q
: ~/ K* [3 t) a! ~" `/ |
Activity也有属性面板
2 \7 Z2 I! d" a$ b4 n. J
7 L- q! K8 k" i7 C" x  G9 h但是Activity却没有stats属性,无法通过属性获取统计信息。) l8 `' t4 Y4 o) |0 ]# x8 C" m

/ p8 q4 @/ B+ h' }原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。0 k( L) v7 f5 m# j
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。1 }0 e( P: b+ V6 N. A5 Y9 n
: O% }' a7 @; W+ _
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:/ N, I. w& ~5 o; A
$ |( f* }5 Q/ [( R7 |. I" a
其中就有stats属性,可以获取统计信息。& ^3 t% n+ P; x+ `/ j0 s) N
3 f' @3 f% g5 f" l, }; p3 w
那如何使用代码获取Activity的统计信息呢?
; w" V* R1 H2 e3 l3 `第1种方法,使用getstat命令。4 Z5 V4 I. y) A% K% v7 A* I
getstat (node object, str name, int flag [, var p1, var p2, var p3])* Z" A  y8 `9 }" o3 D
Returns the statistic value for the given objectDescription  P' J# O! _2 o% U
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
. U/ P/ K) G$ n( i: n! F. o' _Example:4 y* ~9 v) W: [& X0 m
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(0 y3 o, y2 N* r  S% K4 ~3 u: J4 I! k
  2. // getstat requires between 4 and 6 parameters:
    # \& l' i" [5 s; i4 \: g  B
  3. activity, // 1. the object (shared asset or activity) that has the statistic  C4 a/ d: Z  r: v  z1 @
  4. "Content", // 2. the name of the statistic' h) V% a, [. I
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    , X6 N* u# g4 T- v
  6. // 4. an optional parameter the instance object (usually current)6 e" Z0 s) v9 M0 w
  7. // 5. an additional parameter to help resolve which data to get
    + W3 P/ a3 v  y+ {) u% q4 c! t
  8. // 6. an additional parameter to help resolve which data to get
    % R# O2 s& @& l% V, U
  9. );
复制代码

4 V$ _  p" R! y* W: y) U第2种方法,转换activity的类型。, h- I  A8 A- M  S
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?. x9 I) }3 N8 _7 Y* h% f
转换的方式有2种:) L' u0 E, h, }6 P# |
方法1,使用as关键字:# ?0 ~; M4 W5 g: F$ R6 s
  1. activity.as(Object).stats.input.value;4 D, T# K2 F; ~2 N) S
复制代码
0 Y1 l- z8 s& p$ S5 ?5 ?
方法2,将activity声明为Object类型的变量:' ~9 H) i4 [* a* P) a
  1. Object Obj_activity=activity;( F+ O; S& b: ]2 }1 w; X# Z2 N& `$ [
  2. return Obj_activity.stats.input.value;
复制代码

$ u( g( L9 P4 |  ~+ h4 B
/ e" q  S( h# I& Y7 U* o8 ?% v
0 `* F; w+ D& j" K" {. {8 j( z/ c4 \( N5 e& b' \5 M- G
) i+ Y$ W6 L& r( `+ ]7 S0 `5 b

2 }4 |. ^! i$ G" [3 s/ }) x  f  a
1 U8 r) e9 n. P; ~  c4 V

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-7-8 15:34 , Processed in 0.070009 second(s), 14 queries .

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

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