全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
- ]& r  x! x  T0 }0 E
8 B5 r6 d8 H' Y( T2 u如何获取Activity的统计信息?
7 @7 n/ |2 b0 {( a3D实体的属性面板中可以查看统计信息。" V$ w7 {) `' C* d
+ g8 ?! M) \$ K6 _5 X& j
同时可以通过Object.stats属性来获取相关信息。
/ K1 Y" W! V7 y9 O3 T. o, T, ]+ U
, E) O7 Z$ w# AActivity也有属性面板
3 D( p5 u% u6 _  P1 e* @& V& U+ Q; L( v. P+ e0 R: K+ h$ P
但是Activity却没有stats属性,无法通过属性获取统计信息。9 I( o1 Q, W# v; N- [; P3 T
; U4 h2 v9 V7 r' u! ?: }  f
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。# l( m0 x6 w2 j. F% F; e: }' A
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
0 Q5 L. l+ E3 ~) G1 j$ U8 i& @! [, |( O& U. F: S6 J& ~6 D
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
, Q, x' s, C* r1 q) N( Y) Y: `9 F& {3 K0 U8 t
其中就有stats属性,可以获取统计信息。& K$ Z& h* ?2 d5 z8 J5 e
6 j$ y: T% H- c, u2 K# v
那如何使用代码获取Activity的统计信息呢?
8 a- p) h. G4 C# b! W6 M; |0 n第1种方法,使用getstat命令。6 w8 M/ G8 }% W5 U, L/ D# |& P$ t% E
getstat (node object, str name, int flag [, var p1, var p2, var p3])7 L0 _0 f9 V7 E5 T( _' |- Z
Returns the statistic value for the given objectDescription
0 F- g8 g2 ]' v. Q6 B, cIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
2 Y# @1 u/ T/ \% s; QExample:
4 E6 {5 G/ I$ `
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(! R$ ~3 m3 g" P4 S
  2. // getstat requires between 4 and 6 parameters:' ?+ d, I) G5 d# Q
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    + ^' e. [* u0 o; J# r' F) H$ `
  4. "Content", // 2. the name of the statistic7 ^; e8 D8 s8 g7 D, |/ L4 e
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)9 m) ?* _3 w" _+ A; K0 r
  6. // 4. an optional parameter the instance object (usually current)% U+ A, T1 h# f4 C
  7. // 5. an additional parameter to help resolve which data to get5 W+ M- H: ]5 c
  8. // 6. an additional parameter to help resolve which data to get
    # H1 y2 Y4 @, _& Y
  9. );
复制代码

/ d3 g* B  f9 H6 v4 r* ]& \7 F第2种方法,转换activity的类型。
5 e" a$ [; z+ W4 P9 t0 J" r6 H既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
$ Z$ g  y! O6 a9 Z7 @1 N转换的方式有2种:
6 \1 M) p1 R! m6 S0 m6 P方法1,使用as关键字:
7 ~; Z/ q( v. ~+ K- _1 E. Y7 t
  1. activity.as(Object).stats.input.value;& {! M( E% M9 Q/ H3 T( Y3 i- a
复制代码

4 g' p* q) @8 X. h! |2 M方法2,将activity声明为Object类型的变量:9 S1 S! z8 O: N* z0 G) x
  1. Object Obj_activity=activity;
    4 W( b6 ~8 \/ Z' A$ i% H8 i- O
  2. return Obj_activity.stats.input.value;
复制代码

$ V: t7 A. U( y0 G2 b# s4 s* Q5 `4 p, w9 X1 _
9 x7 M; \+ R/ o2 E& D
- ~5 Q; H* H7 V% m% r7 q4 A. V0 [

; H! z7 \7 s2 r) w5 N8 l( H2 J& r9 p  `& {8 x/ B: r
7 h. h! Z$ H4 X: t
* Y6 ?- c& Q/ |6 G

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-5-7 10:44 , Processed in 0.074388 second(s), 15 queries .

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

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