59 lines
1.2 KiB
Python
59 lines
1.2 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# Example program to receive packets from the radio link
|
|
#
|
|
|
|
import RPi.GPIO as GPIO
|
|
GPIO.setmode(GPIO.BCM)
|
|
from lib_nrf24 import NRF24
|
|
import time
|
|
import spidev
|
|
|
|
|
|
|
|
pipes = [[0xe7, 0xe7, 0xe7, 0xe7, 0xe7], [0xc2, 0xc2, 0xc2, 0xc2, 0xc2]]
|
|
|
|
radio2 = NRF24(GPIO, spidev.SpiDev())
|
|
radio2.begin(0, 22)
|
|
|
|
radio2.setRetries(15,15)
|
|
|
|
radio2.setPayloadSize(32)
|
|
radio2.setChannel(0x60)
|
|
radio2.setDataRate(NRF24.BR_2MBPS)
|
|
radio2.setPALevel(NRF24.PA_MIN)
|
|
|
|
radio2.setAutoAck(True)
|
|
radio2.enableDynamicPayloads()
|
|
radio2.enableAckPayload()
|
|
|
|
radio2.openWritingPipe(pipes[0])
|
|
radio2.openReadingPipe(1, pipes[1])
|
|
|
|
radio2.startListening()
|
|
radio2.stopListening()
|
|
|
|
radio2.printDetails()
|
|
|
|
radio2.startListening()
|
|
|
|
c=1
|
|
while True:
|
|
akpl_buf = [c,1, 2, 3,4,5,6,7,8,9,0,1, 2, 3,4,5,6,7,8]
|
|
pipe = [0]
|
|
while not radio2.available(pipe):
|
|
time.sleep(10000/1000000.0)
|
|
|
|
recv_buffer = []
|
|
radio2.read(recv_buffer, radio2.getDynamicPayloadSize())
|
|
print ("Received:") ,
|
|
print (recv_buffer)
|
|
c = c + 1
|
|
if (c&1) == 0:
|
|
radio2.writeAckPayload(1, akpl_buf, len(akpl_buf))
|
|
print ("Loaded payload reply:"),
|
|
print (akpl_buf)
|
|
else:
|
|
print ("(No return payload)")
|