class Onewire::Connection
Constants
- PING
Public Class Methods
new(host = 'localhost', port = 4304)
click to toggle source
# File lib/onewire/connection.rb, line 8 def initialize(host = 'localhost', port = 4304) @socket = TCPSocket.new host, port end
Public Instance Methods
close()
click to toggle source
# File lib/onewire/connection.rb, line 12 def close @socket.close end
flags()
click to toggle source
# File lib/onewire/connection.rb, line 40 def flags 258 # TODO end
read()
click to toggle source
# File lib/onewire/connection.rb, line 23 def read _, payload_size, _, _, size, offset = read_header if payload_size > 0 @socket.read(payload_size)[offset..offset+size-1] # Read response payload else nil end end
read_header()
click to toggle source
# File lib/onewire/connection.rb, line 33 def read_header loop do header = @socket.read(24).unpack('NNNNNN') # Read and unpack response header (see http://owfs.org/index.php?page=owserver-protocol) return header if header[1] != PING # Return when non-ping response read end end
version()
click to toggle source
# File lib/onewire/connection.rb, line 44 def version 0 end
write(type, payload, size = 0, offset = 0)
click to toggle source
# File lib/onewire/connection.rb, line 16 def write(type, payload, size = 0, offset = 0) request_fields = [version, payload.size, type, flags, size, offset, payload] # Prepare request structure (see http://owfs.org/index.php?page=owserver-protocol) request_data = request_fields.pack('NNNNNNA*') # Pack it - first six parts are integers, payload is string @socket.write request_data # Send it end