全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 : N' n$ |. k* a  s* D

$ T5 M9 Y% f" i- O% E如何获取Activity的统计信息?
/ X+ L8 O( b% z# q3D实体的属性面板中可以查看统计信息。
) H9 c: o1 z; O- s: Z5 J; H( J
同时可以通过Object.stats属性来获取相关信息。
+ Q2 l% l2 h, b+ g7 c! j" S, t- |8 w+ {# h; u5 T& H
Activity也有属性面板: p! l. k" R; ~* w8 u2 v& @3 V

4 |) f: s( `7 n但是Activity却没有stats属性,无法通过属性获取统计信息。' a0 ~4 o/ Z+ s/ l- a& L

7 l3 E  d  x) Y# Z* v1 V2 ^原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。" g) O) q( f, e
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。+ ]6 ]# X6 A9 A

! S4 U! {- d6 p$ w作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
- `" E9 w: k+ B2 ?0 d
- m6 i" H+ `& V1 i" C" D, Y& L其中就有stats属性,可以获取统计信息。; z7 X) L8 F$ W- c5 d4 x

; E7 i! i7 b4 \那如何使用代码获取Activity的统计信息呢?9 C; D5 @1 u2 @: [
第1种方法,使用getstat命令。  ]. [# A% I- w! s
getstat (node object, str name, int flag [, var p1, var p2, var p3])* _. {( R' W: {1 }( N, c3 f
Returns the statistic value for the given objectDescription
3 T3 R& E9 N% o7 C$ }4 e, MIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
( I5 t! d& g1 D& f; hExample:* P% ?. e& b- O1 s/ |* z
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    3 N" n) l# a9 G! n$ B
  2. // getstat requires between 4 and 6 parameters:
    3 \9 G9 k# R6 M. H
  3. activity, // 1. the object (shared asset or activity) that has the statistic& o* X7 Y# e! R- T  L
  4. "Content", // 2. the name of the statistic
    ) b; z' c% @9 M* S  b
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    6 Y- X! N9 s" w% N
  6. // 4. an optional parameter the instance object (usually current)! n2 g6 q/ J, v# n
  7. // 5. an additional parameter to help resolve which data to get/ d+ ^0 y0 Z7 c' U" r* K2 L1 q
  8. // 6. an additional parameter to help resolve which data to get
    * O5 c; _( m* A  b" _- m# O
  9. );
复制代码

/ p( L, }4 N& O( \) o第2种方法,转换activity的类型。  J3 k" M. x8 u+ `/ C' L
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?  c' t) f% r( ~. c* \4 s. |# \1 n# f, n
转换的方式有2种:
8 t2 D* ^5 W' _8 A; P4 }# |* y方法1,使用as关键字:; x& J# l2 J6 f9 q8 Q" t4 {
  1. activity.as(Object).stats.input.value;
    ) X& d; T: _' H3 a/ l. C
复制代码
. S4 Q/ G8 \# U
方法2,将activity声明为Object类型的变量:1 ~0 E$ r0 ?! I1 ^6 W" Q6 u
  1. Object Obj_activity=activity;
    ; C: y. Q/ c' d$ `; u$ X
  2. return Obj_activity.stats.input.value;
复制代码

* M( e- s1 g% C) y! P5 t# b% Y) F6 v% C* A& _  m, ^: o

9 ^0 y  s2 ]9 }; m+ w
/ g8 H( K( N  J6 b8 P0 G0 p
+ [5 `: ?! B; d# j# d8 I* X0 K0 @; V8 ]" I" y: A* w
2 Z' ~4 _, f6 _# @, p' D0 D

( R; \  S, s6 Q: y1 K

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-5-19 20:02 , Processed in 0.079414 second(s), 14 queries .

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

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