rbuspirate 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b41cd3f0836279a307505163fc2689965c89f1da8a9e526388b805727e85b41
4
- data.tar.gz: 9f8f4bd005c80e96776d0527b1a5f521fa1a639b095585551812f9f48da4d11d
3
+ metadata.gz: ea1e9f18b739184a2722b3dd7d8cc4c8d64830291fe9caa93099360ade5ab41e
4
+ data.tar.gz: e7ad361bd69818d82d73b1fb0942c184808428d835b66c894b70f1843fee4fa3
5
5
  SHA512:
6
- metadata.gz: 206e7ca0c8075ef15f23ec0bb0b8e0d772d4173eb9abaec99388e2de095ed2cbc72d48e745e62c257898a94b541a910723f4005c8e4de8f200c63a14cabc2d0b
7
- data.tar.gz: 62672ed1d3ffc5168f38d70796cae79d6120a732507076ad16567c211620ba34404834a42cc8d3d3fb3f187a7daafa74cee4cabb1461ef8f1ae0c77df7194efe
6
+ metadata.gz: 67bb082b478a92a839d8d8f5c8d0806ada5944d82cb8edf7de25626890519b6ed3afeae18fb0280c40ba4b503ef1f615a40307d1fad888d58294587160079fc7
7
+ data.tar.gz: 8f066117c4100121d93ac477d1eea45f815a8e016651ad246e11e5fd81044553de5ada39080aa363323d399249b01d1caaaaaf39006b715bfa051826ff23a3ad
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rbuspirate (0.2.2)
4
+ rbuspirate (0.2.3)
5
5
  serialport (~> 1.3)
6
6
 
7
7
  GEM
@@ -11,7 +11,22 @@ require 'rbuspirate/interfaces/1wire'
11
11
 
12
12
  module Rbuspirate
13
13
  class Client
14
+ def self.register_mode(
15
+ name_symbol, switch_command,
16
+ wait_timeout, enter_response,
17
+ interface_class
18
+ )
19
+ define_method("enter_#{name_symbol}".to_sym) do
20
+ switch_mode(
21
+ name_symbol, switch_command,
22
+ wait_timeout, enter_response,
23
+ interface_class
24
+ )
25
+ end
26
+ end
27
+
14
28
  attr_reader :mode, :interface, :needs_reset
29
+ alias iface interface
15
30
 
16
31
  def initialize(dvc, sync: true)
17
32
  raise ArgumentError, 'Shitty arg' unless [SerialPort, String].include?(dvc.class)
@@ -47,35 +62,24 @@ module Rbuspirate
47
62
 
48
63
  raise 'Enter to bitbang failied'
49
64
  end
50
-
51
- def enter_i2c
52
- raise 'Device needs reset to change mode' if @needs_reset
53
-
54
- switch_mode(
65
+ [
66
+ [
55
67
  :i2c, Commands::I2C::ENTER,
56
68
  Timeouts::I2C::ENTER, Responses::I2C::ENTER,
57
69
  Interfaces::I2C
58
- )
59
- end
60
-
61
- def enter_uart
62
- raise 'Device needs reset to change mode' if @needs_reset
63
-
64
- switch_mode(
70
+ ],
71
+ [
65
72
  :uart, Commands::UART::ENTER,
66
73
  Timeouts::UART::ENTER, Responses::UART::ENTER,
67
74
  Interfaces::UART
68
- )
69
- end
70
-
71
- def enter_1wire
72
- raise 'Device needs reset to change mode' if @needs_reset
73
-
74
- switch_mode(
75
+ ],
76
+ [
75
77
  :'1wire', Commands::LE1WIRE::ENTER,
76
78
  Timeouts::LE1WIRE::ENTER, Responses::LE1WIRE::ENTER,
77
79
  Interfaces::LE1WIRE
78
- )
80
+ ]
81
+ ].each do |mode|
82
+ register_mode(*mode)
79
83
  end
80
84
 
81
85
  private
@@ -86,7 +90,7 @@ module Rbuspirate
86
90
  interface_class
87
91
  )
88
92
  raise 'Device needs reset to change mode' if @needs_reset
89
-
93
+ reset_binary_mode
90
94
  @le_port.write(switch_command.chr)
91
95
  resp = @le_port.expect(
92
96
  enter_response, wait_timeout
@@ -1,3 +1,3 @@
1
1
  module Rbuspirate
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbuspirate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - sh7d
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-05 00:00:00.000000000 Z
11
+ date: 2020-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler