本文整理汇总了Python中xbee.ZigBee.send方法的典型用法代码示例。如果您正苦于以下问题:Python ZigBee.send方法的具体用法?Python ZigBee.send怎么用?Python ZigBee.send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xbee.ZigBee
的用法示例。
在下文中一共展示了ZigBee.send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: linkxbee
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
def linkxbee(q_down, q_up, e_pause, e_kill, config):
"""
собиралка телеметрии.
получает пакет с xbee, тут же бросает в линию данные
затем не спеша отрисовывает полученные данные
"""
# подсос значений из конфига
baudrate = config.getint('Link', 'baudrate')
port = config.getint('Link', 'port')
# 2 стоп-бита стоит установить при наличии глюков с xbee на 115200
ser = serial.Serial(port, baudrate, stopbits=2)
xbee = ZigBee(ser, escaped=True)
device={"GND":'\x00\x13\xA2\x00\x40\x5D\xF9\xEA',
"PNS":'\x00\x13\xA2\x00\x40\x5D\xF9\xE9'}
xbee_response = None # пришедший с модема пакет
msg_up = None # строка, которую надо запихнуть в пакет для отправки
# ждем, пока нас снимут с паузы
print "---- link ready"
e_pause.wait()
print "---- link run"
while True:
if e_kill.is_set():
print "=== Link. Kill signal received. Exiting"
return
# читаем из модема
try:
xbee_response = xbee.wait_read_frame()
except:
print "xbee not respond"
# пихаем нагрузку из пришедшего пакета в очередь протокольного анализатора
if (xbee_response != None) and (xbee_response['id'] == 'rx'):
try:
q_down.put_nowait(xbee_response['rf_data'])
except Full:
print "Input packet lost"
# тут же берем из очереди сообщение для отправки
try:
msg_up = q_up.get_nowait()
except Empty:
pass
if msg_up != None: # пихаем в модем
xbee.send("tx",
frame_id='\x00',
dest_addr_long=device["PNS"],
broadcast_radius = '\x01',
dest_addr='\xFF\xFE',
data=msg_up)
msg_up = None
示例2: __init__
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
class RemLight:
def __init__(self, dev, dest_addr_long, dest_addr='\xFF\xFE'):
self._serial = serial.Serial(dev, 9600)
self._dest_addr_long = dest_addr_long
self._dest_addr = dest_addr
self._xbee = ZigBee(self._serial)
def _sendByteArray(self, ba):
data = ''
for b in ba:
data += chr(b)
self._xbee.send('tx', data=data,
dest_addr_long=self._dest_addr_long,
dest_addr=self._dest_addr)
def _constrain(self, color, max=100):
if color < 0:
color = 0
elif color > max:
color = max
return color
def setColor(self, red, green, blue):
cmd = [CMD_SET_COLOR,
self._constrain(red),
self._constrain(green),
self._constrain(blue)]
self._sendByteArray(cmd)
def crossfade(self, colors):
size = 0
data = []
for c in colors:
data.append(self._constrain(c[0]))
data.append(self._constrain(c[1]))
data.append(self._constrain(c[2]))
size += 3
cmd = [CMD_CROSSFADE] + data
self._sendByteArray(cmd)
def setCrossfadeWait(self, value):
value = self._constrain(value, max=65535)
cmd = [CMD_SET_CROSSFADE_WAIT,
value / 255, value % 255]
self._sendByteArray(cmd)
def setCrossfadeHold(self, value):
value = self._constrain(value, max=65535)
cmd = [CMD_SET_CROSSFADE_HOLD,
value / 255, value % 255]
self._sendByteArray(cmd)
示例3: XbeeAPIWatcher
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
class XbeeAPIWatcher(object):
def __init__(self):
self.FILE = open(settings.LOG_FILE_NAME, 'a')
self.ser = None
self.xbee = None
self.last_message = None
self.last_signal = None
self._setup_serial()
def _setup_serial(self):
self.ser = serial.Serial(settings.SERIAL_PORT, 9600, timeout=0)
self.xbee = ZigBee(self.ser, escaped=True)
def _process_message(self, message):
if message['id'] == 'rx':
self.last_message = message
logger.info(time.strftime('%Y-%m-%d %H:%M:%S')) # TODO: use a higher resolution timestamp
self.xbee.send('at', command='DB')
# wait for signal strength response
elif message['id'] == 'at_response' and message['command'] == 'DB':
logger.info('Signal Strength: -%ddBm' % ord(message['parameter']))
self.last_signal = ord(message['parameter'])
data_string = '%s,%s,%s' % (time.strftime('%Y-%m-%d %H:%M:%S'),
'-%d' % self.last_signal,
self.last_message['rf_data'].strip('\r\n'))
self.FILE.write('%s\r\n' % data_string)
self.FILE.flush()
try:
ChickenAPI.add_data(data_string)
except ConnectionError as e:
logger.error(e)
def start(self):
while True:
try:
response = self.xbee.wait_read_frame()
self._process_message(response)
except KeyboardInterrupt:
break
def stop(self):
self.xbee.halt()
self.ser.close()
示例4: main
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
def main():
"""
Sends an API AT command to read the lower-order address bits from
an XBee Series 1 and looks for a response
"""
try:
# Open serial port
ser0 = serial.Serial('/dev/ttyUSB0', 9600)
ser1 = serial.Serial('/dev/ttyUSB1', 9600)
# Create XBee Series 1 object
#xbee = XBee(ser)
xbee = ZigBee(ser1, escaped=True)
# Send AT packet
xbee.send('at', frame_id='A', command='DH')
# Wait for response
response = xbee.wait_read_frame()
print response
# Send AT packet
xbee.send('at', frame_id='B', command='DL')
# Wait for response
response = xbee.wait_read_frame()
print response
# Send AT packet
xbee.send('at', frame_id='C', command='MY')
# Wait for response
response = xbee.wait_read_frame()
print response
# Send AT packet
xbee.send('at', frame_id='D', command='CE')
# Wait for response
response = xbee.wait_read_frame()
print response
except KeyboardInterrupt:
pass
finally:
ser0.close()
ser1.close()
示例5: main
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
def main():
cordinator = None
xbee = None
system_config = SystemConfigXML().read()
# システム設定ファイルの存在可否
if system_config == None:
logging.error(u'システム設定ファイルが存在しません。')
sys.exit()
try:
cordinator = serial.Serial(port=system_config['cordinator'], baudrate=9600, timeout=1, bytesize=8, parity='N')
xbee = ZigBee(cordinator)
# 温湿度データの監視
temp_surveillance = TemperatureSurveillance(command_queue)
temp_surveillance.start()
# ソケット通信による空調制御コマンド受信
socket_command = ScoketCommand(command_queue)
socket_command.start()
check_xbee_voltage_time = datetime.datetime.now() # XBee電圧チェック時間
xbee_voltage_check_num = 0
send_command_num = 0
while True:
# 1日に1回空調制御コントローラーの電圧を確認
now = datetime.datetime.now()
if check_xbee_voltage_time <= now:
controller_list = controller_config.all_read()
for conf in controller_list:
xal = re.split('(..)', conf['xbee'])[1::2]
xbee_addr = chr(int(xal[0], 16)) + chr(int(xal[1], 16)) + chr(int(xal[2], 16)) + chr(int(xal[3], 16)) + chr(int(xal[4], 16)) + chr(int(xal[5], 16)) + chr(int(xal[6], 16)) + chr(int(xal[7], 16))
timeout = datetime.datetime.now() + datetime.timedelta(seconds=10)
get_supply_num = 0
while True:
get_supply_num += 1
xbee.send('remote_at', dest_addr_long=xbee_addr, dest_addr='\xFF\xFE', command='%v', frame_id='A')
logging.info(u'空調制御コントローラーNo.' + conf['id'] + u'番電圧取得回数:' + str(get_supply_num) + u'回目')
if timeout < datetime.datetime.now():
timeout = datetime.datetime.now() + datetime.timedelta(seconds=10)
xbee_voltage_check_num += 1
logging.warn(u'電圧取得処理タイムアウト' + str(xbee_voltage_check_num) + u'回目')
if 10 <= xbee_voltage_check_num:
logging.warn(u'空調制御コントローラーNo' + conf['id'] + u'の電圧取得処理タイムアウト')
subject = datetime.datetime.today().strftime('%Y/%m/%d %H:%M:%S 空調制御コントローラーNo' + conf['id'] + 'の電圧取得処理タイムアウト')
body = u'空調制御コントローラーのバッテリー残量なし若しくはコントローラー故障の可能性があります。\n早めの確認をお願いします。'
FatalErrorMail().send_mail(system_config, subject, body)
xbee_voltage_check_num = 0
break
recv_data = xbee.wait_read_frame()
if not recv_data:
logging.warn(u'温湿度データもしくはXBee電圧取得コマンド送信結果が存在しません。')
time.sleep(0.1)
continue
if recv_data.has_key('parameter'):
mv = int(hex(ord(recv_data['parameter'][0])).split('0x')[1] + hex(ord(recv_data['parameter'][1])).split('0x')[1], 16)
logging.warn(u'コントローラーNo.' + conf['id'] + ' = ' + str(mv) + u'mV, 閾値 = ' + system_config['xbee'] + 'V')
subject = datetime.datetime.today().strftime('%Y/%m/%d %H:%M:%S 空調制御コントローラーNo' + conf['id'] + 'の取得電圧')
body = u'コントローラーNo.' + conf['id'] + ' = ' + str(mv) + u'mV, 閾値 = ' + system_config['xbee'] + 'V'
system_config['to'] = '[email protected]'
FatalErrorMail().send_mail(system_config, subject, body)
xbee_voltage_check_num = 0
system_config = SystemConfigXML().read()
# 取得した電圧値と閾値を比較し、閾値を下回ればメール通知
if float(system_config['xbee']) * 1000 > float(mv):
subject = datetime.datetime.today().strftime('%Y/%m/%d %H:%M:%S 空調制御コントローラー バッテリー残量低下')
body = u'空調制御コントローラー' + conf['id'] + u'番のバッテリー残量が低下しています。\n早めのバッテリー交換をお願いします。'
FatalErrorMail().send_mail(system_config, subject, body)
break
elif recv_data.has_key('rf_data'):
# 温湿度データをロギング
logging_temperature(recv_data)
time.sleep(0.5)
# 日付を加算
one_day = datetime.timedelta(days=1)
check_xbee_voltage_time = now + one_day
# 空調制御コマンドキューにコマンドが存在すれば送信
if not command_queue.empty():
queue = command_queue.get()
# XBee番号を取得
controller = controller_config.read(queue['controller_id'])
# 空調制御コントローラー設定の存在可否
if controller == None:
logging.error(u'空調制御コントローラー設定ファイルが存在しません。')
elif controller == {}:
logging.error(u'空調制御コントローラー設定が存在しません。')
else:
# 空調制御コマンド送信
logging.debug(u'空調制御コマンド送信: コントローラー番号 ' + queue['controller_id'] + u': 送信コマンド: ' + queue['command'])
#.........这里部分代码省略.........
示例6: signal_shutdown
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
import glob
import signal
import serial
from xbee import ZigBee
def signal_shutdown(signum, frame):
xbee.halt()
ser.close()
# Halt XBee and closer serial upon SIGINT (Ctrl-C)
signal.signal(signal.SIGINT, signal_shutdown)
SERIALPORT = glob.glob('/dev/tty.usbserial*')[0]
ser = serial.Serial(SERIALPORT, 9600)
xbee = ZigBee(ser)
# Set `Node Discovery Timeout` to X * 100ms
xbee.send('at', frame='A', command='NT', parameter='\xFF')
xbee.at(command='ND')
while True:
response = xbee.wait_read_frame()
if ('command' in response) and (response['command'] == 'ND'):
print response
print response['parameter']['node_identifier']
break
signal_shutdown(0, None)
示例7: sql_store
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
REST OF PROGRAM
'''
print "start of day"
st = sql_store() # open the database connection
print "sql stuff done"
xt = XBeeReceiveThread(args=(st,))
print "created xbee receive thread"
xt.start() # start up a thread to listen for incoming xbee packets
print "xbee started"
zig.send("at", frame='A', command='ND') # look for radios
print "sent to zig"
# function to send request to radio
def send_request(addr):
print 'sending request to radio ' + addr
zig.send("tx", frame='A', dest_addr='\x19\xC4', dest_addr_long=addr, data='\x61', options='\x01')
#zig.send("at", frame='A', command='DH')
# Do other stuff in the main thread
while True:
try:
for radio in radios:
send_request(radio.addr)
time.sleep(delay_time)
示例8: handlePacket
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
handlePacket(newPacket)
except KeyboardInterrupt:
break
# Ask for specific file names for each XBee ID:
for x in range(0,len(XBeeID)):
XBeeFilenames.append(raw_input("Identifier {0} filename:".format(XBeeID[x])))
# Change save_file to the file destination for your server
save_file = '/media/usbhdd/'
file_name = os.path.join(save_file,XBeeFilenames[x])
current_file = open(file_name,'w')
current_file.close()
# Send WAITING signal to each device
for x in range(0,numReaders):
xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b'W')
time.sleep(2)
xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b't')
while len(XBeeParameters) != int(numReaders):
try:
if packets.qsize() > 0:
newPacket = packets.get_nowait()
handlePacket(newPacket)
except KeyboardInterrupt:
break
# Check to make sure all the parameters are the same
plate_delay = XBeeParameters[0]
same = True
for x in range(1,numReaders):
示例9: ZigBee
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600
# Open serial port and enable flow control
ser = serial.Serial(PORT, BAUD_RATE, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=1, rtscts=1, dsrdtr=1)
# Create API object
xbee = ZigBee(ser,escaped=True)
#DEST_ADDR_LONG = "\x00\x13\xA2\x00\x40\x9C\x91\xA5"
#DEST_ADDR_LONG = "\x00\x13\xA2\x00\x40\xC5\x5A\x84"
# Router
DEST_ADDR_LONG = "\x00\x13\xA2\x00\x40\xC5\x5B\x05"
#part to discovery shot 16-bit address
xbee.send("tx",data="000\n",dest_addr_long=DEST_ADDR_LONG,dest_addr="\xff\xfe")
response = xbee.wait_read_frame()
shot_addr = response["dest_addr"]
# Continuously read and print packets
while True:
try:
print "send data"
tstart = datetime.now()
xbee.send("tx",data="321\n",dest_addr_long=DEST_ADDR_LONG,dest_addr=shot_addr)
xbee.send("tx",data="322\n",dest_addr_long=DEST_ADDR_LONG,dest_addr=shot_addr)
xbee.send("tx",data="323\n",dest_addr_long=DEST_ADDR_LONG,dest_addr=shot_addr)
xbee.send("tx",data="324\n",dest_addr_long=DEST_ADDR_LONG,dest_addr=shot_addr)
xbee.send("tx",data="325\n",dest_addr_long=DEST_ADDR_LONG,dest_addr=shot_addr)
tend = datetime.now()
print tend - tstart
time.sleep(1)
示例10: int
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
rud = (j.get_axis(3) + 1.0) * (float(0xFF) / 2)
rud = int(round(rud,0))
print "ail=", ail, "ele=", ele, "thr=", thr, "rud=", rud
ail = struct.pack('B',ail)
ele = struct.pack('B',ele)
thr = struct.pack('B',thr)
rud = struct.pack('B',rud)
drv_string = '\x01' + ail + ele + thr + rud
while True:
try:
response = xbee.wait_read_frame()
input(pygame.event.get())
try:
#print response
print hexlify(response['rf_data'])
except:
continue
xbee.send("tx", frame_id='\x00', dest_addr_long=device["PNS"], dest_addr='\xFF\xFE', data=drv_string)
print hexlify(drv_string)
except KeyboardInterrupt:
break
ser.close()
示例11: range
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
print 'Setting time from NTP server'
import ntplib
c = ntplib.NTPClient()
r = c.request('pool.ntp.org', version=3)
dt = datetime.datetime.fromtimestamp(round(r.tx_time))
elif options.string:
print 'Setting time from string %s' % options.string
dt = datetime.datetime.strptime(options.string, '%Y-%m-%d %H:%M:%S')
else:
print 'Setting time from local time'
dt = datetime.datetime.now()
dt = dt.replace(second=int(round(dt.second + (float(dt.microsecond) / 1000000))), microsecond=0)
tm = 'set T%s' % dt.strftime('%Y%m%d%H%M%S')
print dt
xbee.send('tx', data=tm, dest_addr_long=dest_addr_long, dest_addr=dest_addr)
response = xbee.wait_read_frame()
if options.readback:
print 'Reading time'
cmd = 'get'
xbee.send('tx', data=cmd, dest_addr_long=dest_addr_long, dest_addr=dest_addr)
for i in range(0, 5):
response = xbee.wait_read_frame()
if response['id'] == 'rx':
dt_ret = response['rf_data']
dt = datetime.datetime.strptime(dt_ret, 'T%Y%m%d%H%M%S')
print dt
break
示例12: chr
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
v2 = (var >> 8) & 0xff
v3 = (var >> 16) & 0xff
v4 = (var >> 24) & 0xff
return chr(v1) + chr(v2) + chr(v3) + chr(v4)
def encodeInt(var):
#var = unpack('<h', pack('<h', var))[0]
v1 = var & 0xff
v2 = (var >> 8) & 0xff
return chr(v1) + chr(v2)
#xbee.send("tx", frame_id="\x01", dest_addr_long=addr, dest_addr="\xff\xfe", data="\x53\x00" + encodeLong(78100))
#xbee.send("tx", frame_id="\x01", dest_addr_long=addr, dest_addr="\xff\xfe", data="\x51" + encodeInt(10))
#xbee.send("tx", frame_id="\x01", dest_addr_long=addr, dest_addr="\xff\xfe", data="\x52\x00\x13\xa2\x00\x40\x66\x5d\xb3")
xbee.send("tx", frame_id="\x01", dest_addr_long=addr, dest_addr="\xff\xfe", data="\x01")
while True:
try:
response = xbee.wait_read_frame()
print response
except KeyboardInterrupt:
break
if (response.get("rf_data")):
print str(datetime.now())
print str(decodeFloat(response.get("rf_data")[0] + response.get("rf_data")[1] + response.get("rf_data")[2] + response.get("rf_data")[3])) + "mb"
print str(decodeFloat(response.get("rf_data")[8] + response.get("rf_data")[9] + response.get("rf_data")[10] + response.get("rf_data")[11])) + "%"
print str(decodeFloat(response.get("rf_data")[4] + response.get("rf_data")[5] + response.get("rf_data")[6] + response.get("rf_data")[7])) + "C"
print str(decodeFloat(response.get("rf_data")[12] + response.get("rf_data")[13] + response.get("rf_data")[14] + response.get("rf_data")[15])) + "C"
break
示例13: hexlify
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
#print response
if response['id'] == 'at_response':
if response['command'] == 'ND':
parameter = response['parameter']
destaddrS = parameter[0:2]
destaddr = parameter[2:10]
destname = parameter[10:]
index = destname.find('\x00')
destname = destname[:index]
print "received node reply for node %s short %s long %s" \
% (destname, hexlify(destaddrS), hexlify(destaddr))
nodefound = 1
sleep(1)
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D0', parameter='\x05')
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D1', parameter='\x05')
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D2', parameter='\x05')
sleep(5)
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D0', parameter='\x04')
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D1', parameter='\x04')
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D2', parameter='\x04')
while True:
try:
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D0', parameter='\x05')
sleep(1)
xbee.send('remote_at', dest_addr_long=destaddr, dest_addr=destaddrS, command='D0', parameter='\x04')
sleep(1)
示例14: message_received
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
from xbee import ZigBee
import time
import serial
from pprint import pprint
PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600
ser = serial.Serial(PORT, BAUD_RATE)
def message_received(data):
pprint(data)
zb = ZigBee(ser, escaped = True, callback=message_received)
while True:
try:
time.sleep(1)
zb.send("tx", dest_addr='\xFF\xFE', dest_addr_long="\x00\x13\xa2\[email protected]@'", data='Hello world from root!')
#zb.send("tx", dest_addr='\xFF\xFE', dest_addr_long='\x00\x00\x00\x00\x00\x00\x00\x00', data='Hello world from dest!')
time.sleep(5)
except KeyboardInterrupt:
break
# halt() must be called before closing the serial
# port in order to ensure proper thread shutdown
zb.halt()
ser.close()
示例15: ZigBee
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import send [as 别名]
ser = serial.Serial(SERIALPORT, BAUDRATE)
#Creat API object
zb = ZigBee(ser)
#this goes to a file and opens it
file_to_send = "temperature_readings/28-00000618d8aa_temperature.csv"
file_open = open(file_to_send)
#go through the intire file and select each line individually
with open(file_to_send) as f:
file_contents = f.readlines()
#for loop going through each line and sendint it as one solid piece
for idx, val in enumerate(file_contents):
print val
zb.send('tx', data=val, dest_addr_long='\x00\x13\xa2\x00\x40\xe2\xc6\xe2', dest_addr='\xff\xff', frame_id='\x00')
# Continuously read and print packets
while True:
try:
#recieve raw input from user
info = raw_input()
#send user input to xbee with corrosponding address
zb.send('tx', data=info, dest_addr_long='\x00\x13\xa2\x00\x40\xe2\xc6\xe2', dest_addr='\xff\xff', frame_id='\x00')
except KeyboardInterrupt:
break
ser.close()