Class: Serial::Windows::Kernel32::DCB

Inherits:
FFI::Struct
  • Object
show all
Defined in:
lib/ffi-serial/windows.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#baudObject

:nodoc:



222
223
224
# File 'lib/ffi-serial/windows.rb', line 222

def baud #:nodoc:
  self[:BaudRate]
end

#baud=(val) ⇒ Object

:nodoc:



210
211
212
213
214
215
216
217
218
219
220
# File 'lib/ffi-serial/windows.rb', line 210

def baud=(val) #:nodoc:
  new_val = begin
    Integer(val)
  rescue StandardError
    -1
  end
  if (0 >= new_val)
    raise ArgumentError.new "Invalid baud, specify a positive Integer"
  end
  self[:BaudRate] = new_val; val
end

#data_bitsObject

:nodoc:



234
235
236
# File 'lib/ffi-serial/windows.rb', line 234

def data_bits #:nodoc:
  CONSTANTS['DATA_BITS_'].fetch(self[:ByteSize])
end

#data_bits=(val) ⇒ Object

:nodoc:



226
227
228
229
230
231
232
# File 'lib/ffi-serial/windows.rb', line 226

def data_bits=(val) #:nodoc:
  parsed = CONSTANTS['DATA_BITS'].fetch(val, nil)
  if parsed.nil?
    raise ArgumentError.new "Invalid data bits, supported values #{CONSTANTS['DATA_BITS'].keys.inspect}"
  end
  self[:ByteSize] = parsed; val
end

#parityObject

:nodoc:



263
264
265
# File 'lib/ffi-serial/windows.rb', line 263

def parity #:nodoc:
  CONSTANTS['PARITY_'].fetch(self[:Parity])
end

#parity=(val) ⇒ Object

:nodoc:



250
251
252
253
254
255
256
257
258
259
260
261
# File 'lib/ffi-serial/windows.rb', line 250

def parity=(val) #:nodoc:
  parsed = CONSTANTS['PARITY'].fetch(val, nil)
  if parsed.nil?
    raise ArgumentError.new "Invalid parity, supported values #{CONSTANTS['PARITY'].keys.inspect}"
  end
  if (:none == val)
    self[:Flags] = self[:Flags] & (~CONSTANTS['FLAGS'].fetch('fParity'))
  else
    self[:Flags] = self[:Flags] | CONSTANTS['FLAGS'].fetch('fParity')
  end
  self[:Parity] = parsed; val
end

#stop_bitsObject

:nodoc:



246
247
248
# File 'lib/ffi-serial/windows.rb', line 246

def stop_bits #:nodoc:
  CONSTANTS['STOP_BITS_'].fetch(self[:StopBits])
end

#stop_bits=(val) ⇒ Object

:nodoc:



238
239
240
241
242
243
244
# File 'lib/ffi-serial/windows.rb', line 238

def stop_bits=(val) #:nodoc:
  parsed = CONSTANTS['STOP_BITS'].fetch(val, nil)
  if parsed.nil?
    raise ArgumentError.new "Invalid data bits, supported values #{CONSTANTS['STOP_BITS'].keys.inspect}"
  end
  self[:StopBits] = parsed; val
end