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
836043b1
Commit
836043b1
authored
Apr 10, 2020
by
liyuanhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成M500 模拟器行驶数据的持久化
parent
309013ba
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
258 additions
and
6 deletions
+258
-6
lib/socket/service/ProtocolSimulaterDataService.py
lib/socket/service/ProtocolSimulaterDataService.py
+63
-3
lib/socket/service/ProtocolSimulaterService.py
lib/socket/service/ProtocolSimulaterService.py
+50
-0
static/js/protocolTools/carsimulater.js
static/js/protocolTools/carsimulater.js
+2
-0
templates/protocolTools/report/M_carSimulaterData_page.html
templates/protocolTools/report/M_carSimulaterData_page.html
+49
-0
templates/protocolTools/report/M_carSimulater_page.html
templates/protocolTools/report/M_carSimulater_page.html
+35
-1
templates/protocolTools/setting/socketSetting.html
templates/protocolTools/setting/socketSetting.html
+1
-1
views/protocolTools/M_carSimulater_process.py
views/protocolTools/M_carSimulater_process.py
+38
-1
views/protocolTools/M_carSimulater_view.py
views/protocolTools/M_carSimulater_view.py
+20
-0
No files found.
lib/socket/service/ProtocolSimulaterDataService.py
View file @
836043b1
...
@@ -9,9 +9,17 @@ import time
...
@@ -9,9 +9,17 @@ import time
class
ProtocolSimulaterDataService
():
class
ProtocolSimulaterDataService
():
def
__init__
(
self
):
def
__init__
(
self
,
path
=
"/data/protocolTools/carData/"
,
fileName
=
"default.json"
):
self
.
data
=
{}
self
.
data
=
{}
self
.
path
=
"/data/protocolTools/carData/"
#保持车机数据文件地址
self
.
path
=
path
#保存车机数据文件地址
self
.
fileName
=
fileName
#保存车机数据文件
def
setPath
(
self
,
data
):
self
.
path
=
data
def
setFileName
(
self
,
data
):
self
.
fileName
=
data
def
setData
(
self
,
data
):
self
.
data
=
data
####################################################
####################################################
# 生成一个默认数据模板
# 生成一个默认数据模板
...
@@ -28,12 +36,55 @@ class ProtocolSimulaterDataService():
...
@@ -28,12 +36,55 @@ class ProtocolSimulaterDataService():
data
[
"curDayTravel"
][
"todayTotalMilleage"
]
=
0
#今日行驶总里程
data
[
"curDayTravel"
][
"todayTotalMilleage"
]
=
0
#今日行驶总里程
data
[
"curDayTravel"
][
"todayTotalOil"
]
=
0
#今日行驶总油耗
data
[
"curDayTravel"
][
"todayTotalOil"
]
=
0
#今日行驶总油耗
data
[
"curDayTravel"
][
"todayTotalTime"
]
=
0
#今日行驶总时间
data
[
"curDayTravel"
][
"todayTotalTime"
]
=
0
#今日行驶总时间
data
[
"curDayTravel"
][
"theMilleage"
]
=
0
#本次行驶总里程
data
[
"curDayTravel"
][
"theOil"
]
=
0
#本次行驶总油耗
data
[
"curDayTravel"
][
"theTime"
]
=
0
#本次行驶总时间
data
[
"travelData"
]
=
{}
#定义所有行驶数据
data
[
"travelData"
]
=
{}
#定义所有行驶数据
data
[
"travelData"
][
"totallMilleage"
]
=
0
#行驶总里程
data
[
"travelData"
][
"totallMilleage"
]
=
0
#行驶总里程
data
[
"travelData"
][
"totalOil"
]
=
0
#行驶总油耗
data
[
"travelData"
][
"totalOil"
]
=
0
#行驶总油耗
data
[
"travelData"
][
"totalTime"
]
=
0
#行驶总时间
data
[
"travelData"
][
"totalTime"
]
=
0
#行驶总时间
return
data
return
data
#设今日行驶总里程,同时写入文件
def
setTodayTotalMilleage
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"todayTotalMilleage"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设今日行驶总油耗,同时写入文件
def
setTodayTodayTotalOil
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"todayTotalOil"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设今日行驶总时间,同时写入文件
def
setTodayTodayTotalTime
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"todayTotalTime"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设本次行驶总里程,同时写入文件
def
setTheMilleage
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"theMilleage"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设本次行驶总油耗,同时写入文件
def
setTheOil
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"theOil"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设本次行驶总时间,同时写入文件
def
setTheTime
(
self
,
data
):
self
.
data
[
"curDayTravel"
][
"theTime"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设今日日期时间
def
setDateTime2file
(
self
,
data
):
self
.
data
[
"time"
][
"dateTime"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设今日日期
def
setData2file
(
self
,
data
):
self
.
data
[
"time"
][
"date"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
#设今日时间
def
setTime2file
(
self
,
data
):
self
.
data
[
"time"
][
"time"
]
=
data
self
.
writeToFile
(
self
.
path
+
self
.
fileName
,
self
.
data
)
####################################################
####################################################
# 将数据写入文件
# 将数据写入文件
####################################################
####################################################
...
@@ -56,10 +107,19 @@ class ProtocolSimulaterDataService():
...
@@ -56,10 +107,19 @@ class ProtocolSimulaterDataService():
timeM
=
time
.
strftime
(
"
%
H:
%
M:
%
S"
,
timeArray
)
timeM
=
time
.
strftime
(
"
%
H:
%
M:
%
S"
,
timeArray
)
if
dateM
==
conJson
[
"time"
][
"date"
]:
if
dateM
==
conJson
[
"time"
][
"date"
]:
pass
pass
else
:
else
:
#如果不是当天日期,则将日期设置为当天
conJson
[
"time"
][
"dateTime"
]
=
dateTimeM
conJson
[
"time"
][
"dateTime"
]
=
dateTimeM
conJson
[
"time"
][
"date"
]
=
dateM
conJson
[
"time"
][
"date"
]
=
dateM
conJson
[
"time"
][
"time"
]
=
timeM
conJson
[
"time"
][
"time"
]
=
timeM
data
[
"curDayTravel"
][
"todayTotalMilleage"
]
=
0
# 今日行驶总里程
data
[
"curDayTravel"
][
"todayTotalOil"
]
=
0
# 今日行驶总油耗
data
[
"curDayTravel"
][
"todayTotalTime"
]
=
0
# 今日行驶总时间
self
.
setTodayTotalMilleage
(
0
)
self
.
setTodayTodayTotalOil
(
0
)
self
.
setTodayTodayTotalTime
(
0
)
self
.
setDateTime2file
(
dateTimeM
)
self
.
setData2file
(
dateM
)
self
.
setTime2file
(
timeM
)
self
.
data
=
conJson
self
.
data
=
conJson
...
...
lib/socket/service/ProtocolSimulaterService.py
View file @
836043b1
...
@@ -5,6 +5,7 @@ M500车机模拟服务类
...
@@ -5,6 +5,7 @@ M500车机模拟服务类
'''
'''
import
binascii
import
binascii
import
json
import
json
import
os
import
threading
import
threading
import
time
import
time
import
traceback
import
traceback
...
@@ -15,12 +16,15 @@ from lib.protocol.report.GPSReport_protocol import GPSReport_protocol
...
@@ -15,12 +16,15 @@ from lib.protocol.report.GPSReport_protocol import GPSReport_protocol
from
lib.protocol.report.OBDReport_CAN_protocol
import
OBDReport_CAN_protocol
from
lib.protocol.report.OBDReport_CAN_protocol
import
OBDReport_CAN_protocol
from
lib.protocol.report.response.Common_response
import
Common_response
from
lib.protocol.report.response.Common_response
import
Common_response
from
lib.protocol.report.response.Update_response
import
Update_response
from
lib.protocol.report.response.Update_response
import
Update_response
from
lib.socket.service.ProtocolSimulaterDataService
import
ProtocolSimulaterDataService
from
lib.socket.service.websocket_service
import
Websocket_service
from
lib.socket.service.websocket_service
import
Websocket_service
class
ProtocolSimulaterService
():
class
ProtocolSimulaterService
():
def
__init__
(
self
):
def
__init__
(
self
):
self
.
data
=
{}
#用来接收模拟器传过来的参数
self
.
data
=
{}
#用来接收模拟器传过来的参数
self
.
carData
=
{}
#保存车辆行驶数据
self
.
carDataObj
=
None
#管理车辆行驶数据对象
self
.
socket
=
None
self
.
socket
=
None
self
.
sendDur
=
5
#设置默认多久发一条消息
self
.
sendDur
=
5
#设置默认多久发一条消息
self
.
serviceStatus
=
0
#服务状态,0表示未启动,1表示启动
self
.
serviceStatus
=
0
#服务状态,0表示未启动,1表示启动
...
@@ -34,6 +38,8 @@ class ProtocolSimulaterService():
...
@@ -34,6 +38,8 @@ class ProtocolSimulaterService():
self
.
travelDirection
=
0
#行驶方向,0表示正向行驶,1表示反向行驶
self
.
travelDirection
=
0
#行驶方向,0表示正向行驶,1表示反向行驶
# 定义要发送的obd数据
# 定义要发送的obd数据
self
.
OBDdata
=
{
"fireStatus"
:
1
,
"ACCStatus"
:
0
,
"engineSpeed"
:
300
,
"speed"
:
0
,
"meterMileage"
:
6000
,
"totailMileage"
:
600
,
"totalOilExpen"
:
30
,
"totalRunTime"
:
10
}
self
.
OBDdata
=
{
"fireStatus"
:
1
,
"ACCStatus"
:
0
,
"engineSpeed"
:
300
,
"speed"
:
0
,
"meterMileage"
:
6000
,
"totailMileage"
:
600
,
"totalOilExpen"
:
30
,
"totalRunTime"
:
10
}
# 定义初始的obd数据,与上面的OBD数据保持一致,主要用于汽车行驶过程中数据变化量的计算
self
.
OBDdataOri
=
{
"fireStatus"
:
1
,
"ACCStatus"
:
0
,
"engineSpeed"
:
300
,
"speed"
:
0
,
"meterMileage"
:
6000
,
"totailMileage"
:
600
,
"totalOilExpen"
:
30
,
"totalRunTime"
:
10
}
#设置套接字
#设置套接字
def
setSocket
(
self
,
data
):
def
setSocket
(
self
,
data
):
...
@@ -118,6 +124,15 @@ class ProtocolSimulaterService():
...
@@ -118,6 +124,15 @@ class ProtocolSimulaterService():
latitude
=
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lat"
]
latitude
=
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lat"
]
longitude
=
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lng"
]
longitude
=
self
.
gpsLine
[
self
.
gpsLineIndex
][
"lng"
]
gpsMsg
=
self
.
genGPSMsg
(
latitude
,
longitude
)
gpsMsg
=
self
.
genGPSMsg
(
latitude
,
longitude
)
self
.
carDataObj
.
setTodayTotalMilleage
(
self
.
carData
[
"curDayTravel"
][
"todayTotalMilleage"
]
+
self
.
OBDdata
[
"totailMileage"
]
-
self
.
OBDdataOri
[
"totailMileage"
])
self
.
carDataObj
.
setTheMilleage
(
self
.
carData
[
"curDayTravel"
][
"theMilleage"
]
+
self
.
OBDdata
[
"totailMileage"
]
-
self
.
OBDdataOri
[
"totailMileage"
])
self
.
OBDdataOri
[
"totailMileage"
]
=
self
.
OBDdata
[
"totailMileage"
]
self
.
carDataObj
.
setTodayTodayTotalOil
(
self
.
carData
[
"curDayTravel"
][
"todayTotalOil"
]
+
self
.
OBDdata
[
"totalOilExpen"
]
-
self
.
OBDdataOri
[
"totalOilExpen"
])
self
.
carDataObj
.
setTheOil
(
self
.
carData
[
"curDayTravel"
][
"theOil"
]
+
self
.
OBDdata
[
"totalOilExpen"
]
-
self
.
OBDdataOri
[
"totalOilExpen"
])
self
.
OBDdataOri
[
"totalOilExpen"
]
=
self
.
OBDdata
[
"totalOilExpen"
]
self
.
carDataObj
.
setTodayTodayTotalTime
(
self
.
carData
[
"curDayTravel"
][
"todayTotalTime"
]
+
self
.
OBDdata
[
"totalRunTime"
]
-
self
.
OBDdataOri
[
"totalRunTime"
])
self
.
carDataObj
.
setTheTime
(
self
.
carData
[
"curDayTravel"
][
"theTime"
]
+
self
.
OBDdata
[
"totalRunTime"
]
-
self
.
OBDdataOri
[
"totalRunTime"
])
self
.
OBDdataOri
[
"totalRunTime"
]
=
self
.
OBDdata
[
"totalRunTime"
]
if
OBDMsg
!=
""
:
if
OBDMsg
!=
""
:
self
.
sendMsg
(
OBDMsg
)
self
.
sendMsg
(
OBDMsg
)
self
.
sn
=
self
.
sn
+
1
self
.
sn
=
self
.
sn
+
1
...
@@ -234,6 +249,41 @@ class ProtocolSimulaterService():
...
@@ -234,6 +249,41 @@ class ProtocolSimulaterService():
#点火,发送点火事件
#点火,发送点火事件
def
fireOn
(
self
):
def
fireOn
(
self
):
if
not
os
.
path
.
exists
(
"data/protocolTools/carData/"
+
self
.
carId
+
".json"
):
psdsObj
=
ProtocolSimulaterDataService
()
data
=
psdsObj
.
genDataTemplate
()
psdsObj
.
writeToFile
(
"data/protocolTools/carData/"
+
self
.
carId
+
".json"
,
data
)
#读取车机行驶数据
with
open
(
"data/protocolTools/carData/"
+
self
.
carId
+
".json"
,
"r"
,
encoding
=
"utf-8"
)
as
fi
:
content
=
fi
.
read
()
conJson
=
json
.
loads
(
content
)
conJson
[
"curDayTravel"
][
"theMilleage"
]
=
0
# 今日行驶总里程
conJson
[
"curDayTravel"
][
"theOil"
]
=
0
# 今日行驶总油耗
conJson
[
"curDayTravel"
][
"theTime"
]
=
0
# 今日行驶总时间
timeStamp
=
time
.
time
()
timeArray
=
time
.
localtime
(
timeStamp
)
dateTimeM
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
,
timeArray
)
dateM
=
time
.
strftime
(
"
%
Y-
%
m-
%
d"
,
timeArray
)
timeM
=
time
.
strftime
(
"
%
H:
%
M:
%
S"
,
timeArray
)
dataFile
=
self
.
carId
+
".json"
self
.
carDataObj
=
ProtocolSimulaterDataService
(
"data/protocolTools/carData/"
,
dataFile
)
self
.
carDataObj
.
setData
(
conJson
)
if
dateM
==
conJson
[
"time"
][
"date"
]:
pass
else
:
#如果不是当天日期,则将日期设置为当天,并写入车辆数据文件
conJson
[
"time"
][
"dateTime"
]
=
dateTimeM
conJson
[
"time"
][
"date"
]
=
dateM
conJson
[
"time"
][
"time"
]
=
timeM
conJson
[
"curDayTravel"
][
"todayTotalMilleage"
]
=
0
# 今日行驶总里程
conJson
[
"curDayTravel"
][
"todayTotalOil"
]
=
0
# 今日行驶总油耗
conJson
[
"curDayTravel"
][
"todayTotalTime"
]
=
0
# 今日行驶总时间
self
.
carDataObj
.
setTodayTotalMilleage
(
0
)
self
.
carDataObj
.
setTodayTodayTotalOil
(
0
)
self
.
carDataObj
.
setTodayTodayTotalTime
(
0
)
self
.
carDataObj
.
setDateTime2file
(
dateTimeM
)
self
.
carDataObj
.
setData2file
(
dateM
)
self
.
carDataObj
.
setTime2file
(
timeM
)
self
.
carData
=
conJson
fireOnEventObj
=
EventReport_protocol
(
DEV_ID
=
self
.
carId
,
WATER_CODE
=
self
.
sn
)
fireOnEventObj
=
EventReport_protocol
(
DEV_ID
=
self
.
carId
,
WATER_CODE
=
self
.
sn
)
gpsData
=
self
.
genGPSData
(
self
.
gpsLine
[
0
][
"lat"
],
self
.
gpsLine
[
0
][
"lng"
])
gpsData
=
self
.
genGPSData
(
self
.
gpsLine
[
0
][
"lat"
],
self
.
gpsLine
[
0
][
"lng"
])
fireOnEventObj
.
setGPSPkg
(
gpsData
)
fireOnEventObj
.
setGPSPkg
(
gpsData
)
...
...
static/js/protocolTools/carsimulater.js
View file @
836043b1
...
@@ -8,6 +8,8 @@ function carSimulaterTab(e){
...
@@ -8,6 +8,8 @@ function carSimulaterTab(e){
$
(
location
).
attr
(
'
href
'
,
"
http://
"
+
window
.
location
.
host
+
"
/protocolTools/M_carSimulater_view/M_carSimulater_page
"
);
$
(
location
).
attr
(
'
href
'
,
"
http://
"
+
window
.
location
.
host
+
"
/protocolTools/M_carSimulater_view/M_carSimulater_page
"
);
}
else
if
(
id
==
"
setting_tab
"
){
}
else
if
(
id
==
"
setting_tab
"
){
$
(
location
).
attr
(
'
href
'
,
"
http://
"
+
window
.
location
.
host
+
"
/protocolTools/M_carSimulater_view/M_setting_page
"
);
$
(
location
).
attr
(
'
href
'
,
"
http://
"
+
window
.
location
.
host
+
"
/protocolTools/M_carSimulater_view/M_setting_page
"
);
}
else
if
(
id
==
"
carsimulaterData_tab
"
){
$
(
location
).
attr
(
'
href
'
,
"
http://
"
+
window
.
location
.
host
+
"
/protocolTools/M_carSimulater_view/M_carSimulaterData_page
"
);
}
else
{
}
else
{
alert
(
id
)
alert
(
id
)
}
}
...
...
templates/protocolTools/report/M_carSimulaterData_page.html
0 → 100644
View file @
836043b1
{% extends "protocolTools/report/M_carSimulater_page.html" %}
{% block title %}GPS_protocol{% endblock %}
{% block content_1 %}
<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;"
>
<h4>
查询今日车机行驶数据
</h4>
<span>
<label>
输入车机号:
</label><input
style=
"width:200px;"
id=
"carId"
type=
"text"
class=
"form-control"
value=
"M202003060520"
>
<button
id=
"searchCarData"
type=
"button"
class=
"btn btn-primary"
id=
"saveSetting"
>
查询
</button>
</span>
</div>
<H3
style=
"border-bottom: 1px solid #eee;"
>
返回信息:
</H3>
<div
style=
"width:100%;padding:5px;margin-top:10px;"
>
<textarea
id=
"showFeedback"
style=
"width:100%;padding:5px;"
rows=
"15"
></textarea>
</div>
</div>
<script>
//查询车机今日行驶数据
$
(
"
#searchCarData
"
).
click
(
function
(){
var
carId
=
$
(
"
#carId
"
).
val
();
var
data
=
{};
data
[
"
carId
"
]
=
carId
;
var
host
=
window
.
location
.
host
;
$
(
"
#showFeedback
"
).
val
(
""
)
$
.
ajax
({
url
:
"
http://
"
+
host
+
"
/protocolTools/M_carSimulater_process/searchCarsimulaterData
"
,
type
:
"
post
"
,
data
:
data
,
dataType
:
"
json
"
,
success
:
function
(
data
){
if
(
data
.
status
==
200
){
//window.location.reload()
msg
=
data
.
message
$
(
"
#showFeedback
"
).
val
(
msg
)
}
else
{
$
(
"
#showFeedback
"
).
val
(
data
.
message
)
alert
(
data
.
message
);
}
}
});
});
</script>
{% endblock %}
\ No newline at end of file
templates/protocolTools/report/M_carSimulater_page.html
View file @
836043b1
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
<ul
class=
"nav nav-pills"
style=
"font-size:14px;"
>
<ul
class=
"nav nav-pills"
style=
"font-size:14px;"
>
<li
role=
"presentation"
><a
id=
"setting_tab"
{%
if
arg.path[2]=
="M_setting_page"
%}
class=
"link-tab"
{%
endif
%}
onclick=
"carSimulaterTab(this)"
>
设置
</b></a></li>
<li
role=
"presentation"
><a
id=
"setting_tab"
{%
if
arg.path[2]=
="M_setting_page"
%}
class=
"link-tab"
{%
endif
%}
onclick=
"carSimulaterTab(this)"
>
设置
</b></a></li>
<li
role=
"presentation"
><a
id=
"carsimulater_tab"
{%
if
arg.path[2]=
="M_carSimulater_page"
%}
class=
"link-tab"
{%
endif
%}
onclick=
"carSimulaterTab(this)"
>
模拟器
</b></a></li>
<li
role=
"presentation"
><a
id=
"carsimulater_tab"
{%
if
arg.path[2]=
="M_carSimulater_page"
%}
class=
"link-tab"
{%
endif
%}
onclick=
"carSimulaterTab(this)"
>
模拟器
</b></a></li>
<li
role=
"presentation"
><a
id=
"carsimulaterData_tab"
{%
if
arg.path[2]=
="M_carSimulaterData_page"
%}
class=
"link-tab"
{%
endif
%}
onclick=
"carSimulaterTab(this)"
>
查询车数据
</b></a></li>
</ul>
</ul>
{% endblock %}
{% endblock %}
{% block content_1 %}
{% block content_1 %}
...
@@ -104,7 +105,16 @@
...
@@ -104,7 +105,16 @@
<h3>
日志:
</h3>
<h3>
日志:
</h3>
<textarea
id=
"showFeedback"
style=
"width:100%;padding:5px;padding-bottom:60px;"
rows=
"10"
></textarea>
<textarea
id=
"showFeedback"
style=
"width:100%;padding:5px;padding-bottom:60px;"
rows=
"10"
></textarea>
</div>
</div>
<div
style=
"width:100%;padding-bottom:10px;border-bottom: 1px solid #eee;"
>
<h4>
查询今日车机行驶数据
</h4>
<span>
<button
id=
"searchCarData"
type=
"button"
class=
"btn btn-primary"
id=
"saveSetting"
>
查询
</button>
</span>
</div>
<H3
style=
"border-bottom: 1px solid #eee;"
>
返回信息:
</H3>
<div
style=
"width:100%;padding:5px;margin-top:10px;"
>
<textarea
id=
"searchCardataShow"
style=
"width:100%;padding:5px;"
rows=
"8"
></textarea>
</div>
</div>
</div>
<script>
<script>
//通过函数获取页面参数
//通过函数获取页面参数
...
@@ -372,6 +382,30 @@ function download_sample(){
...
@@ -372,6 +382,30 @@ function download_sample(){
window
.
location
.
href
=
"
http://
"
+
host
+
"
/protocolTools/M_carSimulater_process/sampleDowload
"
window
.
location
.
href
=
"
http://
"
+
host
+
"
/protocolTools/M_carSimulater_process/sampleDowload
"
}
}
//查询车机今日行驶数据
$
(
"
#searchCarData
"
).
click
(
function
(){
var
carId
=
$
(
"
#carId
"
).
val
();
var
data
=
{};
data
[
"
carId
"
]
=
carId
;
var
host
=
window
.
location
.
host
;
$
.
ajax
({
url
:
"
http://
"
+
host
+
"
/protocolTools/M_carSimulater_process/searchCarsimulaterData
"
,
type
:
"
post
"
,
data
:
data
,
dataType
:
"
json
"
,
success
:
function
(
data
){
if
(
data
.
status
==
200
){
//window.location.reload()
msg
=
data
.
message
$
(
"
#searchCardataShow
"
).
val
(
msg
)
}
else
{
$
(
"
#searchCardataShow
"
).
val
(
data
.
message
)
alert
(
data
.
message
);
}
}
});
});
</script>
</script>
{% endblock %}
{% endblock %}
</div>
</div>
...
...
templates/protocolTools/setting/socketSetting.html
View file @
836043b1
...
@@ -62,7 +62,7 @@
...
@@ -62,7 +62,7 @@
var
host
=
window
.
location
.
host
;
var
host
=
window
.
location
.
host
;
$
.
ajax
({
$
.
ajax
({
url
:
"
http://
"
+
host
+
"
/protocolTools/setting_process/
socketSetting_page
"
,
url
:
"
http://
"
+
host
+
"
/protocolTools/setting_process/
porcessSocketSetting
"
,
type
:
"
post
"
,
type
:
"
post
"
,
data
:
data
,
data
:
data
,
dataType
:
"
json
"
,
dataType
:
"
json
"
,
...
...
views/protocolTools/M_carSimulater_process.py
View file @
836043b1
#coding:utf-8
#coding:utf-8
import
os
from
time
import
sleep
from
time
import
sleep
from
flask
import
Blueprint
,
Response
,
request
,
send_from_directory
from
flask
import
Blueprint
,
Response
,
request
,
send_from_directory
...
@@ -242,6 +243,10 @@ def reset():
...
@@ -242,6 +243,10 @@ def reset():
try
:
try
:
for
t
in
connects
:
for
t
in
connects
:
t
[
"service"
]
.
stopTravel
()
t
[
"service"
]
.
stopTravel
()
try
:
t
[
"service"
]
.
fireOff
()
except
BaseException
as
e1
:
pass
t
[
"service"
]
.
stopWebsocketService
()
t
[
"service"
]
.
stopWebsocketService
()
t
[
"service"
]
.
stopService
()
t
[
"service"
]
.
stopService
()
t
[
"service"
]
.
closeSocket
()
t
[
"service"
]
.
closeSocket
()
...
@@ -298,5 +303,37 @@ def fileUplad():
...
@@ -298,5 +303,37 @@ def fileUplad():
def
sampleDowload
():
def
sampleDowload
():
return
send_from_directory
(
r"data/protocolTools/GPSLines"
,
filename
=
"1_sample.json"
,
as_attachment
=
True
)
return
send_from_directory
(
r"data/protocolTools/GPSLines"
,
filename
=
"1_sample.json"
,
as_attachment
=
True
)
##########################################
# 【接口类型】查询车机行驶数据
##########################################
@
M_carSimulater_process
.
route
(
"/searchCarsimulaterData"
,
methods
=
[
'POST'
])
def
searchCarsimulaterData
():
carId
=
request
.
form
.
get
(
"carId"
)
data
=
{}
carFile
=
"data/protocolTools/carData/"
+
carId
+
".json"
if
not
os
.
path
.
exists
(
carFile
):
data
[
"status"
]
=
"200"
data
[
"message"
]
=
"该车机无行驶数据!"
return
Response
(
json
.
dumps
(
data
),
mimetype
=
'application/json'
)
else
:
try
:
with
open
(
carFile
,
"r"
,
encoding
=
"utf-8"
)
as
fi
:
content
=
fi
.
read
()
conJson
=
json
.
loads
(
content
)
data
[
"status"
]
=
"200"
# data["carData"] = {}
# data["carData"]["date"] = conJson["time"]["date"]
# data["carData"]["todayTotalMilleage"] = conJson["curDayTravel"]["todayTotalMilleage"]
# data["carData"]["todayTotalOil"] = conJson["curDayTravel"]["todayTotalOil"]
# data["carData"]["todayTotalTime"] = conJson["curDayTravel"]["todayTotalTime"]
data
[
"message"
]
=
"日期:"
+
conJson
[
"time"
][
"date"
]
+
"
\n
今日行驶总里程:"
+
str
(
conJson
[
"curDayTravel"
][
"todayTotalMilleage"
])
+
"(米)"
\
+
"
\n
今日行驶总油耗:"
+
str
(
conJson
[
"curDayTravel"
][
"todayTotalOil"
])
+
"(ml)"
+
"
\n
今日行驶总时间:"
+
str
(
conJson
[
"curDayTravel"
][
"todayTotalTime"
])
+
"(秒)"
\
+
"
\n
------------------
\n
本次行驶里程:"
+
str
(
conJson
[
"curDayTravel"
][
"theMilleage"
])
+
"(米)"
\
+
"
\n
本次行驶油耗:"
+
str
(
conJson
[
"curDayTravel"
][
"theOil"
])
+
"(ml)"
+
"
\n
本次行驶总时间:"
+
str
(
conJson
[
"curDayTravel"
][
"theTime"
])
+
"(秒)"
except
BaseException
as
e
:
# 打印异常信息
traceback
.
print_exc
()
data
[
"status"
]
=
"4003"
data
[
"message"
]
=
"Error: 查询车机数据失败失败!"
return
Response
(
json
.
dumps
(
data
),
mimetype
=
'application/json'
)
views/protocolTools/M_carSimulater_view.py
View file @
836043b1
...
@@ -41,3 +41,23 @@ def M_setting_page():
...
@@ -41,3 +41,23 @@ def M_setting_page():
arg
[
"socket"
][
"host"
]
=
conf_R
.
get
(
"socket"
,
"host"
)
arg
[
"socket"
][
"host"
]
=
conf_R
.
get
(
"socket"
,
"host"
)
arg
[
"socket"
][
"port"
]
=
conf_R
.
getint
(
"socket"
,
"port"
)
arg
[
"socket"
][
"port"
]
=
conf_R
.
getint
(
"socket"
,
"port"
)
return
render_template
(
path
,
arg
=
arg
)
return
render_template
(
path
,
arg
=
arg
)
##########################################
# 【视图类型】访问模拟器查询车数据页面
##########################################
@
M_carSimulater_view
.
route
(
'/M_carSimulaterData_page'
)
def
M_carSimulaterData_page
():
#获取请求的路劲
url
=
request
.
url
reqPath
=
re
.
findall
(
"http://(.*)$"
,
url
)[
0
]
reqPath
=
re
.
findall
(
"/(.*)$"
,
reqPath
)[
0
]
arg
=
{}
path
=
"protocolTools/report/M_carSimulaterData_page.html"
arg
[
"path"
]
=
reqPath
.
split
(
"/"
)
arg
[
"socket"
]
=
{}
# 读取config文件
conf_R
=
ConfigParser
()
conf_R
.
read
(
"config/protocolTools/carSimulater.conf"
)
arg
[
"socket"
][
"host"
]
=
conf_R
.
get
(
"socket"
,
"host"
)
arg
[
"socket"
][
"port"
]
=
conf_R
.
getint
(
"socket"
,
"port"
)
return
render_template
(
path
,
arg
=
arg
)
\ No newline at end of file
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