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