⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsserverhelper.java

📁 用Java编写的GPS监控系统后台私服的核心代码。
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                                CommonLogger.Info("ReceiveServerHelper", strMessage);
                                break;
                            }

                            //if (ssHelper.isClosed()) {
                            //    strMessage = "监控终端 " + nDeviceID + " 对应的Socket已关闭!";
                            //    CommonLogger.Info("ReceiveServerHelper", strMessage);
                            //    break;
                            //}

                            //发送数据
                            ssHelper.write(strReadBuffer);
                            //记录单呼位置信息
                            int nOperatorID = terminal.getLogOperateInfos().getOperatorID();
                            SingleCallLocationInfos Infos = new SingleCallLocationInfos();
                            Infos.setOperatorID(nOperatorID);
                            Infos.setDeviceID(nDeviceID);
                            Infos.setLocationDate(locationParser.getParseResult().getLocationDate());
                            Infos.setLocationInfos(locationParser.getParseResult().toMiniString());
                            Infos.setTerminalID(nTerminalID);
                            DatabaseHelper.logLocationInfosForSingleCall(Infos);
                            //打印信息
                            MyTime mtCurrent = new MyTime();
                            strMessage = "设备响应 " + Integer.toString(nTerminalID)
                                    + " 号终端 " + Integer.toString(nDeviceID)
                                    + " 号设备的单呼命令  " + mtCurrent.toString();
                            CommonLogger.Info("设备响应单呼命令(GSM)", strMessage);

                            break;
                        }
                        //导航设备向指定的监控终端发送连呼位置信息,命令码值为:4
                    case DEVICE_RESPONSE_CONTINUE_CALL_LOCATION_INFOS_TERMINAL:
                        {
                            //Modify by zfs 2004.01.10,忽略非法GPS数据包
                            if (strReadBuffer.length() < 50)
                                break;

                            String strData = parser.getDataBody();
                            if (strData == null)
                                break;
                            LocationInfosParser locationParser = new LocationInfosParser(strData);
                            locationParser.parse();
                            //获取监控终端的信息
                            int nTerminalID = locationParser.getTerminalID();
                            if (nTerminalID == 0)
                                break;
                            Terminal terminal = ApplicationContext.terminalsQueue.findTerminalByID(nTerminalID);
                            if (terminal == null)
                                break;

                            //获取监控设备的信息
                            int nDeviceID = locationParser.getDeviceID();
                            if (nDeviceID == 0)
                                break;

                            String strMessage;
                            SendServerHelper ssHelper = ApplicationContext.sendServer.ssHelperQueue.getHelperByDeviceID(nDeviceID);
                            if (ssHelper == null) {
                                strMessage = "监控终端 " + nDeviceID + " 未注册!";
                                CommonLogger.Info("ReceiveServerHelper", strMessage);
                                break;
                            }

                            //if (ssHelper.isClosed()) {
                            //    strMessage = "监控终端 " + nDeviceID + " 对应的Socket已关闭!";
                            //    CommonLogger.Info("ReceiveServerHelper", strMessage);
                            //    break;
                            //}

                            //发送数据
                            ssHelper.write(strReadBuffer);
                            //记录连呼位置信息
                            ContinueCallLocationInfos Infos = new ContinueCallLocationInfos();
                            Infos.setOperatorID(terminal.getLogOperateInfos().getOperatorID());
                            Infos.setDeviceID(nDeviceID);
                            Infos.setLocationDate(locationParser.getParseResult().getLocationDate());
                            Infos.setLocationInfos(locationParser.getParseResult().toMiniString());
                            Infos.setPlanID(locationParser.getParseResult().getPlanID());
                            Infos.setTerminalID(nTerminalID);
                            DatabaseHelper.logLocationInfosForContinueCall(Infos);

                            strMessage = "设备响应 " + Integer.toString(nTerminalID)
                                    + " 号终端 " + Integer.toString(nDeviceID)
                                    + " 号设备的连呼命令";
                            CommonLogger.Info("设备响应连呼命令(GSM)", strMessage);
                            break;
                        }
                        //智能导航设备向指定的监控终端发送响应连呼停止消息,命令码值为:5
                    case DEVICE_RESPONSE_STOP_CONTINUE_CALL_TERMINAL:
                        {
                            String strData = parser.getDataBody();
                            if (strData == null)
                                break;
                            RequestParser rParser = new RequestParser(strData);
                            rParser.parse();
                            //获取监控终端的信息
                            int nTerminalID = rParser.getTerminalID();
                            if (nTerminalID == 0)
                                break;
                            Terminal terminal = ApplicationContext.terminalsQueue.findTerminalByID(nTerminalID);
                            if (terminal == null)
                                break;
                            //获取监控设备的信息
                            int nDeviceID = rParser.getDeviceID();
                            if (nDeviceID == 0)
                                break;

                            SendServerHelper ssHelper = ApplicationContext.sendServer.ssHelperQueue.getHelperByDeviceID(nDeviceID);
                            String strMessage;
                            if (ssHelper != null) {
                                strMessage = "监控终端 " + nDeviceID + " 未注册!";
                                CommonLogger.Info("ReceiveServerHelper", "监控终端未注册!");
                            }

                            //if (ssHelper.isClosed()) {
                            //    strMessage = "监控终端 " + nDeviceID + " 对应的Socket已关闭!";
                            //    CommonLogger.Info("SMSServerHelper", strMessage);
                            //    break;
                            //}

                            //发送数据
                            ssHelper.write(strReadBuffer);

                            long nPlanID = rParser.getPlanID();
                            strMessage = "设备响应停止 " + Integer.toString(nTerminalID)
                                    + " 号终端 " + Integer.toString(nDeviceID)
                                    + " 号设备的 " + Long.toString(nPlanID)
                                    + " 号计划";
                            CommonLogger.Info("设备响应停止连呼命令(GSM)", strMessage);

                            break;
                        }
                        //导航设备响应监控终端发送的命令,命令码值为:6
                    case DEVICE_RESPONSE_COMMAND_FROM_TERMINAL:
                        {
                            String strData = parser.getDataBody();
                            String strBody = parser.getCommandBody();

                            CommandParser cParser = new CommandParser(strData, strBody);
                            cParser.parse();
                            //获取监控设备的信息
                            int nTerminalID = cParser.getTerminalID();
                            if (nTerminalID == 0)
                                break;
                            Terminal terminal = ApplicationContext.terminalsQueue.findTerminalByID(nTerminalID);
                            if (terminal == null)
                                break;
                            //获取监控设备的信息
                            int nDeviceID = cParser.getDeviceID();
                            if (nDeviceID == 0)
                                break;

                            SendServerHelper ssHelper = ApplicationContext.sendServer.ssHelperQueue.getHelperByDeviceID(nDeviceID);
                            String strMessage;
                            if (ssHelper == null) {
                                strMessage = "监控终端 " + nDeviceID + " 未注册!";
                                CommonLogger.Info("SMSServerHelper", "监控终端未注册!");
                                break;
                            }

                            //if (ssHelper.isClosed()) {
                            //    strMessage = "监控终端 " + nDeviceID + " 对应的Socket已关闭!";
                            //    CommonLogger.Info("SMSServerHelper", strMessage);
                            //    break;
                            //}

                            //发送数据
                            ssHelper.write(strReadBuffer);
                            //打印信息
                            strMessage = "设备响应停止 " + Integer.toString(nTerminalID)
                                    + " 号终端 " + Integer.toString(nDeviceID)
                                    + " 号设备的命令";
                            CommonLogger.Info("设备响应停止连呼命令(GSM)", strMessage);
                            break;
                        }
                        //监控设备向监控设备发送位置信息请求,命令码值为:7
                    case DEVICE_REQUEST_LOCALTION_INFOS_DEVICE:
                        {
                            //解析网络数据包
                            CommandParserEx cParser = new CommandParserEx(strReadBuffer);
                            cParser.parse();

                            //获取发送位置请求的监控设备的编号
                            int nDeviceID = cParser.getOriginDeviceID();
                            if (nDeviceID == 0)
                                break;
                            //获取目标设备的个数
                            int nDeviceCount = cParser.getTargetDeviceCount();
                            if (nDeviceCount == 0)
                                break;

                            int nTargetDeviceID;
                            String strMessage;
                            for (int nIndex = 0; nIndex < nDeviceCount; nIndex++) {
                                nTargetDeviceID = cParser.getDeviceID(nIndex);
                                if (nTargetDeviceID == 0)
                                    continue;
                                //获取目的设备的通讯方式
                                Device device = ApplicationContext.devicesQueue.findDeviceByID(nTargetDeviceID);
                                if (device == null) {
                                    strMessage = "监控设备 " + nTargetDeviceID + " 为系统非法设备!";
                                    CommonLogger.Info("SMSServerHelper", strMessage);
                                    continue;
                                }
                                //获取设备的通讯状态
                                int nDeviceCommState = device.getDeviceCommunicationState();//ApplicationContext.devicesQueue.getDeviceState(nTargetDeviceID);
                                if (nDeviceCommState == UNREGISTER_STATE) {
                                    strMessage = "监控设备 " + nTargetDeviceID + " 已注销!";
                                    CommonLogger.Info("SMSServerHelper", strMessage);
                                    continue;
                                }

                                //if (nDeviceCommState == REGISTERED_SPEECHING_STATE) {
                                //    strMessage = "监控设备 " + nTargetDeviceID + " 监控设备处于语音通话状态!";
                                //    CommonLogger.Info("SMSServerHelper", strMessage);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -