ea-ps_2084-03b/probe.rb

41 lines
984 B
Ruby
Executable File

#!/usr/bin/env ruby
# encoding: utf-8
# ruby: 2.2
require 'serialport'
require './telegram'
@serial = SerialPort.open("/dev/ttyACM0",{ baud: 115200, databits: 8, parity: SerialPort::ODD, stop_bit: 1, flow_control: SerialPort::NONE})
@serial.dtr = 1
=begin
# start queries
[0,1,6,8,9,19,71,2,3,4,38,39,50,51,54,71,72].each do |query|
telegram = Telegram.new(query)
puts telegram
@serial.write(telegram.pack)
data = @serial.readpartial(16+1+5)
if data and !data.empty? then
telegram = Telegram.parse(data)
puts telegram
else
puts "empty"
end
end
=end
256.times do |object|
telegram = Telegram.new(object)
@serial.write(telegram.pack)
data = @serial.readpartial(16+1+5)
if data and !data.empty? then
#puts data.unpack("C*").collect { |b| sprintf("%02X ",b) }.join
telegram = Telegram.parse(data)
if telegram.object==0xff and telegram.data[0]!=0x07 then
puts "#{object}: #{telegram.to_s}"
end
else
puts "empty"
end
end