view service/rfid_pn532/rfid.nim @ 1199:87283af13f15

starting pn532 rfid reader in nim Ignore-this: ee51d4acec4b7f88bb7f0e7491da7b8f darcs-hash:43821dc27f532f22fe549ad05e5cd15e08395c52
author drewp <drewp@bigasterisk.com>
date Tue, 19 Feb 2019 12:08:22 -0800
parents
children 3852a10a088f
line wrap: on
line source

# make rfid && make build_image_pi
# docker pull bang6:5000/rfid_pn532_pi && docker run --rm -it --name rfid --net=host --privileged bang6:5000/rfid_pn532_pi

import nfc-nim/freefare
import strformat
import strutils
import graphserver
import tags

var nn = newNfcDevice()

while true:
  echo "loop"

  nn.forAllTags proc (tag: NfcTag) = 
    if tag.tagType() == freefare.MIFARE_CLASSIC_1K:
      echo &"found mifare 1k"
    else:
      echo &" unknown tag type {freefare.freefare_get_tag_friendly_name(tag.tag)}"
      return

    echo &"  uid {tag.uid()}"

    tag.connect()
    try:
      echo &" block1: {tag.readBlock(1).escape}"
      #tag.writeBlock(1, toBlock("helloworld"))
    finally:
      tag.disconnect()

    if false:
      var data: freefare.MifareClassicBlock
      data[0] = cast[cuchar](5)
      data[1] = cast[cuchar](6)
      data[2] = cast[cuchar](7)
      tag.writeBlock(1, data)

nn.destroy()

let server = newGraphServer(port = 10012)
server.run()