Class: Kiss::KissAbstract

Inherits:
Object
  • Object
show all
Includes:
Abstractify::Abstract, Kiss
Defined in:
lib/kiss/kiss_abstract.rb

Direct Known Subclasses

KissSerial

Instance Method Summary collapse

Instance Method Details

#close(*args, **kwargs) ⇒ Object



278
279
# File 'lib/kiss/kiss_abstract.rb', line 278

def close(*args, **kwargs)
end

#connect(mode_init = nil, *args, **kwargs) ⇒ Object



274
275
# File 'lib/kiss/kiss_abstract.rb', line 274

def connect(mode_init=nil, *args, **kwargs)
end

#read(*args, **kwargs) ⇒ Object



282
283
284
285
286
287
288
289
290
291
# File 'lib/kiss/kiss_abstract.rb', line 282

def read(*args, **kwargs)
  @lock.synchronize do
      frame = self.read_bytes(*args, **kwargs)
      if frame and frame.length > 0
          return KissAbstract.decode_frame(frame)
      else
          return nil
      end
  end
end

#write(frame, port = 0, *args, **kwargs) ⇒ Object



294
295
296
297
298
299
300
301
302
303
# File 'lib/kiss/kiss_abstract.rb', line 294

def write(frame, port=0, *args, **kwargs)
  @lock.synchronize do
      encoded_frame = KissAbstract.encode_frame(frame)
      if KissAbstract.valid_frame(encoded_frame)
        self.write_bytes(encoded_frame, *args, **kwargs)
      else
        raise IOError.new("frame was able to be encoded but was determined not to be valid")
      end
  end
end