diff options
author | Jenna Fox <a@creativepony.com> | 2012-09-25 00:35:27 +1000 |
---|---|---|
committer | Jenna Fox <a@creativepony.com> | 2012-09-25 00:35:27 +1000 |
commit | d38f05990696fdaea8f8d95bcd5c8bb86f97ae81 (patch) | |
tree | 105032cd7c7937e55588aa6e0444581e3b3f0bc4 | |
parent | a17f9c1081302e894d8d6d9db36a87f7a0d8ec7e (diff) | |
download | micronucleus-d38f05990696fdaea8f8d95bcd5c8bb86f97ae81.tar.gz micronucleus-d38f05990696fdaea8f8d95bcd5c8bb86f97ae81.tar.bz2 micronucleus-d38f05990696fdaea8f8d95bcd5c8bb86f97ae81.zip |
Improvements to upload.rb interface
-rw-r--r-- | firmware/upload.rb | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/firmware/upload.rb b/firmware/upload.rb index 3da7dad..8561867 100644 --- a/firmware/upload.rb +++ b/firmware/upload.rb @@ -24,7 +24,7 @@ class MicroBoot end def info - unless defined? @info + unless @info result = control_transfer(function: :get_info, dataIn: 4) flash_length, page_size, write_sleep = result.unpack('S>CC') @@ -37,6 +37,7 @@ class MicroBoot version_numeric: @device.bcdDevice } end + @info end @@ -69,6 +70,8 @@ class MicroBoot end def finished + info = self.info + puts "asking device to finish writing" control_transfer(function: :run_program) puts "waiting for device to finish" @@ -81,6 +84,10 @@ class MicroBoot @io.close @io = nil end + + def inspect + "<MicroBoot #{info[:version]}: #{(info[:flash_length] / 1024.0).round(1)} kb programmable>" + end protected # raw opened device @@ -171,18 +178,15 @@ else raise "Pass intel hex or raw binary as argument to script" end -puts "Finding devices" -thinklets = MicroBoot.all -puts "Found #{thinklets.length} thinklet" -exit unless thinklets.length > 0 - -thinklet = thinklets.first - -puts "First thinklet: #{thinklet.info.inspect}" +puts "Plug in programmable device now: (waiting)" +sleep 0.5 while MicroBoot.all.length == 0 +thinklet = MicroBoot.all.first +puts "Attached to device: #{thinklet.inspect}" -puts "Attempting to write '#{test_data.inspect}' to first thinklet's program memory" -puts "Bytes: #{test_data.bytes.to_a.inspect}" +#puts "Attempting to write '#{test_data.inspect}' to first thinklet's program memory" +#puts "Bytes: #{test_data.bytes.to_a.inspect}" +puts "Attempting to write supplied program in to device's memory" thinklet.program = test_data puts "That seems to have gone well! Telling thinklet to run program..." |