Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 PKG = 'qualification'
00039 import roslib; roslib.load_manifest(PKG)
00040
00041 import os, sys
00042 from optparse import OptionParser
00043
00044 import getpass
00045 import subprocess
00046
00047 from wg_invent_client import Invent
00048
00049 class GetIDException(Exception): pass
00050
00051
00052 DOC_PNS = ['6803642', '6803643', '6803708' ]
00053
00054 def _ignore_pn(pn):
00055 for doc in DOC_PNS:
00056 if pn.find(doc) > -1:
00057 return True
00058 return False
00059
00060 if __name__ == '__main__':
00061 parser = OptionParser(usage="%prog -u USERNAME -r ROBOT")
00062 parser.add_option('-u', '--username', action="store", dest="username",
00063 default=None, metavar="USERNAME",
00064 help="Username for WG inventory system")
00065 parser.add_option('-r', '--robot', action="store", dest="robot",
00066 default=None, metavar="ROBOT",
00067 help="Robot SN (10XX) to check")
00068
00069 options,args = parser.parse_args()
00070 if not options.username:
00071 parser.error("Must provide username to WG inverntory system")
00072 if not options.robot:
00073 parser.error("Must provide valid robot SN to log")
00074
00075 robot = '68029670' + options.robot
00076
00077 if not len(robot) == 12:
00078 parser.error("%s is not a valid robot serial number" % options.robot)
00079
00080 print 'Enter your password to the Willow Garage Inventory system'
00081 my_pass = getpass.getpass()
00082
00083 iv = Invent(options.username, my_pass)
00084 if not iv.login():
00085 parser.error("Must provide valid username and password to WG inventory system")
00086 if not iv.check_serial_valid(robot):
00087 parser.error("Robot serial number %s is invalid" % options.robot)
00088
00089 print 'Getting parts from Invent'
00090 my_parts = iv.get_sub_items(robot, True)
00091 print 'Making sure components assembled properly'
00092 print ''
00093 print ''
00094
00095 ok = True
00096 for pt in my_parts:
00097 if _ignore_pn(pt):
00098 continue
00099
00100 if not iv.check_assembled(pt):
00101 print >> sys.stderr, "Part %s is not assembled properly." % pt
00102 ok = False
00103
00104 if ok:
00105 print "Robot is properly associated in Invent"
00106 sys.exit()
00107
00108 print >> sys.stderr, "Robot is not properly assembled."
00109 sys.exit(1)