Commit 7fc2340b authored by liyuanhong's avatar liyuanhong

碰撞告警图形界面开发完成

parent 2a514be0
[socket] [socket]
host = v.vandyo.cn host = 10.100.11.20
port = 9018 port = 9001
{"time": {"dateTime": "2020-04-27 17:44:26", "date": "2020-04-27", "time": "17:44:26"}, "curDayTravel": {"todayTotalMilleage": 4101, "todayTotalOil": 276, "todayTotalTime": 255, "theMilleage": 1888, "theOil": 118, "theTime": 118}, "travelData": {"totalMilleage": 4101, "totalOil": 276, "totalTime": 255}} {"time": {"dateTime": "2020-05-13 16:33:29", "date": "2020-05-13", "time": "16:33:29"}, "curDayTravel": {"todayTotalMilleage": 2407, "todayTotalOil": 232, "todayTotalTime": 145, "theMilleage": 1411, "theOil": 136, "theTime": 85}, "travelData": {"totalMilleage": 6508, "totalOil": 508, "totalTime": 400}}
\ No newline at end of file \ No newline at end of file
{"time": {"dateTime": "2020-05-11 10:59:13", "date": "2020-05-11", "time": "10:59:13"}, "curDayTravel": {"todayTotalMilleage": 8549, "todayTotalOil": 824, "todayTotalTime": 515, "theMilleage": 830, "theOil": 80, "theTime": 50}, "travelData": {"totalMilleage": 158616, "totalOil": 15025, "totalTime": 9286}, "event": {"threeRapid": {"totalRapidlyAccelerate": 8, "totalSharpSlowdown": 6, "totalSharpTurn": 9}}} {"time": {"dateTime": "2020-05-13 10:53:36", "date": "2020-05-13", "time": "10:53:36"}, "curDayTravel": {"todayTotalMilleage": 24791, "todayTotalOil": 2386, "todayTotalTime": 1479, "theMilleage": 1698, "theOil": 158, "theTime": 88}, "travelData": {"totalMilleage": 249738, "totalOil": 23752, "totalTime": 14743}, "event": {"threeRapid": {"totalRapidlyAccelerate": 22, "totalSharpSlowdown": 19, "totalSharpTurn": 24}}}
\ No newline at end of file \ No newline at end of file
...@@ -184,15 +184,15 @@ class EventClass(ProtocolBase): ...@@ -184,15 +184,15 @@ class EventClass(ProtocolBase):
return data return data
#0023 碰撞报警附带信息 #0023 碰撞报警附带信息
def collisionAlarmExtraInfo(self): def collisionAlarmExtraInfo(self,totalCount=7,dataProperty=1):
totalCount = self.int2hexStringByBytes(7,2) #历史碰撞总次数 totalCount = self.int2hexStringByBytes(totalCount,2) #历史碰撞总次数
# 1:表示事件发生时刻,前10秒的事件采样数据; # 1:表示事件发生时刻,前10秒的事件采样数据;
# [碰撞报警前后10秒采样数据附带信息] # [碰撞报警前后10秒采样数据附带信息]
# 2:表示事件发生时刻,后10秒的事件采样数据; # 2:表示事件发生时刻,后10秒的事件采样数据;
# [碰撞报警前后10秒采样数据附带信息] # [碰撞报警前后10秒采样数据附带信息]
# 3:表示事件发生时刻,后120秒的事件采样数据; # 3:表示事件发生时刻,后120秒的事件采样数据;
# [碰撞报警后120秒采样数据附带信息] # [碰撞报警后120秒采样数据附带信息]
dataProperty = self.int2hexString(1) dataProperty = self.int2hexString(dataProperty)
extraInfo = self.collisionSamplingData() #附带信息 extraInfo = self.collisionSamplingData() #附带信息
data = totalCount + dataProperty + extraInfo data = totalCount + dataProperty + extraInfo
return data return data
......
...@@ -7,7 +7,7 @@ from lib.protocol.m300.M300Base import M300Base ...@@ -7,7 +7,7 @@ from lib.protocol.m300.M300Base import M300Base
''' '''
class OBDCAN_protocol_m300(M300Base): class OBDCAN_protocol_m300(M300Base):
def __init__(self,waterCode = 3,DEV_ID = "M121501010001",encryptionType=0,timeInfo="2020-03-30 17:00:59",prototolType="11",statusMask="01010101010101010101" \ def __init__(self,waterCode = 3,DEV_ID = "M121501010001",encryptionType=0,timeInfo="2020-03-30 17:00:59",prototolType="11",statusMask="ffffffffffffffffffff" \
,safeStatus=0,doorStatus=0,lockStatus=0,windowStatus=0,lightStatus=0,swichStatusA=0,swichStatusB=0,dataBit=0 \ ,safeStatus=0,doorStatus=0,lockStatus=0,windowStatus=0,lightStatus=0,swichStatusA=0,swichStatusB=0,dataBit=0 \
,dataFlowMask="fffffffd",votage=360,totalMilleageType=2,totalMilleage=3000,totalOil=300,troubleLightStatus=0 \ ,dataFlowMask="fffffffd",votage=360,totalMilleageType=2,totalMilleage=3000,totalOil=300,troubleLightStatus=0 \
,troubleCodeNum=2,engineSpeed=3000,speed=60,airInletTemperature=88,coolingLiquidTemperature=76,envTemperature=65 \ ,troubleCodeNum=2,engineSpeed=3000,speed=60,airInletTemperature=88,coolingLiquidTemperature=76,envTemperature=65 \
...@@ -86,13 +86,20 @@ class OBDCAN_protocol_m300(M300Base): ...@@ -86,13 +86,20 @@ class OBDCAN_protocol_m300(M300Base):
dateInfo = self.getDateInfo(self.timeInfo) # 日期 dateInfo = self.getDateInfo(self.timeInfo) # 日期
prototolType = self.prototolType #协议类别 prototolType = self.prototolType #协议类别
statusMask = self.statusMask #状态掩码 statusMask = self.statusMask #状态掩码
safeStatus = self.getSafeStatus() #安全状态 # safeStatus = self.getSafeStatus() #安全状态
doorStatus = self.getDoorStatus() #门状态 # doorStatus = self.getDoorStatus() #门状态
lockStatus = self.getLockStatus() #锁状态 # lockStatus = self.getLockStatus() #锁状态
windowStatus = self.getWindowStatus() #窗户状态 # windowStatus = self.getWindowStatus() #窗户状态
lightStatus = self.getLightStatus() #灯状态 # lightStatus = self.getLightStatus() #灯状态
swichStatusA = self.getSwichStatusA() #开关状态A # swichStatusA = self.getSwichStatusA() #开关状态A
swichStatusB = self.getSwichStatusB() # 开关状态B # swichStatusB = self.getSwichStatusB() # 开关状态B
safeStatus = self.int2hexStringByBytes(self.safeStatus) # 安全状态
doorStatus = self.int2hexStringByBytes(self.doorStatus) # 门状态
lockStatus = self.int2hexStringByBytes(self.lockStatus) # 锁状态
windowStatus = self.int2hexStringByBytes(self.windowStatus) # 窗户状态
lightStatus = self.int2hexStringByBytes(self.lightStatus) # 灯状态
swichStatusA = self.int2hexStringByBytes(self.swichStatusA) # 开关状态A
swichStatusB = self.int2hexStringByBytes(self.swichStatusB) # 开关状态B
dataBit = self.getDataBit() #数据字节 dataBit = self.getDataBit() #数据字节
retain9 = self.int2hexStringByBytes(self.retain9) retain9 = self.int2hexStringByBytes(self.retain9)
retail10 = self.int2hexStringByBytes(self.retail10) retail10 = self.int2hexStringByBytes(self.retail10)
......
...@@ -262,7 +262,10 @@ class EventReport_protocol(ProtocolBase): ...@@ -262,7 +262,10 @@ class EventReport_protocol(ProtocolBase):
int(eventData["0022"]["dataProperty"])) int(eventData["0022"]["dataProperty"]))
data = data + "0022" + self.int2hexStringByBytes(int((len(theData) / 2)), 2) + theData data = data + "0022" + self.int2hexStringByBytes(int((len(theData) / 2)), 2) + theData
if ("0023" in eventData.keys()): #碰撞告警 if ("0023" in eventData.keys()): #碰撞告警
pass eventObj = EventClass()
theData = eventObj.collisionAlarmExtraInfo(int(eventData["0023"]["totalCount"]),
int(eventData["0023"]["dataProperty"]),)
data = data + "0023" + self.int2hexStringByBytes(int((len(theData) / 2)), 2) + theData
if ("0036" in eventData.keys()): #低档高速报警 if ("0036" in eventData.keys()): #低档高速报警
eventObj = EventClass() eventObj = EventClass()
theData = eventObj.lowGearHighSpeedAlarm(int(eventData["0036"]["alarmType"]),int(eventData["0036"]["durationTime"])) theData = eventObj.lowGearHighSpeedAlarm(int(eventData["0036"]["alarmType"]),int(eventData["0036"]["durationTime"]))
......
...@@ -90,14 +90,14 @@ class Websocket_service(SocketBase): ...@@ -90,14 +90,14 @@ class Websocket_service(SocketBase):
#给指定客户端发送消息 #给指定客户端发送消息
def sendMsgToClient(self,msg,clientId): def sendMsgToClient(self,msg,clientId):
print(self.clients)
print(self.server)
data = {} data = {}
data["code"] = "0002" data["code"] = "0002"
data["client"] = self.currentClient data["client"] = self.currentClient
data["msg"] = "收到消息:" + msg data["msg"] = "收到消息:" + msg
data = json.dumps(data) data = json.dumps(data)
self.server.send_message(self.clients[clientId],data) self.server.send_message(self.clients[clientId],data)
print(self.clients)
print(self.server)
if __name__ == "__main__": if __name__ == "__main__":
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<option value="70">PRIVATE</option> <option value="70">PRIVATE</option>
</select> </select>
</li> </li>
<li style="width:350px;"><label>状态掩码:</label><input style="width:250px;" id="statusMask" type="text" class="form-control" value="01010101010101010101"></li> <li style="width:350px;"><label>状态掩码:</label><input style="width:250px;" id="statusMask" type="text" class="form-control" value="ffffffffffffffffffff"></li>
<li style="width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;"><h4>安全状态:</h4> <li style="width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;"><h4>安全状态:</h4>
<div style="width:100%" id="safeStatus"> <div style="width:100%" id="safeStatus">
<sapn><label>ACC状态:</label><select style="width:65px;" id="accStatus" class="form-control"> <sapn><label>ACC状态:</label><select style="width:65px;" id="accStatus" class="form-control">
......
...@@ -304,6 +304,8 @@ ...@@ -304,6 +304,8 @@
<label style="padding: 0px 10px;"><input type="checkbox" id="0021" onclick="eventSelect(this)"/>急减速 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0021" onclick="eventSelect(this)"/>急减速 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0022" onclick="eventSelect(this)"/>急转弯 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0022" onclick="eventSelect(this)"/>急转弯 </label>
<label style="padding: 0px 10px;"><input type="checkbox" id="0023" 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>
<label style="padding: 0px 10px;"><input type="checkbox" id="0037" onclick="eventSelect(this)"/>高档低速报警 </label> <label style="padding: 0px 10px;"><input type="checkbox" id="0037" onclick="eventSelect(this)"/>高档低速报警 </label>
<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>
...@@ -354,6 +356,14 @@ ...@@ -354,6 +356,14 @@
<option value="2">后10秒的事件采样数据</option> <option value="2">后10秒的事件采样数据</option>
</select></span> </select></span>
</div> </div>
<div id="0023_area" style="display:none;margin-top:10px;width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;_background:skyblue;">
<h5><b>碰撞报警:</b></h5>
<span><label>历史碰撞总次数:</label><input style="width:80px;" id="0023_totalCount" type="text" class="form-control" value="5"></span>
<span><label>数据属性:</label><select style="width:200px;" id="0023_dataProperty" class="form-control">
<option value="1">前10秒的事件采样数据</option>
<option value="2">后10秒的事件采样数据</option>
</select></span>
</div>
<div id="0036_area" style="display:none;margin-top:10px;width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;_background:skyblue;"> <div id="0036_area" style="display:none;margin-top:10px;width:100%;border-width:1px;border-style:solid;border-color:darkgray;border-radius:10px;padding:2px;_background:skyblue;">
<h5><b>低档高速报警:</b></h5> <h5><b>低档高速报警:</b></h5>
<span><label>报警属性:</label> <span><label>报警属性:</label>
...@@ -585,6 +595,9 @@ function getData(){ ...@@ -585,6 +595,9 @@ function getData(){
if($("#0022").is(':checked')){ if($("#0022").is(':checked')){
data["event"]["0022"] = get0022(); //获取急转弯事件数据 data["event"]["0022"] = get0022(); //获取急转弯事件数据
} }
if($("#0023").is(':checked')){
data["event"]["0023"] = get0023(); //获取急转弯事件数据
}
if($("#0036").is(':checked')){ if($("#0036").is(':checked')){
data["event"]["0036"] = get0036(); //低档高速报警 data["event"]["0036"] = get0036(); //低档高速报警
} }
...@@ -642,6 +655,12 @@ function get0022(){ //获取急转弯 ...@@ -642,6 +655,12 @@ function get0022(){ //获取急转弯
data["dataProperty"] = $("#ST_dataProperty").val(); data["dataProperty"] = $("#ST_dataProperty").val();
return data return data
} }
function get0023(){
data = {}
data["totalCount"] = $("#0023_totalCount").val();
data["dataProperty"] = $("#0023_dataProperty").val();
return data
}
function get0036(){ //低档高速报警 function get0036(){ //低档高速报警
data = {}; data = {};
data["alarmType"] = $("#alarmType_1").val(); data["alarmType"] = $("#alarmType_1").val();
...@@ -692,6 +711,8 @@ function eventSelect(e){ ...@@ -692,6 +711,8 @@ function eventSelect(e){
$("#0021_area").css("display","block") $("#0021_area").css("display","block")
}else if($(e).attr("id") == "0022"){ }else if($(e).attr("id") == "0022"){
$("#0022_area").css("display","block") $("#0022_area").css("display","block")
}else if($(e).attr("id") == "0023"){
$("#0023_area").css("display","block")
}else if($(e).attr("id") == "0036"){ }else if($(e).attr("id") == "0036"){
$("#0036_area").css("display","block") $("#0036_area").css("display","block")
}else if($(e).attr("id") == "0037"){ }else if($(e).attr("id") == "0037"){
...@@ -710,6 +731,8 @@ function eventSelect(e){ ...@@ -710,6 +731,8 @@ function eventSelect(e){
$("#0021_area").css("display","none") $("#0021_area").css("display","none")
}else if($(e).attr("id") == "0022"){ }else if($(e).attr("id") == "0022"){
$("#0022_area").css("display","none") $("#0022_area").css("display","none")
}else if($(e).attr("id") == "0023"){
$("#0023_area").css("display","none")
}else if($(e).attr("id") == "0036"){ }else if($(e).attr("id") == "0036"){
$("#0036_area").css("display","none") $("#0036_area").css("display","none")
}else if($(e).attr("id") == "0037"){ }else if($(e).attr("id") == "0037"){
......
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