Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
new-socketemulator
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李远洪
new-socketemulator
Commits
e1f21335
Commit
e1f21335
authored
4 years ago
by
liyuanhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
M500图形模拟器增加急左变道和急右变道功能
parent
997b7fc0
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
224 additions
and
25 deletions
+224
-25
lib/protocol/appendix/EventClass.py
lib/protocol/appendix/EventClass.py
+54
-2
lib/protocol/report/EventReport_protocol.py
lib/protocol/report/EventReport_protocol.py
+14
-7
lib/socket/service/ProtocolSimulaterService.py
lib/socket/service/ProtocolSimulaterService.py
+4
-0
templates/base.html
templates/base.html
+1
-1
templates/otherTools/maptool.html
templates/otherTools/maptool.html
+20
-7
templates/protocolTools/report/M_carSimulater_page.html
templates/protocolTools/report/M_carSimulater_page.html
+25
-1
views/otherTools/mapTools_process.py
views/otherTools/mapTools_process.py
+7
-7
views/protocolTools/M_carSimulater_process.py
views/protocolTools/M_carSimulater_process.py
+99
-0
No files found.
lib/protocol/appendix/EventClass.py
View file @
e1f21335
...
@@ -197,7 +197,7 @@ class EventClass(ProtocolBase):
...
@@ -197,7 +197,7 @@ class EventClass(ProtocolBase):
data
=
totalCount
+
dataProperty
+
extraInfo
data
=
totalCount
+
dataProperty
+
extraInfo
return
data
return
data
#
16
碰撞报警前后10秒采样数据附带信息
#
0023-ex
碰撞报警前后10秒采样数据附带信息
def
collisionSamplingData
(
self
):
def
collisionSamplingData
(
self
):
GPSSampleData
=
self
.
GPSDataFromSeconds
(
10
)
#GPS 采样点 ,N秒内的GPS采样数据,170个字节
GPSSampleData
=
self
.
GPSDataFromSeconds
(
10
)
#GPS 采样点 ,N秒内的GPS采样数据,170个字节
CANSampleData
=
self
.
CANDataFromSeconds
(
10
)
#CAN采样点 ,N秒内的CAN采样数据,90个字节
CANSampleData
=
self
.
CANDataFromSeconds
(
10
)
#CAN采样点 ,N秒内的CAN采样数据,90个字节
...
@@ -267,7 +267,7 @@ class EventClass(ProtocolBase):
...
@@ -267,7 +267,7 @@ class EventClass(ProtocolBase):
def
SENSORDataFromSeconds
(
self
,
counts
):
def
SENSORDataFromSeconds
(
self
,
counts
):
data
=
""
data
=
""
for
i
in
range
(
0
,
counts
):
for
i
in
range
(
0
,
counts
):
data
+=
self
.
int2hexStringByBytes
(
30
,
2
)
#第N秒内的第N个0.5秒内的平均加速度值
data
+=
self
.
int2hexStringByBytes
(
30
,
2
)
#
第N秒内的第N个0.5秒内的平均加速度值
return
data
return
data
# 0027 超速报警
# 0027 超速报警
...
@@ -284,6 +284,58 @@ class EventClass(ProtocolBase):
...
@@ -284,6 +284,58 @@ class EventClass(ProtocolBase):
data
=
alarmTypeHex
+
durTimeHex
data
=
alarmTypeHex
+
durTimeHex
return
data
return
data
# 002A 急变道报警
def
rapidChangeLanes
(
self
,
nums
=
1
,
direction
=
1
,
lng
=
106.54041
,
lat
=
29.40268
):
numHex
=
self
.
int2hexStringByBytes
(
nums
,
2
)
# 急变道总次数
directionHex
=
self
.
int2hexStringByBytes
(
direction
)
# 急变道方向
dataAttrHex
=
self
.
int2hexStringByBytes
(
1
)
# 数据属性
gpsesHex
=
self
.
getGpsSampleData002A
(
lng
,
lat
)
temp1
=
gpsesHex
for
i
in
range
(
0
,
9
):
gpsesHex
=
gpsesHex
+
temp1
CANesHex
=
self
.
getCanSampleData002A
()
temp2
=
CANesHex
for
i
in
range
(
0
,
9
):
CANesHex
=
CANesHex
+
temp2
sensorStatusHex
=
self
.
int2hexStringByBytes
(
2
)
sensorDataHex
=
self
.
getSensorSampleData
()
data
=
numHex
+
directionHex
+
dataAttrHex
+
gpsesHex
+
CANesHex
+
sensorStatusHex
+
sensorDataHex
return
data
pass
# 002A -ex Gps采样数据项
def
getGpsSampleData002A
(
self
,
lng
=
106.54041
,
lat
=
29.40268
):
lngHex
=
self
.
int2hexStringByBytes
(
int
(
lng
*
1000000
),
4
)
latHex
=
self
.
int2hexStringByBytes
(
int
(
lat
*
1000000
),
4
)
speecHex
=
self
.
int2hexStringByBytes
(
60
,
2
)
directionHex
=
self
.
int2hexStringByBytes
(
590
,
2
)
altitudeHex
=
self
.
int2hexStringByBytes
(
10000
,
4
)
statusHexBit
=
self
.
int2hexStringByBytes
(
1
)
data
=
lngHex
+
latHex
+
speecHex
+
directionHex
+
altitudeHex
+
statusHexBit
return
data
# 002A - ex CAN采样数据项
def
getCanSampleData002A
(
self
):
speedHex
=
self
.
int2hexStringByBytes
(
60
)
engineSpeedHex
=
self
.
int2hexStringByBytes
(
3000
,
2
)
brakeHex
=
self
.
int2hexStringByBytes
(
0
)
acceleratorLocationHex
=
self
.
int2hexStringByBytes
(
50
,
2
)
airDamperHex
=
self
.
int2hexStringByBytes
(
100
,
2
)
troubleCodeNumHex
=
self
.
int2hexStringByBytes
(
0
)
data
=
speedHex
+
engineSpeedHex
+
brakeHex
+
acceleratorLocationHex
+
airDamperHex
+
troubleCodeNumHex
return
data
# 002A - ex sensor采样点
def
getSensorSampleData
(
self
):
xHex
=
self
.
int2hexStringByBytes
(
10
,
2
)
yHex
=
self
.
int2hexStringByBytes
(
10
,
2
)
sensorHex
=
xHex
+
yHex
temp
=
sensorHex
for
i
in
range
(
0
,
19
):
sensorHex
=
sensorHex
+
temp
return
sensorHex
# 0030 水温报警
# 0030 水温报警
def
waterTemperatureAlarm
(
self
,
alarmType
=
0
,
curWaterTemperature
=
80
):
def
waterTemperatureAlarm
(
self
,
alarmType
=
0
,
curWaterTemperature
=
80
):
alarmTypeHex
=
self
.
int2hexStringByBytes
(
alarmType
)
alarmTypeHex
=
self
.
int2hexStringByBytes
(
alarmType
)
...
...
This diff is collapsed.
Click to expand it.
lib/protocol/report/EventReport_protocol.py
View file @
e1f21335
...
@@ -288,34 +288,41 @@ class EventReport_protocol(ProtocolBase):
...
@@ -288,34 +288,41 @@ class EventReport_protocol(ProtocolBase):
int
(
eventData
[
"0022"
][
"direction"
]),
int
(
eventData
[
"0022"
][
"direction"
]),
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
()):
#
碰撞告警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
collisionAlarmExtraInfo
(
int
(
eventData
[
"0023"
][
"totalCount"
]),
theData
=
eventObj
.
collisionAlarmExtraInfo
(
int
(
eventData
[
"0023"
][
"totalCount"
]),
int
(
eventData
[
"0023"
][
"dataProperty"
]),)
int
(
eventData
[
"0023"
][
"dataProperty"
]),)
data
=
data
+
"0023"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0023"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"0027"
in
eventData
.
keys
()):
#超速告警
if
(
"0027"
in
eventData
.
keys
()):
#
超速告警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
overSpeedAlarm
(
int
(
eventData
[
"0027"
][
"alarmType"
]),
theData
=
eventObj
.
overSpeedAlarm
(
int
(
eventData
[
"0027"
][
"alarmType"
]),
int
(
eventData
[
"0027"
][
"durationTime"
]))
int
(
eventData
[
"0027"
][
"durationTime"
]))
data
=
data
+
"0027"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0027"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"0028"
in
eventData
.
keys
()):
#疲劳驾驶告警
if
(
"0028"
in
eventData
.
keys
()):
#
疲劳驾驶告警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
tiredDrivingAlarm
(
int
(
eventData
[
"0028"
][
"alarmType"
]),
theData
=
eventObj
.
tiredDrivingAlarm
(
int
(
eventData
[
"0028"
][
"alarmType"
]),
int
(
eventData
[
"0028"
][
"durationTime"
]),)
int
(
eventData
[
"0028"
][
"durationTime"
]),)
data
=
data
+
"0028"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0028"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"0032"
in
eventData
.
keys
()):
#怠速时间过长报警
if
(
"002A"
in
eventData
.
keys
()):
# 急变道告警
eventObj
=
EventClass
()
theData
=
eventObj
.
rapidChangeLanes
(
int
(
eventData
[
"002A"
][
"nums"
]),
int
(
eventData
[
"002A"
][
"direction"
]),
float
(
eventData
[
"002A"
][
"lng"
]),
float
(
eventData
[
"002A"
][
"lat"
]))
data
=
data
+
"002A"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"0032"
in
eventData
.
keys
()):
# 怠速时间过长报警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
idlingOverTime
(
int
(
eventData
[
"0032"
][
"alarmType"
]),
int
(
eventData
[
"0032"
][
"durationTime"
]),
int
(
eventData
[
"0032"
][
"oilExpend"
]))
theData
=
eventObj
.
idlingOverTime
(
int
(
eventData
[
"0032"
][
"alarmType"
]),
int
(
eventData
[
"0032"
][
"durationTime"
]),
int
(
eventData
[
"0032"
][
"oilExpend"
]))
data
=
data
+
"0032"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0032"
+
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"
]))
data
=
data
+
"0036"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0036"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"0037"
in
eventData
.
keys
()):
#高档低速报警
if
(
"0037"
in
eventData
.
keys
()):
#
高档低速报警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
lowGearHighSpeedAlarm
(
int
(
eventData
[
"0037"
][
"alarmType"
]),
int
(
eventData
[
"0037"
][
"durationTime"
]))
theData
=
eventObj
.
lowGearHighSpeedAlarm
(
int
(
eventData
[
"0037"
][
"alarmType"
]),
int
(
eventData
[
"0037"
][
"durationTime"
]))
data
=
data
+
"0037"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"0037"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
if
(
"004A"
in
eventData
.
keys
()):
#高档低速报警
if
(
"004A"
in
eventData
.
keys
()):
#
高档低速报警
eventObj
=
EventClass
()
eventObj
=
EventClass
()
theData
=
eventObj
.
surplusOilAlarm
(
int
(
eventData
[
"004A"
][
"surplusOilType"
]),
int
(
eventData
[
"004A"
][
"value"
]))
theData
=
eventObj
.
surplusOilAlarm
(
int
(
eventData
[
"004A"
][
"surplusOilType"
]),
int
(
eventData
[
"004A"
][
"value"
]))
data
=
data
+
"004A"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
data
=
data
+
"004A"
+
self
.
int2hexStringByBytes
(
int
((
len
(
theData
)
/
2
)),
2
)
+
theData
...
...
This diff is collapsed.
Click to expand it.
lib/socket/service/ProtocolSimulaterService.py
View file @
e1f21335
...
@@ -116,6 +116,10 @@ class ProtocolSimulaterService():
...
@@ -116,6 +116,10 @@ class ProtocolSimulaterService():
return
self
.
carData
return
self
.
carData
def
getTravelDirection
(
self
):
def
getTravelDirection
(
self
):
return
self
.
travelDirection
return
self
.
travelDirection
def
getLatitude
(
self
):
return
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lat"
]
def
getLongitude
(
self
):
return
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lng"
]
#######################################################
#######################################################
# type 为0表示正常发送,type为1表示数据写入本地
# type 为0表示正常发送,type为1表示数据写入本地
...
...
This diff is collapsed.
Click to expand it.
templates/base.html
View file @
e1f21335
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<div
class=
"top_nav"
>
<div
class=
"top_nav"
>
<div
style=
"background:#222222;height:50px;"
>
<div
style=
"background:#222222;height:50px;"
>
<a
href=
"#"
style=
"color: #eeeeee;font-size:18px;position: absolute;left: 10px;margin-top: 5px;text-decoration:none;"
><img
style=
"height:40px;"
src=
"../../static/img/victory.png"
><b>
测试工具平台
</b></a>
<a
href=
"#"
style=
"color: #eeeeee;font-size:18px;position: absolute;left: 10px;margin-top: 5px;text-decoration:none;"
><img
style=
"height:40px;"
src=
"../../static/img/victory.png"
><b>
测试工具平台
</b></a>
<a
style=
"position: absolute;right: 20px;margin-top: 5px;"
href=
"http://10.100.11.5/liyuanhong/new-socketemulator"
><img
style=
"height: 40px;"
src=
"../../static/img/gitlab.png"
></a
>
<!-- <a style="position: absolute;right: 20px;margin-top: 5px;" href="http://10.100.11.5/liyuanhong/new-socketemulator"><img style="height: 40px;" src="../../static/img/gitlab.png"></a>--
>
</div>
</div>
<div
style=
"width: 70%;margin: 0 auto"
>
<div
style=
"width: 70%;margin: 0 auto"
>
<ul
class=
"nav nav-tabs"
style=
"font-size:18px;"
>
<ul
class=
"nav nav-tabs"
style=
"font-size:18px;"
>
...
...
This diff is collapsed.
Click to expand it.
templates/otherTools/maptool.html
View file @
e1f21335
...
@@ -304,7 +304,7 @@
...
@@ -304,7 +304,7 @@
showDir
:
true
,
showDir
:
true
,
strokeColor
:
"
#28F
"
,
//线颜色
strokeColor
:
"
#28F
"
,
//线颜色
// strokeOpacity: 1, //线透明度
// strokeOpacity: 1, //线透明度
strokeWeight
:
3
,
//线宽
strokeWeight
:
5
,
//线宽
// strokeStyle: "solid" //线样式
// strokeStyle: "solid" //线样式
});
});
$
(
"
#pointNums
"
).
text
(
lineLen
);
$
(
"
#pointNums
"
).
text
(
lineLen
);
...
@@ -336,7 +336,7 @@
...
@@ -336,7 +336,7 @@
showDir
:
true
,
showDir
:
true
,
strokeColor
:
"
#28F
"
,
//线颜色
strokeColor
:
"
#28F
"
,
//线颜色
// strokeOpacity: 1, //线透明度
// strokeOpacity: 1, //线透明度
strokeWeight
:
3
,
//线宽
strokeWeight
:
5
,
//线宽
// strokeStyle: "solid" //线样式
// strokeStyle: "solid" //线样式
});
});
...
@@ -381,7 +381,7 @@
...
@@ -381,7 +381,7 @@
function
showInputLine
(){
function
showInputLine
(){
var
lineInputTxt
=
$
(
"
#lineData1
"
).
val
();
var
lineInputTxt
=
$
(
"
#lineData1
"
).
val
();
var
lineInputShowArr
=
[];
var
lineInputShowArr
=
[];
try
{
try
{
//json格式的gpsline
$
.
parseJSON
(
lineInputTxt
);
$
.
parseJSON
(
lineInputTxt
);
lineInputShowArr
=
$
.
parseJSON
(
lineInputTxt
)[
"
GPSLine
"
];
lineInputShowArr
=
$
.
parseJSON
(
lineInputTxt
)[
"
GPSLine
"
];
var
lineInputShowArr1
=
[]
var
lineInputShowArr1
=
[]
...
@@ -392,7 +392,7 @@
...
@@ -392,7 +392,7 @@
lineInputShowArr1
.
push
(
temp
);
lineInputShowArr1
.
push
(
temp
);
}
}
lineInputShowArr
=
lineInputShowArr1
;
lineInputShowArr
=
lineInputShowArr1
;
}
catch
(
e
){
}
catch
(
e
){
//非json格式的gpsline
var
lineInputArr
=
lineInputTxt
.
split
(
"
\n
"
);
var
lineInputArr
=
lineInputTxt
.
split
(
"
\n
"
);
for
(
var
i
=
0
;
i
<
lineInputArr
.
length
;
i
++
){
for
(
var
i
=
0
;
i
<
lineInputArr
.
length
;
i
++
){
lineInputShowArr
.
push
(
lineInputArr
[
i
].
split
(
"
,
"
));
lineInputShowArr
.
push
(
lineInputArr
[
i
].
split
(
"
,
"
));
...
@@ -415,7 +415,7 @@
...
@@ -415,7 +415,7 @@
showDir
:
true
,
showDir
:
true
,
strokeColor
:
"
#28F
"
,
//线颜色
strokeColor
:
"
#28F
"
,
//线颜色
// strokeOpacity: 1, //线透明度
// strokeOpacity: 1, //线透明度
strokeWeight
:
6
,
//线宽
strokeWeight
:
5
,
//线宽
// strokeStyle: "solid" //线样式
// strokeStyle: "solid" //线样式
});
});
map
.
setCenter
(
centerPoint
);
map
.
setCenter
(
centerPoint
);
...
@@ -471,16 +471,29 @@
...
@@ -471,16 +471,29 @@
dataType
:
"
json
"
,
dataType
:
"
json
"
,
success
:
function
(
data
){
success
:
function
(
data
){
if
(
data
.
status
==
200
){
if
(
data
.
status
==
200
){
var
modGpsLines
=
data
[
"
gpsLines
"
];
var
modGpsLines
=
data
[
"
GPSLine
"
];
if
(
showLineObj
!=
undefined
){
if
(
showLineObj
!=
undefined
){
map
.
remove
(
showLineObj
);
map
.
remove
(
showLineObj
);
}
}
/**
for(var j = 0;j < modGpsLines.length;j++){
for(var j = 0;j < modGpsLines.length;j++){
var cvtGps = coordtransform.wgs84togcj02(parseFloat(modGpsLines[j][0]), parseFloat(modGpsLines[j][1]));
var cvtGps = coordtransform.wgs84togcj02(parseFloat(modGpsLines[j][0]), parseFloat(modGpsLines[j][1]));
cvtGps[0] = cvtGps[0].toFixed(6);
cvtGps[0] = cvtGps[0].toFixed(6);
cvtGps[1] = cvtGps[1].toFixed(6);
cvtGps[1] = cvtGps[1].toFixed(6);
modGpsLines[j] = cvtGps;
modGpsLines[j] = cvtGps;
}
}
*/
var
lineInputShowArr1
=
[]
for
(
var
j
=
0
;
j
<
modGpsLines
.
length
;
j
++
){
var
temp
=
[];
temp
[
0
]
=
parseFloat
(
modGpsLines
[
j
][
"
lng
"
]);
temp
[
1
]
=
parseFloat
(
modGpsLines
[
j
][
"
lat
"
]);
var
cvtGps
=
coordtransform
.
wgs84togcj02
(
temp
[
0
],
temp
[
1
]);
temp
[
0
]
=
cvtGps
[
0
].
toFixed
(
6
);
temp
[
1
]
=
cvtGps
[
1
].
toFixed
(
6
);
lineInputShowArr1
.
push
(
temp
);
}
modGpsLines
=
lineInputShowArr1
;
var
centerPoint
=
modGpsLines
[
parseInt
(
modGpsLines
.
length
/
2
)];
var
centerPoint
=
modGpsLines
[
parseInt
(
modGpsLines
.
length
/
2
)];
// 绘制轨迹
// 绘制轨迹
showLineObj
=
new
AMap
.
Polyline
({
showLineObj
=
new
AMap
.
Polyline
({
...
@@ -489,7 +502,7 @@
...
@@ -489,7 +502,7 @@
showDir
:
true
,
showDir
:
true
,
strokeColor
:
"
#28F
"
,
//线颜色
strokeColor
:
"
#28F
"
,
//线颜色
// strokeOpacity: 1, //线透明度
// strokeOpacity: 1, //线透明度
strokeWeight
:
6
,
//线宽
strokeWeight
:
5
,
//线宽
// strokeStyle: "solid" //线样式
// strokeStyle: "solid" //线样式
});
});
map
.
setCenter
(
centerPoint
);
map
.
setCenter
(
centerPoint
);
...
...
This diff is collapsed.
Click to expand it.
templates/protocolTools/report/M_carSimulater_page.html
View file @
e1f21335
...
@@ -154,6 +154,8 @@
...
@@ -154,6 +154,8 @@
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"tiredDriving_check"
onclick=
"eventSelect(this)"
checked
/>
疲劳驾驶
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"tiredDriving_check"
onclick=
"eventSelect(this)"
checked
/>
疲劳驾驶
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"idlingOverTime_check"
onclick=
"eventSelect(this)"
checked
/>
怠速过长
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"idlingOverTime_check"
onclick=
"eventSelect(this)"
checked
/>
怠速过长
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"idlingOverTimeOver_check"
onclick=
"eventSelect(this)"
checked
/>
怠速过长(解除)
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"idlingOverTimeOver_check"
onclick=
"eventSelect(this)"
checked
/>
怠速过长(解除)
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"rapidChangeLeftLanes_check"
onclick=
"eventSelect(this)"
checked
/>
急左变道
</label>
<label
style=
"padding: 0px 10px;"
><input
type=
"checkbox"
id=
"rapidChangeRightLanes_check"
onclick=
"eventSelect(this)"
checked
/>
急右变道
</label>
</div>
</div>
<div
style=
"padding:10px;"
>
<div
style=
"padding:10px;"
>
<span
id=
"insertAlarm_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendInsertAlarmEvent(this)"
>
终端插入报警
</button></label></span>
<span
id=
"insertAlarm_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendInsertAlarmEvent(this)"
>
终端插入报警
</button></label></span>
...
@@ -173,6 +175,8 @@
...
@@ -173,6 +175,8 @@
<span
id=
"tiredDriving_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendTiredDrivingAlarmEvent(this)"
>
疲劳驾驶
</button></label></span>
<span
id=
"tiredDriving_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendTiredDrivingAlarmEvent(this)"
>
疲劳驾驶
</button></label></span>
<span
id=
"idlingOverTime_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendIdlingOverTimeEvent(this)"
title=
"300秒,300毫升"
>
怠速过长
</button></label></span>
<span
id=
"idlingOverTime_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendIdlingOverTimeEvent(this)"
title=
"300秒,300毫升"
>
怠速过长
</button></label></span>
<span
id=
"idlingOverTimeOver_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendIdlingOverTimeOverEvent(this)"
title=
"500秒,500毫升"
>
怠速过长(解除)
</button></label></span>
<span
id=
"idlingOverTimeOver_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendIdlingOverTimeOverEvent(this)"
title=
"500秒,500毫升"
>
怠速过长(解除)
</button></label></span>
<span
id=
"rapidChangeLeftLanes_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendRapidChangeLeftLanesEvent(this)"
>
急左变道
</button></label></span>
<span
id=
"rapidChangeRightLanes_button"
style=
"display:inline;"
><button
type=
"button"
class=
"btn btn-primary"
onclick=
"sendRapidChangeRightLanesEvent(this)"
>
急右变道
</button></label></span>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -800,7 +804,12 @@ function eventSelect(e){
...
@@ -800,7 +804,12 @@ function eventSelect(e){
$
(
"
#idlingOverTime_button
"
).
css
(
"
display
"
,
"
inline
"
)
$
(
"
#idlingOverTime_button
"
).
css
(
"
display
"
,
"
inline
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
idlingOverTimeOver_check
"
){
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
idlingOverTimeOver_check
"
){
$
(
"
#idlingOverTimeOver_button
"
).
css
(
"
display
"
,
"
inline
"
)
$
(
"
#idlingOverTimeOver_button
"
).
css
(
"
display
"
,
"
inline
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
rapidChangeLeftLanes_check
"
){
$
(
"
#rapidChangeLeftLanes_button
"
).
css
(
"
display
"
,
"
inline
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
rapidChangeRightLanes_check
"
){
$
(
"
#rapidChangeRightLanes_button
"
).
css
(
"
display
"
,
"
inline
"
)
}
}
}
else
{
}
else
{
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
insertAlarm_check
"
){
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
insertAlarm_check
"
){
$
(
"
#insertAlarm_button
"
).
css
(
"
display
"
,
"
none
"
)
$
(
"
#insertAlarm_button
"
).
css
(
"
display
"
,
"
none
"
)
...
@@ -836,6 +845,10 @@ function eventSelect(e){
...
@@ -836,6 +845,10 @@ function eventSelect(e){
$
(
"
#idlingOverTime_button
"
).
css
(
"
display
"
,
"
none
"
)
$
(
"
#idlingOverTime_button
"
).
css
(
"
display
"
,
"
none
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
idlingOverTimeOver_check
"
){
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
idlingOverTimeOver_check
"
){
$
(
"
#idlingOverTimeOver_button
"
).
css
(
"
display
"
,
"
none
"
)
$
(
"
#idlingOverTimeOver_button
"
).
css
(
"
display
"
,
"
none
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
rapidChangeLeftLanes_check
"
){
$
(
"
#rapidChangeLeftLanes_button
"
).
css
(
"
display
"
,
"
none
"
)
}
else
if
(
$
(
e
).
attr
(
"
id
"
)
==
"
rapidChangeRightLanes_check
"
){
$
(
"
#rapidChangeRightLanes_button
"
).
css
(
"
display
"
,
"
none
"
)
}
}
}
}
}
}
...
@@ -941,7 +954,18 @@ function sendIdlingOverTimeOverEvent(){
...
@@ -941,7 +954,18 @@ function sendIdlingOverTimeOverEvent(){
url
=
"
/protocolTools/M_carSimulater_process/sendIdlingOverTimeOverEvent
"
;
url
=
"
/protocolTools/M_carSimulater_process/sendIdlingOverTimeOverEvent
"
;
sendjson
(
data
,
url
);
sendjson
(
data
,
url
);
}
}
//急左变道告警
function
sendRapidChangeLeftLanesEvent
(){
var
data
=
getPageData
()
url
=
"
/protocolTools/M_carSimulater_process/sendRapidChangeLeftLanes
"
;
sendjson
(
data
,
url
);
}
//急右变道告警
function
sendRapidChangeRightLanesEvent
(){
var
data
=
getPageData
()
url
=
"
/protocolTools/M_carSimulater_process/sendRapidChangeRightLanes
"
;
sendjson
(
data
,
url
);
}
// -------------------------------- 实时控制js代码-------------------------------------------
// -------------------------------- 实时控制js代码-------------------------------------------
//设置隐藏或显示实时控制区域
//设置隐藏或显示实时控制区域
function
isShowRealTimeCtrArea
(
e
){
function
isShowRealTimeCtrArea
(
e
){
...
...
This diff is collapsed.
Click to expand it.
views/otherTools/mapTools_process.py
View file @
e1f21335
...
@@ -63,14 +63,14 @@ def getGPSLineData():
...
@@ -63,14 +63,14 @@ def getGPSLineData():
content
=
fi
.
read
()
content
=
fi
.
read
()
conJson
=
json
.
loads
(
content
)
conJson
=
json
.
loads
(
content
)
gpsLines
=
conJson
[
"GPSLine"
]
gpsLines
=
conJson
[
"GPSLine"
]
theGpsLines
=
[]
# theGpsLines = []
for
item
in
gpsLines
:
# for item in gpsLines:
tem
=
[]
# tem = []
tem
.
append
(
float
(
item
[
"lng"
]
.
replace
(
"
\n
"
,
""
)))
# tem.append(float(item["lng"].replace("\n","")))
tem
.
append
(
float
(
item
[
"lat"
]
.
replace
(
"
\n
"
,
""
)))
# tem.append(float(item["lat"].replace("\n","")))
theGpsLines
.
append
(
tem
)
data
[
"status"
]
=
"200"
data
[
"status"
]
=
"200"
data
[
"gpsLines"
]
=
theGpsLines
# data["gpsLines"] = theGpsLines
data
[
"GPSLine"
]
=
gpsLines
elif
(
type
==
1
):
elif
(
type
==
1
):
with
open
(
"data/m300Tools/GPSLines/"
+
gpsLine
,
"r"
,
encoding
=
"utf-8"
)
as
fi
:
with
open
(
"data/m300Tools/GPSLines/"
+
gpsLine
,
"r"
,
encoding
=
"utf-8"
)
as
fi
:
content
=
fi
.
read
()
content
=
fi
.
read
()
...
...
This diff is collapsed.
Click to expand it.
views/protocolTools/M_carSimulater_process.py
View file @
e1f21335
...
@@ -1268,6 +1268,105 @@ def sendIdlingOverTimeOverEvent():
...
@@ -1268,6 +1268,105 @@ def sendIdlingOverTimeOverEvent():
data
[
"message"
]
=
"Error: 发送怠速解除告警事件失败!"
data
[
"message"
]
=
"Error: 发送怠速解除告警事件失败!"
return
Response
(
json
.
dumps
(
data
),
mimetype
=
'application/json'
)
return
Response
(
json
.
dumps
(
data
),
mimetype
=
'application/json'
)
##########################################
# 【接口类型】发送急左变道报警
##########################################
@
M_carSimulater_process
.
route
(
"/sendRapidChangeLeftLanes"
,
methods
=
[
'POST'
])
def
sendRapidChangeLeftLanes
():
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"
]
travelStatus
=
service
.
getTravelStatus
()
#获取汽车行驶状态
if
travelStatus
==
0
or
travelStatus
==
2
:
data
[
"status"
]
=
"4003"
data
[
"message"
]
=
"Error: 汽车还未行驶,不可发送急左变道告警事件!"
elif
travelStatus
==
1
:
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"
:
{
"002A"
:
{
"nums"
:
1
,
"direction"
:
1
,
"lng"
:
106.54041
,
"lat"
:
29.40268
}}}
jdata
[
"DEV_ID"
]
=
params
[
"carId"
]
lng
=
service
.
getLongitude
()
lat
=
service
.
getLatitude
()
jdata
[
"event"
][
"002A"
][
"lng"
]
=
lng
jdata
[
"event"
][
"002A"
][
"lat"
]
=
lat
obj
=
EventReport_protocol
(
data
=
jdata
)
obj
.
setEventType
(
"002A"
)
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
(
"/sendRapidChangeRightLanes"
,
methods
=
[
'POST'
])
def
sendRapidChangeRightLanes
():
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"
]
travelStatus
=
service
.
getTravelStatus
()
#获取汽车行驶状态
if
travelStatus
==
0
or
travelStatus
==
2
:
data
[
"status"
]
=
"4003"
data
[
"message"
]
=
"Error: 汽车还未行驶,不可发送急右变道告警事件!"
elif
travelStatus
==
1
:
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"
:
{
"002A"
:
{
"nums"
:
1
,
"direction"
:
0
,
"lng"
:
106.54041
,
"lat"
:
29.40268
}}}
jdata
[
"DEV_ID"
]
=
params
[
"carId"
]
lng
=
service
.
getLongitude
()
lat
=
service
.
getLatitude
()
jdata
[
"event"
][
"002A"
][
"lng"
]
=
lng
jdata
[
"event"
][
"002A"
][
"lat"
]
=
lat
obj
=
EventReport_protocol
(
data
=
jdata
)
obj
.
setEventType
(
"002A"
)
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'
)
#--------------------------------------- 实时控制逻辑 ---------------------------------------
#--------------------------------------- 实时控制逻辑 ---------------------------------------
##########################################
##########################################
# 【接口类型】改变车速
# 【接口类型】改变车速
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment