Skip to content

Commit

Permalink
Merge pull request #49 from abrignoni/VLEAPP_Working
Browse files Browse the repository at this point in the history
Ram 1500 parser
  • Loading branch information
abrignoni authored Apr 6, 2024
2 parents f6bcf03 + b5b4cbe commit e5ad65b
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 15 deletions.
79 changes: 79 additions & 0 deletions scripts/artifacts/logparser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import csv
import os
import re
import tarfile
import datetime
from pathlib import Path

from scripts.artifact_report import ArtifactHtmlReport
from scripts.ilapfuncs import logfunc, tsv, logdevinfo, kmlgen, timeline, is_platform_windows

#Compatability Data
vehicles = ['RAM 1500']
platforms = []

def timeorder(line):
month = line.split('/', 3)[0]
day = line.split('/', 3)[1]
yeartime = line.split('/', 3)[2]
year = yeartime.split(' ')[0]
time = yeartime.split(' ')[1]
timestamp = f'{year}-{month}-{day} {time}'
return timestamp

def get_logparser(files_found, report_folder, seeker, wrap_text, time_offset):
data_list = []

for file_found in files_found:
#logfunc(' ')
#logfunc(file_found)
basename = os.path.basename(file_found)
with open(file_found, 'r', encoding='cp437') as f:
for line in f:
if '[INFO] LocationDistributor[KONA-LIB] Location details: ' in line:
linesplit = line.split('[INFO] LocationDistributor[KONA-LIB] Location details: ')[1]
linesplit = linesplit.split(';')
latitude = linesplit[1].split(' ')[2]
longitude = linesplit[2].split(' ')[2]
altitude = linesplit[4].split(' ')[2]
horzac = linesplit[5].split(' ')[3]
vertac = linesplit[6].split(' ')[3]
times = linesplit[7].split(' ')[3]
times = int(times)
times = datetime.datetime.utcfromtimestamp(times).strftime('%Y-%m-%d %H:%M:%S')
course = linesplit[8].split(' ')[2]
speed = linesplit[9].split(' ')[2]
azimuth = linesplit[10].split(' ')[2]
locm = linesplit[11].split(' ')[3]

data_list.append((times, latitude, longitude, horzac, vertac, altitude, course, speed, azimuth, basename))

if len(data_list) > 0:
report = ArtifactHtmlReport('GPS Locations from Logs')
report.start_artifact_report(report_folder, f'GPS Locations from Logs')
report.add_script()
data_headers_dev = ('Timestamp','Latitude','Longitude', 'Horizontal Accuracy', 'Vertical Accuracy', 'Altitude', 'Course', 'Speed', 'Azimuth', 'Log Filename')
pathname = os.path.dirname(file_found)
report.write_artifact_data_table(data_headers_dev, data_list, pathname)
report.end_artifact_report()

tsvname = f'GPS Locations from Logs'
tsv(report_folder, data_headers_dev , data_list, tsvname)

tlactivity = 'GPS Locations from Logs'
timeline(report_folder, tlactivity, data_list, data_headers_dev)

kmlactivity = 'GPS Locations from Logs'
kmlgen(report_folder, kmlactivity, data_list, data_headers_dev)

else:
logfunc(f'No GPS Locations from Logs results available')



__artifacts__ = {
"logparser": (
"logparser",
('*/persistentLogs/*/Log*'),
get_logparser)
}
43 changes: 28 additions & 15 deletions scripts/artifacts/pasDeGeoTarGz.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from scripts.ilapfuncs import logfunc, tsv, logdevinfo, kmlgen, timeline, is_platform_windows

#Compatability Data
vehicles = ['Ford Mustang','F-150']
platforms = ['SYNC3.2V2','SYNCGen3.0_3.0.18093_PRODUCT','SyncGen3_v2_b', 'SYNCGen3.0_1.0.15139_PRODUCT']
vehicles = ['RAM 1500']
platforms = []

def timeorder(line):
month = line.split('/', 3)[0]
Expand Down Expand Up @@ -84,9 +84,12 @@ def get_pasDeGeoTarGz(files_found, report_folder, seeker, wrap_text, time_offset
data_list_apinfo.append((timestamp, extractedbssid, ssid, signalstrenght, basename))

if 'nv_navigation/main/CI->SI' and '] currentRoad' in line:
timestamp = timeorder(line)
currentroad = line.split('panaAPI notice - ] [')[1].split('] currentRoad')[0]
data_list_curroad.append((timestamp, currentroad, basename))
try:
timestamp = timeorder(line)
currentroad = line.split('panaAPI notice - ] [')[1].split('] currentRoad')[0]
data_list_curroad.append((timestamp, currentroad, basename))
except:
logfunc(f'Error on current road: {line}')

#Done
if '[SAL_SWITCH_DISPLAY] Received speed:' in line:
Expand Down Expand Up @@ -136,11 +139,9 @@ def get_pasDeGeoTarGz(files_found, report_folder, seeker, wrap_text, time_offset
lineparts = line.strip().split(':')
data_list_odometer.append((timestampLink, lineparts[-1].strip(), basename))

if '"vin" :' in line:
#print(timestampLink)
#print(line)
lineparts = line.strip().split(':')
vin = lineparts[-1].strip().replace('"','')
if '"vin":' in line:
vind = (line.split('vin')[1].split(',')[0])
vin = (vind.split('"')[2])
if vin not in vinlist:
vinlist.append(vin)

Expand All @@ -154,9 +155,21 @@ def get_pasDeGeoTarGz(files_found, report_folder, seeker, wrap_text, time_offset
linepartsma = line.strip().split(':')
make = linepartsma[-1].strip().replace('"','')

if '"model"' in line:
linepartsmo = line.strip().split(':')
model = linepartsmo[-1].strip().replace('"','')
if 'Model_Id::' in line:
model = (line.split('Model_Id::')[1].split(' ')[0])
number = (line.split('Model_Id::')[1].split(' ')[1])
model = f'{model} {number}'

if '=Vehicle Model Year = ' in line:
yearc = line.split('=Vehicle Model Year = ')[1]


try:
if yearc:
logdevinfo(f'Model Year from pas_debug in tar.gz: {yearc}')
except:
pass

try:
if make:
logdevinfo(f'Make from pas_debug: {make}')
Expand All @@ -165,13 +178,13 @@ def get_pasDeGeoTarGz(files_found, report_folder, seeker, wrap_text, time_offset

try:
if model:
logdevinfo(f'Model from pas_debug: {model}')
logdevinfo(f'Model from pas_debug in tar.gz: {model}')
except:
pass

if len(vinlist) > 0:
for item in vinlist:
logdevinfo(f"VIN from pas_debug: {item}")
logdevinfo(f"VIN from pas_debug in tar.gz: {item}")

if len(platformversion) > 0:
for item in platformversion:
Expand Down
17 changes: 17 additions & 0 deletions scripts/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,11 @@
'APPLE MAPS SEARCH HISTORY': 'search',
'default': 'map-pin',
},
'LOGPARSER': {
'GPS LOCATIONS FROM LOGS': 'map-pin',
'USER': 'user',
'_mode': 'search',
},
'MAP-MY-WALK': {
'ACTIVITIES': 'map',
'USER': 'user',
Expand Down Expand Up @@ -627,6 +632,17 @@
'ODOMETER': 'plus-circle',
'default': 'archive',
},
'PAS_DEBUGTARGZ': {
'GPS LOCATIONS': 'map-pin',
'CURRENT ROAD': 'map',
'ROAD SPEED LIMITS': 'target',
'ACCESS POINT LIST': 'wifi',
'VEHICLE SPEED': 'trending-up',
'TRANSMISSION STATUS': 'corner-up-right',
'OUTSIDE TEMPERATURE': 'thermometer',
'ODOMETER': 'plus-circle',
'default': 'archive',
},
'PERMISSIONS': 'check',
'PHONE BOOK DB': 'smartphone',
'PHONE CONFIG': 'smartphone',
Expand Down Expand Up @@ -1134,3 +1150,4 @@ def mark_item_active(data, itemname):
ret = data[0: pos] + " active" + data[pos:]
return ret


0 comments on commit e5ad65b

Please sign in to comment.