41 lines
984 B
Ruby
Executable File
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
|
|
|