全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
+ ^3 U7 h% ?- [# V2 u, o* C  x& f2 G: i3 K) v
如何获取Activity的统计信息?
, v" e5 b% @+ I* `3D实体的属性面板中可以查看统计信息。
8 T9 P6 ?) I; C) J# _- B# b' \. n7 L" U
同时可以通过Object.stats属性来获取相关信息。
$ }+ o- v# U% L$ Y; C6 f
: D9 N7 A3 k3 W7 ^1 J" h' A4 _- FActivity也有属性面板
* m2 y! l. y2 r$ j: I$ p% F) q# h) X: h+ f$ x! l8 S
但是Activity却没有stats属性,无法通过属性获取统计信息。
3 j( S9 a. O# c  f% w4 }# v8 G
0 A6 A, S6 s5 @1 s# \+ q4 S5 [原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
4 e( D( h$ D  e- D$ z$ e4 Ctreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
( u/ b& R  ?- V* p6 B7 o1 Y7 U1 s! c$ q
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
0 U1 K$ k( k% _4 i: g
2 R) g3 [* y$ d- w2 |8 X其中就有stats属性,可以获取统计信息。4 [# z9 q, v6 k) \% w
* P! {, @& p6 w" N
那如何使用代码获取Activity的统计信息呢?
" \) f7 P* k$ Y6 o( C- T第1种方法,使用getstat命令。
' e( y* ~- I5 O0 w7 lgetstat (node object, str name, int flag [, var p1, var p2, var p3])) x1 N* g6 i$ H4 B7 R
Returns the statistic value for the given objectDescription
/ J/ N; C2 ]( `& s1 w2 {& xIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
4 I7 [1 [# K: xExample:
& K! o& C4 i9 m( z
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(6 w* {5 j* H) Z4 t
  2. // getstat requires between 4 and 6 parameters:+ X4 o! E% u8 z' I! `5 V
  3. activity, // 1. the object (shared asset or activity) that has the statistic8 q. ]8 D0 D' R
  4. "Content", // 2. the name of the statistic
    6 ]% C/ O6 Z! L7 t  o
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)' c: l4 n+ r& p/ z3 L
  6. // 4. an optional parameter the instance object (usually current)
    2 D2 D+ H. T0 x5 p  n4 C' t
  7. // 5. an additional parameter to help resolve which data to get4 H7 X- E* }3 p8 l, s
  8. // 6. an additional parameter to help resolve which data to get8 k% I9 _9 X3 ?8 c2 g. W
  9. );
复制代码
" S& K7 `) ^9 p9 D7 e
第2种方法,转换activity的类型。
+ Q+ C4 F* ^: \( i9 {6 [* K0 l既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?, _- y4 ~5 |! C0 o  k4 K1 y
转换的方式有2种:
9 f3 o% N) `' V4 C* t+ N% |/ W方法1,使用as关键字:
. [8 r# u. Q' C) q6 q0 f1 S, J
  1. activity.as(Object).stats.input.value;
    4 J* _( J# M. |5 T) ^7 U
复制代码
+ ?  \" I, |" n2 k
方法2,将activity声明为Object类型的变量:( K  J' @+ r' A: X
  1. Object Obj_activity=activity;
    % y/ D% o% e$ k; }& n
  2. return Obj_activity.stats.input.value;
复制代码
/ I, i1 B' v8 B

& X# M/ X* c  P/ @/ D% l# l
# d4 L5 j0 J% G5 I9 j* }+ {
8 l& j. e9 l. ?2 y$ |
+ |7 L* f: s) W' Y+ {: o) P7 a9 t! v$ p7 p, p& R
' Z, F$ w4 `; a
- o3 F6 {5 ^5 J$ u9 a; ^

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-7-3 12:15 , Processed in 0.082781 second(s), 14 queries .

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

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