-local cmds = require('commands')
-local desc =
-[[
-
-This script is a work in progress, not yet functional. It is an attempt to use the raw-writing
-capabilities already present within the devices
-
-]]
-
-print(desc)
-
--- Some raw data
-local rawdata = "6000F57b" --mf_auth
-local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
-
-function show(usbpacket)
- if usbpacket then
- local response = Command.parse(usbpacket)
- print(response)
- end
-end
-
--- Want to do both connect and send raw, so we should AND the two commands
--- ISO14A_COMMAND.ISO14A_RAW and ISO14A_CONNECT. However, we don't have a
--- bitlib yet, so we'll do it manually, 1 & 8 == 9
--- ISO14A_NO_DISCONNECT = 2
-
-print(string.len(rawdata))
-local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a,
- arg1 = 9,
- arg2 = string.len(rawdata),
- data = rawdata}
-core.clearCommandBuffer()
-print("Sending")
-print(command)
-local err = core.SendCommand(command:getBytes())
-if err then
- print(err)
- return nil, err
-end
-local cardselect = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
-print("Card select:")
-show(cardselect)
-local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
-print("Raw response:")
-show(response)