commit 9b40bb35c9a06f6e2c47f1fcb2a4875df7a47b25 Author: qwsun Date: Mon Dec 21 13:35:57 2015 +0800 Init EZParkingGPRS project into Coding.net diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..7731851 --- /dev/null +++ b/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..4faa808 --- /dev/null +++ b/.project @@ -0,0 +1,36 @@ + + + EZParkingGPRS + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..3a28de0 --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..264b89a --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/src=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..7341ab1 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..2e4d675 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..5302da1 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/WebContent/META-INF/MANIFEST.MF b/WebContent/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/WebContent/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/WebContent/WEB-INF/lib/comm.jar b/WebContent/WEB-INF/lib/comm.jar new file mode 100644 index 0000000..281d84c Binary files /dev/null and b/WebContent/WEB-INF/lib/comm.jar differ diff --git a/WebContent/WEB-INF/lib/commons-lang-2.6.jar b/WebContent/WEB-INF/lib/commons-lang-2.6.jar new file mode 100644 index 0000000..98467d3 Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-lang-2.6.jar differ diff --git a/WebContent/WEB-INF/lib/commons-logging-1.0.3.jar b/WebContent/WEB-INF/lib/commons-logging-1.0.3.jar new file mode 100644 index 0000000..b99c937 Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-logging-1.0.3.jar differ diff --git a/WebContent/WEB-INF/lib/javassist-3.11.0.GA.jar b/WebContent/WEB-INF/lib/javassist-3.11.0.GA.jar new file mode 100644 index 0000000..b3bfeeb Binary files /dev/null and b/WebContent/WEB-INF/lib/javassist-3.11.0.GA.jar differ diff --git a/WebContent/WEB-INF/lib/javassist-3.7.ga.jar b/WebContent/WEB-INF/lib/javassist-3.7.ga.jar new file mode 100644 index 0000000..44d16da Binary files /dev/null and b/WebContent/WEB-INF/lib/javassist-3.7.ga.jar differ diff --git a/WebContent/WEB-INF/lib/jcl-over-slf4j-1.6.6.jar b/WebContent/WEB-INF/lib/jcl-over-slf4j-1.6.6.jar new file mode 100644 index 0000000..ab898c0 Binary files /dev/null and b/WebContent/WEB-INF/lib/jcl-over-slf4j-1.6.6.jar differ diff --git a/WebContent/WEB-INF/lib/jzlib-1.1.1.jar b/WebContent/WEB-INF/lib/jzlib-1.1.1.jar new file mode 100644 index 0000000..5530c9d Binary files /dev/null and b/WebContent/WEB-INF/lib/jzlib-1.1.1.jar differ diff --git a/WebContent/WEB-INF/lib/log4j-1.2.11.jar b/WebContent/WEB-INF/lib/log4j-1.2.11.jar new file mode 100644 index 0000000..b603fe6 Binary files /dev/null and b/WebContent/WEB-INF/lib/log4j-1.2.11.jar differ diff --git a/WebContent/WEB-INF/lib/mina-core-2.0.7.jar b/WebContent/WEB-INF/lib/mina-core-2.0.7.jar new file mode 100644 index 0000000..5ec135b Binary files /dev/null and b/WebContent/WEB-INF/lib/mina-core-2.0.7.jar differ diff --git a/WebContent/WEB-INF/lib/ognl-3.0.5.jar b/WebContent/WEB-INF/lib/ognl-3.0.5.jar new file mode 100644 index 0000000..cd6dbaa Binary files /dev/null and b/WebContent/WEB-INF/lib/ognl-3.0.5.jar differ diff --git a/WebContent/WEB-INF/lib/postgresql-9.1-901.jdbc4.jar b/WebContent/WEB-INF/lib/postgresql-9.1-901.jdbc4.jar new file mode 100644 index 0000000..203d5a1 Binary files /dev/null and b/WebContent/WEB-INF/lib/postgresql-9.1-901.jdbc4.jar differ diff --git a/WebContent/WEB-INF/lib/slf4j-api-1.6.6.jar b/WebContent/WEB-INF/lib/slf4j-api-1.6.6.jar new file mode 100644 index 0000000..4c03fa6 Binary files /dev/null and b/WebContent/WEB-INF/lib/slf4j-api-1.6.6.jar differ diff --git a/WebContent/WEB-INF/lib/smslib-3.3.0b2.jar b/WebContent/WEB-INF/lib/smslib-3.3.0b2.jar new file mode 100644 index 0000000..bc8cfce Binary files /dev/null and b/WebContent/WEB-INF/lib/smslib-3.3.0b2.jar differ diff --git a/WebContent/WEB-INF/lib/spring-2.5.6.SEC03.jar b/WebContent/WEB-INF/lib/spring-2.5.6.SEC03.jar new file mode 100644 index 0000000..6cbea2d Binary files /dev/null and b/WebContent/WEB-INF/lib/spring-2.5.6.SEC03.jar differ diff --git a/WebContent/WEB-INF/lib/tomcat-apr-5.5.23.jar b/WebContent/WEB-INF/lib/tomcat-apr-5.5.23.jar new file mode 100644 index 0000000..48aed1d Binary files /dev/null and b/WebContent/WEB-INF/lib/tomcat-apr-5.5.23.jar differ diff --git a/WebContent/WEB-INF/lib/xbean-spring-3.11.1.jar b/WebContent/WEB-INF/lib/xbean-spring-3.11.1.jar new file mode 100644 index 0000000..cd83540 Binary files /dev/null and b/WebContent/WEB-INF/lib/xbean-spring-3.11.1.jar differ diff --git a/WebContent/WEB-INF/pages/parking.html b/WebContent/WEB-INF/pages/parking.html new file mode 100644 index 0000000..7046369 --- /dev/null +++ b/WebContent/WEB-INF/pages/parking.html @@ -0,0 +1,122 @@ + + + + EZParking + + + + +

东园小区停车位地图

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ Parking + +
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/pages/update.html b/WebContent/WEB-INF/pages/update.html new file mode 100644 index 0000000..9a2298b --- /dev/null +++ b/WebContent/WEB-INF/pages/update.html @@ -0,0 +1,88 @@ + + + + EZParking Update Position + + + +
+ ModuleID: +
+ Have Car: +    + No Car: +
+ +

+ +
+ + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml new file mode 100644 index 0000000..b478721 --- /dev/null +++ b/WebContent/WEB-INF/web.xml @@ -0,0 +1,65 @@ + + + + + + + parking + com.ezparking.gprs.EZParkingMap + + + updatePage + com.ezparking.gprs.EZParkingUpdatePage + + + ezparkingList + com.ezparking.gprs.EZParkingList + + + ezparkingServlet + com.ezparking.gprs.EZParkingServlet + + + send + com.ezparking.gprs.EZParkingSend + + + jqueryEZParkingStatus + com.ezparking.gprs.EZParkingStatusServlet + + + jqueryUpdateStatus + com.ezparking.gprs.EZParkingUpdateServlet + + + + parking + /parking + + + updatePage + /updatePage + + + ezparkingList + /ezparkingList + + + ezparkingServlet + /ezparking + + + send + /send + + + jqueryEZParkingStatus + /jqueryEZParkingStatus + + + jqueryUpdateStatus + /jqueryUpdateStatus + + \ No newline at end of file diff --git a/WebContent/dongyuan.bmp b/WebContent/dongyuan.bmp new file mode 100644 index 0000000..28574cc Binary files /dev/null and b/WebContent/dongyuan.bmp differ diff --git a/WebContent/position.jpg b/WebContent/position.jpg new file mode 100644 index 0000000..9af9126 Binary files /dev/null and b/WebContent/position.jpg differ diff --git a/src/com/ezparking/gprs/EZParkingList.java b/src/com/ezparking/gprs/EZParkingList.java new file mode 100644 index 0000000..5eba7a3 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingList.java @@ -0,0 +1,95 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingList extends HttpServlet +{ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { + GPRSService service = new GPRSService(); + List modelList = service.listModel(); + + resp.setContentType("text/html;charset=UTF-8"); + resp.setCharacterEncoding("UTF-8"); + PrintWriter out = resp.getWriter(); + out.write(""); + + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + for (GPRSModel model : modelList) + { + out.write(""); + + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.write(""); + } + out.write("
同步头所在地市所在地区/县所在地街道/乡所在地路网/停车场所在地附近建筑物所在地附近建筑物属性所在地门牌号出入口属性产品类型备用部分接收机模块ID码地磁感应模块ID码状态位水平变化量垂直变化量车位时间的“时”车位时间的“分”车位时间的“秒”GPRS信号强度数据帧尾更新时间
55AA" + model.getCityID() + "" + model.getCountyID() + "" + model.getCommitteeID() + "" + model.getParkID() + "" + model.getBuildingID() + "" + model.getBuildingAttrID() + "" + model.getBuildingNO() + "" + model.getModuleEntranceType() + "" + model.getModuleType() + "" + model.getMemo() + "" + model.getRouterID() + "" + model.getModuleID() + "" + model.getStatus() + "" + model.getHorizonValue() + "" + model.getVerticalValue() + "" + model.getHour() + "" + model.getMinute() + "" + model.getSecond() + "" + model.getGPRSSignal() + "78" + model.getUDT() + "
"); + out.flush(); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + doGet(req, resp); + } +} diff --git a/src/com/ezparking/gprs/EZParkingMap.java b/src/com/ezparking/gprs/EZParkingMap.java new file mode 100644 index 0000000..c47e5bb --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingMap.java @@ -0,0 +1,46 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingMap extends HttpServlet +{ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { +// resp.setContentType("text/html;charset=UTF-8"); +// resp.setCharacterEncoding("UTF-8"); +// PrintWriter out = resp.getWriter(); +// out.write(""); +// +// out.write("

东园小区停车位地图

"); +// out.write("Planets"); +// out.write(""); +// out.write(""); +// +// out.write(""); +// out.flush(); + + doPost(req,resp); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + String path=req.getContextPath(); + req.getRequestDispatcher("WEB-INF/pages/parking.html").forward(req, resp); + } +} diff --git a/src/com/ezparking/gprs/EZParkingSend.java b/src/com/ezparking/gprs/EZParkingSend.java new file mode 100644 index 0000000..c447588 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingSend.java @@ -0,0 +1,93 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.net.InetSocketAddress; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.mina.core.future.ConnectFuture; +import org.apache.mina.core.service.IoConnector; +import org.apache.mina.core.session.IoSession; +import org.apache.mina.transport.socket.nio.NioSocketConnector; +import org.smslib.Message.MessageEncodings; +import org.smslib.OutboundMessage; +import org.smslib.Service; +import org.smslib.modem.SerialModemGateway; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingSend extends HttpServlet +{ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { + doPost(req, resp); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + String sendStr = req.getParameter("sendStr"); + String mobilePhones = req.getParameter("mobilePhones"); + // String ipPort = req.getParameter("ipPort"); + + Service srv = new Service(); + OutboundMessage msg; + OutboundNotification outboundNotification = new OutboundNotification(); + SerialModemGateway gateway = new SerialModemGateway("modem.com3", "COM3", 9600, "wavecom", + ""); + gateway.setInbound(true); + gateway.setOutbound(true); + gateway.setSimPin("0000"); + gateway.setOutboundNotification(outboundNotification); + srv.addGateway(gateway); + + System.out.println("Init Success, Ready to start service"); + + try + { + srv.startService(); + System.out.println("start service successfully"); + String[] phones = mobilePhones.split(","); + for (String phone : phones) + { + msg = new OutboundMessage(phone, sendStr); + msg.setEncoding(MessageEncodings.ENCUCS2); + srv.sendMessage(msg); + } + srv.stopService(); + } + catch (Exception e) + { + e.printStackTrace(); + } + + // IoConnector connector = new NioSocketConnector(); + // connector.getSessionConfig().setReadBufferSize(2048); + // + // connector.setHandler(new SendGPRSHandler(sendStr)); + // ConnectFuture future = connector.connect(new InetSocketAddress( + // ipConfig, Integer.valueOf(ipPort).intValue())); + // future.awaitUninterruptibly(); + // + // if (!future.isConnected()) { + // return; + // } + // IoSession session = future.getSession(); + // session.getConfig().setUseReadOperation(true); + // session.getCloseFuture().awaitUninterruptibly(); + // System.out.println(session.read().getMessage()); + // + // System.out.println("After Writing"); + // connector.dispose(); + } +} diff --git a/src/com/ezparking/gprs/EZParkingServlet.java b/src/com/ezparking/gprs/EZParkingServlet.java new file mode 100644 index 0000000..292d151 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingServlet.java @@ -0,0 +1,60 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingServlet extends HttpServlet +{ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { + resp.setContentType("text/html;charset=UTF-8"); + resp.setCharacterEncoding("UTF-8"); + PrintWriter out = resp.getWriter(); + out.write("
"); + out.write(""); + + out.write(""); + +// IPConfigService service = new IPConfigService(); + out.write(""); + +// List ipList = service.listModel(); +// out.write(""); + out.write(""); +// out.write(""); + + out.write(""); + out.write(""); + + out.write("
Content:  IP Address:  Mobile Phones:  Port:  
"); + out.write("
"); + out.flush(); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + doGet(req, resp); + } +} diff --git a/src/com/ezparking/gprs/EZParkingStatusServlet.java b/src/com/ezparking/gprs/EZParkingStatusServlet.java new file mode 100644 index 0000000..cd7ed96 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingStatusServlet.java @@ -0,0 +1,52 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingStatusServlet extends HttpServlet +{ + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { + this.doPost(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + GPRSService service = new GPRSService(); + List tblList = new ArrayList(); + + StringBuffer tblIds = new StringBuffer(); + tblList = service.listTblModule(); + for(TblModule tbl : tblList) + { + tblIds.append(tbl.getId()+"_"+tbl.getStatus()+","); + } + String result = tblIds.toString(); + + result = result.substring(0, result.length() - 1); + + PrintWriter out = resp.getWriter(); + out.print(result); + } + +} diff --git a/src/com/ezparking/gprs/EZParkingUpdatePage.java b/src/com/ezparking/gprs/EZParkingUpdatePage.java new file mode 100644 index 0000000..ae82338 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingUpdatePage.java @@ -0,0 +1,33 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingUpdatePage extends HttpServlet +{ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + doPost(req, resp); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + String path = req.getContextPath(); + req.getRequestDispatcher("WEB-INF/pages/update.html").forward(req, + resp); + } +} diff --git a/src/com/ezparking/gprs/EZParkingUpdateServlet.java b/src/com/ezparking/gprs/EZParkingUpdateServlet.java new file mode 100644 index 0000000..bee8484 --- /dev/null +++ b/src/com/ezparking/gprs/EZParkingUpdateServlet.java @@ -0,0 +1,38 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; + + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class EZParkingUpdateServlet extends HttpServlet +{ + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, + IOException + { + this.doPost(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + GPRSService service = new GPRSService(); + String moduleID = req.getParameter("moduleID").toString(); + Integer status = Integer.valueOf(req.getParameter("status").toString()); + service.updateTblModuleByModuleID(moduleID, status); + + } +} diff --git a/src/com/ezparking/gprs/GPRSDBUtil.java b/src/com/ezparking/gprs/GPRSDBUtil.java new file mode 100644 index 0000000..35cf2f9 --- /dev/null +++ b/src/com/ezparking/gprs/GPRSDBUtil.java @@ -0,0 +1,154 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +/** + * @author qwsun + * + */ +public class GPRSDBUtil +{ + private static Connection conn; + + public static Connection getConn() + { + try + { + if (conn == null || conn.isClosed()) + { + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://121.41.88.171:5432/ParkDevice"; + conn = DriverManager.getConnection(url, "postgres", "Abcd1234"); + } + + } + catch (Exception ex) + { + ex.printStackTrace(); + } + return conn; + } + + public static Statement getStatement(Connection conn) + { + Statement stmt = null; + try + { + stmt = conn.createStatement(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + return stmt; + } + + public static PreparedStatement getPreparedStatement(Connection conn, String sql) + { + PreparedStatement pstmt = null; + try + { + pstmt = conn.prepareStatement(sql); + } + catch (SQLException e) + { + e.printStackTrace(); + } + return pstmt; + } + + public static ResultSet getResultSet(PreparedStatement pstmt) + { + ResultSet res = null; + try + { + res = pstmt.executeQuery(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + return res; + } + + public static ResultSet getResultSet(Statement stmt, String sql) + { + ResultSet res = null; + try + { + res = stmt.executeQuery(sql); + } + catch (SQLException e) + { + e.printStackTrace(); + } + return res; + } + + public static void close(Connection conn, Statement stmt, ResultSet res) + { + close(res); + close(stmt); + close(conn); + } + + private static void close(Statement stmt) + { + if (stmt != null) + { + try + { + stmt.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + stmt = null; + } + } + + private static void close(ResultSet res) + { + if (res != null) + { + try + { + res.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + res = null; + } + } + + private static void close(Connection conn) + { + try + { + if ((conn != null) && (!conn.isClosed())) + { + conn.close(); + } + } + catch (SQLException e) + { + e.printStackTrace(); + } + finally + { + conn = null; + } + } +} diff --git a/src/com/ezparking/gprs/GPRSModel.java b/src/com/ezparking/gprs/GPRSModel.java new file mode 100644 index 0000000..cb845e2 --- /dev/null +++ b/src/com/ezparking/gprs/GPRSModel.java @@ -0,0 +1,343 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.Serializable; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class GPRSModel implements Serializable +{ + private String originalData_HEX; + private String cityID_HEX; + private String countyID_HEX; + private String committeeID_HEX; + private String parkID_HEX; + private String buildingID_HEX; + private String buildingAttrID_HEX; + private String buildingNO_HEX; + private String moduleEntranceType_HEX; + private String moduleType_HEX; + private String memo_HEX; + private String routerID_HEX; + private String moduleID_HEX; + private String status_HEX; + private String horizonValue_HEX; + private String verticalValue_HEX; + private String hour_HEX; + private String minute_HEX; + private String second_HEX; + private String gPRSSignal_HEX; + private String UDT; + + public String getOriginalData_HEX() + { + return originalData_HEX; + } + + public void setOriginalData_HEX(String originalData_HEX) + { + this.originalData_HEX = originalData_HEX; + } + + public String getCityID_HEX() + { + return cityID_HEX; + } + + public void setCityID_HEX(String cityID_HEX) + { + this.cityID_HEX = cityID_HEX; + } + + public String getCountyID_HEX() + { + return countyID_HEX; + } + + public void setCountyID_HEX(String countyID_HEX) + { + this.countyID_HEX = countyID_HEX; + } + + public String getCommitteeID_HEX() + { + return committeeID_HEX; + } + + public void setCommitteeID_HEX(String committeeID_HEX) + { + this.committeeID_HEX = committeeID_HEX; + } + + public String getParkID_HEX() + { + return parkID_HEX; + } + + public void setParkID_HEX(String parkID_HEX) + { + this.parkID_HEX = parkID_HEX; + } + + public String getBuildingID_HEX() + { + return buildingID_HEX; + } + + public void setBuildingID_HEX(String buildingID_HEX) + { + this.buildingID_HEX = buildingID_HEX; + } + + public String getBuildingAttrID_HEX() + { + return buildingAttrID_HEX; + } + + public void setBuildingAttrID_HEX(String buildingAttrID_HEX) + { + this.buildingAttrID_HEX = buildingAttrID_HEX; + } + + public String getBuildingNO_HEX() + { + return buildingNO_HEX; + } + + public void setBuildingNO_HEX(String buildingNO_HEX) + { + this.buildingNO_HEX = buildingNO_HEX; + } + + public String getModuleEntranceType_HEX() + { + return moduleEntranceType_HEX; + } + + public void setModuleEntranceType_HEX(String moduleEntranceType_HEX) + { + this.moduleEntranceType_HEX = moduleEntranceType_HEX; + } + + public String getModuleType_HEX() + { + return moduleType_HEX; + } + + public void setModuleType_HEX(String moduleType_HEX) + { + this.moduleType_HEX = moduleType_HEX; + } + + public String getMemo_HEX() + { + return memo_HEX; + } + + public void setMemo_HEX(String memo_HEX) + { + this.memo_HEX = memo_HEX; + } + + public String getRouterID_HEX() + { + return routerID_HEX; + } + + public void setRouterID_HEX(String routerID_HEX) + { + this.routerID_HEX = routerID_HEX; + } + + public String getModuleID_HEX() + { + return moduleID_HEX; + } + + public void setModuleID_HEX(String moduleID_HEX) + { + this.moduleID_HEX = moduleID_HEX; + } + + public String getStatus_HEX() + { + return status_HEX; + } + + public void setStatus_HEX(String status_HEX) + { + this.status_HEX = status_HEX; + } + + public String getHorizonValue_HEX() + { + return horizonValue_HEX; + } + + public void setHorizonValue_HEX(String horizonValue_HEX) + { + this.horizonValue_HEX = horizonValue_HEX; + } + + public String getVerticalValue_HEX() + { + return verticalValue_HEX; + } + + public void setVerticalValue_HEX(String verticalValue_HEX) + { + this.verticalValue_HEX = verticalValue_HEX; + } + + public String getHour_HEX() + { + return hour_HEX; + } + + public void setHour_HEX(String hour_HEX) + { + this.hour_HEX = hour_HEX; + } + + public String getMinute_HEX() + { + return minute_HEX; + } + + public void setMinute_HEX(String minute_HEX) + { + this.minute_HEX = minute_HEX; + } + + public String getSecond_HEX() + { + return second_HEX; + } + + public void setSecond_HEX(String second_HEX) + { + this.second_HEX = second_HEX; + } + + public String getgPRSSignal_HEX() + { + return gPRSSignal_HEX; + } + + public void setgPRSSignal_HEX(String gPRSSignal_HEX) + { + this.gPRSSignal_HEX = gPRSSignal_HEX; + } + + + public String getCityID() + { + return Long.parseLong(this.getCityID_HEX(), 16) + ""; + } + + public String getCountyID() + { + return Long.parseLong(this.getCountyID_HEX(), 16) + ""; + } + + public String getCommitteeID() + { + return Long.parseLong(this.getCommitteeID_HEX(), 16) + ""; + } + + public String getParkID() + { + return Long.parseLong(this.getParkID_HEX(), 16) + ""; + } + + public String getBuildingID() + { + return Long.parseLong(this.getBuildingID_HEX(), 16) + ""; + } + + public String getBuildingAttrID() + { + return Long.parseLong(this.getBuildingAttrID_HEX(), 16) + ""; + } + + public String getBuildingNO() + { + return Long.parseLong(this.getBuildingNO_HEX(), 16) + ""; + } + + public String getModuleEntranceType() + { + return Long.parseLong(this.getModuleEntranceType_HEX(), 16) + ""; + } + + public String getModuleType() + { + return Long.parseLong(this.getModuleType_HEX(), 16) + ""; + } + + public String getMemo() + { + return Long.parseLong(this.getMemo_HEX(), 16) + ""; + } + + public String getRouterID() + { + return Long.parseLong(this.getRouterID_HEX(), 16) + ""; + } + + public String getModuleID() + { + return Long.parseLong(this.getModuleID_HEX(), 16) + ""; + } + + public String getStatus() + { + return Long.parseLong(this.getStatus_HEX(), 16) + ""; + } + + public String getHorizonValue() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getHorizonValue_HEX(), 16) + ""; + } + + public String getVerticalValue() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getVerticalValue_HEX(), 16) + ""; + } + + public String getHour() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getHour_HEX(), 16) + ""; + } + + public String getMinute() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getMinute_HEX(), 16) + ""; + } + + public String getSecond() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getSecond_HEX(), 16) + ""; + } + + public String getGPRSSignal() + { + return (this.getStatus_HEX().equals("20")) ? "0" : Long.parseLong(this.getgPRSSignal_HEX(), 16) + ""; + } + + public String getUDT() + { + return UDT; + } + + public void setUDT(String uDT) + { + UDT = uDT; + } + +} diff --git a/src/com/ezparking/gprs/GPRSService.java b/src/com/ezparking/gprs/GPRSService.java new file mode 100644 index 0000000..7cd4fec --- /dev/null +++ b/src/com/ezparking/gprs/GPRSService.java @@ -0,0 +1,247 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +/** + * @author qwsun + * + */ +public class GPRSService +{ + public Boolean insertGPRS(GPRSModel model) + { + Integer row = Integer.valueOf(0); + + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer("INSERT INTO \"tbl_ModuleData\" ("); + sqlBuffer.append("\"OriginalData_HEX\", \"CityID_HEX\", \"CountyID_HEX\", \"CommitteeID_HEX\", \"ParkID_HEX\", \"BuildingID_HEX\", \"BuildingAttrID_HEX\", \"BuildingNO_HEX\", "); + sqlBuffer.append("\"ModuleEntranceType_HEX\", \"ModuleType_HEX\", \"Memo_HEX\", \"RouterID_HEX\", \"ModuleID_HEX\", \"Status_HEX\", \"HorizonValue_HEX\", \"VerticalValue_HEX\", "); + sqlBuffer.append("\"Hour_HEX\", \"Minute_HEX\", \"Second_HEX\", \"GPRSSignal_HEX\", \"CityID\", \"CountyID\", \"CommitteeID\", \"ParkID\", \"BuildingID\", \"BuildingAttrID\", \"BuildingNO\", "); + sqlBuffer.append("\"ModuleEntranceType\", \"ModuleType\", \"Memo\", \"RouterID\", \"ModuleID\", \"Status\", \"HorizonValue\", \"VerticalValue\", \"Hour\", \"Minute\", \"Second\", \"GPRSSignal\", \"UDT\")"); + sqlBuffer.append("VALUES (?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,to_char(now(),'YYYY-MM-dd HH24:MI:SS'))"); + + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + pstmt.setString(1, model.getOriginalData_HEX()); + pstmt.setString(2, model.getCityID_HEX()); + pstmt.setString(3, model.getCountyID_HEX()); + pstmt.setString(4, model.getCommitteeID_HEX()); + pstmt.setString(5, model.getParkID_HEX()); + pstmt.setString(6, model.getBuildingID_HEX()); + pstmt.setString(7, model.getBuildingAttrID_HEX()); + pstmt.setString(8, model.getBuildingNO_HEX()); + pstmt.setString(9, model.getModuleEntranceType_HEX()); + pstmt.setString(10, model.getModuleType_HEX()); + pstmt.setString(11, model.getMemo_HEX()); + pstmt.setString(12, model.getRouterID_HEX()); + pstmt.setString(13, model.getModuleID_HEX()); + pstmt.setString(14, model.getStatus_HEX()); + pstmt.setString(15, model.getHorizonValue_HEX()); + pstmt.setString(16, model.getVerticalValue_HEX()); + pstmt.setString(17, model.getHour_HEX()); + pstmt.setString(18, model.getMinute_HEX()); + pstmt.setString(19, model.getSecond_HEX()); + pstmt.setString(20, model.getgPRSSignal_HEX()); + pstmt.setString(21, model.getCityID()); + pstmt.setString(22, model.getCountyID()); + pstmt.setString(23, model.getCommitteeID()); + pstmt.setString(24, model.getParkID()); + pstmt.setString(25, model.getBuildingID()); + pstmt.setString(26, model.getBuildingAttrID()); + pstmt.setString(27, model.getBuildingNO()); + pstmt.setString(28, model.getModuleEntranceType()); + pstmt.setString(29, model.getModuleType()); + pstmt.setString(30, model.getMemo()); + pstmt.setString(31, model.getRouterID()); + pstmt.setString(32, model.getModuleID()); + pstmt.setString(33, model.getStatus()); + pstmt.setString(34, model.getHorizonValue()); + pstmt.setString(35, model.getVerticalValue()); + pstmt.setString(36, model.getHour()); + pstmt.setString(37, model.getMinute()); + pstmt.setString(38, model.getSecond()); + pstmt.setString(39, model.getGPRSSignal()); + + row = Integer.valueOf(pstmt.executeUpdate()); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return Boolean.valueOf(row.intValue() > 0); + } + + public List listModel() + { + Connection conn = GPRSDBUtil.getConn(); + StringBuffer sqlBuffer = new StringBuffer( + "SELECT * FROM \"tbl_ModuleData\" ORDER BY \"UDT\" desc"); + + List modelList = new ArrayList(); + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + ResultSet result = pstmt.executeQuery(); + while (result.next()) + { + GPRSModel model = new GPRSModel(); + model.setOriginalData_HEX(result.getString("OriginalData_HEX")); + model.setCityID_HEX(result.getString("CityID_HEX")); + model.setCountyID_HEX(result.getString("CountyID_HEX")); + model.setCommitteeID_HEX(result.getString("CommitteeID_HEX")); + model.setParkID_HEX(result.getString("ParkID_HEX")); + model.setBuildingID_HEX(result.getString("BuildingID_HEX")); + model.setBuildingAttrID_HEX(result.getString("BuildingAttrID_HEX")); + model.setBuildingNO_HEX(result.getString("BuildingNO_HEX")); + model.setModuleEntranceType_HEX(result.getString("ModuleEntranceType_HEX")); + model.setModuleType_HEX(result.getString("ModuleType_HEX")); + model.setMemo_HEX(result.getString("Memo_HEX")); + model.setRouterID_HEX(result.getString("RouterID_HEX")); + model.setModuleID_HEX(result.getString("ModuleID_HEX")); + model.setStatus_HEX(result.getString("Status_HEX")); + model.setHorizonValue_HEX(result.getString("HorizonValue_HEX")); + model.setVerticalValue_HEX(result.getString("VerticalValue_HEX")); + model.setHour_HEX(result.getString("Hour_HEX")); + model.setMinute_HEX(result.getString("Minute_HEX")); + model.setSecond_HEX(result.getString("Second_HEX")); + model.setgPRSSignal_HEX(result.getString("GPRSSignal_HEX")); + model.setUDT(result.getString("UDT")); + modelList.add(model); + } + return modelList; + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return modelList; + } + + public List listTblModule() + { + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer( + "SELECT * FROM \"tbl_Module\" ORDER BY \"UDT\" desc"); + + List moduleList = new ArrayList(); + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + ResultSet result = pstmt.executeQuery(); + while (result.next()) + { + TblModule model = new TblModule(); + model.setId(result.getInt("ID")); + model.setCityID(result.getString("CityID")); + model.setCountyID(result.getString("CountyID")); + model.setCommitteeID(result.getString("CommitteeID")); + model.setParkID("ParkID"); + model.setBuildingID("BuildingID"); + model.setBuildingAttrID("BuildingAttrID"); + model.setBuildingNO("BuildingNO"); + model.setModuleEntranceType("ModuleEntranceType"); + model.setModuleType("ModuleType"); + model.setMemo("Memo"); + model.setRouterID("RouterID"); + model.setModuleID("ModuleID"); + model.setRemark("Remark"); + model.setStatus(result.getInt("Status")); + model.setUdt(result.getString("UDT")); + + moduleList.add(model); + } + return moduleList; + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return moduleList; + } + + public Boolean updateTblModuleByModuleID(String moduleID, Integer status) + { + Integer row = Integer.valueOf(0); + Connection conn = GPRSDBUtil.getConn(); + StringBuffer sqlBuffer = new StringBuffer("UPDATE \"tbl_Module\" SET \"Status\"=?,\"UDT\"=now() WHERE \"ModuleID\"=?"); + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + pstmt.setInt(1, status); + pstmt.setString(2, moduleID); + + pstmt.executeUpdate(); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return Boolean.valueOf(row.intValue() > 0); + } + + public Boolean updateTblModule(GPRSModel model) + { + Integer row = Integer.valueOf(0); + + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer("UPDATE \"tbl_Module\" SET \"Status\"=?, \"UDT\"=now() "); + sqlBuffer.append("WHERE \"CityID\"=? AND \"CountyID\"=? AND \"CommitteeID\"=? AND \"ParkID\"=? AND \"BuildingID\"=? AND \"BuildingAttrID\"=? AND \"BuildingNO\"=? AND \"ModuleEntranceType\"=? "); + sqlBuffer.append("AND \"ModuleType\"=? AND \"Memo\"=? AND \"RouterID\"=? AND \"ModuleID\"=?"); + + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + pstmt.setInt(1, Integer.valueOf(model.getStatus())); + pstmt.setString(2, model.getCityID()); + pstmt.setString(3, model.getCountyID()); + pstmt.setString(4, model.getCommitteeID()); + pstmt.setString(5, model.getParkID()); + pstmt.setString(6, model.getBuildingID()); + pstmt.setString(7, model.getBuildingAttrID()); + pstmt.setString(8, model.getBuildingNO()); + pstmt.setString(9, model.getModuleEntranceType()); + pstmt.setString(10, model.getModuleType()); + pstmt.setString(11, model.getMemo()); + pstmt.setString(12, model.getRouterID()); + pstmt.setString(13, model.getModuleID()); + + row = Integer.valueOf(pstmt.executeUpdate()); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return Boolean.valueOf(row.intValue() > 0); + } +} diff --git a/src/com/ezparking/gprs/GPRSServlet.java b/src/com/ezparking/gprs/GPRSServlet.java new file mode 100644 index 0000000..0e3a733 --- /dev/null +++ b/src/com/ezparking/gprs/GPRSServlet.java @@ -0,0 +1,63 @@ +/** + * + */ +package com.ezparking.gprs; + +/** + * @author qwsun + * + */ +public class GPRSServlet +{ + public GPRSModel receiveGPRS(String str) + { + GPRSModel model = new GPRSModel(); + + if ((str == null) || (str.length() == 0)) + { + return model; + } + + model.setOriginalData_HEX("55AA"+str+"78"); + model.setCityID_HEX(str.substring(0, 4)); + model.setCountyID_HEX(str.substring(4, 8)); + model.setCommitteeID_HEX(str.substring(8, 12)); + model.setParkID_HEX(str.substring(12, 16)); + model.setBuildingID_HEX(str.substring(16, 20)); + model.setBuildingAttrID_HEX(str.substring(20, 24)); + model.setBuildingNO_HEX(str.substring(24, 28)); + model.setModuleEntranceType_HEX(str.substring(28, 30)); + model.setModuleType_HEX(str.substring(30, 32)); + model.setMemo_HEX(str.substring(32, 38)); + model.setRouterID_HEX(str.substring(38, 44)); + model.setModuleID_HEX(str.substring(44, 50)); + model.setStatus_HEX(str.substring(50, 52)); + model.setHorizonValue_HEX(str.substring(52, 56)); + model.setVerticalValue_HEX(str.substring(56, 60)); + model.setHour_HEX(str.substring(60, 62)); + model.setMinute_HEX(str.substring(62, 64)); + model.setSecond_HEX(str.substring(64, 66)); + model.setgPRSSignal_HEX(str.substring(66, 68)); + + + GPRSService service = new GPRSService(); + service.insertGPRS(model); + + updateTblModule(model); + + return model; + } + + public void updateTblModule(GPRSModel model) + { + GPRSService service = new GPRSService(); + service.updateTblModule(model); + } + + public String toStringHex(String s) + { + String result = Integer.toString(Integer.parseInt(s, 16)); + + return result; + } +} diff --git a/src/com/ezparking/gprs/IPConfigModel.java b/src/com/ezparking/gprs/IPConfigModel.java new file mode 100644 index 0000000..7b5587d --- /dev/null +++ b/src/com/ezparking/gprs/IPConfigModel.java @@ -0,0 +1,48 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.Serializable; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class IPConfigModel implements Serializable +{ + private String id; + private String address; + private String port; + + public String getPort() + { + return this.port; + } + + public void setPort(String port) + { + this.port = port; + } + + public String getId() + { + return this.id; + } + + public void setId(String id) + { + this.id = id; + } + + public String getAddress() + { + return this.address; + } + + public void setAddress(String address) + { + this.address = address; + } +} diff --git a/src/com/ezparking/gprs/IPConfigService.java b/src/com/ezparking/gprs/IPConfigService.java new file mode 100644 index 0000000..c19e6a2 --- /dev/null +++ b/src/com/ezparking/gprs/IPConfigService.java @@ -0,0 +1,139 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +/** + * @author qwsun + * + */ +public class IPConfigService +{ + public Boolean insertIPConfig(IPConfigModel model) + { + Integer row = Integer.valueOf(0); + + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer("INSERT INTO ipconfigModel (id, address, port)"); + sqlBuffer.append("VALUES (?,?, ?)"); + + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + pstmt.setString(1, model.getId()); + pstmt.setString(2, model.getAddress()); + pstmt.setString(3, model.getPort()); + row = Integer.valueOf(pstmt.executeUpdate()); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return Boolean.valueOf(row.intValue() > 0); + } + + public Integer findIPConfig(IPConfigModel model) + { + Integer row = Integer.valueOf(0); + + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer( + "SELECT count(*) as totalNumber FROM ipconfigModel WHERE address='" + + model.getAddress() + "' and port='" + model.getPort() + "'"); + + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + ResultSet result = pstmt.executeQuery(); + while (result.next()) + { + row = Integer.valueOf(result.getInt("totalNumber")); + } + return row; + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return row; + } + + public IPConfigModel getIPConfigById(String id) + { + IPConfigModel model = new IPConfigModel(); + + Connection conn = GPRSDBUtil.getConn(); + + StringBuffer sqlBuffer = new StringBuffer("SELECT * FROM ipconfigModel WHERE id='" + id + + "'"); + + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + ResultSet result = pstmt.executeQuery(); + while (result.next()) + { + model.setId(result.getString("id")); + model.setAddress(result.getString("address")); + model.setPort(result.getString("port")); + } + return model; + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return model; + } + + public List listModel() + { + Connection conn = GPRSDBUtil.getConn(); + StringBuffer sqlBuffer = new StringBuffer("SELECT * FROM ipconfigModel"); + + List modelList = new ArrayList(); + PreparedStatement pstmt = GPRSDBUtil.getPreparedStatement(conn, sqlBuffer.toString()); + try + { + ResultSet result = pstmt.executeQuery(); + while (result.next()) + { + IPConfigModel model = new IPConfigModel(); + model.setId(result.getString("id")); + model.setAddress(result.getString("address")); + model.setPort(result.getString("port")); + modelList.add(model); + } + return modelList; + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + GPRSDBUtil.close(conn, pstmt, null); + } + return modelList; + } +} diff --git a/src/com/ezparking/gprs/IPConfigServlet.java b/src/com/ezparking/gprs/IPConfigServlet.java new file mode 100644 index 0000000..4c85c7c --- /dev/null +++ b/src/com/ezparking/gprs/IPConfigServlet.java @@ -0,0 +1,27 @@ +/** + * + */ +package com.ezparking.gprs; + +/** + * @author qwsun + * + */ +public class IPConfigServlet +{ + public void receiveIPConfig(String id, String address, String port) + { + IPConfigModel model = new IPConfigModel(); + + model.setId(id); + model.setAddress(address); + model.setPort(port); + + IPConfigService service = new IPConfigService(); + Integer totalrow = service.findIPConfig(model); + if (totalrow.intValue() == 0) + { + service.insertIPConfig(model); + } + } +} diff --git a/src/com/ezparking/gprs/MinaTimeServer.java b/src/com/ezparking/gprs/MinaTimeServer.java new file mode 100644 index 0000000..e3b6a0a --- /dev/null +++ b/src/com/ezparking/gprs/MinaTimeServer.java @@ -0,0 +1,30 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.IOException; +import java.net.InetSocketAddress; + +import org.apache.mina.core.service.IoAcceptor; +import org.apache.mina.core.session.IdleStatus; +import org.apache.mina.transport.socket.nio.NioSocketAcceptor; + +/** + * @author qwsun + * + */ +public class MinaTimeServer +{ +// private static final int PORT = 1001; + + public static void main(String[] args) throws IOException + { + IoAcceptor acceptor = new NioSocketAcceptor(); + + acceptor.setHandler(new TimeServerHandler()); + acceptor.getSessionConfig().setReadBufferSize(2048); + acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10); + acceptor.bind(new InetSocketAddress(1001)); + } +} diff --git a/src/com/ezparking/gprs/OutboundNotification.java b/src/com/ezparking/gprs/OutboundNotification.java new file mode 100644 index 0000000..33ccdca --- /dev/null +++ b/src/com/ezparking/gprs/OutboundNotification.java @@ -0,0 +1,29 @@ +/** + * + */ +package com.ezparking.gprs; + +import org.smslib.IOutboundMessageNotification; +import org.smslib.OutboundMessage; + +/** + * @author qwsun + * + */ +public class OutboundNotification implements IOutboundMessageNotification +{ + + /* + * (non-Javadoc) + * + * @see org.smslib.IOutboundMessageNotification#process(java.lang.String, + * org.smslib.OutboundMessage) + */ + @Override + public void process(String gatewayId, OutboundMessage msg) + { + System.out.println("Outbound handler called from Gateway: " + gatewayId); + System.out.println(msg); + } + +} diff --git a/src/com/ezparking/gprs/SendGPRSHandler.java b/src/com/ezparking/gprs/SendGPRSHandler.java new file mode 100644 index 0000000..331e3a4 --- /dev/null +++ b/src/com/ezparking/gprs/SendGPRSHandler.java @@ -0,0 +1,64 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.nio.charset.CharsetEncoder; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.service.IoHandlerAdapter; +import org.apache.mina.core.session.IoSession; + +import com.sun.xml.internal.fastinfoset.Encoder; + +/** + * @author qwsun + * + */ +public class SendGPRSHandler extends IoHandlerAdapter +{ + private String value; + + public SendGPRSHandler(String value) + { + this.value = value; + } + + public void messageSent(IoSession session, Object message) throws Exception + { +// super.messageSent(session, this.value); + System.out.println("message sent done"); + session.close(false); + } + + public void messageReceived(IoSession session, Object message) throws Exception + { + super.messageReceived(session, message); + System.out.println("server received message is:"+message.toString()); + session.write("success"); + } + + public void sessionOpened(IoSession session) throws Exception + { + IoBuffer buffer = IoBuffer.wrap(str2HexStr(value)); + session.write(buffer); + } + + public byte[] str2HexStr(String str) + { + int len = (str.length() / 2); + byte[] result = new byte[len]; + char[] achar = str.toCharArray(); + for (int i = 0; i < len; i++) { + int pos = i * 2; + result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1])); + } + return result; + } + + private byte toByte(char c) + { + byte b = (byte) "0123456789ABCDEF".indexOf(c); + return b; + } +} diff --git a/src/com/ezparking/gprs/TblModule.java b/src/com/ezparking/gprs/TblModule.java new file mode 100644 index 0000000..d548cb8 --- /dev/null +++ b/src/com/ezparking/gprs/TblModule.java @@ -0,0 +1,192 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.io.Serializable; + +/** + * @author qwsun + * + */ +@SuppressWarnings("serial") +public class TblModule implements Serializable +{ + private Integer id; + private String cityID; + private String countyID; + private String committeeID; + private String parkID; + private String buildingID; + private String buildingAttrID; + private String buildingNO; + private String moduleEntranceType; + private String moduleType; + private String memo; + private String routerID; + private String moduleID; + private String remark; + private Integer status; + private String udt; + + public Integer getId() + { + return id; + } + + public void setId(Integer id) + { + this.id = id; + } + + public String getCityID() + { + return cityID; + } + + public void setCityID(String cityID) + { + this.cityID = cityID; + } + + public String getCountyID() + { + return countyID; + } + + public void setCountyID(String countyID) + { + this.countyID = countyID; + } + + public String getCommitteeID() + { + return committeeID; + } + + public void setCommitteeID(String committeeID) + { + this.committeeID = committeeID; + } + + public String getParkID() + { + return parkID; + } + + public void setParkID(String parkID) + { + this.parkID = parkID; + } + + public String getBuildingID() + { + return buildingID; + } + + public void setBuildingID(String buildingID) + { + this.buildingID = buildingID; + } + + public String getBuildingAttrID() + { + return buildingAttrID; + } + + public void setBuildingAttrID(String buildingAttrID) + { + this.buildingAttrID = buildingAttrID; + } + + public String getBuildingNO() + { + return buildingNO; + } + + public void setBuildingNO(String buildingNO) + { + this.buildingNO = buildingNO; + } + + public String getModuleEntranceType() + { + return moduleEntranceType; + } + + public void setModuleEntranceType(String moduleEntranceType) + { + this.moduleEntranceType = moduleEntranceType; + } + + public String getModuleType() + { + return moduleType; + } + + public void setModuleType(String moduleType) + { + this.moduleType = moduleType; + } + + public String getMemo() + { + return memo; + } + + public void setMemo(String memo) + { + this.memo = memo; + } + + public String getRouterID() + { + return routerID; + } + + public void setRouterID(String routerID) + { + this.routerID = routerID; + } + + public String getModuleID() + { + return moduleID; + } + + public void setModuleID(String moduleID) + { + this.moduleID = moduleID; + } + + public String getRemark() + { + return remark; + } + + public void setRemark(String remark) + { + this.remark = remark; + } + + public Integer getStatus() + { + return status; + } + + public void setStatus(Integer status) + { + this.status = status; + } + + public String getUdt() + { + return udt; + } + + public void setUdt(String udt) + { + this.udt = udt; + } + +} diff --git a/src/com/ezparking/gprs/Test.java b/src/com/ezparking/gprs/Test.java new file mode 100644 index 0000000..8269a3b --- /dev/null +++ b/src/com/ezparking/gprs/Test.java @@ -0,0 +1,22 @@ +/** + * + */ +package com.ezparking.gprs; + +/** + * @author qwsun + * + */ +public class Test +{ + /** + * @param args + */ + public static void main(String[] args) + { + GPRSServlet servlet = new GPRSServlet(); + + servlet.receiveGPRS("00010002000300040005000600070001000000000001000001000000000015292C52"); + } + +} diff --git a/src/com/ezparking/gprs/TimeServerHandler.java b/src/com/ezparking/gprs/TimeServerHandler.java new file mode 100644 index 0000000..c8c1552 --- /dev/null +++ b/src/com/ezparking/gprs/TimeServerHandler.java @@ -0,0 +1,55 @@ +/** + * + */ +package com.ezparking.gprs; + +import java.net.InetSocketAddress; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.service.IoHandlerAdapter; +import org.apache.mina.core.session.IdleStatus; +import org.apache.mina.core.session.IoSession; + +/** + * @author qwsun + * + */ +public class TimeServerHandler extends IoHandlerAdapter +{ + public void exceptionCaught(IoSession session, Throwable cause) throws Exception + { + cause.printStackTrace(); + } + + public void messageReceived(IoSession session, Object message) throws Exception + { + IoBuffer ioBuffer = (IoBuffer) message; + String bufferStr = ioBuffer.getHexDump(); + bufferStr = bufferStr.trim().replace(" ", ""); + + String[] bufferAry = bufferStr.split("55AA"); + for (String buffer : bufferAry) + { + GPRSServlet servlet = new GPRSServlet(); + servlet.receiveGPRS(buffer); + +// InetSocketAddress clientIP = (InetSocketAddress) session.getRemoteAddress(); +// String ipAddress = clientIP.getAddress().getHostAddress(); +// String ipPort = clientIP.getPort() + ""; +// +// Date now = new Date(); +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// String id = sdf.format(now); +// +// IPConfigServlet ipServlet = new IPConfigServlet(); +// ipServlet.receiveIPConfig(id, ipAddress, ipPort); + } + } + + public void sessionIdle(IoSession session, IdleStatus status) throws Exception + { + System.out.println("IDLE " + session.getIdleCount(status)); + } +}