全球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( u
3D实体的属性面板中可以查看统计信息。
. 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) H
treenode作为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 l
getstat (node object, str name, int flag [, var p1, var p2, var p3])
1 s% Y' Y* |: y/ o7 m* o/ ~7 v9 b( b# r
Returns 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$ B
Example:
4 L6 i4 J, o' ], c: S
getstat(activity, "Content", STAT_CURRENT)
复制代码
getstat(activity, "Input", STAT_CURRENT)
复制代码
getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
double avgContent = getstat(
: a' p% |. l/ V& [( g4 k
// getstat requires between 4 and 6 parameters:
7 Y) S, x; K9 _8 b/ y& ?) Y
activity, // 1. the object (shared asset or activity) that has the statistic
% k8 t6 K# S9 V* W; b6 k% b
"Content", // 2. the name of the statistic
! Y& Z- p' E* W: K: n" p' m# n
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 |
// 4. an optional parameter the instance object (usually current)
4 ]- ]1 M% D2 c# q/ s& N
// 5. an additional parameter to help resolve which data to get
, ?% l! A3 l9 T& H, Q/ ^
// 6. an additional parameter to help resolve which data to get
+ h: X4 i: |9 L
);
复制代码
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
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
Object Obj_activity=activity;
9 @1 b0 N3 Q# t* t
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, b
6 ]; 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