全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 . F7 b$ ?  ~7 V0 ]9 s
7 M6 p% b; ?+ W+ ]5 B  i% H
如何获取Activity的统计信息?
, [" r' ?6 Y1 w5 Y3D实体的属性面板中可以查看统计信息。) {8 Q6 v  S% N8 T' B7 i2 \
# Q3 T8 m$ v2 {  o# Y( i7 P
同时可以通过Object.stats属性来获取相关信息。  v$ q9 b9 J' q; n9 a4 l2 w$ {
' ?$ s4 F/ J. h2 X, [) D
Activity也有属性面板
9 B& ^( d, u; f  U2 V+ o# N% r% ~5 Y! g" A2 ~# L
但是Activity却没有stats属性,无法通过属性获取统计信息。6 h$ J; q5 u4 m) v8 v1 [3 H2 g
$ S* p' u# P/ q* N$ `8 Q# O- b
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
% B) U( y, `9 \2 Utreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。. U. C* V! X  e5 h) P

9 S" m/ G$ X; i8 ~作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:( p  t, i: N: \5 ]1 Q; k- u+ L- B
6 c9 m, j+ [+ u! w0 h
其中就有stats属性,可以获取统计信息。
  G' ?8 O/ K! H, ~
2 P+ J" g  M# s# L: V8 U- [那如何使用代码获取Activity的统计信息呢?
# x, e. l) N# G第1种方法,使用getstat命令。5 x( Z4 P4 {6 d/ ?& N7 ]
getstat (node object, str name, int flag [, var p1, var p2, var p3])
7 Z  e! b1 Y& g. F1 y3 Q3 @" gReturns the statistic value for the given objectDescription
7 b& [+ j. n9 O3 c1 n$ gIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
: {/ L! y4 n8 ^( \8 EExample:( f5 H$ z: j0 P
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(# R% Y- {, C+ A0 Z! d0 Z
  2. // getstat requires between 4 and 6 parameters:+ ?9 f3 z8 j. P% s- p+ O; y% q
  3. activity, // 1. the object (shared asset or activity) that has the statistic
    9 I* f' T/ i: N
  4. "Content", // 2. the name of the statistic
    4 }) H1 [- @* [7 b4 ?& ?% D
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    * Q- t3 U" n. G; n4 x' J
  6. // 4. an optional parameter the instance object (usually current)( c- l4 O, `2 W2 L7 w
  7. // 5. an additional parameter to help resolve which data to get, a  M0 b' q" k- j6 G) _) t
  8. // 6. an additional parameter to help resolve which data to get, X  d5 d6 m4 M; Q2 V% v, _% A
  9. );
复制代码
: H8 b" K. D( Q+ j1 q7 W
第2种方法,转换activity的类型。
( a; d% _% B5 ^+ S" x% A既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
. ?$ u; F( r* p) V转换的方式有2种:
: Q% ^: @1 ^$ n( Q方法1,使用as关键字:  [" l" ]' D* k4 b6 C
  1. activity.as(Object).stats.input.value;
    9 z$ m( m" k$ ~/ h
复制代码
# v$ }, O8 r' x  m
方法2,将activity声明为Object类型的变量:* Z& a# i7 R# G* J- ^) m" A
  1. Object Obj_activity=activity;, `9 c: ]& o, D& z
  2. return Obj_activity.stats.input.value;
复制代码
  {# h3 o5 g% f* ^# @. I

0 q8 s8 `9 y2 ]  \3 u
2 ^- u7 G3 y1 T
# D$ ^8 v$ t6 u, i& _; h' T# u; Y% f
" ]: e* Z& {9 M% t

1 \  W* W: t; Q( r! B
: h$ }7 K  ~8 t9 b' R) ?

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-28 02:47 , Processed in 0.087732 second(s), 15 queries .

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

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