silverhammer_lowspeed_check_size.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 
00003 import rospy
00004 import roslib
00005 import roslib.message
00006 import sys
00007 from roslib.message import get_message_class
00008 from jsk_network_tools.silverhammer_util import *
00009 from struct import calcsize
00010 from StringIO import StringIO
00011 
00012 def usage():
00013     print "silverhammer_lowspeed_check_size.py message_packege/Message"
00014 
00015 def checkSize(class_str):
00016     try:
00017         message_class = get_message_class(class_str)
00018         format = msgToStructFormat(message_class)
00019         ros_msg = message_class()
00020         ros_buffer = StringIO()
00021         rospy.msg.serialize_message(ros_buffer, 0, ros_msg)
00022         print class_str
00023         print "  binary format: ", format
00024         print "  size:               ", calcsize(format), "bytes"
00025         print "                      ", 8 * calcsize(format), "bits"
00026         print "  size w/ UDP header: ", calcsize(format) + 36, "bytes"
00027         print "                      ", 8 * (calcsize(format) + 36), "bits"
00028         print "  ROS size:           ", ros_buffer.len, "bytes"
00029         print "                      ", ros_buffer.len * 8, "bits"
00030     except Exception, e:
00031         print "cannot serialize %s" % class_str
00032         print "  error: ", e.message
00033         return
00034 
00035     
00036 if __name__ == "__main__":
00037     if len(sys.argv) != 2:
00038         usage()
00039         sys.exit(1)
00040     checkSize(sys.argv[1])


jsk_network_tools
Author(s): Yusuke Furuta
autogenerated on Fri Sep 8 2017 03:38:47