Ruby

jamod control of Ifos successful

I am finally able to demonstrate direct jamod control of Ifos.

Snow Leopard and ruby-serialport

As soon as I upgraded to Snow Leopard, my mastery of the hardware serial port looked decidedly unhealthy:

peter@McMullen ~/Documents/saphum $ irb -r ifos/ifos.rb
/Library/Ruby/Gems/1.8/gems/ruby-serialport-0.7.0/lib/serialport.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/ruby-serialport-0.7.0/lib/serialport.bundle, 9): no suitable image found. Did find: (LoadError)
        /Library/Ruby/Gems/1.8/gems/ruby-serialport-0.7.0/lib/serialport.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/ruby-serialport-0.7.0/lib/serialport.bundle
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
        from /Library/Ruby/Gems/1.8/gems/ruby-serialport-0.7.0/lib/serialport.rb:1
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
        from ../modbus/modbus.rb:25
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
        from ./ifos.rb:19
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:253:in `load_modules'
        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:251:in `each'
        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:251:in `load_modules'
        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:21:in `setup'
        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:54:in `start'
        from /usr/bin/irb:13

Controlling Ifos from Mac OS X

More progress on my Mac development path migration: I can now control Ifos slaves from my iMac. This is the culmination of a few related successes, and means

  • The Mac sees and can use my USB-to-Serial cable
  • ruby-serialport is installed and working
  • My tiny Modbus master in Ruby is working
  • The Ifos slave still works (you never know with these "invention"-type thing-a-bobs)

Related, but not specifically required for basic Ifos control via Modbus/Ruby:

  • javax.comm is installed and working

Tiny Modbus Master in Ruby

Here's a tiny Modbus master in Ruby that supports ASCII and RTU modes for all function (and subfunction) codes defined in the MODBUS Application Protocol Specification V1.1b. (Joachim Wuttke has published a similar version that handles TCP.) Serial port handling in Ruby is provided by Guillaume Pierronnet's Ruby/SerialPort code.

Syndicate content