]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/scripts/test_t55x7_ask.lua
lf t5 read plus lf demod adjustments
[proxmark3-svn] / client / scripts / test_t55x7_ask.lua
diff --git a/client/scripts/test_t55x7_ask.lua b/client/scripts/test_t55x7_ask.lua
new file mode 100644 (file)
index 0000000..569d426
--- /dev/null
@@ -0,0 +1,139 @@
+local cmds = require('commands')
+local getopt = require('getopt')
+local bin = require('bin')
+local utils = require('utils')
+
+local format=string.format
+local floor=math.floor
+
+example =[[
+       1. script run test_t55x7_ask
+]]
+author = "Iceman"
+usage = "script run test_t55x7_ask"
+desc =[[
+This script will program a T55x7 TAG with the configuration: block 0x00 data 0x000100
+The outlined procedure is as following:
+
+--ASK 
+       00 00 80 40
+--           max 2
+--        manchester
+--     bit rate
+"lf t55xx write 0 00008040"
+"lf t55xx detect"
+"lf t55xx info"
+
+Loop:
+       change the configuretion block 0 with:
+    -xx 00 xxxx = RF/8 
+    -xx 04 xxxx = RF/16
+       -xx 08 xxxx = RF/32
+       -xx 0C xxxx = RF/40
+       -xx 10 xxxx = RF/50
+       -xx 14 xxxx = RF/64
+       -xx 18 xxxx = RF/100
+       -xx 1C xxxx = RF/128
+
+
+testsuit for the ASK/MANCHESTER demod
+
+Arguments:
+       -h             : this help
+]]
+
+local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
+local DEBUG = true -- the debug flag
+
+--BLOCK 0 = 00008040 ASK / MAN
+local config1 = '00'
+local config2 = '8040'
+
+local procedurecmds = {
+       [1] = '%s%02X%s',
+       [2] = 'lf t55xx detect',
+       [3] = 'lf t55xx info',
+}
+--- 
+-- A debug printout-function
+function dbg(args)
+       if not DEBUG then
+               return
+       end
+       
+    if type(args) == "table" then
+               local i = 1
+               while args[i] do
+                       dbg(args[i])
+                       i = i+1
+               end
+       else
+               print("###", args)
+       end     
+end    
+--- 
+-- This is only meant to be used when errors occur
+function oops(err)
+       print("ERROR: ",err)
+end
+--- 
+-- Usage help
+function help()
+       print(desc)
+       print("Example usage")
+       print(example)
+end
+--
+-- Exit message
+function ExitMsg(msg)
+       print( string.rep('--',20) )
+       print( string.rep('--',20) )
+       print(msg)
+       print()
+end
+
+function test()
+       local y
+       for y = 0x0, 0x1d, 0x4 do
+               for _ = 1, #procedurecmds do
+                       local pcmd = procedurecmds[_]
+                       
+                       if #pcmd == 0 then  
+                       
+                       elseif _ == 1 then
+
+                               local config = pcmd:format(config1, y, config2)
+                               dbg(('lf t55xx write 0 %s'):format(config))                     
+                               config = tonumber(config,16) 
+                               
+                               local writecmd = Command:new{cmd = cmds.CMD_T55XX_WRITE_BLOCK, arg1 = config}                   
+                               local err = core.SendCommand(writecmd:getBytes())
+                               if err then return oops(err) end
+                               local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
+
+                       else
+                               dbg(pcmd)
+                               core.console( pcmd )
+                       end                     
+               end
+               core.clearCommandBuffer()       
+       end
+       print( string.rep('--',20) )
+end
+
+local function main(args)
+
+       print( string.rep('--',20) )
+       print( string.rep('--',20) )
+
+       -- Arguments for the script
+       for o, arg in getopt.getopt(args, 'h') do
+               if o == "h" then return help() end
+       end
+
+       core.clearCommandBuffer()
+       test()
+       print( string.rep('--',20) )
+end
+main(args)
\ No newline at end of file
Impressum, Datenschutz