22 lines
608 B
Ruby
22 lines
608 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
# encoding: utf-8
|
||
|
# ruby: 1.9
|
||
|
|
||
|
raise "provide dump file as argument" unless ARGV.size==1
|
||
|
raise "#{ARGV[0]} is not a file" unless File.file? ARGV[0]
|
||
|
|
||
|
dump = IO.read(ARGV[0]) # read data
|
||
|
dump.gsub!(/[^[[:xdigit:]]]/,"") # remove non hex (e.g. newline)
|
||
|
dump.gsub!(/(1b){15,}00/,"sync\n") # replace sync
|
||
|
dump.gsub!(/([[:xdigit:]]{30})/,"\\1\n") # format lines
|
||
|
|
||
|
dump.each_line do |line|
|
||
|
line.chomp!
|
||
|
if (line[2,2]=="01") then # only look for set coloe lines
|
||
|
channel = line[0,2].to_i(16)
|
||
|
puts "color for LED #{channel.to_s.rjust(2,'0')}: #{line[8,6]}"
|
||
|
else
|
||
|
puts line
|
||
|
end
|
||
|
end
|