Class: LibSerial::Drivers::MacOS
- Inherits:
-
Object
- Object
- LibSerial::Drivers::MacOS
- Defined in:
- lib/lib_serial/drivers/mac_os.rb
Instance Attribute Summary collapse
-
#device ⇒ Object
Returns the value of attribute device.
-
#file_descriptor ⇒ Object
Returns the value of attribute file_descriptor.
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(device) ⇒ MacOS
constructor
A new instance of MacOS.
- #open ⇒ Object
- #read ⇒ Object
- #set_baud_rate(rate = 38400) ⇒ Object
- #set_char_length(length = 8) ⇒ Object
- #set_flow_control(flow = :none) ⇒ Object
- #set_parity(parity = :none) ⇒ Object
- #set_stop_bits(length = 1) ⇒ Object
- #write(data) ⇒ Object
Constructor Details
#initialize(device) ⇒ MacOS
Returns a new instance of MacOS.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 6 def initialize(device) self.device = device self.open self.execute("stty -f #{self.device} raw") self.set_baud_rate self.set_parity self.set_char_length self.set_stop_bits self.set_flow_control end |
Instance Attribute Details
#device ⇒ Object
Returns the value of attribute device.
4 5 6 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 4 def device @device end |
#file_descriptor ⇒ Object
Returns the value of attribute file_descriptor.
4 5 6 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 4 def file_descriptor @file_descriptor end |
Instance Method Details
#close ⇒ Object
33 34 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 33 def close end |
#open ⇒ Object
17 18 19 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 17 def open self.file_descriptor = File.open(self.device, 'r+') end |
#read ⇒ Object
21 22 23 24 25 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 21 def read buffer = '' buffer << self.file_descriptor.readchar buffer end |
#set_baud_rate(rate = 38400) ⇒ Object
36 37 38 39 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 36 def set_baud_rate(rate = 38400) ## TODO: Check for valid baud rate self.execute("stty -f #{self.device} #{rate.to_i}") end |
#set_char_length(length = 8) ⇒ Object
46 47 48 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 46 def set_char_length(length = 8) self.execute("stty -f #{self.device} cs#{length.to_i}") end |
#set_flow_control(flow = :none) ⇒ Object
54 55 56 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 54 def set_flow_control(flow = :none) self.execute("stty -f #{self.device} #{LibSerial::Drivers.flow_control[flow]}") end |
#set_parity(parity = :none) ⇒ Object
41 42 43 44 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 41 def set_parity(parity = :none) ## TODO: Check for valid parity here self.execute("stty -f #{self.device} #{LibSerial::Drivers.parity[parity]}") end |
#set_stop_bits(length = 1) ⇒ Object
50 51 52 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 50 def set_stop_bits(length = 1) self.execute("stty -f #{self.device} #{(length == 1) ? '-' : ''}cstopb") end |
#write(data) ⇒ Object
27 28 29 30 31 |
# File 'lib/lib_serial/drivers/mac_os.rb', line 27 def write(data) ret = self.file_descriptor.write(data) self.file_descriptor.flush ret end |