class Aio::Module::InputStyle::Console::ContextState

Public Instance Methods

parse_line(line) click to toggle source
# File lib/modules/input/style/console.rb, line 138
def parse_line(line)
  # 如果这行是命令行格式,那么就代表上一个cmd内容结束
  # 如果这里出问题,关注 CmdState
  tmp_reg = ::Regexp.new "^[\\[|<]?#{cmd_context.device_name}[#|>|\\]]{1}"


  # 可能会出现UTF-8识别不出摄氏度符号的问题
  # 已经通过安全字符解决
  begin
    if tmp_reg.match(line)
      cmd_context.done

      # 完成后将状态设置为空,并且重新分析这一行
      # 毕竟如果这行也cmd行呢
      @machine.to_empty_state
      return @machine.parse_line(line)
    end
  rescue => e
    print_error cmd_context.device_name + " 设备巡检信息编码出现问题"
    print_error line + " : " + e.message
  end


  cmd_context.context << line
end