diff --git a/Tools/LogAnalyzer/tests/TestGPSGlitch.py b/Tools/LogAnalyzer/tests/TestGPSGlitch.py index 6580cde6e4..b8aa903e8a 100644 --- a/Tools/LogAnalyzer/tests/TestGPSGlitch.py +++ b/Tools/LogAnalyzer/tests/TestGPSGlitch.py @@ -1,5 +1,4 @@ -from LogAnalyzer import Test,TestResult -import DataflashLog +from LogAnalyzer import Test, TestResult class TestGPSGlitch(Test): @@ -10,12 +9,12 @@ class TestGPSGlitch(Test): self.name = "GPS" def findSatsChan(self, channels): - for chan in "NSats","NSat","numSV": + for chan in "NSats", "NSat", "numSV": if chan in channels: return channels[chan] def findHDopChan(self, channels): - for chan in "HDop","HDp","EPH": + for chan in "HDop", "HDp", "EPH": if chan in channels: return channels[chan] @@ -28,21 +27,27 @@ class TestGPSGlitch(Test): self.result.statusMessage = "No GPS log data" return - # glitch protection is currently copter-only, but might be added to other vehicle types later and there's no harm in leaving the test in for all + # glitch protection is currently copter-only, but might be + # added to other vehicle types later and there's no harm in + # leaving the test in for all gpsGlitchCount = 0 if "ERR" in logdata.channels: - assert(len(logdata.channels["ERR"]["Subsys"].listData) == len(logdata.channels["ERR"]["ECode"].listData)) + assert(len(logdata.channels["ERR"]["Subsys"].listData) == + len(logdata.channels["ERR"]["ECode"].listData)) for i in range(len(logdata.channels["ERR"]["Subsys"].listData)): subSys = logdata.channels["ERR"]["Subsys"].listData[i][1] - eCode = logdata.channels["ERR"]["ECode"].listData[i][1] + eCode = logdata.channels["ERR"]["ECode"].listData[i][1] if subSys == 11 and (eCode == 2): gpsGlitchCount += 1 if gpsGlitchCount: self.result.status = TestResult.StatusType.FAIL - self.result.statusMessage = "GPS glitch errors found (%d)" % gpsGlitchCount + self.result.statusMessage = ("GPS glitch errors found (%d)" % + gpsGlitchCount) - # define and check different thresholds for WARN level and FAIL level - # TODO: for plane, only check after first instance of throttle > 0, or after takeoff if we can reliably detect it + # define and check different thresholds for WARN level and + # FAIL level + # TODO: for plane, only check after first instance of throttle + # > 0, or after takeoff if we can reliably detect it minSatsWARN = 6 minSatsFAIL = 5 maxHDopWARN = 3.0 @@ -50,12 +55,14 @@ class TestGPSGlitch(Test): satsChan = self.findSatsChan(logdata.channels["GPS"]) hdopChan = self.findHDopChan(logdata.channels["GPS"]) foundBadSatsWarn = satsChan.min() < minSatsWARN - foundBadHDopWarn = hdopChan.max() > maxHDopWARN + foundBadHDopWarn = hdopChan.max() > maxHDopWARN foundBadSatsFail = satsChan.min() < minSatsFAIL - foundBadHDopFail = hdopChan.max() > maxHDopFAIL - satsMsg = "Min satellites: %s, Max HDop: %s" % (satsChan.min(), hdopChan.max()) + foundBadHDopFail = hdopChan.max() > maxHDopFAIL + satsMsg = ("Min satellites: %s, Max HDop: %s" % + (satsChan.min(), hdopChan.max())) if gpsGlitchCount: - self.result.statusMessage = self.result.statusMessage + "\n" + satsMsg + self.result.statusMessage = "\n".join(self.result.statusMessage, + satsMsg) if foundBadSatsFail or foundBadHDopFail: if not gpsGlitchCount: self.result.status = TestResult.StatusType.FAIL @@ -64,5 +71,3 @@ class TestGPSGlitch(Test): if not gpsGlitchCount: self.result.status = TestResult.StatusType.WARN self.result.statusMessage = satsMsg - -