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();
|
}
|
}
|
|
|
}
|
|
|
}
|