prologix_gpib 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a3ac3063b92e458646746217cdf903ee00fd9cceddfb317e38a614e3c60ffbf7
4
+ data.tar.gz: 239cd62ff1edf58fd02bb6bfd0af1409a87db4f2581a72ea2b409a041fd4f0ec
5
+ SHA512:
6
+ metadata.gz: cbb511c194b98682e19ea81aed648d07f7014c2f84e255f07a7e7737be8282e123121948c00c2dea339be776f41dffbb1530a35ad519ebc948bc284fc8ed3239
7
+ data.tar.gz: 80633e148e852b0a419fbc027ddba9717f82c654ddf2d5971421ec2614d0ee612f571987e7edaa167d14592ddaace26831b387e617def81228cc09f4df228f17
data/.DS_Store ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /node_modules/
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.1.0
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in prologix_gpib_usb.gemspec
6
+ gemspec
7
+
8
+ gem 'pry'
9
+
10
+ gem 'rubyserial', '~> 0.6'
data/Gemfile.lock ADDED
@@ -0,0 +1,49 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ prologix_gpib (0.4.3)
5
+ activesupport
6
+ rubyserial
7
+ terminal-table (~> 3.0.2)
8
+ thor
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ activesupport (7.0.1)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ coderay (1.1.3)
19
+ concurrent-ruby (1.1.9)
20
+ ffi (1.15.5)
21
+ i18n (1.8.11)
22
+ concurrent-ruby (~> 1.0)
23
+ method_source (1.0.0)
24
+ minitest (5.15.0)
25
+ pry (0.14.1)
26
+ coderay (~> 1.1)
27
+ method_source (~> 1.0)
28
+ rake (10.5.0)
29
+ rubyserial (0.6.0)
30
+ ffi (~> 1.9, >= 1.9.3)
31
+ terminal-table (3.0.2)
32
+ unicode-display_width (>= 1.1.1, < 3)
33
+ thor (1.2.1)
34
+ tzinfo (2.0.4)
35
+ concurrent-ruby (~> 1.0)
36
+ unicode-display_width (2.1.0)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ bundler (~> 2.0)
43
+ prologix_gpib!
44
+ pry
45
+ rake (~> 10.0)
46
+ rubyserial (~> 0.6)
47
+
48
+ BUNDLED WITH
49
+ 2.2.32
Binary file
Binary file
data/README.md ADDED
@@ -0,0 +1,108 @@
1
+ # PrologixGpib
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/prologix_gpib.svg)](https://rubygems.org/gems/prologix_gpib)
4
+
5
+ `prologix_gpib` is a ruby gem for accessing [Prologix GPIB controllers](http://prologix.biz/). It currently only works with USB controllers on MacOS.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'prologix_gpib'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install prologix_gpib
22
+
23
+ ## USB Controller
24
+
25
+ ### CLI
26
+
27
+ The gem comes with a simple cli for querying controllers:
28
+
29
+ ```bash
30
+ $ plx list
31
+ +-------------------------------------------------------------------------------+
32
+ | Prologix Controllers |
33
+ +-------+-------------------------------+---------+-----------------------------+
34
+ | index | Controller | Version | Path |
35
+ +-------+-------------------------------+---------+-----------------------------+
36
+ | 0 | Prologix GPIB-USB Controller | 6.101 | /dev/tty.usbserial-PX9HPBMB |
37
+ | 1 | Prologix GPIB-USB Controller | 6.107 | /dev/tty.usbserial-PXEGWA9A |
38
+ +-------+-------------------------------+---------+-----------------------------+
39
+
40
+ $ plx info 0
41
+
42
+ Prologix gpib-usb controller
43
+ Path: /dev/tty.usbserial-PX9HPBMB
44
+ Firmware: 6.101
45
+ Mode: Controller
46
+ Device Address: 9
47
+ Auto Read: Disabled
48
+ Read Timeout: 200
49
+ EOI Assertion: Enabled
50
+ EOS: Append CR+LF
51
+ EOT: Enabled
52
+
53
+ ```
54
+
55
+ ### Playing in Console
56
+
57
+ I'm enamoured by this interface, I'd like a more ruby like way of finding and connecting controllers, that works with Ethernet controllers too.
58
+
59
+ ```ruby
60
+ irb(main):001:0> require 'prologix_gpib'
61
+ => true
62
+
63
+ irb(main):002:0> paths = PrologixGpib.usb_paths
64
+ => ["/dev/tty.usbserial-PX9HPBMB", "/dev/tty.usbserial-PXEGWA9A"]
65
+
66
+ irb(main):003:0> device = PrologixGpib::UsbController.new(paths[0])
67
+ => #<PrologixGpib::UsbController:0x00000001574c4098 @serial_port=#<Serial:0x00000001574bfef8 @config=#<RubySerial::Posix::Termios:0x00000001574bf728>, @fd=9, @open=true>>
68
+
69
+ irb(main):004:0> device.config
70
+ => {:device_name=>"Prologix GPIB-USB Controller", :firmware=>"6.101", :mode=>"Device", :device_address=>"9", :auto_read=>"NA", :read_timeout=>"NA", :eoi_assertion=>"Enabled", :eos=>"Append CR+LF", :eot=>"Enabled"}
71
+
72
+ irb(main):005:0> device.address
73
+ => "9"
74
+
75
+ irb(main):006:0> device.mode = :controller
76
+ => :controller
77
+
78
+ irb(main):007:0> device.mode
79
+ => "0"
80
+
81
+ irb(main):008:0> device.config
82
+ => {:device_name=>"Prologix GPIB-USB Controller", :firmware=>"6.101", :mode=>"Controller", :device_address=>"9", :auto_read=>"Disabled", :read_timeout=>"200", :eoi_assertion=>"Enabled", :eos=>"Append CR+LF", :eot=>"Enabled"}
83
+ ```
84
+
85
+ ### Firmware update
86
+
87
+ Some of the Device commands require the latest firmware.
88
+
89
+ ```irb
90
+ device.version
91
+ => "Prologix GPIB-USB Controller version 6.107"
92
+ ```
93
+
94
+ More details here:
95
+ http://prologix.biz/gpib-usb-6.0-firmware-update.html
96
+
97
+ Download FTDI drivers for Windows
98
+ https://ftdichip.com/wp-content/uploads/2021/08/CDM212364_Setup.zip
99
+
100
+ ## Development
101
+
102
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
103
+
104
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
105
+
106
+ ## Contributing
107
+
108
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/prologix_gpib.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'prologix_gpib'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+ # plx = Prologix::UsbController.new
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
data/bin/plx ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'prologix_gpib'
4
+
5
+ PrologixGpib::CLI.start(ARGV)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,53 @@
1
+ require 'thor'
2
+ require 'pp'
3
+ require 'prologix_gpib'
4
+ require 'terminal-table'
5
+
6
+ module PrologixGpib
7
+ class CLI < Thor
8
+ desc 'list', 'List all connected controllers'
9
+
10
+ def list
11
+ if controllers_connected?
12
+ table =
13
+ Terminal::Table.new do |t|
14
+ t.title = 'Prologix Controllers'
15
+ t.headings = %w[index Controller Version Path]
16
+ PrologixGpib.usb_paths.each.with_index do |path, index|
17
+ device = PrologixGpib::UsbController.new(path)
18
+ str = device.version.split('version')
19
+ t.add_row [index.to_s, str[0], str[1], path]
20
+ end
21
+ end
22
+ puts table
23
+ else
24
+ puts 'No Prologix Controllers available.'
25
+ end
26
+ end
27
+
28
+ desc 'info', 'Display Controller information'
29
+ option :path, alias: :p
30
+ def info
31
+ return unless controllers_connected?
32
+
33
+ paths = options[:path].nil? ? PrologixGpib.usb_paths : [options[:path]]
34
+
35
+ paths.each do |path|
36
+ hash = PrologixGpib::UsbController.new(path).config
37
+ puts "\n #{titleise hash.delete(:device_name)}"
38
+ puts "\tPath: #{path}"
39
+ hash.each { |k, v| puts "\t#{titleise(k)}: #{v}" }
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def controllers_connected?
46
+ PrologixGpib.usb_paths.count >= 1
47
+ end
48
+
49
+ def titleise(string)
50
+ string.to_s.split('_').map(&:capitalize).join(' ')
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,3 @@
1
+ module PrologixGpib::Lan
2
+ class Error < StandardError; end
3
+ end
@@ -0,0 +1,203 @@
1
+ module PrologixGpib::Usb::Commands
2
+ def config
3
+ error_message = 'Error'
4
+ device_version = version.split('version').map(&:strip)
5
+ return { error: error_message } unless device_version.count == 2 && device_version[0].include?('Prologix')
6
+ conf = {}
7
+ conf[:device_name] = device_version[0]
8
+ conf[:firmware] = device_version[1]
9
+ conf[:mode] = { '1' => 'Controller', '0' => 'Device' }.fetch(mode, error_message)
10
+ conf[:device_address] = address[/([1-9])/].nil? ? error_message : address[/([1-9])/]
11
+ conf[:auto_read] = { '1' => 'Enabled', '0' => 'Disabled', 'Unrecognized command' => 'NA' }.fetch(auto, error_message)
12
+ tmo = timeout
13
+ conf[:read_timeout] =
14
+ case tmo
15
+ when 'Unrecognized command'
16
+ 'NA'
17
+ when /([1-1000])/
18
+ tmo
19
+ else
20
+ error_message
21
+ end
22
+ conf[:eoi_assertion] = { '1' => 'Enabled', '0' => 'Disabled' }.fetch(eoi, error_message)
23
+ conf[:eos] =
24
+ case eos
25
+ when '0'
26
+ 'Append CR+LF'
27
+ when '1'
28
+ 'Append CR to instrument commands'
29
+ when '2'
30
+ 'Append LF to instrument commands'
31
+ when '3'
32
+ 'Do not append anything to instrument commands'
33
+ else
34
+ error_message
35
+ end
36
+ conf[:eot] = { '1' => 'Enabled', '0' => 'Disabled' }.fetch(eot, error_message)
37
+ eot_str = eot_char
38
+
39
+ # conf[:eot_char] = eot_str.to_i.chr[/([ -~])/].nil? ? error_message : "'#{eot_str.to_i.chr}', ascii #{eot_str}"
40
+ conf
41
+ end
42
+
43
+ # This command configures the Prologix GPIB-USB controller to be a :controller or :device.
44
+ def mode=(op_mode)
45
+ mode =
46
+ case op_mode
47
+ when :controller, 1, '1'
48
+ 1
49
+ when :device, 0, '0'
50
+ 0
51
+ else
52
+ ''
53
+ end
54
+ write("++mode #{mode}")
55
+ end
56
+ alias set_operation_mode mode=
57
+
58
+ def mode
59
+ device_query('++mode')
60
+ end
61
+ alias operation_mode mode
62
+
63
+ # Timeout value, in milliseconds, used in the read command and spoll command.
64
+ # Any value between 1 and 3000 milliseconds.
65
+ def timeout=(milliseconds)
66
+ return unless connected? || milliseconds.class != Integer
67
+
68
+ write("++read_tmo_ms #{milliseconds}")
69
+ end
70
+
71
+ def timeout
72
+ device_query('++read_tmo_ms')
73
+ end
74
+
75
+ # PrologixGPIB-USB controller can be configured to automatically address instruments to 'talk' after sending a command in order to read the response.
76
+ # *** Avaliable in Controller mode. When enabled can cause the prologix controller to lockup. ***
77
+ def auto=(auto_mode)
78
+ mode =
79
+ case auto_mode
80
+ when :enable, 1, '1'
81
+ 1
82
+ when :disable, 0, '0'
83
+ 0
84
+ else
85
+ ''
86
+ end
87
+ write("++auto #{mode}")
88
+ end
89
+ alias set_auto_read_after_write auto=
90
+
91
+ def auto
92
+ device_query('++auto')
93
+ end
94
+ alias auto_read_after_write auto
95
+
96
+ # In :controller mode, address refers to the GPIB address of the instrument being controlled.
97
+ # In :device mode, it is the address of the GPIB peripheral that Prologix GPIB-USB controller is emulating.
98
+ def address=(addr)
99
+ write("++addr #{addr}")
100
+ end
101
+ alias set_address address=
102
+
103
+ def address
104
+ device_query('++addr')
105
+ end
106
+
107
+ # This command enables or disables the assertion of the EOI signal with the last character of any command sent over GPIB port.
108
+ # Some instruments require EOI signal to be asserted in order to properly detect the end of a command.
109
+ def eoi=(eoi_mode)
110
+ mode =
111
+ case eoi_mode
112
+ when :disable, '0', 0
113
+ 0
114
+ when :enable, '1', 1
115
+ 1
116
+ else
117
+ raise ArgumentError, "Invalid arg: '#{eoi_mode}'"
118
+ end
119
+ write("++eoi #{mode}")
120
+ end
121
+
122
+ def eoi
123
+ device_query('++eoi')
124
+ end
125
+
126
+ # This command specifies GPIB termination characters. When data from host is received over USB, all non-escaped LF, CR and ESC characters are removed and GPIB terminators, as specified by this command, are appended before sending the data to instruments.
127
+ # This command does not affect data from instruments received over GPIB port.
128
+ # EXAMPLES:
129
+ # 0 Append CR+LF
130
+ # 1 Append CR to instrument commands
131
+ # 2 Append LF to instrument commands
132
+ # 3 Do not append anything to instrument commands
133
+ def eos=(eos_mode)
134
+ error_message = "Invalid arg: '#{eos_mode}'"
135
+ raise ArgumentError, error_message unless [0, 1, 2, 3].include? eos_mode
136
+
137
+ write("++eos #{eos_mode}")
138
+ end
139
+
140
+ def eos
141
+ device_query('++eos')
142
+ end
143
+
144
+ # This command enables or disables the appending of a user specified character (see eot_char) to USB output whenever EOI is detected while reading a character from the GPIBport.
145
+ def eot=(eot_mode)
146
+ mode =
147
+ case eot_mode
148
+ when 0, '0', false, :disable
149
+ 0
150
+ when 1, '1', true, :enable
151
+ 1
152
+ else
153
+ raise ArgumentError, "Invalid arg: '#{eot_mode}'"
154
+ end
155
+ write("++eot_enable #{mode}")
156
+ end
157
+
158
+ def eot
159
+ device_query('++eot_enable')
160
+ end
161
+
162
+ def eot_char=(char)
163
+ write("++eot_enable #{char}")
164
+ end
165
+
166
+ def eot_char
167
+ device_query('++eot_char')
168
+ end
169
+
170
+ def version
171
+ device_query('++ver')
172
+ end
173
+
174
+ def savecfg
175
+ device_query('++savecfg')
176
+ end
177
+
178
+ def spoll(address = nil)
179
+ device_query
180
+ end
181
+
182
+ def trigger(addr_list = [])
183
+ write("++trg #{addr_list.join(' ')}")
184
+ end
185
+
186
+ def reset
187
+ write('++rst')
188
+ end
189
+
190
+ def flush
191
+ return unless connected?
192
+
193
+ loop until serial_port.getbyte.nil?
194
+ end
195
+
196
+ private
197
+
198
+ def device_query(command)
199
+ flush
200
+ write(command)
201
+ readline
202
+ end
203
+ end
@@ -0,0 +1,83 @@
1
+ module PrologixGpib::Usb
2
+ require 'timeout'
3
+ require 'prologix_gpib/usb/commands'
4
+
5
+ class Error < StandardError
6
+ end
7
+
8
+ EOL = "\r\n".freeze
9
+
10
+ attr_reader :serial_port
11
+
12
+ def initialize(path, mode: :controller, address: 9)
13
+ paths = path.nil? ? PrologixGpib.controller_paths : [path]
14
+ open_serial_port(paths)
15
+ flush
16
+ self.mode = mode
17
+ self.address = address
18
+ self.auto = :disable
19
+ self.eos = 0
20
+
21
+ yield self if block_given?
22
+ end
23
+
24
+ def close
25
+ return unless connected?
26
+
27
+ @serial_port.close
28
+ @serial_port = nil
29
+ @serial_port.nil?
30
+ end
31
+
32
+ def write(str)
33
+ return unless connected?
34
+
35
+ @serial_port.write("#{str}#{EOL}")
36
+ end
37
+
38
+ def read(bytes)
39
+ return unless connected?
40
+
41
+ @serial_port.read(bytes)
42
+ end
43
+
44
+ def readline
45
+ return unless connected?
46
+
47
+ t = Timeout.timeout(1, Timeout::Error, 'No response from Data Acquisistion') { getline }
48
+ end
49
+
50
+ def sr(register = nil)
51
+ write 'SR'
52
+ write '++read eoi'
53
+ array = []
54
+ 24.times { array << readline }
55
+ array.map! { |byte| '%08b' % byte.to_i }
56
+ register.nil? ? array : array[register - 1]
57
+ end
58
+
59
+ private
60
+
61
+ def open_serial_port(paths)
62
+ paths.each do |path|
63
+ @serial_port = Serial.new(path)
64
+ write('++ver')
65
+ return if getline.include? 'Prologix'
66
+ end
67
+ raise Error, 'No Prologix USB controllers found.'
68
+ end
69
+
70
+ def connected?
71
+ raise Error, 'ConnectionError: No open Prologix device connections.' if @serial_port.nil?
72
+
73
+ true
74
+ end
75
+
76
+ # This method will block until the EOL terminator is received
77
+ # The lower level gets method is pure ruby, so can be safely used with Timeout.
78
+ def getline
79
+ return unless connected?
80
+
81
+ @serial_port.gets(EOL).chomp
82
+ end
83
+ end
@@ -0,0 +1,3 @@
1
+ module PrologixGpib
2
+ VERSION = '0.4.3'
3
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubyserial'
4
+ require 'prologix_gpib/version'
5
+ require 'prologix_gpib/lan'
6
+ require 'prologix_gpib/usb'
7
+ require 'prologix_gpib/cli'
8
+
9
+ module PrologixGpib
10
+ class UsbController
11
+ include PrologixGpib::Usb
12
+ include PrologixGpib::Usb::Commands
13
+ end
14
+
15
+ class LanController
16
+ include PrologixGpib::Lan
17
+ end
18
+
19
+ # Ideally this class needs to handle finding all avaliable Prologix GPIB controllers (USB and Ethernet),
20
+ # But for now it simply passes the Prologix USB device paths onto the controller class
21
+ # No windows serial support just yet.
22
+ class << self
23
+ def new
24
+ self
25
+ end
26
+
27
+ # Find first avaliable Prologix controller and return a valid controller object
28
+ def open; end
29
+
30
+ def usb_paths
31
+ usb_controller_paths
32
+ end
33
+
34
+ private
35
+
36
+ def usb_controller_paths
37
+ path_str, dir =
38
+ if RubySerial::ON_LINUX
39
+ %w[ttyUSB /dev/]
40
+ elsif RubySerial::ON_WINDOWS
41
+ ['TODO: Implement find device for Windows', 'You lazy bugger']
42
+ else
43
+ %w[tty.usbserial /dev/]
44
+ end
45
+
46
+ Dir.glob("#{dir}#{path_str}*")
47
+ end
48
+ end
49
+ end
data/package.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "devDependencies": {
3
+ "@prettier/plugin-ruby": "^2.0.0",
4
+ "prettier": "^2.5.1"
5
+ }
6
+ }
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'prologix_gpib/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'prologix_gpib'
9
+ spec.version = PrologixGpib::VERSION
10
+ spec.authors = ['Rob Carruthers']
11
+ spec.email = ['robcarruthers@mac.com']
12
+
13
+ spec.summary = 'Prologix GPIB controller ruby wrapper.'
14
+ spec.description = 'Ruby wrapper for the Prologix GPIB controllers, USB & Ethernet.'
15
+ spec.homepage = 'https://github.com/robcarruthers/prologix_gpib'
16
+ spec.license = 'MIT'
17
+
18
+ # spec.metadata['allowed_push_host'] = "http://mygemserver.com'"
19
+
20
+ spec.metadata['homepage_uri'] = spec.homepage
21
+ spec.metadata['source_code_uri'] = 'https://github.com/robcarruthers/prologix_gpib'
22
+ spec.metadata['changelog_uri'] = 'https://github.com/robcarruthers/prologix_gpib'
23
+
24
+ # Specify which files should be added to the gem when it is released.
25
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
26
+ spec.files = Dir.chdir(File.expand_path(__dir__)) { `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } }
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_dependency 'activesupport'
32
+ spec.add_dependency 'rubyserial'
33
+ spec.add_dependency 'thor'
34
+ spec.add_dependency 'terminal-table', '~> 3.0.2'
35
+
36
+ spec.add_development_dependency 'bundler', '~> 2.0'
37
+ spec.add_development_dependency 'rake', '~> 10.0'
38
+ end
data/test_script.rb ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require 'prologix_gpib'
3
+ paths = PrologixGpib.usb_paths
4
+
5
+ device = PrologixGpib::UsbController.new([paths[0])
6
+ puts device.config
data/yarn.lock ADDED
@@ -0,0 +1,15 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@prettier/plugin-ruby@^2.0.0":
6
+ version "2.0.0"
7
+ resolved "https://registry.yarnpkg.com/@prettier/plugin-ruby/-/plugin-ruby-2.0.0.tgz#a9f2d4183b56a9db9f80bbc685832a3b78685793"
8
+ integrity sha512-pA0rjTi5J7cT86XPNhXp7CpdV2Tlyj5oqDIsnQRxMu2P7LY2KJI/pyOSM8pzTH8BgRyQfe1P1NPCcTwxUnUWtQ==
9
+ dependencies:
10
+ prettier ">=2.3.0"
11
+
12
+ prettier@>=2.3.0, prettier@^2.5.1:
13
+ version "2.5.1"
14
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
15
+ integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: prologix_gpib
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.3
5
+ platform: ruby
6
+ authors:
7
+ - Rob Carruthers
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-01-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubyserial
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: terminal-table
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ description: Ruby wrapper for the Prologix GPIB controllers, USB & Ethernet.
98
+ email:
99
+ - robcarruthers@mac.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".DS_Store"
105
+ - ".gitignore"
106
+ - ".tool-versions"
107
+ - Gemfile
108
+ - Gemfile.lock
109
+ - PrologixGpibEthernetManual.pdf
110
+ - PrologixGpibUsbManual-6.0.pdf
111
+ - README.md
112
+ - Rakefile
113
+ - bin/console
114
+ - bin/plx
115
+ - bin/setup
116
+ - lib/prologix_gpib.rb
117
+ - lib/prologix_gpib/cli.rb
118
+ - lib/prologix_gpib/lan.rb
119
+ - lib/prologix_gpib/usb.rb
120
+ - lib/prologix_gpib/usb/commands.rb
121
+ - lib/prologix_gpib/version.rb
122
+ - package.json
123
+ - prologix_gpib.gemspec
124
+ - test_script.rb
125
+ - yarn.lock
126
+ homepage: https://github.com/robcarruthers/prologix_gpib
127
+ licenses:
128
+ - MIT
129
+ metadata:
130
+ homepage_uri: https://github.com/robcarruthers/prologix_gpib
131
+ source_code_uri: https://github.com/robcarruthers/prologix_gpib
132
+ changelog_uri: https://github.com/robcarruthers/prologix_gpib
133
+ post_install_message:
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ requirements: []
148
+ rubygems_version: 3.3.3
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: Prologix GPIB controller ruby wrapper.
152
+ test_files: []