Skip to content

Commit

Permalink
Added news
Browse files Browse the repository at this point in the history
  • Loading branch information
atimin committed Jun 27, 2011
1 parent 1527f76 commit 43d1273
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 14 deletions.
1 change: 1 addition & 0 deletions .yardopts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
--files NEWS.md
--protected
--private
9 changes: 0 additions & 9 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,2 @@
source "http://rubygems.org"
gemspec
#gem 'serialport', :platforms => [:ruby, :mswin, :mingw]

#group :development do
# gem "rspec", "~> 2.3.0"
# gem "bundler", "~> 1.0.0"
# gem "rcov"
# gem 'yard'
# gem 'rdiscount'
#end
52 changes: 52 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Release 1.0.0
=====================================
New API for client part of library
---------------------------------------

Example:

require 'rmodbus'

ModBus::TCPClient.new('127.0.0.1', 8502) do |cl|
cl.with_slave(1) do |slave|
# Read a single holding register at address 16
slave.holding_registers[16]

# Write a single holding register at address 16
slave.holding_registers[16] = 123

# Read holding registers 16 through 20
slave.holding_registers[16..20]

# Write holding registers 16 through 20 with some values
slave.holding_registers[16..20] = [1, 2, 3, 4, 5]
end
end

for more information [see](http://rdoc.info/gems/rmodbus/1.0.0/frames)

Conversion to/from 32bit registers
-----------------------------------

Some modbus devices use two registers to store 32bit values.
RModbus provides some helper functions to go back and forth between these two things when reading/writing.
The built-in examples assume registers in a particular order but it's trivial to change.

# Reading values in multiple registers (you can read more than 2 and convert them all so long as they are in multiples of 2)
res = slave.holding_registers[0..1]
res.inspect => [20342, 17344]
res.to_32i => [1136676726]
res.to_32f => [384.620788574219]

# Writing 32b values to multiple registers
cl.holding_registers[0..1] = [1136676726].from_32i
cl.holding_registers[0..1] => [20342, 17344]
cl.holding_registers[2..3] = [384.620788574219].from_32f
cl.holding_registers[2..3] => [20342, 17344]

Support JRuby
--------------------------------------
Now you could use RModBus on JRuby without RTU implementation.

RTU classes requires gem [serialport](https://github.com/hparra/ruby-serialport) which
currently not compatible with JRuby
4 changes: 1 addition & 3 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,4 @@ end
task :default => :spec

require 'yard'
YARD::Rake::YardocTask.new do |t|
t.files = ['lib/**/*.rb', 'README', 'AUTHORS', 'LICENSE']
end
YARD::Rake::YardocTask.new
5 changes: 3 additions & 2 deletions rmodbus.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
gem.summary = "RModBus - free implementation of protocol ModBus"
gem.files = Dir['lib/**/*.rb','examples/*.rb','spec/*.rb', 'Rakefile']
gem.rdoc_options = ["--title", "RModBus", "--inline-source", "--main", "README.md"]
gem.extra_rdoc_files = ["README.md", "AUTHORS", "LICENSE"]
gem.extra_rdoc_files = ["README.md", "NEWS.md"]

if RUBY_PLATFORM == 'java'
gem.platform = Gem::Platform.new("java")
Expand All @@ -21,9 +21,10 @@ Gem::Specification.new do |gem|
gem.add_dependency 'serialport'
end

gem.add_development_dependency 'rake'
gem.add_development_dependency 'bundler'
gem.add_development_dependency 'rspec'
gem.add_development_dependency 'rcov'
gem.add_development_dependency 'yard'
gem.add_development_dependency 'rdiscount'
end
end

0 comments on commit 43d1273

Please sign in to comment.