libftdi-ruby 0.0.4 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +1 -1
  2. data/lib/ftdi.rb +28 -5
  3. data/lib/ftdi/version.rb +1 -1
  4. metadata +2 -2
data/README.md CHANGED
@@ -4,7 +4,7 @@ Ruby bindings for [libftdi](http://www.intra2net.com/en/developer/libftdi/index.
4
4
 
5
5
  ## Prerequisites
6
6
 
7
- You must install `libftdi` itself in addition to this gem.
7
+ You must install `libftdi` version 0.20 in addition to this gem.
8
8
 
9
9
  ## Synopsys
10
10
 
@@ -6,7 +6,7 @@ require "ftdi/version"
6
6
  module Ftdi
7
7
  extend FFI::Library
8
8
 
9
- ffi_lib "libftdi"
9
+ ffi_lib ["libftdi", "libftdi.so.1"]
10
10
 
11
11
  # FTDI chip type.
12
12
  ChipType = enum(:type_am, :type_bm, :type_2232c, :type_r, :type_2232h, :type_4232h, :type_232h)
@@ -89,9 +89,6 @@ module Ftdi
89
89
  # end
90
90
  class Context < FFI::ManagedStruct
91
91
  layout(
92
- # USB specific
93
- # libusb's context
94
- :usb_ctx, :pointer,
95
92
  # libusb's usb_dev_handle
96
93
  :usb_dev, :pointer,
97
94
  # usb read timeout
@@ -133,11 +130,17 @@ module Ftdi
133
130
  :bitbang_mode, :uint8,
134
131
 
135
132
  # Decoded eeprom structure
136
- :eeprom, :pointer,
133
+ :eeprom, :int,
137
134
 
138
135
  # String representation of last error
139
136
  :error_str, :string,
140
137
 
138
+ # Buffer needed for async communication
139
+ :async_usb_buffer, :pointer,
140
+
141
+ # Number of URB-structures we can buffer
142
+ :async_usb_buffer_size, :uint,
143
+
141
144
  # Defines behavior in case a kernel module is already attached to the device
142
145
  :module_detach_mode, Ftdi::ModuleDetachMode
143
146
  )
@@ -376,6 +379,24 @@ module Ftdi
376
379
  new_interface
377
380
  end
378
381
 
382
+ # Set the DTR control line value.
383
+ # @param [Fixnum] value Either 0 or 1
384
+ # @raise [StatusCodeError] libftdi reports error.
385
+ # @return [Fixnum] The value
386
+ def dtr=(value)
387
+ check_result(Ftdi.ftdi_setdtr(ctx, value))
388
+ value
389
+ end
390
+
391
+ # Set the RTS control line value.
392
+ # @param [Fixnum] value Either 0 or 1
393
+ # @raise [StatusCodeError] libftdi reports error.
394
+ # @return [Fixnum] The value
395
+ def rts=(value)
396
+ check_result(Ftdi.ftdi_setrts(ctx, value))
397
+ value
398
+ end
399
+
379
400
  private
380
401
  def ctx
381
402
  self.to_ptr
@@ -409,5 +430,7 @@ module Ftdi
409
430
  attach_function :ftdi_set_interface, [ :pointer, Interface ], :int
410
431
  attach_function :ftdi_set_bitmode, [ :pointer, :int, :int ], :int
411
432
  attach_function :ftdi_read_pins, [ :pointer, :pointer ], :int
433
+ attach_function :ftdi_setdtr, [ :pointer, :int ], :int
434
+ attach_function :ftdi_setrts, [ :pointer, :int ], :int
412
435
  end
413
436
 
@@ -1,5 +1,5 @@
1
1
  module Ftdi
2
2
  # Gem version.
3
- VERSION = "0.0.4".freeze
3
+ VERSION = "0.0.20".freeze
4
4
  end
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libftdi-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.20
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-10 00:00:00.000000000 Z
12
+ date: 2013-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi