全球FlexSim系统仿真中文论坛

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

作者: zorsite    时间: 2022-11-29 15:17
标题: 如何获取Activity的统计信息?
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 - [. y) I, R7 n4 M

1 u, g/ i/ ?. c9 q如何获取Activity的统计信息?" w0 p" z0 f  a3 m4 ~
3D实体的属性面板中可以查看统计信息。
. d+ R8 \8 P* q' W8 ?[attach]6028[/attach]  u) D5 S' C1 u- d
同时可以通过Object.stats属性来获取相关信息。
+ A4 I: Z$ i$ p2 ^: y[attach]6029[/attach]
9 {) V4 u: |) SActivity也有属性面板' t  T% a7 h3 r' @% j0 D5 S
[attach]6030[/attach]
  k0 |7 G0 A& Y, K9 {0 u' W- E* {' G但是Activity却没有stats属性,无法通过属性获取统计信息。$ W/ H- V4 G" T* N
[attach]6031[/attach]7 ^6 ]" }1 f8 x0 {
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。$ E. u- c0 c4 ~: t
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
$ B4 I. z) ?* B) Q" N! h[attach]6032[/attach]
# x/ N; d/ P9 d0 ]' S作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
7 H5 m9 l0 S& B6 T& x[attach]6033[/attach]
* W$ [5 e: i/ U# B4 i其中就有stats属性,可以获取统计信息。
- |* X, B/ s, |- h9 _5 M* o
$ X' [/ N. [% C那如何使用代码获取Activity的统计信息呢?1 z( ^5 s7 x7 d% {0 u; z8 O6 x0 m0 _6 s
第1种方法,使用getstat命令。5 J9 }  _; A6 D1 D
getstat (node object, str name, int flag [, var p1, var p2, var p3])
) C  R9 T+ S$ [; X" T- E5 PReturns the statistic value for the given objectDescription' `3 b( U" s. M& C
It is preferred to use Object.stats instead. Gets the specified statistic from the given object." c. T. w4 a/ [
Example:
4 F1 Y/ ~* ?, a$ V
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    ( x" @, O4 y7 A  C! E6 z5 a
  2. // getstat requires between 4 and 6 parameters:
    , T% Y2 v* W: P$ V
  3. activity, // 1. the object (shared asset or activity) that has the statistic! H" C8 j4 H' l; G3 i
  4. "Content", // 2. the name of the statistic9 i  `/ J6 D: N6 \7 g- a
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)! Q: ]' q% i# r+ c7 K- q& x3 Q; n. Y1 l
  6. // 4. an optional parameter the instance object (usually current)
    1 ?2 }3 F4 y, G
  7. // 5. an additional parameter to help resolve which data to get6 X) ]6 R+ z6 _$ h. @
  8. // 6. an additional parameter to help resolve which data to get
    ! i! l8 Z, ]2 x
  9. );
复制代码
' U0 x2 L+ x- P: d% A
第2种方法,转换activity的类型。
, i& C7 X$ |& G) ?! O$ S, B既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?9 n2 Q- w$ Z/ ]# l3 j, p& U
转换的方式有2种:' k& e: g& S; C: u6 _
方法1,使用as关键字:8 `5 i$ W. N5 o3 F
  1. activity.as(Object).stats.input.value;
    ! A# X" J! O. v: |  ?
复制代码
# j+ v7 t+ w+ N" q
方法2,将activity声明为Object类型的变量:, K* u5 j/ k! ^/ o
  1. Object Obj_activity=activity;
    ( n( Q2 \0 E' H. m8 [3 }" S
  2. return Obj_activity.stats.input.value;
复制代码
; T$ V! J* _6 F, z7 h! M/ s% _% w/ f

- }3 r9 x5 e% {. U' H9 x
% R# t$ Q' d' f* E. c6 u; r: j% P- M
' B, `: n+ Y# ?$ v4 m
' A4 g! [3 H! J3 z% r7 U: a
% Y# J. t! H# `# |2 `
7 l7 J$ U  k: H9 o+ A$ L





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