📄 smsserverhelper.java
字号:
String strMessage;
Device device = ApplicationContext.devicesQueue.findDeviceByID(nDeviceID);
if (device == null) {
strMessage = "监控设备 " + nDeviceID + " 为系统非法设备!";
CommonLogger.Info("SMSServerHelper", strMessage);
continue;
}
//获取设备的SIM卡号
String strMobile = device.getDeviceInfos().getMobileCard();
//从数据库中获取设备的信息
String strResult = DatabaseHelper.getDeviceInfos(nDeviceID);
String strSMSText;
if (strResult == null) {
strSMSText = Integer.toString(SERVER_RESPONSE_DEVICES_INFOS_DEVICE)
+ "|0|";
//回复命令
sb.sendSMS(strMobile, strSMSText);
} else {
SplitSMSString splitSMS = new SplitSMSString(strResult);
int nCount = splitSMS.getSMSCount();
String strHeader = Integer.toString(SERVER_RESPONSE_DEVICES_INFOS_DEVICE)
+ "|1|";
for (int nIndex = 0; nIndex < nCount; nIndex++) {
strSMSText = strHeader + splitSMS.getSMS(nIndex);
//发送短消息
sb.sendSMS(strMobile, strSMSText);
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
strMessage = "监控设备 " + Integer.toString(nDeviceID)
+ " 请求获取其它监控设备的信息";
CommonLogger.Info("设备请求设备信息(GSM)", strMessage);
break;
}
//导航设备向后台服务请求预设行动路线信息,命令码值为:11
case DEVICE_REQUEST_ACTION_ROUTE_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;
String strMessage;
Device device = ApplicationContext.devicesQueue.findDeviceByID(nDeviceID);
if (device == null) {
strMessage = "监控设备 " + nDeviceID + " 为系统非法设备!";
CommonLogger.Info("SMSServerHelper", strMessage);
continue;
}
//从数据库中获取行动路线信息
String strResult = DatabaseHelper.getActionInfosByDeviceIDEx(nDeviceID);
String strSMSText = null;
if (strResult == null) {
strSMSText = Integer.toString(SERVER_SEND_ACTION_ROUTE_INFOS_DEVICE)
+ "|0";
} else {
strSMSText = Integer.toString(SERVER_SEND_ACTION_ROUTE_INFOS_DEVICE)
+ "|" + strResult;
}
//回复命令
String strMobile = device.getDeviceInfos().getMobileCard();
sb.sendSMS(strMobile, strSMSText);
//打印信息
strMessage = "监控设备 " + Integer.toString(nDeviceID)
+ " 请求获取行动路线信息";
CommonLogger.Info("设备请求行动路线信息(GSM)", strMessage);
break;
}
//导航设备向后台服务响应预设行动路线的信息,命令码值为:12
case DEVICE_RESPONSE_ACTION_ROUTE_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;
//打印信息
String strMessage = "监控设备 " + Integer.toString(nDeviceID)
+ "响应获取行动路线信息";
CommonLogger.Info("设备响应行动路线信息(GSM)", strMessage);
break;
}
//监控设备向后台服务报告设备的状态处于语音状态,命令码值为:13
case DEVICE_SEND_STATE_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;
//设置设备的状态
ApplicationContext.devicesQueue.setDeviceCommunicationState(nDeviceID, REGISTERED_SPEECHING_STATE);
//打印信息
String strMessage = "监控设备 " + Integer.toString(nDeviceID)
+ "发送设备处于语音状态的信息";
CommonLogger.Info("设备处于语音状态的信息(GSM)", strMessage);
break;
}
//导航设备向后台服务请求车辆信息,命令码值为:13
case DEVICE_REQUEST_VEHICLE_INFOS_SERVER:
{
String strData = parser.getDataBody();
if (strData == null)
break;
RequestParserExt rParser = new RequestParserExt(strData);
rParser.parse();
//获取设备的编号
int nDeviceID = rParser.getDeviceID();
if (nDeviceID == 0)
break;
String strMessage, strMobile;
Device device = ApplicationContext.devicesQueue.findDeviceByID(nDeviceID);
if (device == null) {
strMessage = "监控设备 " + nDeviceID + " 为系统非法设备!";
CommonLogger.Info("SMSServerHelper", strMessage);
continue;
} else {
strMobile = device.getDeviceInfos().getMobileCard();
}
//获取查询标志
String strQueryFlag = rParser.getQueryFlag();
if (strQueryFlag == null || strQueryFlag.length() == 0)
break;
String strLicense, strSMSText;
VehicleInfos vInfos = null;
PersonInfos pInfos = null;
if (strQueryFlag.equals("0")) {
//获取车牌号码
strLicense = rParser.getVehicleLicense();
//根据车牌号码获取车辆信息
vInfos = DatabaseHelper.getVehicleInfosByLicense(strLicense);
if (vInfos == null) {
strSMSText = Integer.toString(SERVER_RESPONSE_VEHICLE_INFOS_DEVICE)
+ "|0";
sb.sendSMS(strMobile, strSMSText);
break;
}
int nPersonID = vInfos.getPersonID();
pInfos = DatabaseHelper.getPersonInfosByID(nPersonID);
if (pInfos == null) {
strSMSText = Integer.toString(SERVER_RESPONSE_VEHICLE_INFOS_DEVICE)
+ "|1|" + vInfos.toMiniString() + "|NULL";
sb.sendSMS(strMobile, strSMSText);
break;
}
} else {
//获取身份证号
strLicense = rParser.getIDCode();
//根据车主编号获取车辆信息
pInfos = DatabaseHelper.getPersonInfosByIDCode(strLicense);
if (pInfos == null) {
strSMSText = Integer.toString(SERVER_RESPONSE_VEHICLE_INFOS_DEVICE)
+ "|0";
sb.sendSMS(strMobile, strSMSText);
break;
}
int nPersonID = pInfos.getPersonID();
vInfos = DatabaseHelper.getVehicleInfosByPersonID(nPersonID);
if (vInfos == null) {
strSMSText = Integer.toString(SERVER_RESPONSE_VEHICLE_INFOS_DEVICE)
+ "|1|NULL|" + pInfos.toMiniString();
sb.sendSMS(strMobile, strSMSText);
break;
}
}
//利用短信发送车辆信息和车主信息。
strSMSText = Integer.toString(SERVER_RESPONSE_VEHICLE_INFOS_DEVICE)
+ "|1|" + vInfos.toMiniString()
+ "|" + pInfos.toMiniString();
sb.sendSMS(strMobile, strSMSText);
strMessage = "监控设备 " + Integer.toString(nDeviceID)
+ "查询车牌号码为: " + strLicense + " 的车辆及车主的信息";
CommonLogger.Info("设备查询车辆信息(GSM)", strMessage);
break;
}
} //END OF SWITCH
strReadBuffer = null;
}
System.out.println("SMSServerHelper: Stop Thread...");
} //END OF WHILE
} //END OF Reader
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -