mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 02:16:53 +08:00
uorb graphs: add script to create graph from a posix startup script
This commit is contained in:
+10
-29
@@ -31,6 +31,10 @@ parser.add_argument('--use-topic-union', action='store_true',
|
|||||||
Use the union of all publication and subscription topics (useful for complete
|
Use the union of all publication and subscription topics (useful for complete
|
||||||
graphs or only few/single module(s)). The default is to use the intersection
|
graphs or only few/single module(s)). The default is to use the intersection
|
||||||
(remove topics that have no subscriber or no publisher)''')
|
(remove topics that have no subscriber or no publisher)''')
|
||||||
|
parser.add_argument('-m', '--modules', action='store',
|
||||||
|
help='Comma-separated whitelist of modules (the module\'s '+
|
||||||
|
'MAIN, e.g. from a startup script)',
|
||||||
|
default='')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -593,41 +597,18 @@ class OutputJSON:
|
|||||||
json.dump(data, outfile) # add indent=2 for readable formatting
|
json.dump(data, outfile) # add indent=2 for readable formatting
|
||||||
|
|
||||||
|
|
||||||
# SITL startup script modules
|
|
||||||
# extract with: cat typhoon_h480|cut -f1 -d' '|sort|uniq|awk '{ print ",\"" $0 "\""; }'
|
|
||||||
whitelist_sitl = [
|
|
||||||
'accelsim'
|
|
||||||
, 'adcsim'
|
|
||||||
, 'barosim'
|
|
||||||
, 'camera_trigger'
|
|
||||||
, 'commander'
|
|
||||||
, 'dataman'
|
|
||||||
, 'ekf2'
|
|
||||||
, 'gpssim'
|
|
||||||
, 'gyrosim'
|
|
||||||
, 'land_detector'
|
|
||||||
, 'logger'
|
|
||||||
, 'mavlink'
|
|
||||||
, 'mc_att_control'
|
|
||||||
, 'mc_pos_control'
|
|
||||||
, 'mixer'
|
|
||||||
, 'navigator'
|
|
||||||
, 'param'
|
|
||||||
, 'pwm_out_sim'
|
|
||||||
, 'replay'
|
|
||||||
, 'sensors'
|
|
||||||
, 'simulator'
|
|
||||||
, 'tone_alarm'
|
|
||||||
, 'uorb'
|
|
||||||
, 'vmount' ]
|
|
||||||
|
|
||||||
|
|
||||||
# ignore topics that are subscribed/published by many topics, but are not really
|
# ignore topics that are subscribed/published by many topics, but are not really
|
||||||
# useful to show in the graph
|
# useful to show in the graph
|
||||||
topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ]
|
topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ]
|
||||||
print('Excluded topics: '+str(topic_blacklist))
|
print('Excluded topics: '+str(topic_blacklist))
|
||||||
|
|
||||||
graph = Graph(module_whitelist=[], topic_blacklist=topic_blacklist)
|
if len(args.modules) == 0:
|
||||||
|
module_whitelist = []
|
||||||
|
else:
|
||||||
|
module_whitelist = [ m.strip() for m in args.modules.split(',')]
|
||||||
|
|
||||||
|
graph = Graph(module_whitelist=module_whitelist, topic_blacklist=topic_blacklist)
|
||||||
if len(args.src_path) == 0:
|
if len(args.src_path) == 0:
|
||||||
args.src_path = ['src']
|
args.src_path = ['src']
|
||||||
graph.build(args.src_path, args.exclude_path, use_topic_pubsub_union=args.use_topic_union)
|
graph.build(args.src_path, args.exclude_path, use_topic_pubsub_union=args.use_topic_union)
|
||||||
|
|||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
# create the graph from a posix (e.g. SITL) startup script
|
||||||
|
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
startup_file="$SCRIPT_DIR"/../../posix-configs/SITL/init/ekf2/typhoon_h480
|
||||||
|
[ -n "$1" ] && startup_file=$1
|
||||||
|
# get the modules as comma-separated list
|
||||||
|
modules=$(cat "$startup_file"|cut -f1 -d' '|sort|uniq|tr '\n' ,)
|
||||||
|
|
||||||
|
cd "$SCRIPT_DIR/../.."
|
||||||
|
"$SCRIPT_DIR"/create.py --src-path src -m "$modules" -f "$SCRIPT_DIR/graph_sitl"
|
||||||
|
|
||||||
Reference in New Issue
Block a user