|
|
|
@ -38,8 +38,7 @@ for index,m in enumerate(raw_messages):
@@ -38,8 +38,7 @@ for index,m in enumerate(raw_messages):
|
|
|
|
|
|
|
|
|
|
num_messages = len(messages); |
|
|
|
|
|
|
|
|
|
print |
|
|
|
|
print """ |
|
|
|
|
print(""" |
|
|
|
|
|
|
|
|
|
/**************************************************************************** |
|
|
|
|
* |
|
|
|
@ -93,12 +92,12 @@ print """
@@ -93,12 +92,12 @@ print """
|
|
|
|
|
#include <stdint.h> |
|
|
|
|
#define __STDC_FORMAT_MACROS |
|
|
|
|
#include <inttypes.h> |
|
|
|
|
""" |
|
|
|
|
""") |
|
|
|
|
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[]); |
|
|
|
|
|
|
|
|
|
int listener_main(int argc, char *argv[]) { |
|
|
|
@ -108,45 +107,45 @@ 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"); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
""" |
|
|
|
|
print "\tuint32_t num_msgs = (uint32_t)std::stoi(argv[2],NULL,10);" |
|
|
|
|
print "\tif(strncmp(argv[1],\"%s\",50)== 0) {" % messages[0] |
|
|
|
|
print "\t\tsub = orb_subscribe(ORB_ID(%s));" % messages[0] |
|
|
|
|
print "\t\tID = ORB_ID(%s);" % messages[0] |
|
|
|
|
print "\t\tstruct %s_s container;" % messages[0] |
|
|
|
|
print "\t\tmemset(&container, 0, sizeof(container));" |
|
|
|
|
""") |
|
|
|
|
print("\tuint32_t num_msgs = (uint32_t)std::stoi(argv[2],NULL,10);") |
|
|
|
|
print("\tif(strncmp(argv[1],\"%s\",50)== 0) {" % messages[0]) |
|
|
|
|
print("\t\tsub = orb_subscribe(ORB_ID(%s));" % messages[0]) |
|
|
|
|
print("\t\tID = ORB_ID(%s);" % messages[0]) |
|
|
|
|
print("\t\tstruct %s_s container;" % messages[0]) |
|
|
|
|
print("\t\tmemset(&container, 0, sizeof(container));") |
|
|
|
|
for index,m in enumerate(messages[1:]): |
|
|
|
|
print "\t} else if(strncmp(argv[1],\"%s\",50) == 0) {" % m |
|
|
|
|
print "\t\tsub = orb_subscribe(ORB_ID(%s));" % m |
|
|
|
|
print "\t\tID = ORB_ID(%s);" % m |
|
|
|
|
print "\t\tstruct %s_s container;" % m |
|
|
|
|
print "\t\tmemset(&container, 0, sizeof(container));" |
|
|
|
|
print "\t\tbool updated;" |
|
|
|
|
print "\t\tfor(uint32_t i = 0;i<num_msgs;i++) {" |
|
|
|
|
print "\t\t\torb_check(sub,&updated);" |
|
|
|
|
print "\t\t\tupdated = true;" |
|
|
|
|
print "\t\t\tif(updated) {" |
|
|
|
|
print "\t\t\torb_copy(ID,sub,&container);" |
|
|
|
|
print("\t} else if(strncmp(argv[1],\"%s\",50) == 0) {" % m) |
|
|
|
|
print("\t\tsub = orb_subscribe(ORB_ID(%s));" % m) |
|
|
|
|
print("\t\tID = ORB_ID(%s);" % m) |
|
|
|
|
print("\t\tstruct %s_s container;" % m) |
|
|
|
|
print("\t\tmemset(&container, 0, sizeof(container));") |
|
|
|
|
print("\t\tbool updated;") |
|
|
|
|
print("\t\tfor(uint32_t i = 0;i<num_msgs;i++) {") |
|
|
|
|
print("\t\t\torb_check(sub,&updated);") |
|
|
|
|
print("\t\t\tupdated = true;") |
|
|
|
|
print("\t\t\tif(updated) {") |
|
|
|
|
print("\t\t\torb_copy(ID,sub,&container);") |
|
|
|
|
for item in message_elements[index+1]: |
|
|
|
|
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": |
|
|
|
|
print "\t\t\tprintf(\"%s:\");" % item[1] |
|
|
|
|
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}" |
|
|
|
|
print "\t\t\tprintf(\"\\n\");" |
|
|
|
|
print("\t\t\tprintf(\"%s:\");" % item[1]) |
|
|
|
|
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}") |
|
|
|
|
print("\t\t\tprintf(\"\\n\");") |
|
|
|
|
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": |
|
|
|
|
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": |
|
|
|
|
print "\t\t\tprintf(\"%s: %%s\\n \",container.%s ? \"True\" : \"False\");" % (item[1], item[1]) |
|
|
|
|
print "\t\t\t}" |
|
|
|
|
print "\t\t}" |
|
|
|
|
print "\t} else {" |
|
|
|
|
print "\t\t printf(\" Topic did not match any known topics\\n\");" |
|
|
|
|
print "\t}" |
|
|
|
|
print("\t\t\tprintf(\"%s: %%s\\n \",container.%s ? \"True\" : \"False\");" % (item[1], item[1])) |
|
|
|
|
print("\t\t\t}") |
|
|
|
|
print("\t\t}") |
|
|
|
|
print("\t} else {") |
|
|
|
|
print("\t\t printf(\" Topic did not match any known topics\\n\");") |
|
|
|
|
print("\t}") |
|
|
|
|
print("\t return 0;") |
|
|
|
|
|
|
|
|
|
print "}" |
|
|
|
|
print("}") |
|
|
|
|