class RemoteDroid::Client

Public Class Methods

new(hostx='127.0.0.1', host: hostx, port: '5777', sps_host: 'sps.home', sps_port: '59000', device: nil) click to toggle source
# File lib/remotedroid/client.rb, line 6
def initialize(hostx='127.0.0.1', host: hostx, port: '5777', 
               sps_host: 'sps.home', sps_port: '59000', device: nil)
  
  raise 'supply a device name' unless device
  
  @device = device
  @drb = OneDrb::Client.new host: host, port: port    
  @sps = SPSPub.new host: sps_host, port: sps_port
  
end

Public Instance Methods

ask_alexa() click to toggle source

– helpful methods —————–

# File lib/remotedroid/client.rb, line 61
def ask_alexa()
  control.ask_alexa
end
awake_off()
Alias for: stay_awake_off
battery() click to toggle source
# File lib/remotedroid/client.rb, line 65
def battery()
  query.battery
end
bluetooth() click to toggle source
# File lib/remotedroid/client.rb, line 69
def bluetooth()
  control.bluetooth
end
cell_tower() click to toggle source
# File lib/remotedroid/client.rb, line 73
def cell_tower()
  query.cell_tower
end
click(s) click to toggle source
# File lib/remotedroid/client.rb, line 77
def click(s)
  control.click content: s
end
control() click to toggle source
# File lib/remotedroid/client.rb, line 17
def control
  @drb.control @device
end
control_media(option='Play/Pause') click to toggle source
# File lib/remotedroid/client.rb, line 81
def control_media(option='Play/Pause')
  control.control_media({option: option})
end
copy(text)
Alias for: fill_clipboard
disable_airplane_mode() click to toggle source
# File lib/remotedroid/client.rb, line 85
def disable_airplane_mode()
  control.disable_airplane_mode
end
disable_bluetooth() click to toggle source
# File lib/remotedroid/client.rb, line 89
def disable_bluetooth()
  control.disable_bluetooth
end
disable_macro(macro) click to toggle source
# File lib/remotedroid/client.rb, line 93
def disable_macro(macro)
  control.disable_macro macro
end
disable_wifi() click to toggle source
# File lib/remotedroid/client.rb, line 97
def disable_wifi()
  control.disable_wifi
end
enable_airplane_mode() click to toggle source
# File lib/remotedroid/client.rb, line 101
def enable_airplane_mode()
  control.enable_airplane_mode
end
enable_bluetooth() click to toggle source
# File lib/remotedroid/client.rb, line 105
def enable_bluetooth()
  control.enable_bluetooth
end
enable_macro(macro) click to toggle source
# File lib/remotedroid/client.rb, line 109
def enable_macro(macro)
  control.enable_macro macro
end
enable_wifi() click to toggle source
# File lib/remotedroid/client.rb, line 113
def enable_wifi()
  control.enable_wifi
end
export(s) click to toggle source
# File lib/remotedroid/client.rb, line 21
def export(s)
  @drb.export(s)
end
fill_clipboard(text) click to toggle source
# File lib/remotedroid/client.rb, line 117
def fill_clipboard(text)
  control.fill_clipboard clipboard: text
end
Also aliased as: copy
goto(url)
Alias for: open_website
hotspot(state=nil) click to toggle source
# File lib/remotedroid/client.rb, line 123
def hotspot(state=nil)      
  control.hotspot state
end
invoke(s, *args) click to toggle source
# File lib/remotedroid/client.rb, line 25
def invoke(s, *args)
  @drb.invoke(@device, s, *args)
end
ip() click to toggle source
# File lib/remotedroid/client.rb, line 189
def ip()
  query.ip
end
last_loc() click to toggle source
# File lib/remotedroid/client.rb, line 127
def last_loc()
  query.last_loc
end
launch(app)
Alias for: launch_activity
launch_activity(app) click to toggle source
# File lib/remotedroid/client.rb, line 135
def launch_activity(app)
        
  package = APPS[app]
  
  if package then
    control.launch_package package: package
  else       
    r = APPS.find {|k,v| k =~ /#{app}/i}
    control.launch_package(package: r[1]) if r
  end        

end
Also aliased as: launch
launch_package(name) click to toggle source
# File lib/remotedroid/client.rb, line 148
def launch_package(name)
  
  control.launch_package(package: name)

end
location() click to toggle source
# File lib/remotedroid/client.rb, line 156
def location()
  query.location
end
location_watch(refresh: '1 minute', interval: refresh, duration: '30 minutes') click to toggle source
# File lib/remotedroid/client.rb, line 160
def location_watch(refresh: '1 minute', interval: refresh, 
                   duration: '30 minutes')
  
  d = ChronicDuration.parse(duration)
  seconds = ChronicDuration.parse(interval)
  puts ("monitoring location every %s for %s" % [interval, duration]).info

  Thread.new do      
    
    t = Time.now + d

    begin

      query.location
      sleep seconds

    end until Time.now >= t
    
  end
  
end
macros() click to toggle source
# File lib/remotedroid/client.rb, line 29
def macros()
  @drb.macros
end
next() click to toggle source
# File lib/remotedroid/client.rb, line 193
def next()
  control_media('Next')
end
open_website(url) click to toggle source
# File lib/remotedroid/client.rb, line 182
def open_website(url)
  control.open_website url: url
end
Also aliased as: goto, visit
pause() click to toggle source
# File lib/remotedroid/client.rb, line 197
def pause()
  control_media('Pause')
end
photo() click to toggle source
# File lib/remotedroid/client.rb, line 209
def photo()
  take_picture
end
play() click to toggle source
# File lib/remotedroid/client.rb, line 201
def play()
  control_media('Play')
end
play_pause() click to toggle source
# File lib/remotedroid/client.rb, line 205
def play_pause()
  control_media('Play/Pause')
end
power_connected?() click to toggle source
# File lib/remotedroid/client.rb, line 213
def power_connected?()
  query.power_connected?
end
previous() click to toggle source
# File lib/remotedroid/client.rb, line 217
def previous()
  control.control_media(option: 'Previous')
end
query(id=nil) click to toggle source
# File lib/remotedroid/client.rb, line 33
def query(id=nil)
  
  return @drb.query(@device) unless id
  t = Time.now
  h = @drb.query(@device, id)
  h.merge({latency: (Time.now - t).round(3)})
  
end
run_macro(name) click to toggle source
# File lib/remotedroid/client.rb, line 42
def run_macro(name)
  a = @drb.run_macro name
  a.each {|msg| @sps.notice 'macrodroid/action: ' + msg }
end
say(text) click to toggle source
# File lib/remotedroid/client.rb, line 221
def say(text)
  control.speak_text text
end
say_time() click to toggle source
# File lib/remotedroid/client.rb, line 225
def say_time()
  control.say_time
end
Also aliased as: saytime
saytime()
Alias for: say_time
screen(state=nil) click to toggle source
# File lib/remotedroid/client.rb, line 231
def screen(state=nil)      
  control.screen state
end
screen_off() click to toggle source
# File lib/remotedroid/client.rb, line 239
def screen_off()
  screen :off
end
screen_on() click to toggle source
# File lib/remotedroid/client.rb, line 235
def screen_on()
  screen :on
end
set_auto_rotate(state=nil) click to toggle source
# File lib/remotedroid/client.rb, line 243
def set_auto_rotate(state=nil)
  control.set_auto_rotate state
end
set_auto_rotate_off() click to toggle source
# File lib/remotedroid/client.rb, line 251
def set_auto_rotate_off()
  control.set_auto_rotate 1
end
set_auto_rotate_on() click to toggle source
# File lib/remotedroid/client.rb, line 247
def set_auto_rotate_on()
  control.set_auto_rotate 0
end
set_auto_rotate_toggle() click to toggle source
# File lib/remotedroid/client.rb, line 255
def set_auto_rotate_toggle()
  control.set_auto_rotate 2
end
stay_awake() click to toggle source
# File lib/remotedroid/client.rb, line 259
def stay_awake()
  control.stay_awake
end
stay_awake_off() click to toggle source
# File lib/remotedroid/client.rb, line 263
def stay_awake_off()
  control.stay_awake_off
end
Also aliased as: awake_off
stop() click to toggle source
# File lib/remotedroid/client.rb, line 269
def stop()
  control_media(option: 'Stop')
end
store() click to toggle source
# File lib/remotedroid/client.rb, line 51
def store()
  @drb.store
end
syslog() click to toggle source
# File lib/remotedroid/client.rb, line 55
def syslog()
  @drb.syslog
end
take_photo(ftp_src: nil, fileout: '.')
Alias for: take_picture
take_picture(ftp_src: nil, fileout: '.') click to toggle source
# File lib/remotedroid/client.rb, line 273
def take_picture(ftp_src: nil, fileout: '.')
  
  #screen.on
  #launch 'camera'
        
  if ftp_src then
    
    r = query.take_picture        
    # give the device a second to write the image to file
    sleep 1
    
    credentials, dir = ftp_src.match(/(ftp:\/\/[^\/]+)\/([^$]+)/).captures
    ftp = MyMediaFTP.new(credentials)
    ftp.cd dir
    filename = ftp.ls.sort_by {|x| x[:ctime]}.last[:name]
    ftp.cp filename, fileout
    
  else
    
    contro.take_picture
    
  end
  
end
Also aliased as: take_photo
take_screenshot(ftp_src: nil, fileout: '.') click to toggle source
# File lib/remotedroid/client.rb, line 300
def take_screenshot(ftp_src: nil, fileout: '.')
  
  #screen.on
 
        
  if ftp_src then
     
    r = query.take_screenshot
    # give the device a second to write the image to file
    sleep 1
    
    credentials, dir = ftp_src.match(/(ftp:\/\/[^\/]+)\/([^$]+)/).captures
    ftp = MyMediaFTP.new(credentials)
    ftp.cd dir
    filename = ftp.ls.sort_by {|x| x[:ctime]}.last[:name]
    ftp.cp filename, fileout
    
  end
  
end
toggle_airplane_mode() click to toggle source
# File lib/remotedroid/client.rb, line 321
def toggle_airplane_mode()
  control.toggle_airplane_mode
end
toggle_bluetooth() click to toggle source
# File lib/remotedroid/client.rb, line 325
def toggle_bluetooth()
  control.toggle_bluetooth
end
toggle_wifi() click to toggle source
# File lib/remotedroid/client.rb, line 329
def toggle_wifi()
  control.toggle_wifi
end
torch() click to toggle source
# File lib/remotedroid/client.rb, line 333
def torch()
  control.torch
end
update(key, val) click to toggle source
# File lib/remotedroid/client.rb, line 47
def update(key, val)
  @drb.update key.to_sym, val
end
vibrate() click to toggle source
# File lib/remotedroid/client.rb, line 337
def vibrate
  control.vibrate
end
visit(url)
Alias for: open_website
vol() click to toggle source
# File lib/remotedroid/client.rb, line 349
def vol()
  volume.music
end
volume(context=nil) click to toggle source
# File lib/remotedroid/client.rb, line 345
def volume(context=nil)      
  query.volume context
end