cp2112 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 236ce95509446f965c43a5d5ff5931ce468ebf2e6e13f1a4f42dae9ba046a0d0
4
- data.tar.gz: 178532fb537e292c8921736bf65bc4cb09a7e81dd918ecc71f18e3f040eda758
3
+ metadata.gz: 5467902d6e8f89ff62a73acf8e28bb51a778cdc5ea652e7001c4bde10a62cae0
4
+ data.tar.gz: e8efdc37c5eb2e521c9c137b137f6b20a2f8d5e594efce07d5112759c1059e6a
5
5
  SHA512:
6
- metadata.gz: 51913845b2fbade52bc6e22f74c20e7426c86c1a86d879ac479fad661c1199e9552e05b4ef6654663c9842f2ce0a92538978708122d78b30643d0403a635973f
7
- data.tar.gz: 4a75e61ed5718c9fe63eec76ce52a6a637d3b1e0c6d52a584b54caba5055b77ea85a6eda03f8b81ef51eaedb0d6a4b8d7af0d5017d98fcadd5130cccb8abeddc
6
+ metadata.gz: '058eaa9c4f60fe090ae5167b13873a4d0a03e3f90a5e4ee03ba2cbadcb0867dd27bc4b50effc20eb8f013e5128d90dd210f1229e15d91de35d424c83a0965b65'
7
+ data.tar.gz: bb77bcb5ace5927c926ed7349e53068564d8866a911b9930dfe7dae1e9633a1dfe2d14e025903e3442e10f6c971f4e84517f44c291b44215b3a64c21355cca18
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # CP2112
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/cp2112.svg)](https://badge.fury.io/rb/cp2112)
4
+
3
5
  Ruby wrapper for Silicon Laboratories CP2112 USB(HID) i2c/SMBus bridge library
4
6
 
5
7
  ## Installation
@@ -41,18 +43,20 @@ raise unless (dev.getGpioConfig == gpio_new)
41
43
  }
42
44
 
43
45
  # Read via I2C
44
- i2c_read = proc{|addr, size|
46
+ i2c_read = proc{|addr, size| # addr is shifted by 1 bit (0bAAAA_AAAx, A=0/1, x=ignored)
45
47
  dev.readRequest(addr, size)
46
48
  dev.forceReadResponse(size)
47
- res = dev.getReadResponse
48
- res[1][0...res[2]]
49
+ s0, buf, buf_read = dev.getReadResponse
50
+ raise unless s0 == CP2112::Return_Code::HID_SMBUS_S0_COMPLETE
51
+ buf[0...buf_read] # return is [byte, ...]
49
52
  }
50
53
 
51
54
  # Write via I2C
52
- i2c_write = proc{|addr, data| # packed data is expected; data = [byte, ...].pack('C*')
53
- dev.writeRequest(addr, data, data.size)
55
+ i2c_write = proc{|addr, data| # byte array data is expected; data = [byte, ...]
56
+ dev.writeRequest(addr, data.pack('C*'), data.size)
54
57
  dev.transferStatusRequest
55
- dev.getTransferStatusResponse
58
+ s0, s1 = dev.getTransferStatusResponse
59
+ raise unless s0 == CP2112::Return_Code::HID_SMBUS_S0_COMPLETE
56
60
  }
57
61
 
58
62
  # TODO: your i2c_read, i2c_write operation
@@ -332,7 +332,12 @@ end
332
332
  Device.send(:define_method, :initialize, proc{|*args| @device = CP2112::open(*args)[0]})
333
333
 
334
334
  class <<self
335
+ def devices(vid = 0x0000, pid = 0x0000)
336
+ getNumDevices(vid, pid)[0]
337
+ end
335
338
  def [](index, vid = 0x0000, pid = 0x0000)
339
+ lim = devices(vid, pid)
340
+ raise "Incorrect index (must be < #{lim})" unless lim > index
336
341
  Device::new(index, vid, pid)
337
342
  end
338
343
  end
@@ -1,3 +1,3 @@
1
1
  module CP2112
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cp2112
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - fenrir(M.Naruoka)