/usr/lib/neard/tools/neardutils.py is in neard-tools 0.16-0.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | import dbus
SERVICE_NAME = "org.neard"
ADAPTER_INTERFACE = SERVICE_NAME + ".Adapter"
DEVICE_INTERFACE = SERVICE_NAME + ".Device"
TAG_INTERFACE = SERVICE_NAME + ".Tag"
RECORD_INTERFACE = SERVICE_NAME + ".Record"
def get_managed_objects():
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
"org.freedesktop.DBus.ObjectManager")
return manager.GetManagedObjects()
def find_adapter(pattern=None):
return find_adapter_in_objects(get_managed_objects(), pattern)
def find_adapter_in_objects(objects, pattern=None):
bus = dbus.SystemBus()
for path, ifaces in objects.iteritems():
adapter = ifaces.get(ADAPTER_INTERFACE)
if adapter is None:
continue
if not pattern or path.endswith(pattern):
obj = bus.get_object(SERVICE_NAME, path)
return dbus.Interface(obj, ADAPTER_INTERFACE)
raise Exception("NFC adapter not found")
def find_device(pattern=None):
return find_device_in_objects(get_managed_objects(), pattern)
def find_device_in_objects(objects, pattern=None):
bus = dbus.SystemBus()
for path, ifaces in objects.iteritems():
device = ifaces.get(DEVICE_INTERFACE)
if device is None:
continue
if not pattern or path.endswith(pattern):
obj = bus.get_object(SERVICE_NAME, path)
return dbus.Interface(obj, DEVICE_INTERFACE)
raise Exception("NFC device not found")
def find_tag(pattern=None):
return find_tag_in_objects(get_managed_objects(), pattern)
def find_tag_in_objects(objects, pattern=None):
bus = dbus.SystemBus()
for path, ifaces in objects.iteritems():
tag = ifaces.get(TAG_INTERFACE)
if tag is None:
continue
if not pattern or path.endswith(pattern):
obj = bus.get_object(SERVICE_NAME, path)
return dbus.Interface(obj, TAG_INTERFACE)
raise Exception("NFC tag not found")
def find_record(pattern=None):
return find_record_in_objects(get_managed_objects(), pattern)
def find_record_in_objects(objects, pattern=None):
bus = dbus.SystemBus()
for path, ifaces in objects.iteritems():
record = ifaces.get(RECORD_INTERFACE)
if record is None:
continue
if not pattern or path.endswith(pattern):
obj = bus.get_object(SERVICE_NAME, path)
return dbus.Interface(obj, RECORD_INTERFACE)
raise Exception("NFC record not found")
def dump_record(record_path):
bus = dbus.SystemBus()
record_prop = dbus.Interface(bus.get_object(SERVICE_NAME, record_path),
"org.freedesktop.DBus.Properties")
properties = record_prop.GetAll(RECORD_INTERFACE)
for key in properties.keys():
if key in ["Representation"]:
val = unicode(properties[key])
else:
val = str(properties[key])
print " %s = %s" % (key, val)
def dump_all_records(path):
bus = dbus.SystemBus()
om = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
"org.freedesktop.DBus.ObjectManager")
objects = om.GetManagedObjects()
for path, interfaces in objects.iteritems():
if RECORD_INTERFACE not in interfaces:
continue
if path.startswith(path):
print(" [ %s ]" % (path))
dump_record(path)
|