def readMetadata(self):
"""Read device identity and capabilities via ioctl()"""
buffer = "\0"*512
# Read the name
self.name = ioctl(self.fd, EVIOCGNAME_512, buffer)
self.name = self.name[:self.name.find("\0")]
# Read info on each absolute axis
absmap = Event.codeMaps['EV_ABS']
buffer = "\0" * struct.calcsize("iiiii")
self.absAxisInfo = {}
for name, number in absmap.nameMap.iteritems():
try:
values = struct.unpack("iiiii", ioctl(self.fd, EVIOCGABS_512 + number, buffer))
values = dict(zip(( 'value', 'min', 'max', 'fuzz', 'flat' ),values))
self.absAxisInfo[name] = values
except IOError:
continue
评论列表
文章目录