#!/usr/bin/env ruby # UART test # # This test is pretty simple, just a UART smoke test, using # the debug callback on the quad script_dir = File.expand_path(File.dirname(__FILE__)) require script_dir + "/testing_library" bin_dir = script_dir + "/../../bin/" Dir.chdir(bin_dir) Timeout::timeout(30) { puts("Setting up...") # Start virtual quad quad_pid = Process.spawn("./virt-quad -q", { :rlimit_as => 536870912, # 512 MiB total RAM :rlimit_stack => 1048576}) # 1 MiB stack sleep 0.5 # Set RC switches set_gear GEAR_OFF set_flap FLAP_OFF # Set initial quad orientation (flat on the ground, facing forward) `./virt-quad set i2c_imu_x 0` `./virt-quad set i2c_imu_y 0` `./virt-quad set i2c_imu_z -1` `./virt-quad set rc_roll 0.498` `./virt-quad set rc_pitch 0.497` `./virt-quad set rc_yaw 0.498` ################# # Begin Tests ################# begin puts "------------------------------------------" puts "-- Beginning basic communication test..." puts "------------------------------------------" for j in 1..10 # Send a debug command Thread.new { sleep 0.1 send_packet [0xBE, 1, 0, 0, 0, 0, 0, 0xBF] } msg = recv_packet puts msg assert_equal(msg.force_encoding("UTF-8"), "Packets received: #{j}") end puts "Basic communication test passed." puts "------------------------------------------" ensure Process.kill(9, quad_pid) Process.wait(quad_pid) end }