全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
, o/ i0 ?) C1 z6 ~2 ^
( t3 o9 A& ^, f4 S  \, O0 d如何获取Activity的统计信息?  q+ P9 u6 `6 ~* c2 Z& w
3D实体的属性面板中可以查看统计信息。9 b& ^  K  L" ]  j

9 d' H: @. n* @0 E& T5 D; _0 D同时可以通过Object.stats属性来获取相关信息。
0 p: ?0 l8 T/ z; j6 E# `1 @; ]
) i) o# w7 T: b0 z: K; s* qActivity也有属性面板% B4 I, i3 i% v" n

* I8 \- _6 ]2 @! V5 X; u/ V但是Activity却没有stats属性,无法通过属性获取统计信息。9 Q) y7 L& J) d4 d
3 O! U" T" Z- x
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
. a6 u! A4 f6 o$ A. [' x' S* |: |5 xtreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。$ O, k' D- _  o* b4 q4 L7 `+ R
( V5 E/ |3 b4 Z( Z3 ~5 O! Z7 p
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:2 w7 c1 w0 ]8 h: p: p1 Q; {, }. I
, A. m9 B$ ?' Y
其中就有stats属性,可以获取统计信息。
: u" k& l, i& M% y6 U- R2 ]
+ D* n- b* o+ b  [那如何使用代码获取Activity的统计信息呢?; e. C4 C7 s% r9 I1 P. T
第1种方法,使用getstat命令。/ B" u6 r0 {) L( z5 X( {, \- |9 H
getstat (node object, str name, int flag [, var p1, var p2, var p3])
$ G) k$ I0 T5 b7 L( K9 MReturns the statistic value for the given objectDescription9 d0 E4 o; O) f1 K
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
+ w. [* E  \+ ZExample:. i' e3 o1 a8 S3 h) A2 t( o
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    2 U# j$ u! X% p0 D2 O
  2. // getstat requires between 4 and 6 parameters:
    + U: o. P3 R' W* @
  3. activity, // 1. the object (shared asset or activity) that has the statistic( |4 u: E: X5 a% C- d
  4. "Content", // 2. the name of the statistic5 A9 N* {. @) z7 j7 X0 X
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    - I1 U2 c& m/ m2 \) C! }$ D
  6. // 4. an optional parameter the instance object (usually current)
    " f+ c5 V- e& V9 N/ H+ v2 h4 {
  7. // 5. an additional parameter to help resolve which data to get
    7 m. `3 B. |% \  c& P% ~
  8. // 6. an additional parameter to help resolve which data to get, y1 g; c% m5 Z( Y' g
  9. );
复制代码
, k  c3 s' L6 c- U
第2种方法,转换activity的类型。
2 Q1 ^" J- T& v7 z- f- D% p既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?; U* M+ N6 ~6 _) m% M, s
转换的方式有2种:* Z2 n9 ~: c% _, w5 P; P2 Y0 y3 `, [
方法1,使用as关键字:
! T# d# G+ I8 C" C! F2 m. p
  1. activity.as(Object).stats.input.value;6 f9 L0 @$ w5 b9 Y: F5 ?
复制代码
7 B% Q) [! m( l5 }
方法2,将activity声明为Object类型的变量:- n: a1 F5 \- }# k* w
  1. Object Obj_activity=activity;
    * Y4 G, O' o. y2 U
  2. return Obj_activity.stats.input.value;
复制代码
# d' q4 Y2 G9 i# |" o' c; {* E5 q

, C8 z3 Y; h# F2 O$ F4 f9 U, \7 m. @9 c8 Q

0 Q( E; R5 r: T9 V! o  W7 @5 y* ]6 S3 u; s  a3 V

) R" B' o3 m! a0 J4 g7 G1 e
4 X% Y9 n2 ^( W2 R; _1 Q! l7 I+ J$ U8 a

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-8-30 20:10 , Processed in 0.074428 second(s), 15 queries .

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

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