Esempio n. 1
0
def test_hivemind_dht():
    peers = [DHT(start=True)]
    for i in range(10):
        neighbors_i = [
            f'{LOCALHOST}:{node.port}'
            for node in random.sample(peers, min(3, len(peers)))
        ]
        peers.append(DHT(initial_peers=neighbors_i, start=True))

    you: DHT = random.choice(peers)
    theguyshetoldyounottoworryabout: DHT = random.choice(peers)

    expert_uids = [str(uuid.uuid4()) for _ in range(110)]
    batch_size = 10
    for batch_start in range(0, len(expert_uids), batch_size):
        you.declare_experts(expert_uids[batch_start:batch_start + batch_size],
                            'localhost', 1234)

    found = theguyshetoldyounottoworryabout.get_experts(
        random.sample(expert_uids, 5) + ['foo', 'bar'])
    assert all(res is not None
               for res in found[:-2]), "Could not find some existing experts"
    assert all(res is None for res in found[-2:]), "Found non-existing experts"

    that_guys_expert, that_guys_port = str(uuid.uuid4()), random.randint(
        1000, 9999)
    theguyshetoldyounottoworryabout.declare_experts(
        [that_guys_expert], f'that_host:{that_guys_port}')
    you_notfound, you_found = you.get_experts(['foobar', that_guys_expert])
    assert isinstance(you_found, dht.RemoteExpert)
    assert you_found.endpoint == f'that_host:{that_guys_port}'

    # test first_k_active
    assert theguyshetoldyounottoworryabout.first_k_active(
        expert_uids, k=10) == expert_uids[:10]

    some_permuted_experts = random.sample(expert_uids, k=32)
    assert theguyshetoldyounottoworryabout.first_k_active(
        some_permuted_experts, k=32) == some_permuted_experts
    assert theguyshetoldyounottoworryabout.first_k_active(
        some_permuted_experts, k=1) == some_permuted_experts[:1]
    fake_and_real_experts = list(
        chain(*zip([str(uuid.uuid4())
                    for _ in some_permuted_experts], some_permuted_experts)))
    assert theguyshetoldyounottoworryabout.first_k_active(
        fake_and_real_experts, k=9) == some_permuted_experts[:9]

    for peer in peers:
        peer.shutdown()
Esempio n. 2
0
def test_dht_single_node():
    node = DHT(start=True)
    assert all(node.declare_experts(['e1', 'e2', 'e3'], f"{LOCALHOST}:{1337}"))
    for expert in node.get_experts(['e3', 'e2']):
        assert expert.endpoint == f"{LOCALHOST}:{1337}"
    assert node.first_k_active(['e0', 'e1', 'e3', 'e5', 'e2'],
                               k=2) == ['e1', 'e3']
Esempio n. 3
0
def create():
    node = Node(random_32bytes(), port=next(ports))
    seed = random.choice(kads).node
    dht = DHT(node, seed, context=context)
    kads.append(dht)
    processes.append(dht.run())
    return json.dumps({'n': len(processes) - 1})
Esempio n. 4
0
def main(n_processes, fill, test, needs_server):
    for _ in xrange(n_processes):
        try:
            seed = random.choice(kads).node
        except IndexError:
            seed = None

        node = Node(random_32bytes(), port=next(ports))
        dht = DHT(node, seed, context=context)
        kads.append(dht)
        processes.append(dht.run())
        print "%s started." % node

    if fill:
        with open('./lipsum.txt') as f:
            result = re.findall(
                "[A-Z]{2,}(?![a-z])|[A-Z][a-z]+(?=[A-Z])|[\'\w\-]+", f.read())
            for idx in xrange(1, len(result)):
                first, second = result[idx - 1], result[idx]
                random.choice(kads)[first] = second
            if test:
                n_failures = 0
                for idx in xrange(1, len(result)):
                    first, second = result[idx - 1], result[idx]
                    try:
                        print "%s -> %s" % (first, random.choice(kads)[first])
                    except KeyError:
                        n_failures += 1
                print "Failed %s times" % n_failures
    if needs_server:
        app.run()
Esempio n. 5
0
    def __init__(self, ob_ctx, db):

        self.ob_ctx = ob_ctx

        self.log = logging.getLogger(
            '[%s] %s' % (ob_ctx.market_id, self.__class__.__name__))
        requests_log = logging.getLogger("requests")
        requests_log.setLevel(logging.WARNING)

        self.db = db

        self.bitmessage_api = None
        if (ob_ctx.bm_user, ob_ctx.bm_pass, ob_ctx.bm_port) != (None, None,
                                                                -1):
            if not self._connect_to_bitmessage():
                self.log.info('Bitmessage not installed or started')

        self.market_id = ob_ctx.market_id
        self.nick_mapping = {}
        self.uri = network_util.get_peer_url(ob_ctx.server_ip,
                                             ob_ctx.server_port)
        self.ip = ob_ctx.server_ip
        self.nickname = ""
        self.dev_mode = ob_ctx.dev_mode

        self.all_messages = ('hello', 'findNode', 'findNodeResponse', 'store')

        self._setup_settings()
        ob_ctx.market_id = self.market_id
        self.dht = DHT(self, self.market_id, self.settings, self.db)
        TransportLayer.__init__(self, ob_ctx, self.guid, self.nickname)
        self.start_listener()

        if ob_ctx.enable_ip_checker and not ob_ctx.seed_mode and not ob_ctx.dev_mode:
            self.start_ip_address_checker()
Esempio n. 6
0
    def __init__(self, my_ip, my_port, market_id):

        self._log = logging.getLogger('[%s] %s' %
                                      (market_id, self.__class__.__name__))

        # Connect to database
        MONGODB_URI = 'mongodb://localhost:27017'
        _dbclient = MongoClient()
        self._db = _dbclient.openbazaar

        self._market_id = market_id
        self.nick_mapping = {}
        self._uri = "tcp://%s:%s" % (my_ip, my_port)

        # Set up
        self._setup_settings()

        self._dht = DHT(market_id, self.settings)

        self._myself = ec.ECC(pubkey=self.pubkey.decode('hex'),
                              privkey=self.secret.decode('hex'),
                              curve='secp256k1')

        TransportLayer.__init__(self, market_id, my_ip, my_port, self.guid)

        # Set up callbacks
        self.add_callback('ping', self._dht._on_ping)
        self.add_callback('findNode', self._dht._on_findNode)
        self.add_callback('findNodeResponse', self._dht._on_findNodeResponse)
Esempio n. 7
0
def init_sensors():
    adc = machine.ADC()             # create an ADC object
    adc.vref(1157)                  # Set calibration
    moist_sense1 = adc.channel(pin='P16', attn = machine.ADC.ATTN_11DB)   # create an analog pin on P16
    moist_sense2 = adc.channel(pin='P18', attn = machine.ADC.ATTN_11DB)   # create an analog pin on P18

    temp_humid_sens = DHT(machine.Pin('P23', mode=machine.Pin.OPEN_DRAIN), 0)
    time.sleep(2)
    return moist_sense1, moist_sense2, temp_humid_sens
Esempio n. 8
0
    def __init__(self,
                 my_ip,
                 my_port,
                 market_id,
                 db,
                 bm_user=None,
                 bm_pass=None,
                 bm_port=None,
                 seed_mode=0,
                 dev_mode=False,
                 disable_ip_update=False):

        self.log = logging.getLogger('[%s] %s' %
                                     (market_id, self.__class__.__name__))
        requests_log = logging.getLogger("requests")
        requests_log.setLevel(logging.WARNING)

        # Connect to database
        self.db = db

        self.bitmessage_api = None
        if (bm_user, bm_pass, bm_port) != (None, None, None):
            if not self._connect_to_bitmessage(bm_user, bm_pass, bm_port):
                self.log.info('Bitmessage not installed or started')

        try:
            socket.inet_pton(socket.AF_INET6, my_ip)
            my_uri = "tcp://[%s]:%s" % (my_ip, my_port)
        except (socket.error, ValueError):
            my_uri = "tcp://%s:%s" % (my_ip, my_port)

        self.market_id = market_id
        self.nick_mapping = {}
        self.uri = my_uri
        self.ip = my_ip
        self.nickname = ""
        self._dev_mode = dev_mode

        # Set up
        self._setup_settings()

        self.dht = DHT(self, self.market_id, self.settings, self.db)

        # self._myself = ec.ECC(pubkey=self.pubkey.decode('hex'),
        #                       privkey=self.secret.decode('hex'),
        #                       curve='secp256k1')

        TransportLayer.__init__(self, market_id, my_ip, my_port, self.guid,
                                self.nickname)

        self.setup_callbacks()
        self.listen(self.pubkey)

        if seed_mode == 0 and not dev_mode and not disable_ip_update:
            self.start_ip_address_checker()
Esempio n. 9
0
def Main():
    parser = argparse.ArgumentParser()
    parser.add_argument("ip", help="Your IP address")
    parser.add_argument("port", help="Port to run dht on")
    parser.add_argument("region", help="Your region")
    args = parser.parse_args()

    dht = DHT(args.ip, int(args.port), args.region)

    while True:
        time.sleep(0.1)
        pass
Esempio n. 10
0
def humid_temp_sensor(read):
    th = DHT('P23', 0)
    time.sleep(2)
    while read:
        result = th.read()
        while not result.is_valid():
            time.sleep(.5)
            result = th.read()
        temperature = result.temperature
        humidity = result.humidity
        read = False
    return (temperature, humidity)
Esempio n. 11
0
 def __init__(self, root, bootstrap_node, local_ip='localhost',
              local_port=8000):
     self.realroot = realpath(root)
     self.rwlock = Lock()
     self.dht = DHT(bootstrap_node, local_ip, local_port)
     time.sleep(3)
     # walk dir and update dht
     files = utils.rgetdir(self.realroot)
     for path, newval in files.iteritems():
         newold = self.dht[path]
         if newold:
             utils.rdict_update(newold, newval)
             self.dht[path] = newold
         else:
             self.dht[path] = newval
     print "done mounting"
    def __init__(self, lcd_rs_pin, lcd_e_pin, lcd_db_pins, button_pin,
                 dht_pin):
        # LCD
        self.lcd_rs_pin = lcd_rs_pin
        self.lcd_e_pin = lcd_e_pin
        self.lcd_db_pins = lcd_db_pins

        # Button
        self.button_pin = button_pin

        # DHT
        self.dht_type = Adafruit_DHT.DHT22
        self.dht_pin = dht_pin

        self.dht = DHT(self.dht_pin, self.dht_type)
        self.lcd = HD44780(self.lcd_e_pin, self.lcd_rs_pin, self.lcd_db_pins)
        self.cur_transport = 0
        self.transports = TRANSPORTS_TO_SHOW[self.cur_transport]
Esempio n. 13
0
DHT_NUM = 8
RECEPTI_NUM = 5


state = random.getstate()
random.seed(dht.config.TESTING_CATEGORY_SEED)
recepti = [{
    'title': 'naziv' + str(i),
    'type': dht.config.category_names[random.randint(0, len(dht.config.category_names) - 1)],
    'description': 'Opis ' + str(i),
    'ingredients': ['Sastojak_1_' + str(i), 'Sastojak_2_' + str(i), 'Sastojak_3_' + str(i)],
    'picture': None
} for i in range(RECEPTI_NUM)]
random.setstate(state)

dht = [DHT("localhost", 3001 + i, dht.config.regions[i % len(dht.config.regions)]) for i in range(DHT_NUM)]

# Sacekaj dok se svi konektuju
all_connected = False
while not all_connected:
    all_connected = True
    for d in dht:
        if not d.connected:
            all_connected = False
            break

print "KONEKCIJE"
for d in dht:
    print d.peer.address()
    peer_sum = 0
    for b_index, bucket in enumerate(d.buckets.buckets):
Esempio n. 14
0
import pycom
import time
from machine import Pin
from dht import DHT

pycom.heartbeat(False)
pycom.rgbled(0x000008)  # blue
th = DHT(Pin('P3', mode=Pin.OPEN_DRAIN), 1)
time.sleep(2)
result = th.read()
if result.is_valid():
    pycom.rgbled(0x001000)  # green
    print('Temperature: {:3.2f}'.format(result.temperature / 1.0))
    print('Humidity: {:3.2f}'.format(result.humidity / 1.0))
Esempio n. 15
0
 def __init__(self, port):
     self.dht = DHT(port)
     self.myPort = port
     self.fila = queue.Queue()
     self.t = threading.Thread(target=self.enviando)
     self.t.start()
Esempio n. 16
0
import signal
import time
import datetime
logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.WARNING)

from sds import SDS
from gps import GPS
from dht import DHT

quit_event = threading.Event()

sds = SDS(quit_event=quit_event)
gps = GPS(quit_event=quit_event)
dht = DHT(quit_event=quit_event)


def signal_handler(sig, frame):
    logger.warning("Ctrl-C pressed, quitting")
    quit_event.set()
    sys.exit(0)


def mount_disk():
    if not os.path.ismount(DISK):
        os.system("mount %s" % dist)


if __name__ == "__main__":
    #Start all acquisition threads
Esempio n. 17
0
import pycom
import time
from machine import Pin
from dht import DHT

powerPin = Pin('G28', mode=Pin.OUT)
powerPin(0)

pycom.heartbeat(False)
pycom.rgbled(0x000008)  # blue
powerPin(1)
time.sleep(2)
th0 = DHT('G24', 1)
th1 = DHT('G11', 1)
result0 = th0.read()
result1 = th1.read()
# powerPin(0)

if result0.is_valid():
    pycom.rgbled(0x001000)  # green
    print('Temperature0: {:3.1f}'.format(result0.temperature / 1.0))
    print('Humidity0: {:3.1f}'.format(result0.humidity / 1.0))
if result1.is_valid():
    pycom.rgbled(0x001000)  # green
    print('Temperature1: {:3.1f}'.format(result1.temperature / 1.0))
    print('Humidity1: {:3.1f}'.format(result1.humidity / 1.0))
Esempio n. 18
0
    'naziv' + str(i),
    'type':
    dht.config.category_names[random.randint(
        0,
        len(dht.config.category_names) - 1)],
    'description':
    'Opis ' + str(i),
    'ingredients':
    ['Sastojak_1_' + str(i), 'Sastojak_2_' + str(i), 'Sastojak_3_' + str(i)],
    'picture':
    None
} for i in range(RECEPTI_NUM)]
random.setstate(state)

dht = [
    DHT("localhost", 3001 + i, dht.config.regions[i % len(dht.config.regions)])
    for i in range(DHT_NUM)
]

# Sacekaj dok se svi konektuju
all_connected = False
while not all_connected:
    all_connected = True
    for d in dht:
        if not d.connected:
            all_connected = False
            break

print "KONEKCIJE"
for d in dht:
    print d.peer.address()
Esempio n. 19
0
vPanel = adc.channel(pin='P13', attn = ADC.ATTN_11DB)
vBatt = adc.channel(pin='P14', attn = ADC.ATTN_11DB)
vPyra = adc.channel(pin='P15', attn = ADC.ATTN_11DB)
vTherm = adc.channel(pin='P17', attn = ADC.ATTN_11DB)
vBias = adc.channel(pin='P18', attn = ADC.ATTN_11DB)

powerPin = Pin('P8', mode=Pin.OUT)
powerPin(1)

ow = OneWire(Pin('P4'))
temp = DS18X20(ow) # DS18X20 must be powered on on instantiation (rom scan)

powerPin(0)

th = DHT('P3',1)

def medir(n=1):
    powerPin(1)
    time.sleep_ms(1000)
    for i in range(n):
        result = th.read()
        temp.start_convertion()
        time.sleep_ms(750)
        print('Temperature DS18B20: {:3.4f}'.format(temp.read_temp_async()))
        print('Temperature DHT22: {:3.1f}'.format(result.temperature/1.0))
        print('Humidity DHT22: {:3.1f}'.format(result.humidity/1.0))
        print('vPanel: {:3.4f}'.format(vPanel.voltage()))
        print('vBatt: {:3.4f}'.format(vBatt.voltage()))
        print('vPyra: {:3.4f}'.format(vPyra.voltage()))
        print('vTherm: {:3.4f}'.format(vTherm.voltage()))
Esempio n. 20
0
import time
from machine import Pin
from dht import DHT

th = DHT(Pin('P23', mode=Pin.OPEN_DRAIN), 0)
time.sleep(2)

def read_data():
    result = th.read()
    while not result.is_valid():
        time.sleep(.5)
        result = th.read()
    return(result.temperature - 5,result.humidity - 45)
Esempio n. 21
0
    'naziv' + str(i),
    'type':
    dht.config.category_names[random.randint(
        0,
        len(dht.config.category_names) - 1)],
    'description':
    'Opis ' + str(i),
    'ingredients':
    ['Sastojak_1_' + str(i), 'Sastojak_2_' + str(i), 'Sastojak_3_' + str(i)],
    'picture':
    None
} for i in range(RECEPTI_NUM)]
random.setstate(state)

dht = [
    DHT(dht.config.BOOTSTRAP_HOST, 3001 + i,
        dht.config.regions[i % len(dht.config.regions)])
    for i in range(DHT_NUM)
]

# Sacekaj dok se svi konektuju
all_connected = False
while not all_connected:
    all_connected = True
    for d in dht:
        if not d.connected:
            all_connected = False
            break

print "KONEKCIJE"
for d in dht:
    print d.peer.address()
Esempio n. 22
0
class MasterServer(object):
    HOST = '127.0.0.1'
    PORT = 5001
    DHT = DHT(50)

    def __init__(self):
        print "servidor rodando..."
        self.waitForConnection()

    def waitForConnection(self):
        socketTCP = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        orig = (self.HOST, self.PORT)
        socketTCP.bind(orig)
        socketTCP.listen(1)

        while True:
            con, client = socketTCP.accept()
            threading.Thread(target=self.clientConnected,
                             args=(con, client)).start()

        socketTCP.close()

    def clientConnected(self, socketTCPThread, client):
        while True:
            try:
                #socketTCPThread.settimeout(60)
                data = socketTCPThread.recv(2048)
                request = json.loads(data)
                self.getRequestStatus(request, socketTCPThread, client)
            except socket.error as msg:
                print 'Error code: ' + str(msg[0]) + ', Error message: ' + str(
                    msg[1])
                socketTCPThread.close()
                self.DHT.logOutUser(client)
                return False
            except:
                print 'ocorreu algum erro desconhecido, matando thread'
                socketTCPThread.close()
                self.DHT.logOutUser(client)
                return False

    def getRequestStatus(self, request, socketTCP, client):
        try:
            type = request['type']

            if type == Define.REGISTER:
                self.registerUser(request, socketTCP, client)

            elif type == Define.LOGIN:
                self.logUser(request, socketTCP, client)

            elif type == 'keepalive':
                self.userStillActive(request, socketTCP, client)

            elif type == Define.UPLOAD:
                self.uploadFile(request, socketTCP, client)

            elif type == Define.DOWNLOAD:
                self.downloadFile(request, socketTCP, client)

            elif type == Define.DIRINFO:
                self.sendDirectoriesTree(socketTCP)

            elif type == Define.INFOFILES:
                self.infoFiles(request, socketTCP, client)

            elif type == Define.CREATEDIR:
                self.createDir(request, socketTCP, client)

            elif type == Define.RENAMEDIR:
                self.renameDir(request, socketTCP, client)

            elif type == Define.REMOVEDIR:
                self.removeDir(request, socketTCP, client)

            elif type == Define.REMOVEFILE:
                self.removeFile(request, socketTCP, client)

            elif type == Define.RENAMEFILE:
                self.renameFile(request, socketTCP, client)

            else:
                response = dict(responseStatus=Define.ERROR,
                                errormsg='undefined_type')
                responseJSON = json.dumps(response)
                socketTCP.send(responseJSON)

        except:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='unknown_error')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def registerUser(self, request, socketTCP, client):
        username = request['username']
        id = self.DHT.registerUser(username, client)
        if id >= 0:
            response = dict(responseStatus=Define.SUCCESS, id=id)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)
            self.DHT.rebalancing()

        elif id == -1:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='dht_overflow')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

        elif id == -2:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='user_already_registered')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def logUser(self, request, socketTCP, client):
        username = request['username']
        id = self.DHT.logUser(username, client)
        if id >= 0:
            response = dict(responseStatus=Define.SUCCESS, id=id)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)
            self.DHT.sendFilesToUser(id)

        elif id == -1:
            response = dict(responseStatus=Define.USERNOTREGISTER,
                            errormsg='user_not_found')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def userStillActive(self, request, socketTCP, client):
        pass
        # if self.DHT.getIDForIPPort(client):
        #     response = dict(responseStatus = Define.SUCCESS)
        #     responseJSON = json.dumps(response)
        #     socketTCP.send(responseJSON)
        # else:
        #     response = dict(responseStatus = Define.USERUNAUTHENTICATED, message = 'you_are_not_logged')
        #     responseJSON = json.dumps(response)
        #     socketTCP.send(responseJSON)

    def uploadFile(self, request, socketTCP, client):
        path = str(request['path'])
        data = str(request['data'])

        if self.DHT.saveFileAtPath(path, data, client):  #salvou
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)
            self.DHT.rebalancing()
        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def downloadFile(self, request, socketTCP, client):
        method = request['method']
        if method == 'hash':
            self.sendFileToUser(request, socketTCP, client)
        else:
            self.sendHostThatWillUpdloadFileToUser(request, socketTCP, client)

    def sendFileToUser(self, request, socketTCP, client):
        hash = request['hash']
        file = self.DHT.getBase64StringForFileWithHash(hash)
        response = dict(responseStatus=Define.SUCCESS, type='file', data=file)
        responseJSON = json.dumps(response)
        socketTCP.send(responseJSON)

    def sendHostThatWillUpdloadFileToUser(self, request, socketTCP, client):
        path = request['path']
        hash = self.DHT.getHashForPath(path)
        id = self.DHT.getUserResponsableForFile(hash)

        if self.DHT.checkIfUserActive(id):
            (ip, port) = self.DHT.getIPPortForID(id)
            response = dict(responseStatus=Define.SUCCESS,
                            type='node',
                            node=(ip, 6000 + id),
                            hashName=hash)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

        else:
            request.update(hash=hash)
            self.sendFileToUser(request, socketTCP, client)

    def infoFiles(self, request, socketTCP, client):
        response = dict(responseStatus=Define.SUCCESS,
                        numberOfFiles=self.DHT.getNumberOfFiles(),
                        capacityOfSystem=self.DHT.getCapacityOfSystem(),
                        filesDistribution=self.DHT.getFilesDistribution(),
                        activeNodes=self.DHT.getActiveNodes())
        responseJSON = json.dumps(response)
        socketTCP.send(responseJSON)

    def createDir(self, request, socketTCP, client):
        path = request['path']

        if self.DHT.createDir(path, client):
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def renameDir(self, request, socketTCP, client):
        path = request['path']
        dir = request['newname']

        if self.DHT.renameDir(path, dir, client):
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)
            self.DHT.rebalancing()

        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def removeDir(self, request, socketTCP, client):
        path = request['path']

        if self.DHT.removeDir(path, client):
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def removeFile(self, request, socketTCP, client):
        path = request['path']

        if self.DHT.removeFile(path, client):
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    def renameFile(self, request, socketTCP, client):
        path = request['path']
        newName = request['newname']

        if self.DHT.renameFile(path, newName, client):
            response = dict(responseStatus=Define.SUCCESS)
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)
            self.DHT.rebalancing()

        else:
            response = dict(responseStatus=Define.ERROR,
                            errormsg='error_processing_file')
            responseJSON = json.dumps(response)
            socketTCP.send(responseJSON)

    @staticmethod
    def sendFilesForUser(userID, ip, files):
        time.sleep(2)

        socketTCP = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        dest = (ip, 6000 + userID)
        socketTCP.connect(dest)

        request = dict(type=Define.DHTFILES, files=files)
        requestJSON = json.dumps(request)
        socketTCP.send(requestJSON)

    def sendDirectoriesTree(self, socketTCP):
        dictTree = self.DHT.getDirectioriesTree()
        response = dict(responseStatus=Define.SUCCESS, tree=[dictTree])
        responseJSON = json.dumps(response)
        socketTCP.send(responseJSON)
Esempio n. 23
0
from network import WLAN
import urequests as requests
import machine
import time
from dht import DHT
from machine import Pin

TOKEN = "Token here"  #Put here your TOKEN
DELAY = 60  # Delay in seconds

th = DHT(Pin('P23', mode=Pin.OPEN_DRAIN),
         0)  # DHT sensor is connected to port 23
time.sleep(2)  # wait 2 seconds

wlan = WLAN(mode=WLAN.STA)
wlan.antenna(WLAN.INT_ANT)

# Assign your Wi-Fi credentials
wlan.connect("wifi-name", auth=(WLAN.WPA2, "wifi-password"), timeout=5000)

while not wlan.isconnected():
    machine.idle()
print("Connected to Wifi\n")


# Builds the json to send the request
def build_json(variable1, value1, variable2, value2):
    try:
        data = {variable1: {"value": value1}, variable2: {"value": value2}}
        return data
    except:
Esempio n. 24
0
# Assign your Wi-Fi credentials
wlan.connect(config.WIFI_SSID,
             auth=(WLAN.WPA2, config.WIFI_PASS),
             timeout=5000)

while not wlan.isconnected():
    print("Beeb boop!\n")
    machine.idle()

print("Connected to Wifi! :D\n")

print("Connecting sensors...\n")

distance_sensor = UDM(echo_pin='P21', trigger_pin='P20')
temp_sensor = DHT(pin='P10')
light_sensor = LGT(pin='P15')

time.sleep(2)
print("Let's a go!")

# -------------------------------------- Funky functions


# make a json package of the data
def build_json(variable1, value1, variable2, value2, variable3, value3,
               variable4, value4):
    try:
        data = {
            variable1: {
                "value": value1