全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 4 x; L2 |; e& {! Y0 y) u" p6 N

' h6 o5 Q9 Q* C; T5 d% [7 F1 ^$ J如何获取Activity的统计信息?
& K; i. V2 Q; Y3D实体的属性面板中可以查看统计信息。
8 @5 Y8 v2 }8 l  _' S8 `/ ~9 z9 ]8 p0 z" T* w. T: M: p
同时可以通过Object.stats属性来获取相关信息。
- u3 O  R% s0 |  _9 E* t" k/ `7 r6 H, G8 a" j
Activity也有属性面板5 v4 P+ L9 a# I+ C

0 t& I' {# ?2 X: q8 H0 e: f但是Activity却没有stats属性,无法通过属性获取统计信息。
; j% X$ Z$ D* l. Q+ q& j) p" ?3 j' f
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。8 G4 T3 |0 ^& d) W; n4 O. a' G
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
1 I4 T1 K2 J+ X/ P% S$ f7 r  g8 A: D+ y4 [3 q  N) A. A
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:9 `: O$ [6 N! [6 _0 t4 T

% s$ W9 P) P# [& G其中就有stats属性,可以获取统计信息。
% q  u' {) [2 W/ @2 g; n
" z+ X& x- {; l, D0 A* x9 v3 H那如何使用代码获取Activity的统计信息呢?
. p) k' Y7 o% j% {% |# o: i第1种方法,使用getstat命令。6 i/ r; a: Y8 {( i
getstat (node object, str name, int flag [, var p1, var p2, var p3])
8 ^, O$ M" `3 S, ]Returns the statistic value for the given objectDescription5 A# f% T7 H, P/ z7 \" V, q5 v
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.2 p' I3 h; D+ _0 S& s
Example:) {* x/ @" M+ ?' d% i! L, U/ Y4 T2 U+ f
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(( v$ t6 r( I9 n3 I' J2 M; Z
  2. // getstat requires between 4 and 6 parameters:
    ' [2 ]/ w9 E/ f
  3. activity, // 1. the object (shared asset or activity) that has the statistic% X9 K# b" l) U
  4. "Content", // 2. the name of the statistic
    0 @& y; w) z( \2 s- |- |
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)3 D" J  n1 r3 y! O$ T( z2 |' r
  6. // 4. an optional parameter the instance object (usually current)% ~' y! R6 \- B: T. P& `  g% H, H
  7. // 5. an additional parameter to help resolve which data to get* t4 p- h( Y0 u" S& L
  8. // 6. an additional parameter to help resolve which data to get
    # j6 |/ P) |3 ]" c' _# m2 |
  9. );
复制代码

5 a! C/ P8 o3 j% t第2种方法,转换activity的类型。! d  Z9 n3 T0 U" i6 [# N$ Q% a
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
/ F9 R! K/ a4 X8 l转换的方式有2种:
: h- V. |2 I# m( l3 ^" l* U方法1,使用as关键字:
6 _8 U/ J" z' W4 E
  1. activity.as(Object).stats.input.value;
    8 T0 |1 h" ^. o
复制代码
; Z9 u1 L, V3 G* G
方法2,将activity声明为Object类型的变量:+ \9 h( g& C) t$ M$ l% E7 u. i2 m2 l. j$ q
  1. Object Obj_activity=activity;/ q5 D# f+ M/ c' c, \! q" w
  2. return Obj_activity.stats.input.value;
复制代码
0 U2 u0 v& k5 O
+ }  F# c+ {! L0 M

& a& ?/ K& o5 w, h5 A$ ^! }
6 C3 r: L; }$ d& M" y" V5 |
1 G. a6 X# W4 X/ k. c
' X9 }' \0 a. \  A
5 Q4 P6 P7 c+ p) F
& ]* s9 i6 V3 f( y7 X

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-7-8 20:09 , Processed in 0.074754 second(s), 15 queries .

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

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