class BLE::CharDesc

Attributes

desc[R]

Public Class Methods

new(desc) click to toggle source

@param desc [Hash] Descriptors.

# File lib/ble/char_desc.rb, line 8
def initialize(desc)
  @desc= desc
end

Public Instance Methods

config() click to toggle source
# File lib/ble/char_desc.rb, line 14
def config
  @config||= Characteristic[@desc[:uuid]]
end
flag?(flag_name) click to toggle source
# File lib/ble/char_desc.rb, line 21
def flag?(flag_name)
  flags.include?(flag_name)
end
flags() click to toggle source
# File lib/ble/char_desc.rb, line 11
def flags
  @flags||= @desc[:flags]
end
post_process(val) click to toggle source
# File lib/ble/char_desc.rb, line 58
def post_process(val)
  val = config[:in].call(val) if read_post_processor?
end
pre_process(val) click to toggle source
# File lib/ble/char_desc.rb, line 50
def pre_process(val)
  if verifier? && !verifies?(val)
    raise ArgumentError,
      "bad value for characteristic '#{uuid}'"
  end
  val = config[:out].call(val) if write_pre_processor?
end
read_post_processor?() click to toggle source
# File lib/ble/char_desc.rb, line 43
def read_post_processor?
  config[:in]
end
read_processors?() click to toggle source

Does incoming values have processors configured? If yes, the value needs to be post-processed after being received.

# File lib/ble/char_desc.rb, line 32
def read_processors?
  config && read_post_processor?
end
uuid() click to toggle source
# File lib/ble/char_desc.rb, line 18
def uuid
  @desc[:uuid]
end
verifier?() click to toggle source

It has been configured a verifier preprocessor to check outgoing data?

# File lib/ble/char_desc.rb, line 37
def verifier?
  config[:vrfy]
end
verifies?(val) click to toggle source

Is the received value verified by the verifier?

# File lib/ble/char_desc.rb, line 47
def verifies?(val)
  config[:vrfy].call(val)
end
write_pre_processor?() click to toggle source
# File lib/ble/char_desc.rb, line 40
def write_pre_processor?
  config[:out]
end
write_processors?() click to toggle source

Does outgoing values have processors configured? If yes, the value needs to be pre-processed before being send.

# File lib/ble/char_desc.rb, line 27
def write_processors?
  verifier? or write_pre_processor?
end