2016-04-12 13 views
1

LIFX ışıkları ve bir VOIP telefon sistemi var. Bir telefon kullanımda olup olmadığına göre açmak veya kapatmak için bir ışığın nasıl tetikleneceğini anlamaya çalışıyorum. Bir kullanıcı alır veya ahizesi, telefon Wireshark'ı Kullanılması 2088.Python'da kodlamayı öğrenmek. UDP yüküne bağlı koşullu koşulların nasıl kullanılacağını anlayamıyorum

, ben (OffHook için yük 0b1f1001c0a8fa33dcd19b200000000813ed020412020066 ve 0b1f1001c0a8fa33dcd19b200000000813ed000412020066 olduğu açık bağlantıda için yük olduğunu biliyoruz UDP üzerindeki devlet yayınlar eğer rağmen doğrudan Wireshark'dan kopyala, 0b: 1f: 10: 01: c0 ... yapıştırıyorken iki nokta üstbilgisini ekler

LIFXLan modülünü kullanarak ofis lambamı nasıl açıp kapatacağımı anladım. UDP bağlantı noktasını dinleyen bir istemciden bir istemciden düz metin göndererek ışıkları manuel olarak tetikleyebileceğim nokta. Ancak, ışıkları tetiklemek için telefonlardan veri kullanmaya çalışıyorum. Aslında,% 100 emin değilim. .

import Bulb_Off 
import Bulb_On 
import sys 
import socket 
import codecs 
import binascii 
#I may have imported unnecessary modules 

UDP_PORT = 2088 
OFF_HOOK = "0b1f1001c0a8fa33dcd19b200000000813ed020412020066" 
ON_HOOK = "0b1f1001c0a8fa33dcd19b200000000813ed000412020066" #I am hoping I can simply match the data in the data field of the packet 

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.bind(('', UDP_PORT)) 

while True: 
    data, addr = sock.recvfrom(1024) 
    if data == ON_HOOK: 
     Bulb_Off.main() 
     print "received message:", data 
     print "1" 

    elif data == OFF_HOOK: 
     Bulb_On.main() 
     print "received message:", data 
     print "2" 
    else: 
     print data 

Genellikle olsun çıkış böyle al▒ olarak anlamsız olduğu ~ 5Vn] D▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ şu şekildedir: Benim kodudur ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 12 123456789 :; ? < => @ ABCDEFGHIJKLMNOPQRSTUVWXYZ []^_ `abcdefghijklmnopqrstuvwxyz {|} ▒▒▒▒▒▒▒▒

ben yükü dönüştürmek zorunda biliyorum, ama sıkışıp kaldım ben (dün başladı.) Bunun tahmin edilmesi son derece kolay ve gülünç bir şekilde zor bir şey.

cevap

0

Anladım. ON_HOOK ve OFF_HOOK

bildirimlerinin sonuna .decode ("hex") eklemek gerekiyordu
İlgili konular