Something went wrong on our end
-
bbartels authored
- Add some prints to scripts to help with debugging - Add timeout if spawn fails - Add more time to allow changes to take effect - Fix input design
bbartels authored- Add some prints to scripts to help with debugging - Add timeout if spawn fails - Add more time to allow changes to take effect - Fix input design
test_unix_uart.rb 1.40 KiB
#!/usr/bin/env ruby
# UART test
#
# This test is pretty simple, just a UART smoke test, using
# the debug callback on the quad
GEAR_ON = 170800
GEAR_OFF = 118300
GEAR = "virt-quad-fifos/pwm-input-gear"
UART_RX = "virt-quad-fifos/uart-rx"
UART_TX = "virt-quad-fifos/uart-tx"
require 'test/unit/assertions'
require 'thread'
require 'timeout'
include Test::Unit::Assertions
Timeout::timeout(30) {
puts("Setting up...")
script_dir = File.expand_path(File.dirname(__FILE__))
bin_dir = script_dir + "/../../bin/"
Dir.chdir(bin_dir)
sleep 1
# Start virtual quad
quad_pid = Process.spawn("./virt-quad")
sleep 5
#################
# Begin Tests
#################
begin
puts("Beginning tests...")
# Flip gear on
File.write(GEAR, GEAR_ON)
sleep 0.015
for j in 1..10
# Send a debug command
File.write(UART_RX, [0xBE, 1, 0, 0, 0, 0, 0, 0xBF].pack("CCCCCCCC"))
fifo = File.open(UART_TX)
msg = []
for i in 1..7
sleep 0.010
msg.push(fifo.read(1))
end
length = msg[5..7].join().unpack("S")[0]
msg = []
for i in 1..length
sleep 0.010
msg.push(fifo.read(1))
end
fifo.close
puts msg.join()
assert_equal(msg.join().force_encoding("UTF-8"), "Packets received: #{j}")
end
puts "Basic UART test passed."
ensure
Process.kill(9, quad_pid)
Process.wait(quad_pid)
end
}