全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 / b- ?  O. X8 O: V7 y) n1 I- @

6 k$ Y/ _3 s( W- R1 y如何获取Activity的统计信息?
4 A$ [' l: V/ D' D* e' G0 o3D实体的属性面板中可以查看统计信息。! ?: O2 [$ t5 _; s
+ C; a$ k# x: x  _, X
同时可以通过Object.stats属性来获取相关信息。4 T8 y7 ~$ J2 t( Z6 p/ S  w* P

* `3 s- `3 \2 g& X7 AActivity也有属性面板
  X+ X3 L) W, V/ I- P0 ]3 w5 x  \7 S
: j' @9 I3 s4 }, X/ J# N但是Activity却没有stats属性,无法通过属性获取统计信息。
' z' Y7 L3 R% v. O! I6 v$ h7 m( Y4 N- c& I
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
* W% a! \  M2 _% W; ?, S/ r  r1 I* \5 |treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
* _3 e/ \3 l' V  X
5 q4 W4 \) E) W作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:! e+ u( h. t, ]  x" a

7 |$ G0 H* E  Z& d' G# }其中就有stats属性,可以获取统计信息。
6 C2 h, d9 G* \( t6 K$ J9 K/ t3 k! w0 T. `9 J& G
那如何使用代码获取Activity的统计信息呢?8 h8 w- O& e' ~) n
第1种方法,使用getstat命令。, ?- ?* ?$ p8 c  j8 R; Y# j3 b
getstat (node object, str name, int flag [, var p1, var p2, var p3]): T3 R7 i& p* C- q3 [" o
Returns the statistic value for the given objectDescription- ~8 W6 N$ z$ n1 e
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
  }' w( E7 F' l- y' Y) ?) qExample:
" r4 b  \' @, G' U0 S, f
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    # N) y2 ?, S+ @4 B& t
  2. // getstat requires between 4 and 6 parameters:' }& s+ i6 }' n( K0 Y, t' Z& C1 Z! n
  3. activity, // 1. the object (shared asset or activity) that has the statistic' R7 Y% z2 A0 v
  4. "Content", // 2. the name of the statistic/ x. v, O0 x: v
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    1 w' w; W* y; ~$ d- T4 b
  6. // 4. an optional parameter the instance object (usually current)# V  R% C" j5 w" X7 G6 N; w
  7. // 5. an additional parameter to help resolve which data to get
    * ~4 j, t5 @, L# U. ^
  8. // 6. an additional parameter to help resolve which data to get
    ) [) z# X2 o" G6 j
  9. );
复制代码
7 {8 G) V3 _8 W& g) H
第2种方法,转换activity的类型。$ _" q% v! a) a6 q, K! D
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?3 k$ {3 T( k9 ~1 X, a+ @
转换的方式有2种:# j; f4 |) @- x; a" c% ~" |  O0 [
方法1,使用as关键字:
, O$ ~* ^: W, M: M
  1. activity.as(Object).stats.input.value;
    , C1 r) q  b% t) }$ e$ V$ j5 }
复制代码

# s2 h6 m* [+ }3 Q- B方法2,将activity声明为Object类型的变量:
! c; m6 v# u3 O: p# P  {$ `5 ^
  1. Object Obj_activity=activity;! j+ `4 V# W4 \3 I
  2. return Obj_activity.stats.input.value;
复制代码
; G8 |% z# D9 n) ?2 f
- b$ Q# E; b0 P5 e8 D

7 x7 [( K0 i. e2 \' o
7 E+ R! c" r; n3 ?  N0 f1 E. `8 a4 M! @0 s) E0 V
- _& W$ }% @, ?

- N2 ?* s: n& H" m. w) T
# A! }# l5 y. e0 D% D: e

本帖子中包含更多资源

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

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

本版积分规则

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

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

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

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