全球FlexSim系统仿真中文论坛

标题: 如何获取Activity的统计信息? [打印本页]

作者: zorsite    时间: 2022-11-29 15:17
标题: 如何获取Activity的统计信息?
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
9 k6 b8 h) {! L0 [( W3 B5 N8 V* ~$ t: I; @5 @1 R
如何获取Activity的统计信息?
+ B- W8 W, n' J7 h3D实体的属性面板中可以查看统计信息。5 s- v& H5 d2 p5 E, \, U
[attach]6028[/attach]( b) i' Z; m6 r, A1 p+ D' ~
同时可以通过Object.stats属性来获取相关信息。4 J4 G4 N, D& y
[attach]6029[/attach]
8 o& {. g- y# U7 [Activity也有属性面板& Y; l3 T: I9 Z( L3 P. P! T# W7 S
[attach]6030[/attach]- ~! [3 p- v* f9 I; i3 s
但是Activity却没有stats属性,无法通过属性获取统计信息。6 }( ?- {1 z9 y
[attach]6031[/attach]
3 c# {" i/ p: V  d* s' }, q# F6 T原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。% b: H% o* S$ P7 j# [- Z' W
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。( S$ q1 s( k* t
[attach]6032[/attach]6 y( M/ {! T7 M, x! ~/ k1 Y
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:& L2 Y. n" l* _; T
[attach]6033[/attach]
/ m( U; H( H, u$ x6 C0 S其中就有stats属性,可以获取统计信息。! I! _) S* K& Z3 w( w8 t. f
" ^" V" G2 {" [
那如何使用代码获取Activity的统计信息呢?+ o8 g0 o# j- w4 O' v4 F
第1种方法,使用getstat命令。
  j) V6 C! o, T( C; u9 `getstat (node object, str name, int flag [, var p1, var p2, var p3])
& [. p2 p- ^% P2 B% K3 CReturns the statistic value for the given objectDescription8 K4 F- A/ D7 @7 }* h. Y8 M/ I
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.+ F( {4 u- @) m
Example:
$ d! x: N4 L6 i) `  V+ Q
  1. getstat(activity, "Content", STAT_CURRENT)
复制代码
  1. getstat(activity, "Input", STAT_CURRENT)
复制代码
  1. getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
  1. double avgContent = getstat(6 j) d2 u% l. a, r0 x; V
  2. // getstat requires between 4 and 6 parameters:- q5 X7 t+ D* l" _
  3. activity, // 1. the object (shared asset or activity) that has the statistic" y; d. J- ]& d
  4. "Content", // 2. the name of the statistic3 J& u+ C' U) H
  5. STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
    : r% j+ G  k5 |/ B" J1 |0 ~) z
  6. // 4. an optional parameter the instance object (usually current)
    6 ?$ d! d) r6 H4 B$ S% \
  7. // 5. an additional parameter to help resolve which data to get2 u& `- s' G% U  |9 @8 L  Z. u% l
  8. // 6. an additional parameter to help resolve which data to get9 |8 l) h& R5 u3 ~! i
  9. );
复制代码
' j' V+ _) [- I1 |& C) k: z/ T9 P" X
第2种方法,转换activity的类型。
  \$ f0 L0 x  B0 [4 a2 j# m既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
2 h9 b5 }- v! U2 M转换的方式有2种:
  p. A4 F% Z) s) X2 o7 ^: i$ i方法1,使用as关键字:, y  m3 n9 O& m
  1. activity.as(Object).stats.input.value;; i  ?) ]8 i- t: c% O$ F, [! s( B
复制代码

$ K* @( o# a2 ~! L+ W方法2,将activity声明为Object类型的变量:. s" Z$ J  Q3 u. ^
  1. Object Obj_activity=activity;% a, c- h, P7 V, K; B( h
  2. return Obj_activity.stats.input.value;
复制代码
1 z9 }2 |# w/ j2 S6 I# y9 T" b

2 h3 t! w) t+ d: [9 v2 y5 F: j* m( e, K# {+ r0 U; M
. b8 W6 Z% \; B! r; R
" L: Q$ q, @1 ?2 K
0 y0 z! N: T  x* T+ Z
9 U; T  a' _8 k  ?
4 i' h, C+ Z8 K" I7 N  T





欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3