Tools: LogAnalyzer: handle changed RCOU and parameters in motorbalance
This commit is contained in:
parent
f42df1bc54
commit
45bc95edeb
@ -1,6 +1,7 @@
|
|||||||
from LogAnalyzer import Test,TestResult
|
from LogAnalyzer import Test,TestResult
|
||||||
import DataflashLog
|
import DataflashLog
|
||||||
|
|
||||||
|
from VehicleType import VehicleType
|
||||||
|
|
||||||
class TestBalanceTwist(Test):
|
class TestBalanceTwist(Test):
|
||||||
'''test for badly unbalanced copter, including yaw twist'''
|
'''test for badly unbalanced copter, including yaw twist'''
|
||||||
@ -12,7 +13,7 @@ class TestBalanceTwist(Test):
|
|||||||
self.result = TestResult()
|
self.result = TestResult()
|
||||||
self.result.status = TestResult.StatusType.GOOD
|
self.result.status = TestResult.StatusType.GOOD
|
||||||
|
|
||||||
if logdata.vehicleType != "ArduCopter":
|
if logdata.vehicleType != VehicleType.Copter:
|
||||||
self.result.status = TestResult.StatusType.NA
|
self.result.status = TestResult.StatusType.NA
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -23,10 +24,9 @@ class TestBalanceTwist(Test):
|
|||||||
ch = []
|
ch = []
|
||||||
|
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
if "Chan"+`(i+1)` in logdata.channels["RCOU"]:
|
for prefix in "Chan", "Ch", "C":
|
||||||
ch.append(map(lambda x: x[1], logdata.channels["RCOU"]["Chan"+`(i+1)`].listData))
|
if prefix+`(i+1)` in logdata.channels["RCOU"]:
|
||||||
elif "Ch"+`(i+1)` in logdata.channels["RCOU"]:
|
ch.append(map(lambda x: x[1], logdata.channels["RCOU"][prefix+`(i+1)`].listData))
|
||||||
ch.append(map(lambda x: x[1], logdata.channels["RCOU"]["Ch"+`(i+1)`].listData))
|
|
||||||
|
|
||||||
ch = zip(*ch)
|
ch = zip(*ch)
|
||||||
num_channels = 0
|
num_channels = 0
|
||||||
@ -38,7 +38,11 @@ class TestBalanceTwist(Test):
|
|||||||
if num_channels < 2:
|
if num_channels < 2:
|
||||||
return
|
return
|
||||||
|
|
||||||
min_throttle = logdata.parameters["RC3_MIN"] + logdata.parameters["THR_MIN"] / (logdata.parameters["RC3_MAX"]-logdata.parameters["RC3_MIN"])/1000.0
|
try:
|
||||||
|
min_throttle = logdata.parameters["RC3_MIN"] + logdata.parameters["THR_MIN"] / (logdata.parameters["RC3_MAX"]-logdata.parameters["RC3_MIN"])/1000.0
|
||||||
|
except KeyError as e:
|
||||||
|
min_throttle = logdata.parameters["MOT_PWM_MIN"] / (logdata.parameters["MOT_PWM_MAX"]-logdata.parameters["RC3_MIN"])/1000.0
|
||||||
|
|
||||||
ch = filter(lambda x:sum(x)/num_channels > min_throttle, ch)
|
ch = filter(lambda x:sum(x)/num_channels > min_throttle, ch)
|
||||||
|
|
||||||
if len(ch) == 0:
|
if len(ch) == 0:
|
||||||
|
Loading…
Reference in New Issue
Block a user