Commit e7f83f82 authored by liyuanhong's avatar liyuanhong

添加了可控日志的输出

parent f46ce3c4
0
\ No newline at end of file
{"time": {"dateTime": "2020-04-26 17:03:02", "date": "2020-04-26", "time": "17:03:02"}, "curDayTravel": {"todayTotalMilleage": 14190, "todayTotalOil": 1290, "todayTotalTime": 645, "theMilleage": 36102, "theOil": 3282, "theTime": 1641}, "travelData": {"totalMilleage": 36102, "totalOil": 3282, "totalTime": 1641}}
\ No newline at end of file
{"time": {"dateTime": "2020-06-17 10:22:01", "date": "2020-06-17", "time": "10:22:01"}, "curDayTravel": {"todayTotalMilleage": 3498, "todayTotalOil": 318, "todayTotalTime": 159, "theMilleage": 39600, "theOil": 3600, "theTime": 1800}, "travelData": {"totalMilleage": 39600, "totalOil": 3600, "totalTime": 1800}}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import os
import random
import threading
import time
import traceback
from lib.protocol.report.EventReport_protocol import EventReport_protocol
from lib.protocol.report.GPSReport_protocol import GPSReport_protocol
......@@ -39,6 +40,7 @@ class AutoCarTimerService():
self.oilExpend = 10 #设置汽车每升能跑多少公里
self.carSpeed = 60 #设置车速度
self.directAngle = 59 #设置默认方向角
self.isLogOut = 0 #是否输入日志文件,0代表不输出,1代表输出
# 定义要发送的obd数据
self.OBDdata = {"fireStatus":1,"ACCStatus":0,"engineSpeed":300,"speed":0,"meterMileage":6000,"totailMileage":600,"totalOilExpen":30,"totalRunTime":10}
# 定义初始的obd数据,与上面的OBD数据保持一致,主要用于汽车行驶过程中数据变化量的计算
......@@ -100,6 +102,7 @@ class AutoCarTimerService():
######################################################
def serviceTravel(self):
while self.serviceStatus == 1:
self.isLogOut = int(self.getFileContent("config/log.conf"))
gpsMsg = ""
OBDMsg = ""
if self.travelStatus == 0:
......@@ -159,10 +162,17 @@ class AutoCarTimerService():
time.sleep(0.1)
self.sendMsg(gpsMsg)
self.sn = self.sn + 1
if self.isLogOut == 1:
timeS = int(time.time())
timeArray = time.localtime(timeS)
datetime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
self.writeToFile("data/log.txt","[" + datetime + "]gps msg:" + gpsMsg + "\n", type=1)
self.writeToFile("data/log.txt","[" + datetime + "]obd msg:" + OBDMsg + "\n", type=1)
time.sleep(self.sendDur)
######################################################
#点火,发送点火事件
######################################################
......@@ -271,6 +281,12 @@ class AutoCarTimerService():
print(info)
self.writeToFile("result.txt", info + "\n", 1)
#读取文件内容
def getFileContent(self,file):
with open(file, "r", encoding="utf-8") as fi:
content = fi.read()
return content
#随机获取一条GPS 轨迹
def getRandomGpsLine(self):
files = os.listdir("data/protocolTools/GPSLines/")
......@@ -308,21 +324,34 @@ class AutoCarTimerService():
# 根据特定参数,生成OBD CAN消息
def genOBDMsg(self,fireStatus=1,ACCStatus=0,engineSpeed=300,speed=0,meterMileage=6000, \
totailMileage=600,totalOilExpend=30,totalRunTime=10):
OBDObj = OBDReport_CAN_protocol(DEV_ID=self.carId,WATER_CODE=self.sn)
timeS = int(time.time()) - 8 * 3600
timeArray = time.localtime(timeS)
UTCTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
OBDObj.setInfoTime(UTCTime)
OBDObj.setFireStatus(fireStatus)
OBDObj.setACCStatus(ACCStatus)
OBDObj.setEngineSpeed(engineSpeed) # 设置发动机转速
OBDObj.setSpeed(speed) # 设置车辆速度
OBDObj.setMeterMileage(meterMileage) # 设置仪表里程值
OBDObj.setTotalMileage(totailMileage) # 设置总里程值
OBDObj.setTotalOilExpend(totalOilExpend) # 设置总耗油量
OBDObj.setTotalRunTime(totalRunTime) # 设置车辆运行时间
msg = OBDObj.generateOBDReportCANMsg()
return msg
try:
OBDObj = OBDReport_CAN_protocol(DEV_ID=self.carId,WATER_CODE=self.sn)
timeS = int(time.time()) - 8 * 3600
timeArray = time.localtime(timeS)
UTCTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
OBDObj.setInfoTime(UTCTime)
OBDObj.setFireStatus(fireStatus)
OBDObj.setACCStatus(ACCStatus)
OBDObj.setEngineSpeed(engineSpeed) # 设置发动机转速
OBDObj.setSpeed(speed) # 设置车辆速度
OBDObj.setMeterMileage(meterMileage) # 设置仪表里程值
OBDObj.setTotalMileage(totailMileage) # 设置总里程值
OBDObj.setTotalOilExpend(totalOilExpend) # 设置总耗油量
OBDObj.setTotalRunTime(totalRunTime) # 设置车辆运行时间
msg = OBDObj.generateOBDReportCANMsg()
return msg
except BaseException as e:
# 打印异常信息
# traceback.print_exc()
timeS = int(time.time())
timeArray = time.localtime(timeS)
datetime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
err = traceback.format_exc()
if self.isLogOut == 1:
self.writeToFile("data/log.txt", "[" + datetime + "]", type=1)
self.writeToFile("data/log.txt",err,type=1)
#收到 某些类型的消息后执行回复操作
def doResponse(self,msg):
......
This diff is collapsed.
#utf-8
import time
import traceback
from lib.socket.service.AutoCarTimerService import AutoCarTimerService
#写入文件
def writeToFile(path,data,type=1): #:代表追加 0:代表覆盖
if(type == 1):
with open(path, "a", encoding='utf-8') as fi:
fi.write(data)
else:
with open(path, "w", encoding='utf-8') as fi:
fi.write(data)
def startSimulaterService():
autoCarObj = AutoCarTimerService()
autoCarObj.setHost("10.100.12.32") # 设置主机地址
autoCarObj.setPort(9008) # 设置端口号
autoCarObj.setCarId("M202003060520") #设置车机号
autoCarObj.setSendDur(1) # 设置发送消息的间隔时间
autoCarObj.setSendDur(3) # 设置发送消息的间隔时间
autoCarObj.setTimeout(30) # 设置socket超时时间
autoCarObj.setOilExpend(10) # 设置1L 油跑多少公里
autoCarObj.setSpeed(80) #设置车速,每小时多少公里
......@@ -19,10 +29,18 @@ def startSimulaterService():
如果想要每天的9点自动执行一次轨迹行驶,则设置:year=0,month=0,day=0,hour=9,minute=0,second=0
如果想要每天的9点30自动执行一次轨迹行驶,则设置:year=0,month=0,day=0,hour=9,minute=30,second=0
'''
autoCarObj.startService(year=0,month=0,day=0,hour=0,minute=0,second=1)
autoCarObj.startService(year=0,month=0,day=0,hour=0,minute=46,second=0)
if __name__ == "__main__":
startSimulaterService()
try:
startSimulaterService()
except BaseException as e:
timeS = int(time.time())
timeArray = time.localtime(timeS)
datetime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
err = traceback.format_exc()
writeToFile("data/log1.txt", "[" + datetime + "]", type=1)
writeToFile("data/log1.txt", err, type=1)
......
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