随着 Python 3.5 中新数据的出现而变化的最大值



我是编码新手,这可能有一个简单的解决方案,但基本上我正在尝试记录来自连接到Arduino的传感器的传入数据。出于我的目的,我不仅要记录传入的数据,还要记录试验的最高价值。

我拥有的代码导致仅Max_Force = 0.我的最终目标是将我正在记录的所有值也保存为最大值。最后将所有这些值链接到GUI,以便于操作员使用。

import serial
import csv
import time
import numpy as np
import warnings
import serial
import serial.tools.list_ports
arduino_ports = [
    p.device
    for p in serial.tools.list_ports.comports()
    if 'Arduino' in p.description
]
if not arduino_ports:
    raise IOError("No Arduino found")
if len(arduino_ports) > 1:
    warnings.warn('Multiple Arduinos found - using the first')
Arduino = serial.Serial(arduino_ports[0])
Arduino.flush()
Arduino.reset_input_buffer()
start_time=time.time()
Distance = 0.5 # This is how long the lever arm is in feet

with open('DynoData.csv', 'w') as outfile:
    outfileWrite = csv.writer(outfile)
    while True:
        while (Arduino.inWaiting()==0):
            pass
        try:
            data = Arduino.readline()
            dataarray = data.decode().rstrip().split(',')
            Arduino.reset_input_buffer()
            Force = round(float(dataarray[0]),3)
            Max_Force = 0
            if Max_Force < Force:
                Max_Force == Force
            else:
                Max_Force == Max_Force
            RPM = round(float (dataarray[1]),3)
            Torque = round(Force * Distance,3)
            HorsePower = round(Torque * RPM / 5252,3)
            Run_Time = round(time.time()-start_time,3)
            print (Force ,",",Max_Force )
        except (KeyboardInterrupt, SystemExit,IndexError,ValueError):
            pass
        outfileWrite.writerow([Force,",",Max_Force,"lbs", RPM, "RPMs", Torque,"ft-lbs" ,HorsePower ,"HP" ,Run_Time ,"sec" ])

由于您正在分配一个变量,因此您只使用 1 个等号。所以Max_Force == Force需要Max_Force = Force和这些行:

else:
    Max_Force == Max_Force #there should only be 1 equal sign btw

是不必要的,因为没有理由将变量设置为自身。

您还需要将Max_Force = 0移动到while True循环上方,因为您不断将Max_Value设置回 0。

最新更新