全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
/ E9 q2 c* G$ m. I; n# g" ~$ Z1 E8 U" F9 J4 l- z) D; r
如何获取Activity的统计信息?
. I5 t- E( ^1 z0 r3D实体的属性面板中可以查看统计信息。6 y$ A( B; _! I" \& y5 F$ F! q

+ J' Q3 |/ V3 m' t同时可以通过Object.stats属性来获取相关信息。, T& g- o1 Q- f/ @( U

# X* Q$ d- {) x" z+ i* _( GActivity也有属性面板" F/ d1 {. ]$ L

5 f! ~+ Q/ N5 X/ [, x* x& J  G但是Activity却没有stats属性,无法通过属性获取统计信息。
0 d0 I% m, V4 _3 n* s  \5 T+ x  @! ~$ z, h: v1 @/ \3 Y
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。; j7 O4 p  E; e6 [0 S% A
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
: V- j4 L) k+ I6 }+ a* J% ?' f) L! f* {0 j' s; ?  ^' d1 i
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
8 D2 `: b5 u* {8 O1 i
0 R. y. z3 u% G其中就有stats属性,可以获取统计信息。! T7 m( u- t- Z& O4 ]
& S( L; n2 h5 k% ~
那如何使用代码获取Activity的统计信息呢?: P6 K: O  c" u; l5 Y
第1种方法,使用getstat命令。
6 B1 `8 A: [8 ?- a2 Wgetstat (node object, str name, int flag [, var p1, var p2, var p3])7 B! Z+ B- @9 J) x/ c8 Y% I
Returns the statistic value for the given objectDescription
# N: q; V6 I4 @. r; t7 PIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.! Z" D" p# r% v4 F7 p9 p* C
Example:
' ^9 A6 D3 |6 a6 H6 i" b+ O" y
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(0 \0 B1 i" S. k( d8 m0 I! P
  2. // getstat requires between 4 and 6 parameters:0 o; j1 `5 k/ |) L+ K+ a
  3. activity, // 1. the object (shared asset or activity) that has the statistic" z* G% K) o4 j- p* e' M  I2 f
  4. "Content", // 2. the name of the statistic3 O3 ?3 K1 l  ^
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    ( t5 Z! u  ~: \' W4 a( B
  6. // 4. an optional parameter the instance object (usually current)
    " x$ s: ^7 r5 M% w- A+ t
  7. // 5. an additional parameter to help resolve which data to get! J; Z* H7 q- c" e$ y0 y" _2 ~
  8. // 6. an additional parameter to help resolve which data to get/ D( j8 O3 _( _
  9. );
复制代码
& k3 O: b8 a! \" {+ j: [1 ?
第2种方法,转换activity的类型。3 a2 x4 t% |4 {1 m$ Q! [) m
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
0 }! o8 m  ^- K  t  \转换的方式有2种:
; u- Q3 X3 P5 M: Y# L! o方法1,使用as关键字:  v2 [1 m+ {7 \8 ]; R: R9 N3 i5 b: J
  1. activity.as(Object).stats.input.value;
    & V& R% U2 E" i
复制代码

1 j3 Q; D3 N7 {7 J  C方法2,将activity声明为Object类型的变量:0 b- s, U6 J; ?( A
  1. Object Obj_activity=activity;
    0 D. p0 s! g* ^8 s: q3 }
  2. return Obj_activity.stats.input.value;
复制代码
: _3 ?' R& L. e3 L
: Q. ]% _; N: C8 A+ F# T/ O3 C

$ ]/ H) l5 m; Z; G1 G" _/ k/ O
' z7 [  g) o& T1 h9 i8 Q! I9 R( \' E  E6 ?0 a% H
3 X7 q9 t8 j5 p# z8 K' C$ F. z

. u- k. Q# x/ m6 [! I5 A1 |, P0 w! W
9 M. z' u" C3 j

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-7-13 23:18 , Processed in 0.083173 second(s), 14 queries .

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

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