2013-05-15 2 views
1

С библиотекой python-xbee я написал код для отправки данных от конечной точки до координатора. Я успешно отправил данные координатору, и координатор получает эти данные. Но, в коде конечной точки, после того, как координатор получает данные, я хочу закончить общение. Что мне следует написать, чтобы я мог обнаружить, что координатор получил данные?Как получить подтверждение и прекратить отправку данных

Я посылаю данные с

class XbeeSend(Concurrent): 
    def __init__(self): 
      self.stopped = False 
      threading.Thread.__init__(self) 
    def run(self): 
     try: 
      while self.stopped == False : 
        data_ = str(....) 
        xbee.send('tx',frame_id='\x01',dest_addr_long=DEST_ADDR_LONG,dest_addr="\xff\xfe",data=data_) 
        time.sleep(1) 
        threading.Timer(2, self.run()) 
     except: 
        None 

ответ

1

Вы должны получить сообщение «передать состояние» (типа кадра 0х88) из УСПЕХУ на передающем узле, когда координатор получил ваше сообщение. Это низкоуровневое сообщение о состоянии, которое радио (модуль XBee) получил сообщение и не гарантирует, что ваш прикладной уровень фактически обработал сообщение.

Если, к примеру, ваша заявка потерпела крах, но XBee был включен, вы все равно увидите статус передачи УСПЕХА.

Я не знаю, как настроить python-xbee на получение копий сообщений о статусе передачи. Вам нужно будет обновить код, чтобы использовать инкрементный идентификатор кадра (от 1 до 255 и обратно до 1) и сохранить таблицу недавно отправленных кадров. Сопоставьте идентификатор кадра, указанный в сообщении о состоянии передачи, в таблице, чтобы узнать, какие кадры были получены.

Библиотека python-xbee должна иметь режим, в котором он использует новый идентификатор кадра для каждого отправленного сообщения и предоставляет эту информацию для использования в вашей таблице.

 Смежные вопросы

  • Нет связанных вопросов^_^