全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
/ \1 C, ]2 G8 I, W! U, ]
: t, u6 U; J4 m7 ~( R如何获取Activity的统计信息?2 f! |! y. R9 T
3D实体的属性面板中可以查看统计信息。
) Q5 z+ g+ b  `) ~/ P( @4 Q2 A
3 X* v; u8 {$ d$ ^* X同时可以通过Object.stats属性来获取相关信息。3 Q8 J$ L. i- w- o2 |/ _
5 D0 E; B% q) K. Y6 e2 `. |, p$ z; V
Activity也有属性面板
- `3 K+ r( e( D! l2 }% C7 Q
( t# P8 Y3 ~5 N7 O但是Activity却没有stats属性,无法通过属性获取统计信息。* T$ R, p+ m& l1 h) @$ z; d& @
6 B, j- S9 s3 h" ?
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
% O; k$ w# S8 F6 Jtreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。1 x4 m! D, _1 f0 H  O1 F0 S% o6 s1 B
: K* @1 u  I9 p( ^4 A* e: F
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
7 r( P6 @0 \% W) ^3 v
4 V: V9 H4 ^: r$ j其中就有stats属性,可以获取统计信息。! f% K* t6 i9 _/ c$ ~7 @+ `) }6 Z
1 }, g5 S6 k! f) W/ B2 ?
那如何使用代码获取Activity的统计信息呢?
0 g* ?& e+ j  x, n# A$ K4 p第1种方法,使用getstat命令。
+ K/ [0 w& D4 x( O7 rgetstat (node object, str name, int flag [, var p1, var p2, var p3])2 C7 {% ~& ?* A/ X7 d; n1 m
Returns the statistic value for the given objectDescription3 ^6 E& q+ G3 K6 O3 s
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.6 v. p  u% X, w+ k, U& a2 _& \, J
Example:/ g5 X$ c8 Z9 x4 r
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    : z$ A  w$ {. u( J( P4 @
  2. // getstat requires between 4 and 6 parameters:) _% s& D  _# J0 m
  3. activity, // 1. the object (shared asset or activity) that has the statistic: `; D$ h) v( ~8 `: [
  4. "Content", // 2. the name of the statistic
    7 x( M5 e0 T+ G" f% [
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX); @# }: _% u# X( ]
  6. // 4. an optional parameter the instance object (usually current)- r; z$ C5 F2 g6 C% r9 S5 m, P
  7. // 5. an additional parameter to help resolve which data to get
    2 m7 O* |) y: E. ~9 l
  8. // 6. an additional parameter to help resolve which data to get0 e. Q( t, L: J+ m
  9. );
复制代码
1 ^0 l. _; V1 _" r$ F
第2种方法,转换activity的类型。7 a/ ~$ I6 Y" N' s. |/ L% m% K) A
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?5 S4 d" B+ k& K
转换的方式有2种:' ]# a1 H9 E1 ?# v2 O
方法1,使用as关键字:
% c$ @0 x- ]) R* H( P
  1. activity.as(Object).stats.input.value;
    * A% F" I6 }- y. r. [" f; H+ p
复制代码

3 U: A7 y; E( I9 f# O方法2,将activity声明为Object类型的变量:
0 |: A+ D7 J3 n0 @/ _2 q
  1. Object Obj_activity=activity;' Z2 z( b7 t# U* g% Z5 m
  2. return Obj_activity.stats.input.value;
复制代码

# {4 p. o7 ^- P( z0 l# Q0 u! L, G/ `8 a3 {

$ t  K3 W8 g  S" L! {/ v8 x5 O, {% |- J' |8 U+ M
* b% z! i) d3 P. X6 I
6 L4 q+ m$ M9 E, H% ^1 X

4 F$ N. o: i! }; A3 ^7 k* j2 `
6 [& b; G$ N0 v' J$ y! g

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-10-23 10:09 , Processed in 0.062246 second(s), 14 queries .

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

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