全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 . h2 a/ w, d  O3 Z0 X  K

  E1 ~  ], x! {' R" o: e如何获取Activity的统计信息?% e' T% Q7 ^- i) e% [# E" x
3D实体的属性面板中可以查看统计信息。
" B" |1 L% g) I! |
5 _% f8 {0 z# W; {6 O, I同时可以通过Object.stats属性来获取相关信息。, O# v2 ~0 a! R. M

& T  v) F+ d+ PActivity也有属性面板
% w, d1 v: e- X. J  z& S: v
1 l# D7 ^2 ?5 l4 h) O$ H' Y; r但是Activity却没有stats属性,无法通过属性获取统计信息。
5 ?) P/ P0 f" g  R! \+ B" o3 A  u+ m5 T' h, R  A0 S: D
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
4 k: n; L" h0 Dtreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
6 _3 n0 y5 B1 g0 A7 `4 R$ j
$ g+ A  ^# Y+ E# y3 M! @2 a作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
* t# O/ Z! F/ H' N  z2 M! i
3 L/ P3 g; C. Y) N. ?其中就有stats属性,可以获取统计信息。, A! \  S5 ^6 K0 j9 S0 d& ~

6 W  I* i# a2 V% D那如何使用代码获取Activity的统计信息呢?2 u! c! v0 _' \3 f" f
第1种方法,使用getstat命令。/ f2 ?6 X- ]. F8 k
getstat (node object, str name, int flag [, var p1, var p2, var p3])
. o1 `6 K) Q) l: iReturns the statistic value for the given objectDescription& S# g+ x* m- b3 k1 V5 {
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
. M& J7 L  j) p; L+ n  rExample:- j* o4 U: B" f: n, h
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    ! @: F9 p0 ~( C0 p; m
  2. // getstat requires between 4 and 6 parameters:
    . P* j, ?" O3 `$ v0 t$ |
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    6 ~3 y& [$ w5 |0 C/ K! `9 C5 s
  4. "Content", // 2. the name of the statistic  h+ p' d! t4 c& X' r
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
      F' s! n4 c0 G  D
  6. // 4. an optional parameter the instance object (usually current)
    0 X4 ]- e, o' `# ^/ c/ c
  7. // 5. an additional parameter to help resolve which data to get
    9 [" e0 W7 J& q* l; b, f/ E
  8. // 6. an additional parameter to help resolve which data to get: A. s+ Q+ l0 q- G% W$ H
  9. );
复制代码
( W7 c& @% q7 |+ p7 S  L
第2种方法,转换activity的类型。
4 B$ N3 G1 @2 ~/ X" D8 W6 c既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?4 v/ a: T# e1 {1 k" `' m- m
转换的方式有2种:8 o4 x' y5 {( X. }" ?& @
方法1,使用as关键字:
. q4 D# F) w/ u7 \) u+ n  [6 G; M" R" X
  1. activity.as(Object).stats.input.value;
    + N& r$ h+ i, z9 G4 j
复制代码

. ]1 b4 [6 K" Q) F' W' B& V& `% g: U* E方法2,将activity声明为Object类型的变量:
* B( B& d$ w& y1 {2 s. M/ j
  1. Object Obj_activity=activity;
    * ~0 G3 n( k, P6 I0 |, a2 @2 Y, K
  2. return Obj_activity.stats.input.value;
复制代码

1 e* P+ l: E) N/ d4 s1 L
  [7 t* i/ T: K6 o" u. u1 k
6 a* u) Q* {+ R9 R( z! q
" d3 C+ r: x' J1 h9 b
8 ^% L8 y6 k+ k! [! r+ r1 u+ `$ W1 k: n* F' E$ G: _/ O
- P; V. N% J2 a1 f2 J5 O& Q& ]4 R
  J' {# ~# i  r; m3 U( \8 [

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-8-31 14:39 , Processed in 0.085439 second(s), 14 queries .

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

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