Commit 5c48e9d5d10ad6a9559109fecde1c87554ef4e6b

Authored by Suraputt Suntimitr
1 parent 88c4b1b0
Exists in AFDemo_Timeout_Ex2

แก้ไขขา Wait B ให้ ลองรับ time out

AF-Demo/src/af/instatnce/AFInstance.java
1 1 package af.instatnce;
2 2  
3 3 import java.util.ArrayList;
  4 +import java.util.Date;
4 5  
5 6 import ec02.af.data.EquinoxRawData;
6 7  
... ... @@ -10,7 +11,14 @@ public class AFInstance {
10 11 private String invoke = "";
11 12 private ArrayList<EquinoxRawData> timeout = null;
12 13 private String state ="";
  14 + private Date time = null;
13 15  
  16 + public Date getTime() {
  17 + return time;
  18 + }
  19 + public void setTime(Date time) {
  20 + this.time = time;
  21 + }
14 22 public String getState() {
15 23 return state;
16 24 }
... ...
AF-Demo/src/af/state/StateIdle.java
1 1 package af.state;
2 2  
3 3 import java.util.ArrayList;
  4 +import java.util.Date;
4 5  
5   -import af.instatnce.E01Instance;
6 6 import af.instatnce.EC02Instance;
7 7 import af.instatnce.EQXRawInstance;
8   -import af.interfaces.AFEvent;
9 8 import af.interfaces.AFState;
10 9 import af.interfaces.EQXMsg;
11 10 import af.message.EC02Builder;
12   -
13 11 import ec02.af.abstracts.AbstractAF;
14 12 import ec02.af.data.EquinoxRawData;
15 13 import ec02.af.interfaces.IAFState;
16   -import ec02.af.utils.AlarmCategory;
17   -import ec02.af.utils.AlarmSeverity;
18   -import ec02.af.utils.AlarmType;
19 14  
20 15 public class StateIdle implements IAFState {
21 16 private String eqxState = null;
22 17 private EC02Builder ec02Builder = new EC02Builder();
23 18 private ArrayList<EquinoxRawData> eqxRawDataList = new ArrayList<EquinoxRawData>();
  19 + private Date time = null;
24 20  
25 21 @Override
26 22 public String doAction(AbstractAF abstractAF, Object instance, ArrayList<EquinoxRawData> eqxRawDataList) {
... ... @@ -72,11 +68,12 @@ public class StateIdle implements IAFState {
72 68 }
73 69  
74 70 this.eqxState = AFState.W_ARes;
75   -
  71 + time = new Date();
76 72 }
77 73 ec02Ins.setEqxRawDataList(this.eqxRawDataList);
78 74 ec02Ins.getAFInstance().setTimeout(this.eqxRawDataList);
79 75 ec02Ins.getAFInstance().setState(eqxState);
  76 + ec02Ins.getAFInstance().setTime(time);
80 77 return this.eqxState;
81 78 }
82 79  
... ...
AF-Demo/src/af/state/StateWaitA.java
1 1 package af.state;
2 2  
3 3 import java.util.ArrayList;
4   -import java.util.HashMap;
  4 +import java.util.Date;
5 5  
6   -import th.co.ais.equinox.utils.StringExtract;
7 6 import af.instatnce.EC02Instance;
8   -import af.instatnce.EQXRawInstance;
9   -import af.interfaces.AFEvent;
10 7 import af.interfaces.AFState;
11   -import af.interfaces.EQXMsg;
12 8 import af.message.EC02Builder;
13 9 import ec02.af.abstracts.AbstractAF;
14 10 import ec02.af.data.EquinoxRawData;
... ... @@ -19,14 +15,18 @@ public class StateWaitA implements IAFState {
19 15 private String eqxState = null;
20 16 private EC02Builder ec02Builder = new EC02Builder();
21 17 private ArrayList<EquinoxRawData> eqxRawDataList = new ArrayList<EquinoxRawData>();
  18 + private Date date = null;
22 19  
23 20 @Override
24 21 public String doAction(AbstractAF abstractAF, Object instance, ArrayList<EquinoxRawData> eqxRawDataList) {
25 22 EC02Instance ec02Ins = (EC02Instance) instance;
26   - AppLog.d("######"+eqxRawDataList.size());
27 23 if(ec02Ins.getEquinoxProperties().getDiag().equals("Timeout")){
28 24 this.eqxRawDataList=ec02Ins.getAFInstance().getTimeout();
29 25 eqxState = ec02Ins.getAFInstance().getState();
  26 + date = new Date();
  27 + long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
  28 + ec02Ins.getAFInstance().setTime(date);
  29 + this.eqxState = AFState.W_ARes;
30 30  
31 31 }
32 32 else{
... ... @@ -57,10 +57,14 @@ public class StateWaitA implements IAFState {
57 57 }
58 58 }
59 59 if(ec02Ins.getAFInstance().getTimeout().size()!=0){
60   - this.eqxRawDataList=ec02Ins.getAFInstance().getTimeout();
  60 + AppLog.d("HAVE DATA");
  61 + date = new Date();
  62 + long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
61 63 this.eqxState = AFState.W_CRes;
62 64 }
63 65 else{
  66 + date = new Date();
  67 + long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
64 68 this.eqxState = AFState.W_CRes;
65 69 }
66 70 //ArrayList<EQXRawInstance> eqxRawList = new ArrayList<EQXRawInstance>();
... ... @@ -76,9 +80,6 @@ public class StateWaitA implements IAFState {
76 80 }*/
77 81 }
78 82 }
79   -
80   - ec02Ins.setEqxRawDataList(this.eqxRawDataList);
81   - ec02Ins.getAFInstance().setTimeout(this.eqxRawDataList);
82 83 ec02Ins.getAFInstance().setState(eqxState);
83 84 return this.eqxState;
84 85 }
... ...
AF-Demo/src/af/state/StateWaitC.java
1 1 package af.state;
2 2  
3 3 import java.util.ArrayList;
4   -import java.util.HashMap;
  4 +import java.util.Date;
5 5  
6   -import th.co.ais.equinox.utils.StringExtract;
7 6 import af.instatnce.EC02Instance;
8 7 import af.instatnce.EQXRawInstance;
9   -import af.interfaces.AFEvent;
10 8 import af.interfaces.AFState;
11 9 import af.interfaces.EQXMsg;
12 10 import af.message.EC02Builder;
... ... @@ -14,11 +12,13 @@ import ec02.af.abstracts.AbstractAF;
14 12 import ec02.af.data.EquinoxRawData;
15 13 import ec02.af.interfaces.IAFState;
16 14 import ec02.utils.AppLog;
  15 +import sun.net.www.ApplicationLaunchException;
17 16  
18 17 public class StateWaitC implements IAFState {
19 18 private String eqxState = null;
20 19 private EC02Builder ec02Builder = new EC02Builder();
21 20 private ArrayList<EquinoxRawData> eqxRawDataList = new ArrayList<EquinoxRawData>();
  21 + private Date time = null;
22 22  
23 23 @Override
24 24 public String doAction(AbstractAF abstractAF, Object instance, ArrayList<EquinoxRawData> eqxRawDataList) {
... ... @@ -26,7 +26,8 @@ public class StateWaitC implements IAFState {
26 26 if(ec02Ins.getEquinoxProperties().getDiag().equals("Timeout")){
27 27 this.eqxRawDataList=ec02Ins.getAFInstance().getTimeout();
28 28 eqxState = ec02Ins.getAFInstance().getState();
29   -
  29 + time = new Date();
  30 + long seconds = (time.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
30 31 }
31 32 else{
32 33 for (EquinoxRawData eqxRawData : eqxRawDataList) {
... ... @@ -55,6 +56,8 @@ public class StateWaitC implements IAFState {
55 56 if(ec02Ins.getAFInstance().getTimeout().size()!=0){
56 57 this.eqxRawDataList=ec02Ins.getAFInstance().getTimeout();
57 58 eqxState = ec02Ins.getAFInstance().getState();
  59 + time = new Date();
  60 + long seconds = (time.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
58 61 }
59 62 else{
60 63 EQXRawInstance eqxRaw = new EQXRawInstance();
... ...