全球FlexSim系统仿真中文论坛

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

如何获取Activity的统计信息?

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2022-11-29 15:17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
+ j/ G% K* w3 a7 J( ]3 j' B0 r8 M# a: m
1 Q7 v; t7 d1 F% z如何获取Activity的统计信息?, r# T6 F2 A- T- y0 V# `% A3 V2 T
3D实体的属性面板中可以查看统计信息。
+ _# ]: b6 E  c/ a
% Y! @5 B: K6 v同时可以通过Object.stats属性来获取相关信息。
4 r6 [: @+ @* O/ r: O0 R' g$ r
' |" i# E  {$ Y! r8 a  o( o. DActivity也有属性面板4 \9 E9 b) ]8 d% m
# J# T6 X/ u3 r+ ]# j4 O8 E2 j
但是Activity却没有stats属性,无法通过属性获取统计信息。1 V* s8 w, \: V# e
2 B) [' v6 f3 h$ ^
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
. i" r4 }' g: L& btreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。) o6 G% @7 T; I. V0 z/ {" R

  W1 s& F" x" [6 @  v% H作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
  f- T. n2 @4 Y* n: `9 G+ l$ Q; i. [, ?% r- ~; I
其中就有stats属性,可以获取统计信息。
$ l( p0 f( M9 `6 i& R4 _* ~9 q/ y$ o+ c8 U7 p% m2 _2 \- u% S# B
那如何使用代码获取Activity的统计信息呢?
) i; X' l" I" F4 M第1种方法,使用getstat命令。$ D( M( q+ @, G6 U/ m" ]  j
getstat (node object, str name, int flag [, var p1, var p2, var p3])
: T5 ~, I; w% `5 f9 SReturns the statistic value for the given objectDescription) ^6 `4 r4 K2 p$ a
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
8 k$ k/ D4 H% g( @& H) XExample:
. z/ b: P3 S7 m
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(
    % e8 t6 v, c# h
  2. // getstat requires between 4 and 6 parameters:9 p& C2 Z5 Y1 n4 v
  3. activity, // 1. the object (shared asset or activity) that has the statistic3 X& U& M4 h( ?9 A0 K8 m
  4. "Content", // 2. the name of the statistic
    & A3 ~& Z$ n+ a/ O$ z4 d
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    + k* {/ X6 F& i5 D7 }# j4 Q: G
  6. // 4. an optional parameter the instance object (usually current)" L- H: J$ B  G6 e+ _& @
  7. // 5. an additional parameter to help resolve which data to get
    : t- _( {/ l8 ?0 D' Y4 e3 u
  8. // 6. an additional parameter to help resolve which data to get
    & P7 i; C- ]* a' \
  9. );
复制代码
# q( n, e$ ]% j. @- f3 g% Z& P
第2种方法,转换activity的类型。
! z# f" T' {+ A+ C& J1 P" q2 I4 H+ {既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
8 I7 P1 s& m) Q% ^; Q转换的方式有2种:1 V+ v; r* P& S$ l# H
方法1,使用as关键字:
2 T1 H9 C5 N$ D2 p1 N8 |, u: r
  1. activity.as(Object).stats.input.value;
    . G& V  Y3 Q0 c+ x+ K
复制代码
" I- _) {( U- J
方法2,将activity声明为Object类型的变量:
' X% O, q  a$ W- f; J& U, g" \
  1. Object Obj_activity=activity;
    / y4 [8 p# Q# V
  2. return Obj_activity.stats.input.value;
复制代码
- _8 E! ~1 N# @
) Y/ V1 {( P4 g9 a( u
! G- m0 k9 y3 q4 h: t. L. u

8 G& N5 F. a% d% k4 ]+ o7 Z- J8 C+ q; m8 c4 B. _# N
# s! Y# Y5 y2 j3 e$ h
) [( z5 N3 e0 |6 o
" |; s! H# L5 S/ M+ U

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-6-2 09:22 , Processed in 0.062408 second(s), 14 queries .

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

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