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

📄 smsserverhelper.java

📁 用Java编写的GPS监控系统后台私服的核心代码。
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                                //    continue;
                                //}

                                //如果目的设备的通讯处于GPRS方式
                                if (nDeviceCommState == REGISTERED_GPRS_STATE) {
                                    ReceiveServerHelper rsHelper = ReceiveServer.rsHelperQueue.getHelperByDeviceID(nTargetDeviceID);
                                    if (rsHelper == null) {
                                        strMessage = "监控设备 " + nTargetDeviceID + " 未注册!";
                                        CommonLogger.Info("SMSServerHelper", strMessage);
                                        continue;
                                    }

                                    //if (rsHelper.isClosed()) {
                                    //   strMessage = "监控设备 " + nTargetDeviceID + " 对应Socket端口已关闭!";
                                    //    CommonLogger.Info("SMSServerHelper", strMessage);
                                    //    continue;
                                    //}

                                    //发送数据
                                    String strCommand = cParser.getCommandText(nTargetDeviceID);
                                    rsHelper.write(strCommand);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备发送位置信息";
                                    CommonLogger.Info("设备请求位置信息命令(GPRS)", strMessage);
                                    continue;
                                }  //END OF IF(nDeviceState == REGISTERED_GPRS_STATE)
                                //如果目的设备的通讯处于SMS方式
                                if (nDeviceCommState == REGISTERED_SMS_STATE) {
                                    //发送数据
                                    String strSMS = cParser.getCommandText(nTargetDeviceID);
                                    String strMobile = device.getDeviceInfos().getMobileCard();
                                    sb.sendSMS(strMobile, strSMS);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备发送位置信息";
                                    CommonLogger.Info("设备请求位置信息命令(GSM)", strMessage);
                                    continue;
                                } //END OF IF(nDeviceCommState == REGISTERED_SMS_STATE)
                            } // END OF FOR
                            break;
                        }  //END OF CASE
                        //导航设备向导航设备发送停止位置信息发送请求,命令码值为:8
                    case DEVICE_REQUEST_STOP_LOCALTION_INFOS_DEVICE:
                        {
                            CommandParserEx cmdParser = new CommandParserEx(strReadBuffer);
                            //CommandParserEx cmdParser = new CommandParserEx(strReadBuffer);
                            cmdParser.parse();

                            int nDeviceID = cmdParser.getOriginDeviceID();
                            if (nDeviceID == 0)
                                break;

                            String strMessage;
                            int nTargetDeviceID;
                            int nCount = cmdParser.getTargetDeviceCount();
                            for (int nIndex = 0; nIndex < nCount; nIndex++) {
                                nTargetDeviceID = cmdParser.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);
                                //    continue;
                                //}

                                if (nDeviceCommState == REGISTERED_GPRS_STATE) {
                                    ReceiveServerHelper rsHelper = ReceiveServer.rsHelperQueue.getHelperByDeviceID(nTargetDeviceID);
                                    if (rsHelper == null) {
                                        strMessage = "监控设备 " + nTargetDeviceID + " 未注册!";
                                        CommonLogger.Info("SMSServerHelper", strMessage);
                                        continue;
                                    }

                                    //if (rsHelper.isClosed()) {
                                    //    strMessage = "监控设备 " + nTargetDeviceID + " 对应Socket端口已关闭!";
                                    //    CommonLogger.Info("SMSServerHelper", strMessage);
                                    //    continue;
                                    //}

                                    //发送命令
                                    String strCommandText = cmdParser.getCommandTextEx();
                                    rsHelper.write(strCommandText);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备停止发送位置信息";
                                    CommonLogger.Info("设备请求停止发送位置信息命令(GPRS)", strMessage);
                                    continue;
                                }
                                //如果目的设备的通讯处于SMS方式
                                if (nDeviceCommState == REGISTERED_SMS_STATE) {
                                    //发送数据
                                    String strSMS = cmdParser.getCommandTextEx();
                                    String strMobile = device.getDeviceInfos().getMobileCard();
                                    sb.sendSMS(strMobile, strSMS);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备发送位置信息";
                                    CommonLogger.Info("设备请求位置信息命令(GSM)", strMessage);
                                }
                            }  //END OF FOR
                            break;
                        } // END OF CASE
                        //导航设备响应导航设备请求发送位置信息,命令码值为:9
                    case DEVICE_RESPONSE_LOCATION_INFOS_DEVICE:
                        {
                            //解析网络数据包
                            ResponseParser rParser = new ResponseParser(strReadBuffer);
                            rParser.parse();

                            //获取被监控的设备的编号
                            int nDeviceID = rParser.getOriginDeviceID();
                            if (nDeviceID == 0)
                                break;

                            int nTargetDeviceID;
                            String strMessage;
                            int nCount = rParser.getDeviceIDCount();
                            for (int nIndex = 0; nIndex < nCount; nIndex++) {
                                nTargetDeviceID = Integer.parseInt(rParser.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);
                                //    continue;
                                //}

                                //如果目的设备的通讯处于GPRS方式
                                if (nDeviceCommState == REGISTERED_GPRS_STATE) {
                                    ReceiveServerHelper rsHelper = ReceiveServer.rsHelperQueue.getHelperByDeviceID(nTargetDeviceID);
                                    if (rsHelper == null) {
                                        strMessage = "监控设备 " + nTargetDeviceID + " 未注册!";
                                        CommonLogger.Info("SMSServerHelper", strMessage);
                                        continue;
                                    }

                                    //if (rsHelper.isClosed()) {
                                    //    strMessage = "监控设备 " + nTargetDeviceID + " 对应Socket端口已关闭!";
                                    //    CommonLogger.Info("SMSServerHelper", strMessage);
                                    //    continue;
                                    //}

                                    //发送命令
                                    String strCommandText = rParser.getCommandText();
                                    rsHelper.write(strCommandText);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备停止发送位置信息";
                                    CommonLogger.Info("设备请求停止发送位置信息命令(GPRS)", strMessage);
                                    continue;
                                }
                                //如果目的设备的通讯处于SMS方式
                                if (nDeviceCommState == REGISTERED_SMS_STATE) {
                                    //发送数据
                                    String strSMS = rParser.getCommandText();
                                    String strMobile = device.getDeviceInfos().getMobileCard();
                                    sb.sendSMS(strMobile, strSMS);

                                    strMessage = "监控设备 " + Integer.toString(nDeviceID)
                                            + " 请求 " + Integer.toString(nTargetDeviceID)
                                            + " 号监控设备发送位置信息";
                                    CommonLogger.Info("设备请求位置信息命令(GSM)", strMessage);
                                }
                            } //END OF FOR
                            break;
                        } //END OF CASE
                        //导航设备向后台服务获取导航设备的编号和SIM卡号,命令码值为:10
                    case DEVICE_REQUEST_DEVICES_INFOS_SERVER:
                        {
                            //解析网络数据包
                            String strData = parser.getDataBody();
                            if (strData == null)
                                break;
                            RequestParser rParser = new RequestParser(strData);
                            rParser.parse();
                            //获取设备的信息
                            int nDeviceID = rParser.getDeviceID();
                            if (nDeviceID == 0)
                                break;

⌨️ 快捷键说明

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