]> cvs.zerfleddert.de Git - proxmark3-svn/blame - client/scripts/test_t55x7_bi.lua
ADD: new tests for the T55XX commands.
[proxmark3-svn] / client / scripts / test_t55x7_bi.lua
CommitLineData
ca65d3af 1local cmds = require('commands')
2local getopt = require('getopt')
3local bin = require('bin')
4local utils = require('utils')
5
6example =[[
7 1. script run test_t55x7_bi
8]]
9author = "Iceman"
10usage = "script run test_t55x7_bi"
11desc =[[
12This script will program a T55x7 TAG with the configuration: block 0x00 data 0x00010040
13The outlined procedure is as following:
14
15--BIPHASE 00010040
16--
17
18"lf t55xx write 0 00010040"
19"lf t55xx detect"
20"lf t55xx info"
21
22Loop:
23 change the configuretion block 0 with:
24 -xx01xxxx = RF/8
25 -xx05xxxx = RF/16
26 -xx09xxxx = RF/32
27 -xx0Dxxxx = RF/40
28 -xx11xxxx = RF/50
29 -xx15xxxx = RF/64
30 -xx19xxxx = RF/100
31 -xx1Dxxxx = RF/128
32
33
34testsuit for the BIPHASE demod
35
36Arguments:
37 -h : this help
38]]
39
40local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
41local DEBUG = true -- the debug flag
42
43--BLOCK 0 = 00010040 BIPHASE
44local config1 = '00'
45local config2 = '0040'
46
47local procedurecmds = {
48 [1] = '%s%02X%s',
49 [2] = 'lf t55xx detect',
50 [3] = 'lf t55xx info',
51}
52---
53-- A debug printout-function
54function dbg(args)
55 if not DEBUG then
56 return
57 end
58
59 if type(args) == "table" then
60 local i = 1
61 while args[i] do
62 dbg(args[i])
63 i = i+1
64 end
65 else
66 print("###", args)
67 end
68end
69---
70-- This is only meant to be used when errors occur
71function oops(err)
72 print("ERROR: ",err)
73end
74---
75-- Usage help
76function help()
77 print(desc)
78 print("Example usage")
79 print(example)
80end
81--
82-- Exit message
83function ExitMsg(msg)
84 print( string.rep('--',20) )
85 print( string.rep('--',20) )
86 print(msg)
87 print()
88end
89
90function test()
91 local y
92 for y = 1, 0x1D, 4 do
93 for _ = 1, #procedurecmds do
94 local pcmd = procedurecmds[_]
95
96 if #pcmd == 0 then
97
98 elseif _ == 1 then
99
100 local config = pcmd:format(config1, y, config2)
101 dbg(('lf t55xx write 0 %s'):format(config))
102
103 local writecmd = Command:new{cmd = cmds.CMD_T55XX_WRITE_BLOCK, arg1 = config ,arg2 = 0, arg3 = 0}
104 local err = core.SendCommand(writecmd:getBytes())
105 if err then return oops(err) end
106 local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
107 else
108 dbg(pcmd)
109 core.console( pcmd )
110 end
111 end
112 core.clearCommandBuffer()
113 end
114 print( string.rep('--',20) )
115
116end
117
118local function main(args)
119
120 print( string.rep('--',20) )
121 print( string.rep('--',20) )
122
123 -- Arguments for the script
124 for o, arg in getopt.getopt(args, 'h') do
125 if o == "h" then return help() end
126 end
127
128 core.clearCommandBuffer()
129 test()
130 print( string.rep('--',20) )
131end
132main(args)
Impressum, Datenschutz