From fc992694049b5148f83e1d6cc36b18877698d4c1 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 19 Nov 2021 09:46:46 +0300 Subject: [PATCH 1/7] selfcheck.py: remove timestamps from selfcheck reports --- clover/src/selfcheck.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py index 25e413e1..0c79746e 100755 --- a/clover/src/selfcheck.py +++ b/clover/src/selfcheck.py @@ -43,6 +43,8 @@ from mavros import mavlink rospy.init_node('selfcheck') +os.environ['ROSCONSOLE_FORMAT']='[${severity}]: ${message}' + tf_buffer = tf2_ros.Buffer() tf_listener = tf2_ros.TransformListener(tf_buffer) From 365bd4146a81adc15579ba3c632f38d3b3c44224 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 19 Nov 2021 09:47:07 +0300 Subject: [PATCH 2/7] selfcheck.py: add gzclient and gzserver to cpu eaters whitelist --- clover/src/selfcheck.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py index 0c79746e..8224a5d4 100755 --- a/clover/src/selfcheck.py +++ b/clover/src/selfcheck.py @@ -620,7 +620,7 @@ def check_boot_duration(): @check('CPU usage') def check_cpu_usage(): - WHITELIST = 'nodelet', + WHITELIST = 'nodelet', 'gzclient', 'gzserver' CMD = "top -n 1 -b -i | tail -n +8 | awk '{ printf(\"%-8s\\t%-8s\\t%-8s\\n\", $1, $9, $12); }'" output = subprocess.check_output(CMD, shell=True).decode() processes = output.split('\n') From 9dc4407afced8dae307d82969d9ccff92a054ded Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 19 Nov 2021 09:47:45 +0300 Subject: [PATCH 3/7] selfcheck.py: make not finding vcgencmd not a failure --- clover/src/selfcheck.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py index 8224a5d4..971f253e 100755 --- a/clover/src/selfcheck.py +++ b/clover/src/selfcheck.py @@ -755,7 +755,7 @@ def check_rpi_health(): # with some of the FLAGs OR'ed together output = subprocess.check_output(['vcgencmd', 'get_throttled']).decode() except OSError: - failure('could not call vcgencmd binary; not a Raspberry Pi?') + info('could not call vcgencmd binary; not a Raspberry Pi?') return throttle_mask = int(output.split('=')[1], base=16) From 15551db840c8dd61bc6e5071e066c33320f80cd0 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Mon, 22 Nov 2021 20:10:39 +0300 Subject: [PATCH 4/7] docs: add redirect from /gpio --- redirects.json | 1 + 1 file changed, 1 insertion(+) diff --git a/redirects.json b/redirects.json index 17bdfd70..9c75611d 100644 --- a/redirects.json +++ b/redirects.json @@ -63,6 +63,7 @@ { "from": "power/", "to": "en/power.html" }, { "from": "connection/", "to": "en/connection.html" }, { "from": "clover_vm/", "to": "en/simulation_vm.html" }, + { "from": "gpio/", "to": "en/gpio.html" }, { "from": "ru/microsd_images.html", "to": "image.html" }, { "from": "en/microsd_images.html", "to": "image.html" } From fe588e7af97a989b4aff2abbbcc4501e6078c57e Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Mon, 22 Nov 2021 20:16:10 +0300 Subject: [PATCH 5/7] blocks: raise exception when cannot connect to pigpiod --- clover_blocks/www/python.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clover_blocks/www/python.js b/clover_blocks/www/python.js index afc7ae09..1589cfdf 100644 --- a/clover_blocks/www/python.js +++ b/clover_blocks/www/python.js @@ -464,7 +464,7 @@ Blockly.Python.led_count = function(block) { function pigpio() { Blockly.Python.definitions_['import_pigpio'] = 'import pigpio'; - Blockly.Python.definitions_['init_pigpio'] = 'pi = pigpio.pi()'; + Blockly.Python.definitions_['init_pigpio'] = 'pi = pigpio.pi()\nif not pi.connected: raise Exception(\'Cannot connect to pigpiod\')'; } const GPIO_READ = `\ndef gpio_read(pin): From 528be179e650fcd2eb7036da484af78ae4acc317 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Thu, 25 Nov 2021 22:49:31 +0300 Subject: [PATCH 6/7] selfcheck.py: parse warnings from error log correctly --- clover/src/selfcheck.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py index 971f253e..d9514018 100755 --- a/clover/src/selfcheck.py +++ b/clover/src/selfcheck.py @@ -648,13 +648,13 @@ def check_clover_service(): elif 'failed' in output: failure('service failed to run, check your launch-files') - r = re.compile(r'^(.*)\[(FATAL|ERROR)\] \[\d+.\d+\]: (.*?)(\x1b(.*))?$') + r = re.compile(r'^(.*)\[(FATAL|ERROR| WARN)\] \[\d+.\d+\]: (.*?)(\x1b(.*))?$') error_count = OrderedDict() try: for line in open('/tmp/clover.err', 'r'): node_error = r.search(line) if node_error: - msg = node_error.groups()[1] + ': ' + node_error.groups()[2] + msg = node_error.groups()[1].strip() + ': ' + node_error.groups()[2] if msg in error_count: error_count[msg] += 1 else: From f1783bdd0beb7b59186dc9f1e33d723c5b2628ce Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Thu, 25 Nov 2021 22:54:45 +0300 Subject: [PATCH 7/7] selfcheck.py: ignore some records of error log in report --- clover/src/selfcheck.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py index d9514018..93668958 100755 --- a/clover/src/selfcheck.py +++ b/clover/src/selfcheck.py @@ -648,10 +648,19 @@ def check_clover_service(): elif 'failed' in output: failure('service failed to run, check your launch-files') + BLACKLIST = 'Unexpected command 520', 'Time jump detected' + r = re.compile(r'^(.*)\[(FATAL|ERROR| WARN)\] \[\d+.\d+\]: (.*?)(\x1b(.*))?$') error_count = OrderedDict() try: for line in open('/tmp/clover.err', 'r'): + skip = False + for substr in BLACKLIST: + if substr in line: + skip = True + if skip: + continue + node_error = r.search(line) if node_error: msg = node_error.groups()[1].strip() + ': ' + node_error.groups()[2]