shellixyz-serialport 1.3.2

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.
@@ -0,0 +1,3 @@
1
+ class SerialPort
2
+ VERSION = "1.3.2"
3
+ end
data/lib/serialport.rb ADDED
@@ -0,0 +1,60 @@
1
+ require 'serialport.so'
2
+ require 'serialport/version'
3
+
4
+
5
+ # This class is used for communication over a serial port.
6
+ # In addition to the methods here, you can use Ruby IO methods, e.g. read, write, getc, readlines, etc.
7
+ #
8
+ # @see http://rubydoc.info/stdlib/core/IO Ruby IO class
9
+ # @see http://www.cmrr.umn.edu/~strupp/serial.html "Serial Programming Guide for POSIX Operating Systems"
10
+ class SerialPort
11
+ private_class_method(:create)
12
+
13
+ # Creates a serial port object.
14
+ # Accepts the port identifier and a variable list for configuration as paramaters or hash.
15
+ # Please see SerialPort#set_modem_params
16
+ #
17
+ # @overload new(port, *params)
18
+ # @param port [Integer] the serial port number,
19
+ # where 0 is mapped to "COM1" on Windows, "/dev/ttyS0" on Linux, "/dev/cuaa0" on Mac OS X, etc.
20
+ # @overload new(port, *params)
21
+ # @param port [String] the serial port file e.g. "/dev/ttyS0"
22
+ # @return [SerialPort]
23
+ # @see SerialPort#set_modem_params
24
+ def SerialPort::new(port, *params)
25
+ sp = create(port)
26
+ begin
27
+ sp.set_modem_params(*params)
28
+ rescue
29
+ sp.close
30
+ raise
31
+ end
32
+ return sp
33
+ end
34
+
35
+ # This behaves like SerialPort#new, except that you can pass a block
36
+ # to which the new serial port object will be passed. In this case
37
+ # the connection is automaticaly closed when the block has finished.
38
+ #
39
+ # @yield [serial_port] the serial port number or filename
40
+ # @see SerialPort#new
41
+ # @see SerialPort#set_modem_params
42
+ def SerialPort::open(port, *params)
43
+ sp = create(port)
44
+ begin
45
+ sp.set_modem_params(*params)
46
+ rescue
47
+ sp.close
48
+ raise
49
+ end
50
+ if (block_given?)
51
+ begin
52
+ yield sp
53
+ ensure
54
+ sp.close
55
+ end
56
+ return nil
57
+ end
58
+ return sp
59
+ end
60
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/serialport/version', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "shellixyz-serialport"
6
+ s.license = "GPL-2"
7
+ s.version = SerialPort::VERSION
8
+ s.authors = ["Guillaume Pierronnet", "Alan Stern", "Daniel E. Shipton", "Tobin Richard", "Hector Parra", "Ryan C. Payne", "Michel Pastor"]
9
+ s.summary = "Library for using RS-232 serial ports."
10
+ s.description = "Ruby/SerialPort is a Ruby library that provides a class for using RS-232 serial ports. This version is a fork of the original serialport gem with some fixes"
11
+ s.email = "shellixyz@gmail.com"
12
+ s.homepage = "http://github.com/shellixyz/ruby-serialport/"
13
+
14
+ s.add_development_dependency "bundler"
15
+ s.add_development_dependency "rake"
16
+ s.add_development_dependency "rake-compiler", ">= 0.4.1"
17
+
18
+ s.require_paths = ["lib"]
19
+ s.files = `git ls-files`.split($\)
20
+ s.extensions = "ext/native/extconf.rb"
21
+ s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
22
+ s.extra_rdoc_files = ["LICENSE", "README.md"]
23
+ end
data/test/miniterm.rb ADDED
@@ -0,0 +1,25 @@
1
+ require "../serialport.so"
2
+
3
+
4
+ if ARGV.size < 4
5
+ STDERR.print <<EOF
6
+ Usage: ruby #{$0} num_port bps nbits stopb
7
+ EOF
8
+ exit(1)
9
+ end
10
+
11
+ sp = SerialPort.new(ARGV[0].to_i, ARGV[1].to_i, ARGV[2].to_i, ARGV[3].to_i, SerialPort::NONE)
12
+
13
+ open("/dev/tty", "r+") { |tty|
14
+ tty.sync = true
15
+ Thread.new {
16
+ while true do
17
+ tty.printf("%c", sp.getc)
18
+ end
19
+ }
20
+ while (l = tty.gets) do
21
+ sp.write(l.sub("\n", "\r"))
22
+ end
23
+ }
24
+
25
+ sp.close
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+ require "rubygems"
3
+ require "serialport"
4
+
5
+ sp = SerialPort.new("/dev/tty.usbserial", "9600".to_i)
6
+ sp.read_timeout = 100
7
+ sp.close
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shellixyz-serialport
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Guillaume Pierronnet
8
+ - Alan Stern
9
+ - Daniel E. Shipton
10
+ - Tobin Richard
11
+ - Hector Parra
12
+ - Ryan C. Payne
13
+ - Michel Pastor
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2021-09-10 00:00:00.000000000 Z
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: bundler
21
+ requirement: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ type: :development
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake-compiler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.4.1
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.4.1
61
+ description: Ruby/SerialPort is a Ruby library that provides a class for using RS-232
62
+ serial ports. This version is a fork of the original serialport gem with some fixes
63
+ email: shellixyz@gmail.com
64
+ executables: []
65
+ extensions:
66
+ - ext/native/extconf.rb
67
+ extra_rdoc_files:
68
+ - LICENSE
69
+ - README.md
70
+ files:
71
+ - ".gitignore"
72
+ - ".travis.yml"
73
+ - CHANGELOG
74
+ - CHECKLIST
75
+ - Gemfile
76
+ - LICENSE
77
+ - MANIFEST
78
+ - README.md
79
+ - Rakefile
80
+ - ext/native/extconf.rb
81
+ - ext/native/posix_serialport_impl.c
82
+ - ext/native/serialport.c
83
+ - ext/native/serialport.h
84
+ - ext/native/win_serialport_impl.c
85
+ - lib/serialport.rb
86
+ - lib/serialport/version.rb
87
+ - serialport.gemspec
88
+ - test/miniterm.rb
89
+ - test/set_readtimeout.rb
90
+ homepage: http://github.com/shellixyz/ruby-serialport/
91
+ licenses:
92
+ - GPL-2
93
+ metadata: {}
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubygems_version: 3.2.22
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Library for using RS-232 serial ports.
113
+ test_files: []