本文整理汇总了Python中xbee.ZigBee.remote_at方法的典型用法代码示例。如果您正苦于以下问题:Python ZigBee.remote_at方法的具体用法?Python ZigBee.remote_at怎么用?Python ZigBee.remote_at使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xbee.ZigBee
的用法示例。
在下文中一共展示了ZigBee.remote_at方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def main():
args = setup_argparser()
#setup serial port
ser = serial.Serial(args.port, 9600)
xbee = ZigBee(ser, escaped=True)
exit_code = 0
#send force sample command IS
xbee.remote_at(dest_addr_long=to_hex(args.device), command='IS', frame_id=cmd_id)
try:
response = xbee.wait_read_frame()
#ack received
if response['status'] == '\x00' and response['frame_id'] == cmd_id:
try:
print response['parameter'][0][response_lookup[args.gpio]]
#desired value not included in response
except KeyError:
print "No sample for {0} received. The PIN may not be properly configured. For ADC select Mode 2 (analog input)".format(args.gpio)
exit_code = -1
#error message received
else:
print "Command was not successful: ", status_help[response['status']]
exit_code = ord(response['status'])
except KeyboardInterrupt:
print "cancel script"
#clean up
ser.close()
exit(exit_code)
示例2: xbee_tp
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def xbee_tp(xbeeRemAddr):
"""
XBee TP command implementation. Input: xbeeRemAddr. Ex: xbee_is('0013A200406B5174')
"""
comPortList = getActiveComPort()
if comPortList:
comPort = comPortList[0].get('name')
timeOut = int(comPortList[0].get('timeout'))
baudRate = int(comPortList[0].get('baudrate'))
count = 0
try:
ser = serial.Serial(comPort, baudRate, timeout=timeOut)
xbee = ZigBee(ser,escaped=True)
xbee.remote_at(dest_addr_long=xbeeRemAddr,command="TP",frame_id="C")
response = xbee.wait_read_frame()
return response
except serial.SerialException as ex:
text = "Exception is: " + ex.__str__()
return 0
else:
xbee.halt()
ser.close()
示例3: hiddenXbeePin
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def hiddenXbeePin(xbeeRemAddr, xbeePin, xbeePinState):
"Manipulate XBee pins. Input: xbeeRemAddr, xbeePin, xbeePinState. Ex: xbee_pin('0013A200406B5174'.decode('hex'),'D0','ON')"
comPortList = getActiveComPort()
if comPortList:
comPort = comPortList[0].get('name')
timeOut = int(comPortList[0].get('timeout'))
baudRate = int(comPortList[0].get('baudrate'))
count = 0
try:
ser = serial.Serial(comPort, baudRate, timeout=timeOut)
xbee = ZigBee(ser,escaped=True)
if xbeePinState == 'ON':
xbeePinStateHex = '\x05'
if xbeePinState == 'OFF':
xbeePinStateHex = '\x04'
try:
xbee.remote_at(dest_addr_long=xbeeRemAddr,command=xbeePin,parameter=xbeePinStateHex)
finally:
return 1
except serial.SerialException as ex:
text = "Exception is: " + ex.__str__()
return 0
else:
xbee.halt()
ser.close()
示例4: main
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def main():
args = setup_argparser()
#setup serial port
ser = serial.Serial(args.port, 9600)
xbee = ZigBee(ser, escaped=True)
exit_code = 0
p = on if args.state == 1 else off
if args.ack:
#send command and request an acknowledge
xbee.remote_at(dest_addr_long=to_hex(args.device), command=pin_to_command[args.gpio], parameter=p, frame_id=cmd_id)
try:
response = xbee.wait_read_frame()
#sucessfully transmitted command
if response['status'] == '\x00' and response['frame_id'] == cmd_id:
print "command successfull"
else:
print "Command was not successful: ", status_help[response['status']]
exit_code = ord(response['status'])
except KeyboardInterrupt:
print "cancel script"
else:
#send command without requesting ack
xbee.remote_at(dest_addr_long=to_hex(args.device), command=pin_to_command[args.gpio], parameter=p)
#clean up
ser.close()
exit(exit_code)
示例5: test
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def test():
#print "Output: %s value: %s" % (numOutput, value)
ser = serial.Serial(PORT, BAUD_RATE)
# ZB XBee here. If you have Series 1 XBee, try XBee(ser) instead
xbee = ZigBee(ser)
#MAC, number written on the back of the XBee module
# CO1 = my coordinator
# EP1 = my endpoint with 2 outputs. D12(UP) y D11(DOWN)
device = {
'CO1': '\x00\x13\xA2\x00\x40\xA0\xD4\xA3',
'EP1': '\x00\x13\xa2\x00\x40\x99\x2e\x62'
}
#64 bit address
xbee.remote_at(dest_addr_long = device['EP1'], command = 'P1', parameter = '\x05')
sleep(1)
xbee.remote_at(dest_addr_long = device['EP1'], command = 'P1', parameter = '\x04')
sleep(1)
xbee.remote_at(dest_addr_long = device['EP1'], command = 'P2', parameter = '\x05')
sleep(1)
xbee.remote_at(dest_addr_long = device['EP1'], command = 'P2', parameter = '\x04')
sleep(1)
ser.close()
示例6: start
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def start(self):
#-------------------------------------------------------------------------------
# Open serial port
ser = serial.Serial('/dev/ttyAMA0', 9600)
# Create API object
xbee = ZigBee(ser,callback = self.print_data ,escaped=True)
# Continuously read and print packets
print "Starting"
#print '\n *****************************'
#print xbee.api_commands
#print '\n *****************************'
#print xbee.api_responses
#print '\n *****************************'
MY = self.HexToByte('0B41')
ADR = self.HexToByte('0013A2004092D86A')
once = 1
while True:
try:
#xbee.tx(dest_addr=pan,dest_addr_long=Destination, data='Hello World')
#xbee.remote_at(dest_addr=MY,dest_addr_long=ADR, command='MY',parameter=None)
#time.sleep(5) \x
#xbee.send("remote_at",frame_id='A', command='MY')
#
#xbee.tx(dest_addr='\xbf\x0c',dest_addr_long='\x00\x13\xa2\x00\x40\x92\xd8\x6a', data='Hello World')
if once == 1:
print 'Discovering Nodes'
#xbee.at(frame_id='A', command='MY')
#xbee.at(frame_id='A', command='ID')
xbee.at(frame_id='D', command='ND')
#xbee.remote_at(dest_addr='\xbf\x0c',command='IR',parameter='\xff')
#xbee.remote_at(dest_addr='\xbf\x0c',command='V+',parameter='\xff')
#xbee.remote_at(dest_addr='\xbf\x0c',command='MY',parameter=None)
once = 0
time.sleep(5)
print 'Sending RAT'
#xbee.tx(dest_addr=MY2,dest_addr_long=ADR2, data='Hello World')
xbee.remote_at(dest_addr=MY,dest_addr_long=ADR,command='IS')
#time.sleep(1)
xbee.remote_at(dest_addr=MY,dest_addr_long=ADR,command='IR',parameter='\xFF')
#time.sleep(1)
xbee.remote_at(dest_addr=MY,dest_addr_long=ADR,command='IR',parameter='\x00')
print 'Done'
time.sleep(3)
except KeyboardInterrupt:
break
xbee.halt()
ser.close()
示例7: byte
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
print r['command']
if r and 'status' in r and r['status'] != byte(0x00):
pprint(r)
# target a particular device
dest = struct.pack('>Q',0x0013a2004031f790)
# broadcast
#dest = struct.pack('>Q',0x00000000FFFF)
# Some description of the sensor here
# http://www.digi.com/wiki/developer/index.php/XBee_Sensors
# enable analog input for light, temperature, and humidity
xb.remote_at(command='D1', parameter=byte(0x02), dest_addr_long=dest)
wait()
xb.remote_at(command='D2', parameter=byte(0x02), dest_addr_long=dest)
wait()
xb.remote_at(command='D3', parameter=byte(0x02), dest_addr_long=dest)
wait()
# wiki says to enable digital input on the battery monitoring pin
xb.remote_at(command='P1', parameter=byte(0x03), dest_addr_long=dest)
wait()
# set up sleep
示例8: ZigBeeOutput
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
class ZigBeeOutput( Base, object ):
'''
ZigBeeOutput is responsible for formating a ZigBee message and sending it to a remote XBee.
'''
setPinHigh = b'\x05'
setPinLow = b'\x04'
serial = None
zigbee = None
previous_datetime = datetime.utcnow()
in_test_mode = False
deviceToCommand = {'DIO-0': b'D0',
'DIO-1': b'D1',
'DIO-2': b'D2',
'DIO-3': b'D3',
'DIO-4': b'D4',
'DIO-5': b'D5',
'DIO-6': b'D6',
'DIO-7': b'D7'}
selectHighOrLow = {False: setPinLow, True: setPinHigh}
communication_module = {'posix': BeagleboneBlackXbeeCommunications,
'nt': WindowsXbeeCommunications}
def __init__( self, in_test_mode=False ):
'''
'''
super( ZigBeeOutput, self ).__init__()
self.in_test_mode = in_test_mode
def startCorrectZigbee( self, os_name=os.name ):
if not self.in_test_mode:
if ( os_name in self.communication_module ):
self.comm = self.communication_module[os_name]()
self.serial = self.comm.setup()
self.zigbee = ZigBee( self.serial )
else:
raise UnsupportedSystemError( "System {} not supported".format( os_name ) )
@property
def logger_name( self ):
''' Set the logger level. '''
return Constants.LogKeys.outputsZigBee
def sendCommand( self, **packet ):
try:
device = packet[Constants.DataPacket.device]
port = packet[Constants.DataPacket.port]
value = packet[Constants.DataPacket.value]
id = packet[Constants.DataPacket.ID]
dest_addr_long = struct.pack( '!Q', int( device, 16 ) )
command = self.deviceToCommand[port.upper()]
frame_id = struct.pack( '!B', id )
parameter = self.selectHighOrLow[value]
current_datetime = datetime.utcnow()
delta = current_datetime - self.previous_datetime
if not self.in_test_mode:
self.zigbee.remote_at( dest_addr_long=dest_addr_long,
frame_id=frame_id,
command=command,
parameter=parameter )
self.logger.debug( '{} dest_addr = {:x} command = {} parameter {:x} frame_id {}'.
format( str( delta ).split( '.' )[0],
struct.unpack( '!Q', dest_addr_long )[0], command,
struct.unpack( 'B', parameter )[0],
struct.unpack( 'B', frame_id )[0] ) )
self.previous_datetime = current_datetime
except KeyError:
self.logger.exception( 'KeyError exception: packet = {}'.format( packet ) )
raise
示例9: monitorCasa
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def monitorCasa():
print("Iniciando....")
logging.info('Starting')
print("conectando pushbullet")
po_client = Client(pb_key, api_token = pb_api_key)
previo_no_tv='0'
#resetear alarma
globales['alarma'] = False
globales['alarma_trip'] = False
globales['alarma_enviada'] = False
globales['auto_ac'] = False
globales['activo'] = True
actualizar_global('auto_ac',0, con2)
actualizar_global('activo',1.0, con2)
actualizar_global('auto_luces',1.0, con2)
actualizar_global('alarma',0, con2)
actualizar_global('chapa',0, con2)
chapa_por_cerrar = False
print("Probando sonos...")
estado_sonos = tocar('iniciar.mp3')
print("Apagando luces...")
for key in luces:
apagarGrupo(luces[key])
estado_luces[key] = False
print "Luces activas, apagadas " + key
#limpiar comandos pendientes
print("Conectando con bd de comandos...")
concom = lite.connect('/Volumes/mmshared/bdatos/comandos.db')
with concom:
c = concom.cursor()
c.execute('DELETE FROM pendientes')
concom.close()
#iniciar conteos
tiempo_comandos= time.time()
tiempo_sonos = time.time()
time_loop = time.time()
log_time = time.time()
dweepy_time = time.time()
dweepy_time_2 = time.time()
felipe_phone_time = time.time()
check_lights_time = time.time()
tiempos_registro = {}
estado_hue={}
mom_registrar = {}
tiempo_encendido={}
for lugar in lugares:
tiempos_registro[lugar] = 0
mom_registrar[lugar] = 0
movimiento_st[lugar] = 0.0
estado_luces[lugar] = False
tiempo_encendido[lugar] = 0
tiempo_pressure = time.time()
for key in tiempos_registro:
tiempos_registro[key] = time.time()
for key in mom_registrar:
mom_registrar[key] = time.time()
for key in tiempo_encendido:
tiempo_encendido[key] = 0
# xbees iniciar conección
print("Activar xbee coordinator...")
try:
serialConnection = serial.Serial( SERIAL_PORT, 9600,timeout=0.15)
xbee = ZigBee(serialConnection)
print "Conexión xbee serial...OK"
except:
logging.warning('Error serial/xbee')
print "Error serial/xbee"
# luces cocina apagadas
xbee.remote_at(dest_addr_long= '\x00\x13\xa2\[email protected]\xbe\xf8\x62',command='D2',parameter='\x04')
# zumbador apagado
xbee.remote_at(dest_addr_long= '\x00\x13\xa2\[email protected]\xbe\xf8\x62',command='D1',parameter='\x04')
tstamp = time.time()
anterior = time.time()
#################### ciclo de monitoreo #########################
print ("Iniciar ciclo principal...")
contar_mysql=0
while True:
#tstamp del ciclo
#print tstamp - time.time()
tstamp = time.time()
dt = datetime.datetime.fromtimestamp(tstamp, tz=tzone)
# apagar si no se ha detectado movimiento en un rato
#.........这里部分代码省略.........
示例10: Humidity
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
datawriter.writerow( ('# Timestamp','Temperature(F)', 'Relative Humidity (%)', 'light (arbitrary)') )
voltage_file = open('voltage.dat','w', 0)
print >>voltage_file, '# Timestamp, Battery Voltage'
while 1:
r = xb.wait_read_frame()
#pprint(r)
if r['id'] == 'rx_io_data_long_addr':
timestamp = datetime.now()
delta = timestamp - prev_timestamp
if delta.total_seconds() > min_sample_duration:
handle_adc_data(r, timestamp, datawriter)
data_file.flush()
#print 'delta = ',delta.total_seconds()
prev_timestamp = timestamp
dump_power_level()
voltage_delta = timestamp - prev_voltage_timestamp
if voltage_delta.total_seconds() > voltage_duration:
# quick sent a check on the battery voltage
xb.remote_at(command='%V', frame_id=b'\x01')
r = xb.wait_read_frame()
if r['id'] == 'remote_at_response':
data = struct.unpack('> H',r['parameter'])[0]
voltage = data/1024.0
print >>voltage_file, timestamp,', ', voltage
voltage_file.flush()
prev_voltage_timestamp = timestamp
示例11: range
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
module['io'] = []
module['D'] = [mod['D{}'.format(i)] for i in range(8)]
for i in range(8):
if mod['D{}'.format(i)] == 2:
module['io'].append(0) # adc
elif mod['D{}'.format(i)] in range(3,6):
module['io'].append(False) # dio
else:
module['io'].append(None) # not used
redis.hmset('xbee:{}'.format(idx), module)
redis.hset('xbee:lookup:address', module['address'], idx)
redis.hset('xbee:lookup:name', module['name'], idx)
address = mod['address']
# setting xbees
addr = ''
counts = 0
for i in range(8):
addr += chr(int('0x'+address[2*i:2*(i+1)],16))
for p in port:
xbee.remote_at(frame_id='I', dest_addr_long=addr, command=p, parameter=chr(mod[p]))
time.sleep(0.001)
response = xbee.wait_read_frame()
if response['status'] != '\x00':
counts += 1
print u'Warning: {} {} setting failed!'.format(module['name'],p)
if counts == 0:
print 'All ZigBee modules initialized successfully!'
else:
print '{} port(s) setting failed! Please check your configuration file'.format(counts)
示例12: int_to_str
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
now = datetime.datetime.now()
for item in queue:
# log the action taken
if item[1] == 0:
print "%s: switching to high" % now
resp = "/ack_on"
else:
print "%s: switching to low" % now
resp = "/ack_off"
if not gpio_mode:
# addr2 = '\x00\x13\xa2\x00\x40\x3b\xc5\x3a'
addr = int_to_str(item[0])
xbee.remote_at(dest_addr_long=addr, command=pin_mappings[2], parameter='\x05')
time.sleep(0.2)
xbee.remote_at(dest_addr_long=addr, command=pin_mappings[item[1]], parameter='\x05')
time.sleep(0.5)
xbee.remote_at(dest_addr_long=addr, command=pin_mappings[item[1]], parameter='\x04')
time.sleep(0.2)
xbee.remote_at(dest_addr_long=addr, command=pin_mappings[2], parameter='\x04')
time.sleep(0.2)
else:
if item[1] == 0:
ret = os.system("echo 1 > " + gpio)
else:
ret = os.system("echo 0 > " + gpio)
if ret:
print "Error setting the GPIO line"
示例13: D4
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def D4(self, zb: ZigBee, cmd, param):
zb.remote_at(
dest_addr=byteUTF8(self._serial.addr),
command=b'D4',
parameter=byteUTF8(param))
pass
示例14: NI
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
def NI(self, zb: ZigBee, cmd, param):
zb.remote_at(
dest_addr=byteUTF8(self._serial.addr),
command=b'NI')
pass
示例15: ZigBee
# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import remote_at [as 别名]
#!/usr/bin/env python
from xbee import ZigBee
import serial
import sys
xbee = ZigBee(serial.Serial(sys.argv[1], 9600))
xbee.remote_at(command='ND', dest_addr_long=b'\x00\x00\x00\x00\x00\x00\xFF\xFF', options=b'\x08', frame_id='A')
print xbee.wait_read_frame()