示例#1
0
    def read(self):
        #print "Loading anvil region " + self.path
        chunk_info = []

        for i in range(0, 1024):
            chunk_int = struct.unpack(">I", self.file.read(4))[0]
            chunk_loc = chunk_int >> 8
            chunk_sec = chunk_int & 255
            chunk_info.append((chunk_loc, chunk_sec))

        for i in range(0, 1024):
            chunk_time = struct.unpack(">I", self.file.read(4))
            chunk_info[i] = (chunk_info[i][0], chunk_info[i][1], chunk_time)

        for ch in chunk_info:
            if ch[1] == 0:
                continue
            self.file.seek(ch[0] * 4096)
            raw_chunk_size = struct.unpack(">I", self.file.read(4))[0]
            raw_chunk_type = struct.unpack("b", self.file.read(1))[0]
            raw_chunk_data = self.file.read(raw_chunk_size - 1)

            #print "-- CHUNK -- (type:" + str(raw_chunk_type) + "," + str(ch) + ") --"
            if raw_chunk_type > 0:
                chunk_data = zlib.decompress(raw_chunk_data)
            else:
                chunk_data = raw_chunk_data

            data_buffer = cStringIO.StringIO(chunk_data)
            tagReader = TagReader(data_buffer)
            root = tagReader.readTag()
            self.chunks.append((ch, root))
示例#2
0
class MCMap:
    def __init__(self, path, no_read=False):
        self.path = path
        if not no_read:
            self.read()

    def read(self):
        self.file = gzip.open(self.path)
        self.tagReader = TagReader(self.file)

        self.root = self.tagReader.readTag()
        self.file.close()

        if self.root['data']:
            for tag_id in self.root['data'].value:
                tag = self.root['data'][tag_id]
                if tag.name == 'scale':
                    self.scale = tag.value
                elif tag.name == 'dimension':
                    self.dimension = tag.value
                elif tag.name == 'height':
                    self.height = tag.value
                elif tag.name == 'width':
                    self.width = tag.value
                elif tag.name == 'xCenter':
                    self.xCenter = tag.value
                elif tag.name == 'zCenter':
                    self.zCenter = tag.value
                elif tag.name == 'colors':
                    self.colors = tag.value
示例#3
0
class DATFile:
    def __init__(self, path, no_read=False):
        self.path = path
        if not no_read:
            self.read()

    def read(self):
        self.file = gzip.open(self.path)
        self.tagReader = TagReader(self.file)

        self.root = self.tagReader.readTag()
        self.file.close()
示例#4
0
class UmbrellaStand(object):
    def __init__(self):
        self.rooms = []
        self.reader = TagReader()

    def add_room(self, room):
        self.rooms.append(room)
        return

    def remove_room(self, room):
        self.rooms.remove(room)
        return

    def num_rooms(self):
        return len(self.rooms)

    def init_GPIO(self):
        GPIO.setmode(GPIO.BCM)
        for room in self.rooms:
            GPIO.setup(room.switch_PIN, GPIO.IN)
            GPIO.setup(room.locked_PIN, GPIO.OUT)
            GPIO.setup(room.unlocked_PIN, GPIO.OUT)

    def is_registered(self, tag_id):
        for room in self.rooms:
            if room.tag_id == tag_id:
                return room
        else:
            return None

    def wait_switch(self,time):
        for i in range(time):



    def read_tag(self):
        tag_id = self.reader.read()
        room = self.is_registered(tag_id)
        if room:
            room.fetch()
        else:
            room.fetch()
示例#5
0
    def read(self):
        self.file = gzip.open(self.path)
        self.tagReader = TagReader(self.file)

        self.root = self.tagReader.readTag()
        self.file.close()
示例#6
0
 def __init__(self):
     self.rooms = []
     self.reader = TagReader()
示例#7
0
#!/usr/bin/python3

import sys
import os
import ctypes
import time

from Constants import *
from ErrCodes import *
from TagReader import TagReader

rfid = TagReader()

print("Reader s/n: {}".format(rfid.reader_serial()))
print("Reader type: {}".format(rfid.reader_type()))
# print("poll_tag(): " + str(rfid.poll_tag()))

while (1):
    print("poll_tag(): {}".format(rfid.poll_tag()))
    time.sleep(0.25)