2017-10-21 234 views
-1

我對編碼更新,這可能有一個簡單的解決方案,但基本上我試圖記錄來自連接到Arduino的傳感器的輸入數據。爲了我的目的,我希望不僅記錄即將到來的數據,而且還記錄審判所獲得的最高價值。隨着Python 3.5新數據的變化,最大值發生變化

我有的代碼只會導致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" ]) 

回答

0

由於您正在分配變量,因此只能使用1等號。所以​​需求是Max_Force = Force和這些行:

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

是不必要的,因爲沒有任何理由的變量設置爲本身。

您還需要移動Max_Force = 0while True以上循環,因爲你不斷設置Max_Value回到0

+0

我曾經嘗試這樣做,以及,因此它只是使Max_Force值總是等於原力值,而不管原來的警隊價值。你還有其他建議嗎? –

+0

是否有可能我需要另一個變量,我設置Max_Force等於使它不僅僅是每個迭代的相同數字? –

+1

@MatthewEspindolaMunn:每次迭代都分配'Max_Force = 0'。不要這樣做。 –