px4-firmware/Tools/boot_now.py

60 lines
2.4 KiB
Python
Raw Normal View History

2015-03-14 00:17:21 -03:00
#!/usr/bin/env python
############################################################################
#
# Copyright (C) 2012-2015 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
# send BOOT command to a device
import argparse
import serial, sys
from sys import platform as _platform
# Parse commandline arguments
parser = argparse.ArgumentParser(description="Send boot command to a device")
parser.add_argument('--baud', action="store", type=int, default=115200, help="Baud rate of the serial port")
parser.add_argument('port', action="store", help="Serial port(s) to which the FMU may be attached")
args = parser.parse_args()
REBOOT = b'\x30'
EOC = b'\x20'
print("Sending reboot to %s" % args.port)
try:
port = serial.Serial(args.port, args.baud, timeout=0.5)
except Exception:
print("Unable to open %s" % args.port)
sys.exit(1)
port.write(REBOOT + EOC)
port.close()
sys.exit(0)