Take output filename as cmdline argument, align cell voltage index, added timestamp

This commit is contained in:
Yeongdo Park 2020-12-10 11:12:08 -08:00
parent 65201ad875
commit 2688750caf
2 changed files with 15 additions and 4 deletions

14
Main.py
View file

@ -1,5 +1,7 @@
import Messages import Messages
import time import time
import datetime
import argparse
from ProcessList import process_list from ProcessList import process_list
from WriteToFile import report from WriteToFile import report
from PCANBasic import * from PCANBasic import *
@ -7,14 +9,20 @@ from PCANBasic import TPCANTimestamp, TPCANMsg
#import matplotlib.pyplot as plt #import matplotlib.pyplot as plt
#import numpy as np #import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("-o", "--output", help="log file name", required=True)
args = parser.parse_args()
id_response = 0x7BB id_response = 0x7BB
id_periodic = 0x1DB id_periodic = 0x1DB
filename = args.output # input("Please Enter a File Name: ")
# Initialize PCAN device and set filter for incoming messages with ID id_response # Initialize PCAN device and set filter for incoming messages with ID id_response
PCAN = PCANBasic() PCAN = PCANBasic()
res = PCAN.Initialize(PCAN_USBBUS1, PCAN_BAUD_500K) res = PCAN.Initialize(PCAN_USBBUS1, PCAN_BAUD_500K)
#PCAN.FilterMessages(PCAN_USBBUS1, id_response, id_response, PCAN_MESSAGE_STANDARD) #PCAN.FilterMessages(PCAN_USBBUS1, id_response, id_response, PCAN_MESSAGE_STANDARD)
filename = input("Please Enter a File Name: ")
# Infinite loop runs until program is closed # Infinite loop runs until program is closed
@ -115,7 +123,9 @@ while True:
charge_string = charge_byte1 + charge_byte2 + charge_byte3 charge_string = charge_byte1 + charge_byte2 + charge_byte3
pack_charge = float(int(charge_string, 2))/10000 pack_charge = float(int(charge_string, 2))/10000
report_string = report(vv, pack_voltage, pack_current, pack_health, pack_charge) tnow = datetime.datetime.now()
report_string = report(vv, pack_voltage, pack_current, pack_health, pack_charge, tnow.ctime())
print (report_string) print (report_string)
with open(filename, "a") as f: with open(filename, "a") as f:
f.write(report_string) f.write(report_string)

View file

@ -1,11 +1,12 @@
def report (vv, pack_voltage, pack_current, pack_health, pack_charge): def report (vv, pack_voltage, pack_current, pack_health, pack_charge, timestamp):
return ( return (
"\n".join([ "\n".join([
"Cell {} = {:.3f}\t\t\tCell {} = {:.3f}".format(str(i+1), vv[i], str(i+49), vv[i+48]) "Cell {:2d} = {:.3f}\t\t\tCell {:2d} = {:.3f}".format((i+1), vv[i], (i+49), vv[i+48])
for i in range(48)]) + for i in range(48)]) +
"\nCell Voltage Sum = {:.2f}".format(sum(vv)) + "\nCell Voltage Sum = {:.2f}".format(sum(vv)) +
"\nPack Voltage = {:.2f} V" .format(pack_voltage) + "\nPack Voltage = {:.2f} V" .format(pack_voltage) +
"\nPack Current = {:.2f} A" .format(pack_current) + "\nPack Current = {:.2f} A" .format(pack_current) +
"\nState of Health = {:.2f} %" .format(pack_health) + "\nState of Health = {:.2f} %" .format(pack_health) +
"\nState of Charge = {:.2f} %" .format(pack_charge) + "\nState of Charge = {:.2f} %" .format(pack_charge) +
"\nTime = {}" .format(timestamp) +
"\n") "\n")