#!/usr/bin/env ruby $:.unshift(File.dirname(__FILE__)) require "Lorcon" require "pp" pp Lorcon.version pp Lorcon.drivers # Beacon frame from tx.c packet = [ 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, # dur ffff 0xff, 0xff, 0x00, 0x0f, 0x66, 0xe3, 0xe4, 0x03, 0x00, 0x0f, 0x66, 0xe3, 0xe4, 0x03, 0x00, 0x00, # 0x0000 - seq no. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, # BSS timestamp 0x64, 0x00, 0x11, 0x00, 0x00, 0x0f, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x01, 0x08, 0x82, 0x84, 0x8b, 0x96, 0x24, 0x30, 0x48, 0x6c, 0x03, 0x01, 0x01, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x05, 0x2f, 0x01, 0x05, 0x32, 0x04, 0x0c, 0x12, 0x18, 0x60, 0xdd, 0x05, 0x00, 0x10, 0x18, 0x01, 0x01, 0xdd, 0x16, 0x00, 0x50, 0xf2, 0x01, 0x01, 0x00, 0x00, 0x50, 0xf2, 0x02, 0x01, 0x00, 0x00, 0x50, 0xf2, 0x02, 0x01, 0x00, 0x00, 0x50, 0xf2, 0x02 ].pack('C*') tx = Lorcon::Device.new('ath0', 'madwifing', 1) sa = Time.now.to_f tx.write(packet, 500, 0) ea = Time.now.to_f - sa sb = Time.now.to_f 1.upto(500) { |i| tx.write(packet, 11, 0) } eb = Time.now.to_f - sb $stdout.puts "Sent 500 packets (C) in #{ea.to_s} seconds" $stdout.puts "Sent 500 packets (Ruby) in #{eb.to_s} seconds"