fprime/Gse/bin/gse_api_cmds.py
2019-02-27 10:56:36 -08:00

61 lines
2.5 KiB
Python

#!/bin/env python
import os
import sys
import time
from fprime.gse.utils.gse_api import GseApi
from optparse import OptionParser
__version__ = 0.1
__date__ = '2015-08-01'
__updated__ = '2015-08-01'
def main(argv=None):
if argv is None:
argv =sys.argv[1:]
try:
program_name = os.path.basename(sys.argv[0])
program_version = "v0.1"
program_build_date = "%s" % __updated__
program_longdesc = '''''' # optional - give further explanation about what the program does
program_license = "Copyright 2015 user_name (California Institute of Technology) \
ALL RIGHTS RESERVED. U.S. Government Sponsorship acknowledged."
program_version_string = '%%prog %s (%s)' % (program_version, program_build_date)
if argv is None:
argv = sys.argv[1:]
parser = OptionParser(version=program_version_string, epilog=program_longdesc, description=program_license)
parser.add_option("-d", "--dictionary", dest="generated_path", action="store", type="string", \
help="Set base path to generated command/telemetry definition files")
parser.add_option("-a", "--addr", dest="addr", action="store", type="string", help="set threaded tcp socket server address [default: %default]", \
default="127.0.0.1")
parser.add_option("-c", "--connect", action="store_true", dest="connect", help="Launches the Threaded TCP Socket Server on startup and connect to it [default: %default]", \
default=False)
parser.add_option("-p", "--port", dest="port", action="store", type="int", help="Set threaded tcp socket server port [default: %default]", \
default=50000)
#TODO: add arg to provide list of ids to monitor
(opts, args) = parser.parse_args(argv)
except Exception, e:
indent = len(program_name) * " "
sys.stderr.write(program_name + ": " + repr(e) + "\n")
sys.stderr.write(indent + " for help use --help\n")
return 2
api = GseApi(generated_path=opts.generated_path, port=opts.port)
cmd_list = api.list()
print "List of commands found:", cmd_list
time.sleep(1)
api.send("CMD_NO_OP")
time.sleep(1)
api.send("CMD_NO_OP_STRING", args=['Foo'])
time.sleep(1)
api.send_wait_evr("CMD_TEST_CMD_1", 'OpCodeCompleted',[1,2.0,3])
time.sleep(1)
api.send_wait_tlm("CMD_NO_OP", 'OpCodeCompleted', timeout = 10, args=None)
if __name__ == "__main__":
main()