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