package builder; import java.io.BufferedWriter; import java.io.OutputStreamWriter; import java.net.Socket; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.json.JSONArray; import ng.db.DBHelper; import ng.db.DBSession; import ng.devices.HexUtil; public class Manager { //É豸¹ÜÀíÆ÷ static MachineManager mmgr; //ÓÅ»¯ÅŰæ¹ÜÀíÆ÷ static PaibanManager panban_mgr; //³õʼ»¯¸÷ÖÖÄ£¿é static void init() throws Exception { //³õʼ»¯Êý¾Ý¿âÄ£¿é DBHelper.InitHelper(); mmgr = new MachineManager(); //panban_mgr=new PaibanManager(); //panban_mgr.initPainbanManager(); } static void init(String[] con) throws Exception { //³õʼ»¯Êý¾Ý¿âÄ£¿é DBHelper.addHelper("mes",con[0],con[1],con[2]); mmgr = new MachineManager(); // panban_mgr=new PaibanManager(); // panban_mgr.initPainbanManager(con[0],con[1],con[2]); } public static boolean isStart(){ return state; } //ÊÇ·ñÒѾ­Æô¶¯ static boolean state = false; //ManagerÆô¶¯º¯Êý public static void appStart(String[] ss) { if (state == false) { try { //³õʼ»¯¹ÜÀíÆ÷ Manager.init(ss); //´ÓÊý¾Ý¿âÅäÖô´½¨É豸 Manager.buildDevice(); //Æô¶¯ËùÓÐÉ豸ͨѶ Manager.mmgr.RunAll(); //Æô¶¯±êÖ¾ state = true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //»ñÈ¡ËùÓÐÉ豸ÐÅÏ¢Éú³ÉJSONÊý×é public static JSONArray getDevice(){ return mmgr.getContext(); } //´ÓÊý¾Ý¿â´´½¨ËùÓÐÉ豸 static void buildDevice(){ DBSession sn=null; try{ //¶ÁÈ¡É豸Áбí DBHelper db=DBHelper.getDBHelper("mes"); sn=DBHelper.getDBHelper("mes").createSession(false); sn.createSql("select id,machine_name,ip_address,port,flag,read_size,read_offset,function_type,flag from machine"); ResultSet set= sn.query().getCurrentResult(); //´´½¨ËùÓÐÉ豸ͨѶ while(set.next()){ int id=(int)set.getLong(1); String name=set.getString(2); String ip=set.getString(3); int port=set.getInt(4); int flag=set.getInt(5); int readSize=set.getInt(6); int readOffset=set.getInt(7); byte functionType=set.getByte(8); int flags=set.getInt(9); if(flags==1){ mmgr.createDevice(db,id,name,ip,port,readOffset,readSize,null,functionType); } } } catch(Exception e){ } finally{ if(sn!=null) sn.close(); } mmgr.RunAll(); } //Òì³£¼Ç¼£¨ÕâÀï×öÒ»´Î·â×°ÊÇΪÁË¿ÉÒԼǼÒì³££¬±ÈÈç¼Ç¼µ½ÈÕÖ¾Îļþ»òÊý¾Ý¿âµÈ£© public static void catchException(String sender,Exception e){ e.printStackTrace(); } //ÔÊÐí´æ´¢¹ý³ÌÏò¿ò¼Ü·¢ËÍÏûϢʵÏÖMysql»Øµ÷»úÖÆ public static void SendMessage(String message){ try{ char c=message.charAt(0); message=message.substring(1,message.length()); //#´ú±íÒ»¸ö¹¦ÄÜÖ´ÐÐ @½ö´ú±íÒ»¸öÏûÏ¢ÌáÐÑ if(c=='#'){ String[] ss=message.split(",");//¶ÁÈ¡ÃüÁî²ÎÊý switch(ss[0]){ //²ÎÊýÃûΪ¸Ö»¯ÅŰ棨¸Ãº¯ÊýÔÚÐÂMES·½°¸ÖÐÈ¡Ïû£¬»òÕßÑ¡ÔñÐÔʹÓ㬸ÄÓÃÌáǰÅŰ棩 case "paiban": int line=Integer.parseInt(ss[1]);//ÏߺŲÎÊý Manager.panban_mgr.Paiban(line); return; default: System.out.println("δ֪ÃüÁîÏûÏ¢£º"+message); return; } } else{ System.out.println("msg:"+message); } } catch(Exception e){ catchException("manger.SendFlagMessage",e); } } public static void sendtoPLC(int deviceID, int Address, int count, String buffer, int offset) { try { System.out.println(buffer); byte[] bb= HexUtil.stringToInt(buffer); mmgr.innerGetItem(deviceID).serv.SendPLC(Address, count, bb, offset); String ss=""; for (int i = 0; i < bb.length; i++) { ss+=ss+bb[i]+","; } System.out.println(ss); }catch (Exception e) { // TODO: handle exception System.out.println(deviceID+"ºÅ»úÆ÷δÁ¬½Ó"); } } public static void dayin(int leixing,String peifenhao){ try { Socket sk= new Socket("192.168.20.195",9100); try { leixing=1; String str1="^Kkuandao\n"+peifenhao+"\ngetElectric\n~p1\n"; String str2="~S,BUFCLR\n"; String str3="~S,PAUSE\n"; BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sk.getOutputStream())); if(leixing==1){ bw.write(str1); bw.newLine(); bw.flush(); }else{ bw.write(str2); bw.newLine(); bw.flush(); Thread.sleep(100); bw.write(str3); bw.newLine(); bw.flush(); Thread.sleep(3000); bw.write(str2); bw.newLine(); //дºó»»ÐÐ bw.flush(); //±íʾˢУ¬Ò²¾ÍÊÇÁ¢¼´Ð´¸ø¶Ô·½ } sk.close(); } catch (Exception e) { // TODO: handle exception System.out.println("ÆäËû"); } } catch (Exception e) { // TODO: handle exception System.out.println("´íÎó"); } } public static void main(String[] args){ //Manager.appStart(new String[]{"jdbc:mysql://10.153.19.150/gmms?serverTimezone=GMT%2B8","root","beibo.123/" }); while(true){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }