全球FlexSim系统仿真中文论坛

标题: 如何获取Activity的统计信息? [打印本页]

作者: zorsite    时间: 2022-11-29 15:17
标题: 如何获取Activity的统计信息?
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 ; _* J1 s+ I" A
& x8 U# ?4 z4 A7 b' r: c* y0 t
如何获取Activity的统计信息?
  R) J4 f& p1 p6 ~9 Q( u3D实体的属性面板中可以查看统计信息。. v0 }4 {1 M- y9 A
[attach]6028[/attach]
6 X' K1 n" E) O1 Y3 R同时可以通过Object.stats属性来获取相关信息。8 W2 X0 i( s. Y- W8 k
[attach]6029[/attach]5 p' T! {! h7 S- `7 \! z
Activity也有属性面板* j6 w* r* y. W7 \, x  y
[attach]6030[/attach]* b: W: ?7 N% e% ~- z" h4 [
但是Activity却没有stats属性,无法通过属性获取统计信息。. n' |" A0 t1 s' j# j' J% ]
[attach]6031[/attach]
( Y" h# F( Z1 H; l3 n. A原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
2 V/ B% W$ i' [6 h5 j! r) Htreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。! t: H5 r; H8 j* d( p
[attach]6032[/attach]5 g2 }( c& x9 c  V- Q9 k' s: X
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
$ e: [/ u0 K5 J& j/ g' \5 {5 l2 b[attach]6033[/attach]4 W/ N$ y; T3 f4 G, F3 ~1 _
其中就有stats属性,可以获取统计信息。, t; I" D7 E2 i2 E1 {' D
8 y3 \  M; j1 D/ c
那如何使用代码获取Activity的统计信息呢?
* w* z3 N  P1 t" ?/ U) K+ M9 V第1种方法,使用getstat命令。
9 ^/ J9 L0 B& J7 lgetstat (node object, str name, int flag [, var p1, var p2, var p3])
1 s% Y' Y* |: y/ o7 m* o/ ~7 v9 b( b# rReturns the statistic value for the given objectDescription$ \5 |% v! ^6 n( _5 @& t6 v/ z
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
/ k: y5 @# w' \+ X$ BExample:4 L6 i4 J, o' ], c: S
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    : a' p% |. l/ V& [( g4 k
  2. // getstat requires between 4 and 6 parameters:7 Y) S, x; K9 _8 b/ y& ?) Y
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    % k8 t6 K# S9 V* W; b6 k% b
  4. "Content", // 2. the name of the statistic! Y& Z- p' E* W: K: n" p' m# n
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)9 [1 W( E9 S8 Q* Y- l3 |
  6. // 4. an optional parameter the instance object (usually current)
    4 ]- ]1 M% D2 c# q/ s& N
  7. // 5. an additional parameter to help resolve which data to get, ?% l! A3 l9 T& H, Q/ ^
  8. // 6. an additional parameter to help resolve which data to get+ h: X4 i: |9 L
  9. );
复制代码
9 U. |/ V  v1 [% H: {7 A
第2种方法,转换activity的类型。
: p7 G9 L! G7 [/ ~- c既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
5 {) d5 R- q: c9 L8 d转换的方式有2种:0 D8 H) V8 a. |. ]7 A1 P( g
方法1,使用as关键字:/ W% u* n5 E+ C0 z
  1. activity.as(Object).stats.input.value;( K+ [( P  V! P" [* [
复制代码

- [# M" K) L# m方法2,将activity声明为Object类型的变量:
& k8 Y/ ~4 y* D$ E' U( O
  1. Object Obj_activity=activity;9 @1 b0 N3 Q# t* t
  2. return Obj_activity.stats.input.value;
复制代码

5 m! ~# N5 B7 D' ^* a6 s
+ H! G& Y3 v, g2 C* {3 I  b/ F" t! Y# e4 q& V7 ~. K

7 x! |4 F1 \, p  ~0 `: a7 w" Q" q1 h4 @- f1 Q

" |9 Y8 S0 a" C, b6 ]; n, o; w9 h1 v" ^
4 h$ B4 L# e" }5 P: H2 e) O( }





欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3