Commit b38924ce authored by liyuanhong's avatar liyuanhong

完成了低电压报警和终端主电路断电报警,以及多人同时使用其他人无法接受消息的bug

parent 6f53b121
...@@ -64,6 +64,8 @@ class ProtocolSimulaterService(): ...@@ -64,6 +64,8 @@ class ProtocolSimulaterService():
self.sn = data self.sn = data
def setCarData(self,data): def setCarData(self,data):
self.carData = data self.carData = data
def setServiceStatus(self,data):
self.serviceStatus = data
def getWebsocket(self): def getWebsocket(self):
...@@ -87,7 +89,7 @@ class ProtocolSimulaterService(): ...@@ -87,7 +89,7 @@ class ProtocolSimulaterService():
self.socket.setTimeOut(self.timeout) self.socket.setTimeOut(self.timeout)
return self.socket.receive() return self.socket.receive()
#发送消息,可指定消息的描述类型 #发送消息,可指定消息的描述类型
def serviceSendMsg(self,msg,type): #type字段目前废掉没有实际意 def serviceSendMsg(self,msg,type): #type字段目前废掉没有实际意
self.sendMsg(msg) self.sendMsg(msg)
type = self.getMsgFunId(msg) type = self.getMsgFunId(msg)
self.websocket.sendMsgToClient(">>>>" + type + ":" + msg,self.websocketId) self.websocket.sendMsgToClient(">>>>" + type + ":" + msg,self.websocketId)
...@@ -211,6 +213,8 @@ class ProtocolSimulaterService(): ...@@ -211,6 +213,8 @@ class ProtocolSimulaterService():
# 为websocket服务添加一个新的客户端连接 # 为websocket服务添加一个新的客户端连接
def addNewWebsocket(self): def addNewWebsocket(self):
t2 = threading.Thread(target=self.serviceRev, args=())
t2.start()
t3 = threading.Thread(target=self.setWebsocketId, args=()) t3 = threading.Thread(target=self.setWebsocketId, args=())
t3.start() t3.start()
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<div id="container3" style="width:100%;min-height:750px;float:left;_background:green;margin-top:10px;_border-top: 1px solid #eee;"> <div id="container3" style="width:100%;min-height:750px;float:left;_background:green;margin-top:10px;_border-top: 1px solid #eee;">
<div style="width:100%;padding-bottom:10px;border-bottom: 1px solid #eee;"> <div style="width:100%;padding-bottom:10px;border-bottom: 1px solid #eee;">
<span><label>车机Id:</label><input id="carId" type="text" class="form-control" value="M202003060520"></span> <span><label>车机Id:</label><input id="carId" type="text" class="form-control" value="M202003060520"></span>
<span><label>消息流水号:</label><input id="WATER_CODE" style="width:60px;" type="text" class="form-control" value="1"></span> <span style="display:none;"><label>消息流水号:</label><input id="WATER_CODE" style="width:60px;" type="text" class="form-control" value="1"></span>
<span><label>上报间隔(秒):</label><input id="durTime" style="width:60px;" type="text" class="form-control" value="5"></span> <span><label>上报间隔(秒):</label><input id="durTime" style="width:60px;" type="text" class="form-control" value="5"></span>
<span><label>设置超时时间:</label><input style="width:80px;" id="timeout" type="text" class="form-control" value="36000"></span> <span><label>设置超时时间:</label><input style="width:80px;" id="timeout" type="text" class="form-control" value="36000"></span>
</div> </div>
...@@ -124,11 +124,11 @@ ...@@ -124,11 +124,11 @@
</h5> </h5>
<div id="event_area" style="display:none;"> <div id="event_area" style="display:none;">
<div style="margin-top:10px;width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;background:skyblue;"> <div style="margin-top:10px;width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;background:skyblue;">
<label style="padding: 0px 10px;"><input type="checkbox" id="lowVoltage_check" onclick="eventSelect(this)"/>汽车电瓶低电压报警 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="powerOff_check" onclick="eventSelect(this)"/>终端主电断电报警 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="rapidlyAccelerateEvent_check" onclick="eventSelect(this)"/>急加速 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="rapidlyAccelerateEvent_check" onclick="eventSelect(this)"/>急加速 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="sharpSlowdownEvent_check" onclick="eventSelect(this)"/>急减速 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="sharpSlowdownEvent_check" onclick="eventSelect(this)"/>急减速 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="sharpTurnEvent_check" onclick="eventSelect(this)"/>急转弯 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="sharpTurnEvent_check" onclick="eventSelect(this)"/>急转弯 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0003" onclick="eventSelect(this)"/>汽车电瓶低电压报警 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0004" onclick="eventSelect(this)"/>终端主电断电报警 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0012" onclick="eventSelect(this)"/>设防 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0012" onclick="eventSelect(this)"/>设防 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0013" onclick="eventSelect(this)"/>撤防 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0013" onclick="eventSelect(this)"/>撤防 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0036" onclick="eventSelect(this)"/>低档高速报警 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0036" onclick="eventSelect(this)"/>低档高速报警 </label>
...@@ -136,6 +136,8 @@ ...@@ -136,6 +136,8 @@
<label style="padding: 0px 10px;"><input type="checkbox" id="004A" onclick="eventSelect(this)"/>剩余油量异常告警 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="004A" onclick="eventSelect(this)"/>剩余油量异常告警 </label>
</div> </div>
<div style="padding:10px;"> <div style="padding:10px;">
<span id="lowVoltage_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendLowVoltageEvent(this)">汽车电瓶低电压报警</button></label></span>
<span id="powerOff_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendPowerOffEvent(this)">终端主电断电报警</button></label></span>
<span id="rapidlyAccelerateEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendRapidlyAccelerateEvent(this)">急加速</button></label></span> <span id="rapidlyAccelerateEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendRapidlyAccelerateEvent(this)">急加速</button></label></span>
<span id="sharpSlowdownEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendSharpSlowdownEvent(this)">急减速</button></label></span> <span id="sharpSlowdownEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendSharpSlowdownEvent(this)">急减速</button></label></span>
<span id="sharpTurnEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendSharpTurnEvent(this)">急转弯</button></label></span> <span id="sharpTurnEvent_button" style="display:none;"><button type="button" class="btn btn-primary" onclick="sendSharpTurnEvent(this)">急转弯</button></label></span>
...@@ -632,7 +634,11 @@ function isShowEventArea(e){ ...@@ -632,7 +634,11 @@ function isShowEventArea(e){
//事件的选择与取消选择 //事件的选择与取消选择
function eventSelect(e){ function eventSelect(e){
if($(e).is(':checked')){ if($(e).is(':checked')){
if($(e).attr("id") == "rapidlyAccelerateEvent_check"){ if($(e).attr("id") == "lowVoltage_check"){
$("#lowVoltage_button").css("display","inline")
}else if($(e).attr("id") == "powerOff_check"){
$("#powerOff_button").css("display","inline")
}else if($(e).attr("id") == "rapidlyAccelerateEvent_check"){
$("#rapidlyAccelerateEvent_button").css("display","inline") $("#rapidlyAccelerateEvent_button").css("display","inline")
}else if($(e).attr("id") == "sharpSlowdownEvent_check"){ }else if($(e).attr("id") == "sharpSlowdownEvent_check"){
$("#sharpSlowdownEvent_button").css("display","inline") $("#sharpSlowdownEvent_button").css("display","inline")
...@@ -640,7 +646,11 @@ function eventSelect(e){ ...@@ -640,7 +646,11 @@ function eventSelect(e){
$("#sharpTurnEvent_button").css("display","inline") $("#sharpTurnEvent_button").css("display","inline")
} }
}else{ }else{
if($(e).attr("id") == "rapidlyAccelerateEvent_check"){ if($(e).attr("id") == "lowVoltage_check"){
$("#lowVoltage_button").css("display","none")
}else if($(e).attr("id") == "powerOff_check"){
$("#powerOff_button").css("display","none")
}else if($(e).attr("id") == "rapidlyAccelerateEvent_check"){
$("#rapidlyAccelerateEvent_button").css("display","none") $("#rapidlyAccelerateEvent_button").css("display","none")
}else if($(e).attr("id") == "sharpSlowdownEvent_check"){ }else if($(e).attr("id") == "sharpSlowdownEvent_check"){
$("#sharpSlowdownEvent_button").css("display","none") $("#sharpSlowdownEvent_button").css("display","none")
...@@ -649,6 +659,18 @@ function eventSelect(e){ ...@@ -649,6 +659,18 @@ function eventSelect(e){
} }
} }
} }
//发送汽车电瓶低电压报警
function sendLowVoltageEvent(){
var data = getPageData()
url = "/protocolTools/M_carSimulater_process/sendLowVoltageEvent";
sendjson(data,url);
}
//发送汽车电瓶低电压报警
function sendPowerOffEvent(){
var data = getPageData()
url = "/protocolTools/M_carSimulater_process/sendPowerOffEvent";
sendjson(data,url);
}
//发送急加速事件消息 //发送急加速事件消息
function sendRapidlyAccelerateEvent(){ function sendRapidlyAccelerateEvent(){
var data = getPageData() var data = getPageData()
......
...@@ -76,6 +76,10 @@ def createConect(): ...@@ -76,6 +76,10 @@ def createConect():
service.setSocket(cliSocket) service.setSocket(cliSocket)
service.setTimeout(timeout) service.setTimeout(timeout)
service.setData(params) service.setData(params)
gpsLine = params["gpsLine"]
carId = params["carId"]
service.setCarId(carId)
service.setGpsLine(gpsLine)
global websocket global websocket
if websocket == None: if websocket == None:
service.startWebsocketService() #如果没有创建websocket服务,则启动新的websocket服务 service.startWebsocketService() #如果没有创建websocket服务,则启动新的websocket服务
...@@ -385,6 +389,90 @@ def getConnects(): ...@@ -385,6 +389,90 @@ def getConnects():
return Response(json.dumps(data), mimetype='application/json') return Response(json.dumps(data), mimetype='application/json')
#--------------------------------------- 发送事件逻辑 --------------------------------------- #--------------------------------------- 发送事件逻辑 ---------------------------------------
##########################################
# 【接口类型】发送汽车电瓶低电压事件
##########################################
@M_carSimulater_process.route("/sendLowVoltageEvent",methods=['POST'])
def sendLowVoltageEvent():
params = request.get_data()
params = json.loads(params.decode("utf-8"))
sessionId = params["session"]["sessionId"]
data = {}
if not sessionId in connects.keys():
data["status"] = "4003"
data["message"] = "Error: 未启动服务,不可发送事件!"
return Response(json.dumps(data), mimetype='application/json')
service = connects[sessionId]["service"]
try:
jdata = {"WATER_CODE": "0003", "DEV_ID": "M121501010001",
"gpsInfo": {"UTCTime": "2020-04-30 14:59:33", "latitude": "40.22077", "longitude": "116.23128",
"speed": "80.8", "directionAngle": "80.8", "elevation": "2999.9", "positionStar": "3",
"Pdop": "0.3", "Hdop": "0.4", "Vdop": "0.5", "statusBit": 162, "valtage": "36.9",
"OBDSpeed": "60.9", "engineSpeed": "3000", "GPSTotalMileage": "12800", "totalOil": "100000",
"totalTime": "2020002", "GPSTimestamp": "1588229973"},
"securityData": {"securityStatus": 107, "doorStatus": 0, "lockStatus": 0, "windowStatus": 0,
"lightStatus": 0, "onoffStatusA": 0, "onoffStatusB": 112, "dataByte": 249},
"event": {"0003": {}}}
jdata["DEV_ID"] = params["carId"]
obj = EventReport_protocol(data=jdata)
gpsData = service.genGPSData2()
obj.setGPSPkg(gpsData)
obj.setEventType("0003")
msg = obj.generateEventMsg()
service.serviceSendMsg(msg, "电瓶低电压事件")
service.setSn(service.getSn() + 1)
data["status"] = "200"
data["message"] = "发送电瓶低电压事件成功!"
except BaseException as e:
# 打印异常信息
traceback.print_exc()
data["status"] = "4003"
data["message"] = "Error: 发送电瓶低电压事件失败!"
return Response(json.dumps(data), mimetype='application/json')
##########################################
# 【接口类型】发送终端主电断电报警事件
##########################################
@M_carSimulater_process.route("/sendPowerOffEvent",methods=['POST'])
def sendPowerOffEvent():
params = request.get_data()
params = json.loads(params.decode("utf-8"))
sessionId = params["session"]["sessionId"]
data = {}
if not sessionId in connects.keys():
data["status"] = "4003"
data["message"] = "Error: 未启动服务,不可发送事件!"
return Response(json.dumps(data), mimetype='application/json')
service = connects[sessionId]["service"]
try:
jdata = {"WATER_CODE": "0003", "DEV_ID": "M121501010001",
"gpsInfo": {"UTCTime": "2020-04-30 14:59:33", "latitude": "40.22077", "longitude": "116.23128",
"speed": "80.8", "directionAngle": "80.8", "elevation": "2999.9", "positionStar": "3",
"Pdop": "0.3", "Hdop": "0.4", "Vdop": "0.5", "statusBit": 162, "valtage": "36.9",
"OBDSpeed": "60.9", "engineSpeed": "3000", "GPSTotalMileage": "12800", "totalOil": "100000",
"totalTime": "2020002", "GPSTimestamp": "1588229973"},
"securityData": {"securityStatus": 107, "doorStatus": 0, "lockStatus": 0, "windowStatus": 0,
"lightStatus": 0, "onoffStatusA": 0, "onoffStatusB": 112, "dataByte": 249},
"event": {"0004": {}}}
jdata["DEV_ID"] = params["carId"]
obj = EventReport_protocol(data=jdata)
gpsData = service.genGPSData2()
obj.setGPSPkg(gpsData)
obj.setEventType("0004")
msg = obj.generateEventMsg()
service.serviceSendMsg(msg, "终端主电断电报警")
service.setSn(service.getSn() + 1)
data["status"] = "200"
data["message"] = "发送终端主电断电报警事件成功!"
except BaseException as e:
# 打印异常信息
traceback.print_exc()
data["status"] = "4003"
data["message"] = "Error: 发送终端主电断电报警事件失败!"
return Response(json.dumps(data), mimetype='application/json')
########################################## ##########################################
# 【接口类型】发送急加速事件 # 【接口类型】发送急加速事件
########################################## ##########################################
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment