Связь между 2 XBee RF модулем - PullRequest
2 голосов
/ 01 мая 2019

Хорошо, у меня есть 2 устройства Xbee для связи.В первый раз я отправляю данные из Number1 и запускаю другую программу, которая принимает данные и распечатывает их, а затем отправляет обратно другие данные для ответа.Но данные Number2 выполняются в то время как цикл, который содержит метод обратного вызова.И способ, которым я делаю, - это получить бесконечный цикл.Как я могу избежать этого?

def send(self):
      try:
         self.currentlocal.open()
         remotestr=self.listw.currentItem().text()
         li=remotestr.split("-")
         xbee_network=self.currentlocal.get_network()         
         remote=xbee_network.get_device_by_64(XBee64BitAddress.from_hex_string(li[0]))
         arr_64=self.currentlocal.get_64bit_addr()
         self.currentlocal.send_data_async(remote,str(arr_64)+"-"+str(self.spin.value()))


         def my_data_received_callback(xbee_message):
            print('has been got back')
            data=xbee_message.data.decode()
            print(data)
            self.loop_check=1
            print('..................................')

         while(self.loop_check==0):
            self.currentlocal.add_data_received_callback(my_data_received_callback)

         self.loop_check=0
         self.currentlocal.close()

      except:
         self.currentlocal.close()
...