From 157f15629dae780818394ea4e8d2f33d8ec2dcea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Mon, 24 Aug 2015 16:10:46 +0200 Subject: [PATCH] add reversed objects --- telegram.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/telegram.rb b/telegram.rb index d454ba1..69c66b6 100644 --- a/telegram.rb +++ b/telegram.rb @@ -27,6 +27,10 @@ class Telegram OBJECTS[54] = "power supply control" OBJECTS[71] = "status and actual values" OBJECTS[72] = "status and set values" + OBJECTS[149] = "switch to bootlaoder?" + OBJECTS[150] = "unlock code 1?" + OBJECTS[151] = "unlock code 2?" + OBJECTS[152] = "write/check memory?" OBJECTS[255] = "error" # length of the object type LENGTHS = [] @@ -46,6 +50,10 @@ class Telegram LENGTHS[54] = 2 LENGTHS[71] = 6 LENGTHS[72] = 6 + LENGTHS[149] = 4 + LENGTHS[150] = 4 + LENGTHS[151] = 4 + LENGTHS[152] = 8 LENGTHS[255] = 1 # possibles errors ERRORS = [] @@ -256,7 +264,19 @@ class Telegram status << ((@data[1]&(1<<7))==0 ? "over-temperature protection off" : "over-temperature protection on") str += status.compact*", " str += ", voltage %: "+(@data[2,2].pack("C*").unpack("n")[0]/256.0).round(3).to_s - str += ", current %: "+(@data[4,2].pack("C*").unpack("n")[0]/256.0).round(3).to_s + str += ", current01 %: "+(@data[4,2].pack("C*").unpack("n")[0]/256.0).round(3).to_s + when 152 # write memory + case @data[0] + when 0x33 + str += "select section #{@data[1]}" + when 0x34 + str += "flush?" + when 0x30 + str += "end of write?" + else + str += "page #{@data[0]}: " + str += @data[1..-1].collect { |b| sprintf("%02X ",b) }.join + end when 255 str += (ERRORS[@data[0]] or "unknown") else