class UR::Dash
Public Class Methods
new(host, logger=Logger.new(STDOUT,level: :INFO))
click to toggle source
# File lib/dashboard.rb, line 48 def initialize(host, logger=Logger.new(STDOUT,level: :INFO)) host = '//' + host if host !~ /\/\// uri = URI::parse(host) @logger = logger @hostname = uri.host @port = uri.port.nil? ? 29999 : uri.port @conn_state = ConnectionState::DISCONNECTED @sock = nil end
Public Instance Methods
add_to_log(message)
click to toggle source
# File lib/dashboard.rb, line 189 def add_to_log(message) @sock.write ("addToLog " + message.to_s + "\n") line = @sock.gets.strip if line.match(/^Added log message/) @logger.debug line else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
break_release()
click to toggle source
# File lib/dashboard.rb, line 284 def break_release @sock.write("brake release\n") line = @sock.gets.strip if line.match(/^Brake/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant release breaks. Dashboard server down or not in Remote Mode') end end
clear_operation_mode()
click to toggle source
# File lib/dashboard.rb, line 248 def clear_operation_mode @sock.write("clear operational mode\n") line = @sock.gets.strip if line.match(/^operational/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant clear operation mode. Dashboard server down or not in Remote Mode') end end
close_popupmessage()
click to toggle source
# File lib/dashboard.rb, line 184 def close_popupmessage @sock.write ("close popup\n") @logger.debug @sock.gets.strip end
close_safety_popup()
click to toggle source
# File lib/dashboard.rb, line 315 def close_safety_popup @sock.write("close safety popup\n") line = @sock.gets.strip if line.match(/^closing/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant close safety popup. Dashboard server down or not in Remote Mode') end end
connect()
click to toggle source
# File lib/dashboard.rb, line 58 def connect return if @sock @sock = Socket.new Socket::AF_INET, Socket::SOCK_STREAM @sock.setsockopt Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1 @sock = TCPSocket.new(@hostname, @port) @conn_state = ConnectionState::CONNECTED @logger.info @sock.gets.strip self end
connected?()
click to toggle source
# File lib/dashboard.rb, line 68 def connected? @conn_state != ConnectionState::DISCONNECTED end
disconnect()
click to toggle source
# File lib/dashboard.rb, line 72 def disconnect if @sock @sock.close @sock = nil @conn_state = ConnectionState::DISCONNECTED @logger.info "Connection closed " + @hostname + ":" + @port.to_s end end
get_loaded_program()
click to toggle source
# File lib/dashboard.rb, line 162 def get_loaded_program begin @sock.write ("get loaded program\n") line = @sock.gets.strip rescue raise UR::Dash::Reconnect.new('Loaded program can not be got. Dashboard server down or not in Remote Mode') end @logger.debug line if line.match(/^Loaded program:\s(.+)/) $1.strip elsif line.match(/^No program loaded/) nil else raise UR::Dash::Reconnect.new('Loaded program can not be got. Dashboard server down or not in Remote Mode') end end
get_operational_mode()
click to toggle source
# File lib/dashboard.rb, line 354 def get_operational_mode @sock.write("get operational mode\n") line = @sock.gets.strip if line == "MANUAL" || line == "AUTOMATIC" @logger.debug line line elsif line == "NONE" @logger.warn'No password set, so no modes variable is available' nil elsif line.match(/^could not understand/) @logger.warn'Could not execute get_operational_mode: Please upgrade to current version' nil else @logger.error line raise UR::Dash::Reconnect.new('Cant get operational mode. Dashboard server down or not in Remote Mode') end end
get_polyscope_version()
click to toggle source
# File lib/dashboard.rb, line 219 def get_polyscope_version @sock.write("PolyscopeVersion\n") line = @sock.gets.strip @logger.debug line line end
get_program_state()
click to toggle source
# File lib/dashboard.rb, line 212 def get_program_state @sock.write("programState\n") line = @sock.gets.strip @logger.debug line line end
get_robot_model()
click to toggle source
# File lib/dashboard.rb, line 402 def get_robot_model @sock.write("get robot model\n") line = @sock.gets.strip if line.match(/^could not understand/) @logger.warn'Could not execute get_robot_model: Please upgrade to current version' nil elsif line.match(/^UR/) @logger.debug line line else @logger.error line raise UR::Dash::Reconnect.new('Cant get robot model. Dashboard server down maybe down or not in Remote Mode') end end
get_robotmode()
click to toggle source
# File lib/dashboard.rb, line 155 def get_robotmode @sock.write("robotmode\n") line = @sock.gets.strip @logger.debug line result = $1.strip if line.match(/^Robotmode:\s(.+)/) end
get_safety_mode()
click to toggle source
# File lib/dashboard.rb, line 296 def get_safety_mode @sock.write("safetymode\n") line = @sock.gets.strip @logger.debug line result = $1.strip if line.match(/^Safetymode:\s(.+)/) end
get_serial_number()
click to toggle source
# File lib/dashboard.rb, line 387 def get_serial_number @sock.write("get serial number\n") line = @sock.gets.strip if line.match(/^could not understand/) @logger.warn'Could not execute get_serial_number: Please upgrade to current version' nil elsif line.match(/^\d+$/) @logger.debug line line else @logger.error line raise UR::Dash::Reconnect.new('Cant get serial number. Dashboard server down maybe down or not in Remote Mode') end end
is_in_remote_control()
click to toggle source
# File lib/dashboard.rb, line 372 def is_in_remote_control @sock.write("is in remote control\n") line = @sock.gets.strip if line.match(/^could not understand/) @logger.warn'Could not execute is_in_remote_control: Please upgrade to current version' nil elsif line == 'true' || line == 'false' @logger.debug line line == 'true' else @logger.error line raise UR::Dash::Reconnect.new('Cant determine if robot is in remote control mode. Dashboard server down maybe down') end end
is_program_saved?()
click to toggle source
# File lib/dashboard.rb, line 200 def is_program_saved? @sock.write("isProgramSaved\n") line = @sock.gets.strip if line == "True" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant determine if program is saved. Dashboard server down or not in Remote Mode') end end
load_installation()
click to toggle source
# File lib/dashboard.rb, line 327 def load_installation @sock.write("load installation\n") line = @sock.gets.strip if line.match(/^Loading/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant load installation. Dashboard server down or not in Remote Mode') end end
load_program(programname)
click to toggle source
# File lib/dashboard.rb, line 81 def load_program (programname) @logger.debug "loadprogram" send = "load " + programname + ".urp\n" @sock.write send line = @sock.gets.strip if line.match(/^L/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
open_popupmessage(message)
click to toggle source
# File lib/dashboard.rb, line 179 def open_popupmessage(message) @sock.write ("popup " + message.to_s + "\n") @logger.debug @sock.gets.strip end
pause_program()
click to toggle source
# File lib/dashboard.rb, line 119 def pause_program @sock.write("pause\n") line = @sock.gets.strip if line == "Pausing program" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
power_off()
click to toggle source
# File lib/dashboard.rb, line 272 def power_off @sock.write("power off\n") line = @sock.gets.strip if line.match(/^Powering/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant power off. Dashboard server down or not in Remote Mode') end end
power_on()
click to toggle source
# File lib/dashboard.rb, line 260 def power_on @sock.write("power on\n") line = @sock.gets.strip if line.match(/^Powering/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant power on. Dashboard server down or not in Remote Mode') end end
restart_safety()
click to toggle source
# File lib/dashboard.rb, line 339 def restart_safety @sock.write("restart safety\n") line = @sock.gets.strip if line.match(/^Brake/) @logger.debug line true elsif line.match(/^could not understand/) @logger.warn'Could not execute restart_safety: Please upgrade to current version' nil else @logger.error line raise UR::Dash::Reconnect.new('Cant restart safety. Dashboard server down or not in Remote Mode') end end
running?()
click to toggle source
# File lib/dashboard.rb, line 143 def running? @sock.write("running\n") line = @sock.gets.strip if line == "Program running: True" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
set_operation_mode_auto()
click to toggle source
# File lib/dashboard.rb, line 237 def set_operation_mode_auto @sock.write("set operational mode automatic\n") line = @sock.gets.strip if line.match(/^S/) @logger.debug line else @logger.error line raise UR::Dash::Reconnect.new('Cant set operation mode automatic. Dashboard server down or not in Remote Mode') end end
set_operation_mode_manual()
click to toggle source
# File lib/dashboard.rb, line 226 def set_operation_mode_manual @sock.write("set operational mode manual\n") line = @sock.gets.strip if line.match(/^S/) @logger.debug line else @logger.error line raise UR::Dash::Reconnect.new('Cant set operation mode manual. Dashboard server down or not in Remote Mode') end end
shutdown()
click to toggle source
# File lib/dashboard.rb, line 131 def shutdown @sock.write("shutdown\n") line = @sock.gets.strip if line == "Shutting down" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
start_program()
click to toggle source
# File lib/dashboard.rb, line 95 def start_program @sock.write("play\n") line = @sock.gets.strip if line == "Starting program" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
stop_program()
click to toggle source
# File lib/dashboard.rb, line 107 def stop_program @sock.write("stop\n") line = @sock.gets.strip if line == "Stopped" @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Dashboard server down or not in Remote Mode') end end
unlock_protective_stop()
click to toggle source
# File lib/dashboard.rb, line 303 def unlock_protective_stop @sock.write("unlock protective stop\n") line = @sock.gets.strip if line.match(/^Protective/) @logger.debug line true else @logger.error line raise UR::Dash::Reconnect.new('Cant unlock protective stop. Dashboard server down or not in Remote Mode') end end