Merge branch 'bringup-m2' into bringup-m1

This commit is contained in:
Mark Charlebois
2015-06-11 20:40:35 -07:00
3 changed files with 53 additions and 55 deletions
+2 -2
View File
@@ -4,9 +4,9 @@
[submodule "NuttX"] [submodule "NuttX"]
path = NuttX path = NuttX
url = git://github.com/PX4/NuttX.git url = git://github.com/PX4/NuttX.git
[submodule "uavcan"] [submodule "libuavcan"]
path = src/lib/uavcan path = src/lib/uavcan
url = git://github.com/pavel-kirienko/uavcan.git url = git://github.com/UAVCAN/libuavcan.git
[submodule "Tools/genmsg"] [submodule "Tools/genmsg"]
path = Tools/genmsg path = Tools/genmsg
url = https://github.com/ros/genmsg.git url = https://github.com/ros/genmsg.git
+37 -38
View File
@@ -38,8 +38,7 @@ for index,m in enumerate(raw_messages):
num_messages = len(messages); num_messages = len(messages);
print print("""
print """
/**************************************************************************** /****************************************************************************
* *
@@ -93,12 +92,12 @@ print """
#include <stdint.h> #include <stdint.h>
#define __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS
#include <inttypes.h> #include <inttypes.h>
""" """)
for m in messages: for m in messages:
print "#include <uORB/topics/%s.h>" % m print("#include <uORB/topics/%s.h>" % m)
print """ print("""
extern "C" __EXPORT int listener_main(int argc, char *argv[]); extern "C" __EXPORT int listener_main(int argc, char *argv[]);
int listener_main(int argc, char *argv[]) { int listener_main(int argc, char *argv[]) {
@@ -108,45 +107,45 @@ int listener_main(int argc, char *argv[]) {
printf("need at least two arguments: topic name, number of messages to print\\n"); printf("need at least two arguments: topic name, number of messages to print\\n");
return 1; return 1;
} }
""" """)
print "\tuint32_t num_msgs = (uint32_t)std::stoi(argv[2],NULL,10);" print("\tuint32_t num_msgs = (uint32_t)std::stoi(argv[2],NULL,10);")
print "\tif(strncmp(argv[1],\"%s\",50)== 0) {" % messages[0] print("\tif(strncmp(argv[1],\"%s\",50)== 0) {" % messages[0])
print "\t\tsub = orb_subscribe(ORB_ID(%s));" % messages[0] print("\t\tsub = orb_subscribe(ORB_ID(%s));" % messages[0])
print "\t\tID = ORB_ID(%s);" % messages[0] print("\t\tID = ORB_ID(%s);" % messages[0])
print "\t\tstruct %s_s container;" % messages[0] print("\t\tstruct %s_s container;" % messages[0])
print "\t\tmemset(&container, 0, sizeof(container));" print("\t\tmemset(&container, 0, sizeof(container));")
for index,m in enumerate(messages[1:]): for index,m in enumerate(messages[1:]):
print "\t} else if(strncmp(argv[1],\"%s\",50) == 0) {" % m print("\t} else if(strncmp(argv[1],\"%s\",50) == 0) {" % m)
print "\t\tsub = orb_subscribe(ORB_ID(%s));" % m print("\t\tsub = orb_subscribe(ORB_ID(%s));" % m)
print "\t\tID = ORB_ID(%s);" % m print("\t\tID = ORB_ID(%s);" % m)
print "\t\tstruct %s_s container;" % m print("\t\tstruct %s_s container;" % m)
print "\t\tmemset(&container, 0, sizeof(container));" print("\t\tmemset(&container, 0, sizeof(container));")
print "\t\tbool updated;" print("\t\tbool updated;")
print "\t\tfor(uint32_t i = 0;i<num_msgs;i++) {" print("\t\tfor(uint32_t i = 0;i<num_msgs;i++) {")
print "\t\t\torb_check(sub,&updated);" print("\t\t\torb_check(sub,&updated);")
print "\t\t\tupdated = true;" print("\t\t\tupdated = true;")
print "\t\t\tif(updated) {" print("\t\t\tif(updated) {")
print "\t\t\torb_copy(ID,sub,&container);" print("\t\t\torb_copy(ID,sub,&container);")
for item in message_elements[index+1]: for item in message_elements[index+1]:
if item[0] == "float": if item[0] == "float":
print "\t\t\tprintf(\"%s: %%f\\n \",(double)container.%s);" % (item[1], item[1]) print("\t\t\tprintf(\"%s: %%f\\n \",(double)container.%s);" % (item[1], item[1]))
elif item[0] == "float_array": elif item[0] == "float_array":
print "\t\t\tprintf(\"%s:\");" % item[1] print("\t\t\tprintf(\"%s:\");" % item[1])
print "\t\t\tfor (int j=0;j<%d;j++) {" % item[2] print("\t\t\tfor (int j=0;j<%d;j++) {" % item[2])
print "\t\t\t\tprintf(\"%%f \",(double)container.%s[j]);" % item[1] print("\t\t\t\tprintf(\"%%f \",(double)container.%s[j]);" % item[1])
print "\t\t\t}" print("\t\t\t}")
print "\t\t\tprintf(\"\\n\");" print("\t\t\tprintf(\"\\n\");")
elif item[0] == "uint64": elif item[0] == "uint64":
print "\t\t\tprintf(\"%s: %%\" PRIu64 \"\\n \",container.%s);" % (item[1], item[1]) print("\t\t\tprintf(\"%s: %%\" PRIu64 \"\\n \",container.%s);" % (item[1], item[1]))
elif item[0] == "uint8": elif item[0] == "uint8":
print "\t\t\tprintf(\"%s: %%u\\n \",container.%s);" % (item[1], item[1]) print("\t\t\tprintf(\"%s: %%u\\n \",container.%s);" % (item[1], item[1]))
elif item[0] == "bool": elif item[0] == "bool":
print "\t\t\tprintf(\"%s: %%s\\n \",container.%s ? \"True\" : \"False\");" % (item[1], item[1]) print("\t\t\tprintf(\"%s: %%s\\n \",container.%s ? \"True\" : \"False\");" % (item[1], item[1]))
print "\t\t\t}" print("\t\t\t}")
print "\t\t}" print("\t\t}")
print "\t} else {" print("\t} else {")
print "\t\t printf(\" Topic did not match any known topics\\n\");" print("\t\t printf(\" Topic did not match any known topics\\n\");")
print "\t}" print("\t}")
print("\t return 0;") print("\t return 0;")
print "}" print("}")
+14 -15
View File
@@ -39,8 +39,7 @@ apps = []
for f in builtins: for f in builtins:
apps.append(f.split(".")[-1].split("_main")[0]) apps.append(f.split(".")[-1].split("_main")[0])
print print("""
print """
#include <string> #include <string>
#include <map> #include <map>
@@ -55,11 +54,11 @@ using namespace std;
extern void px4_show_devices(void); extern void px4_show_devices(void);
extern "C" { extern "C" {
""" """)
for app in apps: for app in apps:
print "extern int "+app+"_main(int argc, char *argv[]);" print("extern int "+app+"_main(int argc, char *argv[]);")
print """ print("""
static int shutdown_main(int argc, char *argv[]); static int shutdown_main(int argc, char *argv[]);
static int list_tasks_main(int argc, char *argv[]); static int list_tasks_main(int argc, char *argv[]);
static int list_files_main(int argc, char *argv[]); static int list_files_main(int argc, char *argv[]);
@@ -74,17 +73,17 @@ static map<string,px4_main_t> app_map(void);
static map<string,px4_main_t> app_map(void) static map<string,px4_main_t> app_map(void)
{ {
static map<string,px4_main_t> apps; static map<string,px4_main_t> apps;
""" """)
for app in apps: for app in apps:
print '\tapps["'+app+'"] = '+app+'_main;' print('\tapps["'+app+'"] = '+app+'_main;')
print '\tapps["shutdown"] = shutdown_main;' print('\tapps["shutdown"] = shutdown_main;')
print '\tapps["list_tasks"] = list_tasks_main;' print('\tapps["list_tasks"] = list_tasks_main;')
print '\tapps["list_files"] = list_files_main;' print('\tapps["list_files"] = list_files_main;')
print '\tapps["list_devices"] = list_devices_main;' print('\tapps["list_devices"] = list_devices_main;')
print '\tapps["list_topics"] = list_topics_main;' print('\tapps["list_topics"] = list_topics_main;')
print '\tapps["sleep"] = sleep_main;' print('\tapps["sleep"] = sleep_main;'
print """ print("""
return apps; return apps;
} }
@@ -134,5 +133,5 @@ static int sleep_main(int argc, char *argv[])
sleep(atoi(argv[1])); sleep(atoi(argv[1]));
return 0; return 0;
} }
""" """)