package builder;
|
import ng.devices.*;
|
import java.sql.CallableStatement;
|
import java.sql.Connection;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.json.*;
|
|
import ng.db.DBHelper;
|
import ng.db.DBSession;
|
import ng.devices.*;
|
public class MachineManager {
|
|
|
|
|
|
|
|
class item {
|
public DBHelper helper;
|
public MysqlService serv;
|
public int ID;
|
public String IP;
|
public int Port;
|
public int ReadOffset;
|
public int ReadSize;
|
public String ProcName;
|
public String Name;
|
public byte FunctionType;
|
|
}
|
List<item> items=new ArrayList<item>();
|
|
public void RunAll(){
|
for(item it:items){
|
Run(it.Name);
|
|
}
|
}
|
|
|
public void Run(String name){
|
item itm=null;
|
synchronized(items){
|
itm=innerGetItem(name);
|
}
|
if(itm!=null){
|
if(itm.serv==null){
|
itm.serv=new MysqlService(itm.helper,itm.ID);
|
itm.serv.Run(itm.ID,itm.IP,itm.Port, (byte)1,itm.ReadOffset, itm.ReadSize,1000,itm.FunctionType);
|
System.out.println(String.format("É豸Æô¶¯-{%s}(%s)(%s)",itm.Name,itm.IP,itm.FunctionType));
|
}
|
}
|
}
|
|
private item innerGetItem(String name){
|
for(int i=0;i<items.size();i++){
|
if(name==items.get(i).Name)
|
return items.get(i);
|
}
|
return null;
|
}
|
|
public item innerGetItem(int id){
|
for(int i=0;i<items.size();i++){
|
if(id==items.get(i).ID)
|
return items.get(i);
|
}
|
return null;
|
}
|
|
|
|
public void createDevice(DBHelper helper,int DeviceID,String Name,String Ip,int Port,int ReadOffset,int ReadSize,String ProcName,byte FunctionType){
|
synchronized(items){
|
|
item itm=new item();
|
itm.helper=helper; //Êý¾Ý¿â
|
itm.ProcName=ProcName; //´æ´¢¹ý³ÌÃû
|
itm.Name=Name; //É豸Ãû
|
itm.ID=DeviceID; //É豸ID
|
itm.IP=Ip; //É豸IP
|
itm.Port=Port; //É豸¶Ë¿Ú
|
itm.ReadOffset=ReadOffset; //¶ÁÈ¡Æ«ÒÆ
|
itm.ReadSize=ReadSize;//·¢ËÍÆ«ÒÆ
|
itm.FunctionType=FunctionType;
|
/*if(DeviceID==6 || DeviceID==19 || DeviceID==29 || DeviceID==30){
|
itm.ReadOffset=12000;
|
}*/
|
items.add(itm);
|
|
}
|
}
|
|
|
//½«É豸ÐÅϢת»¯ÎªJSONÊý×飬ÓÃÓÚǰ̨ÏÔʾ
|
public JSONArray getContext(){
|
JSONArray arr=new JSONArray();
|
for(int i=0;i<this.items.size();i++){
|
item it=this.items.get(i);
|
JSONObject obj=new JSONObject();
|
try {
|
obj.put("ip", it.IP); //·ÅÈëIP
|
obj.put("port",it.Port); //·ÅÈë¶Ë¿Ú
|
obj.put("name",it.Name); //·ÅÈëÉ豸Ãû
|
obj.put("id", it.ID); //·ÅÈëID
|
|
String send="---";
|
String get="---";
|
if(it.serv!=null){
|
obj.put("count", it.serv.ioCount); //·ÅÈë¶ÁÈ¡´ÎÊý
|
send=it.serv.lastSend;
|
get=it.serv.lastGet;
|
if(send==null)
|
send="---";
|
if(get==null){
|
get="---";
|
}
|
}
|
else{
|
obj.put("count", 0);
|
}
|
obj.put("send", send); //·ÅÈë×îºóÒ»´Î·¢ËÍÐÅÏ¢
|
obj.put("get", get); //·ÅÈë×îºóÒ»´Î¶ÁÈ¡ÐÅÏ¢
|
obj.put("dev_state", it.serv.zhangtai);
|
String st="Ïß³Ì먦Æô";
|
if(it.serv!=null){
|
if(it.serv.isRunning())
|
st="δÁ¬½Ó";
|
if(it.serv.isOnLine()){
|
st="ÒÑÁ¬½Ó";
|
}
|
}
|
obj.put("st",st); //·ÅÈëÏß³Ì״̬
|
arr.put(obj);
|
} catch (JSONException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
}
|
return arr; //·µ»Ø½á¹û
|
}
|
|
|
}
|