Удалить данные из модуля Xbee - PullRequest
1 голос
/ 19 июня 2019

Так что это программа, которую я использую на удаленном устройстве XBee. Он принимает сообщения от локального узла И во второй раз я запрашиваю данные устройства, все еще живые, и он отправляет обратно то же самое на локальный узел. Как я могу удалить предыдущие данные с устройства?

class local():
        def __init__(self):
                self.device=0
                self.Local()
                self.data=0
                self.time=0
                self.data_back=0
                self.sensor=Adafruit_DHT.DHT11
                self.pin=2
                self.li=0

        def Local(self):
            try:
                for i in range(256):
                                local = XBeeDevice("/dev/ttyUSB"+str(i), 9600)
                                local.open()
                                print('/dev/ttyUSB'+str(i))
                                self.device=local
                                break
            except:
                print('check com port')
                pass


        def read(self):
                NEW_TIMEOUT_FOR_SYNC_OPERATIONS = 2
                self.device.set_sync_ops_timeout(NEW_TIMEOUT_FOR_SYNC_OPERATIONS)
                try:
                    while(True):
                        self.data=self.device.read_data()
                        if(self.data!=None):
                            self.data=self.data.data.decode()
                            break
                    self.answer()                           
                except:
                    self.device.close()
                    print('There is a problem about device, so has been closed!')
        def answer(self):
                self.li=self.data.split('-')
                print(self.li[0])
                self.time=self.li[1]
                self.temper()
        def temper(self):
            self.time=int(self.time)
            try:
                    for i in range(self.time):
                            hum,tem=Adafruit_DHT.read_retry(self.sensor,self.pin)
                            if(i==self.time):
                                    self.data_back=str(self.data_back)+str(i)+'-'+str(tem)
                            else:
                                    self.data_back=str(self.data_back)+str(i)+'-'+str(tem)+','
                                    time.sleep(0.1)
                    xbee_network=self.device.get_network()
                    back_device=xbee_network.get_device_by_64(XBee64BitAddress.from_hex_string(self.li[0]))
                    self.device.send_data_async(back_device,self.data_back)
                    self.data_back=0
                    self.data=None
                    self.read()


            except:
                    print('there is a problem')


lcl=local()
lcl.read()
...