Class: Tochka::Wlan
- Inherits:
-
Object
- Object
- Tochka::Wlan
- Defined in:
- lib/tochka/wlan.rb
Constant Summary collapse
- CHAN =
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165]
- LIMIT_IDX =
CHAN.length
Instance Attribute Summary collapse
-
#channel_walk ⇒ Object
readonly
Returns the value of attribute channel_walk.
-
#current_channel ⇒ Object
readonly
Returns the value of attribute current_channel.
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#file_size ⇒ Object
readonly
Returns the value of attribute file_size.
-
#utilization ⇒ Object
readonly
Returns the value of attribute utilization.
-
#utilization_channel ⇒ Object
readonly
Returns the value of attribute utilization_channel.
Instance Method Summary collapse
-
#initialize(ifname = DEFAULT_IFNAME) ⇒ Wlan
constructor
A new instance of Wlan.
- #run_capture(fpath) ⇒ Object
- #stop_capture ⇒ Object
Constructor Details
#initialize(ifname = DEFAULT_IFNAME) ⇒ Wlan
Returns a new instance of Wlan.
16 17 18 19 20 21 22 |
# File 'lib/tochka/wlan.rb', line 16 def initialize ifname=DEFAULT_IFNAME @th_shark = nil @ifname = ifname || DEFAULT_IFNAME init_status() @black_list = [] @athsurvey = Tochka::Athsurvey.new(@ifname) end |
Instance Attribute Details
#channel_walk ⇒ Object (readonly)
Returns the value of attribute channel_walk.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def channel_walk @channel_walk end |
#current_channel ⇒ Object (readonly)
Returns the value of attribute current_channel.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def current_channel @current_channel end |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def duration @duration end |
#file_size ⇒ Object (readonly)
Returns the value of attribute file_size.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def file_size @file_size end |
#utilization ⇒ Object (readonly)
Returns the value of attribute utilization.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def utilization @utilization end |
#utilization_channel ⇒ Object (readonly)
Returns the value of attribute utilization_channel.
7 8 9 |
# File 'lib/tochka/wlan.rb', line 7 def utilization_channel @utilization_channel end |
Instance Method Details
#run_capture(fpath) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/tochka/wlan.rb', line 24 def run_capture fpath init_device() init_status() start_time = Time.now.to_i stdin, stdout, stderr, @th_tshark = *Open3.popen3( "tshark -i #{@ifname} -F pcapng -w #{fpath}") while @th_tshark.alive? sleep 1 # update status @duration = Time.now.to_i - start_time @file_size = File.size?(fpath) || 0 # do something here to run before channel transition ary = @athsurvey.current_data() @utilization_channel = ary[0] @utilization = ary[3] prev_channel = @current_channel @current_chanenl = move_channel(@current_channel) @channel_walk += 1 $log.debug("channel moved to #{@current_channel} from #{prev_channel} (dur=#{@duration}, size=#{@file_size}, walk=#{@channel_walk}, utilization=#{@utilization} uch=#{@utilization_channel})") end rescue => e $log.warn("run_capture detected unknown error (#{e})") end |
#stop_capture ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/tochka/wlan.rb', line 53 def stop_capture if @th_tshark == nil $log.err("tried to kill tshark, but it's not executed? (or already dead?)") return end Process.kill("INT", @th_tshark.pid) end |