Exemplo n.º 1
0
def ask_slave_request(addr):
    res = -1
    ok = -1
    while ok == -1:
        ok = dhcp.send_msg(addr, 130, 140)
    ans = dhcp.read_device_answer(addr, 3)
    err = dhcp.check_end_answer(addr, ans, 3)
    if err == 0:
        if ans[0] == 149:
            return
        for i in code_room:
            if i[1] == ans[0]:
                room = i[0]
                break
        addr_range = lh.get_addr_range(room)

        for j in addr_range:
            if j in used_addr:
                if ans[1] == 141:
                    while res == -1:
                        res = ask_temperature(j)
                elif ans[1] == 142:
                    while res == -1:
                        res = ask_light(j)
        dhcp.send_msg(addr, 145, res)
    else:
        dhcp.send_msg(addr, 145, 144)
Exemplo n.º 2
0
def ask_light(addr):
    ok = -1
    while ok == -1:
        ok = dhcp.send_msg(addr, 130, 142)
    ans = dhcp.read_device_answer(addr, 2)
    err = dhcp.check_end_answer(addr, ans, 2)
    if err == 0:
        return ans[0]
    else:
        return -1
Exemplo n.º 3
0
def check_slave_ok(addr):
    ok = -1
    while ok == -1:
        ok = dhcp.send_msg(addr, 130, 139)
    ans = dhcp.read_device_answer(addr, 2)
    err = dhcp.check_end_answer(addr, ans, 2)
    if err == 0:
        if ans[0] == 1:
            return 0
    else:
        return -1
Exemplo n.º 4
0
def ask_name(addr):
    ok = -1
    room = []
    while ok == -1:
        ok = dhcp.send_msg(addr, 130, 143)
    ans = dhcp.read_device_answer(addr, 2)
    err = dhcp.check_end_answer(addr, ans, 2)
    cmpt = ans[0]
    if err == 0:
        name = dhcp.read_device_answer(addr, cmpt)
        for i in name:
            room.append(str(unichr(i)))

        return room
    else:
        return -1
Exemplo n.º 5
0
def shutdown_slave(addr):
    ok = -1
    while ok == -1:
        ok = dhcp.send_msg(addr, 199, 199)