def find_reply_for_request(po, pktlist, pktreq, seqnum_check=True): if len(pktlist) == 0: return None reqhdr = DJICmdV1Header.from_buffer_copy(pktreq) for pktrpl in pktlist: rplhdr = DJICmdV1Header.from_buffer_copy(pktrpl) if packet_header_is_reply_for_request(rplhdr, reqhdr, seqnum_check=seqnum_check): return pktrpl if (po.verbose > 2): print("Received unrelated packet:") print(' '.join('{:02x}'.format(x) for x in pktrpl)) return None
def find_reply_for_request(po, pktlist, pktreq): if len(pktlist) == 0: return None reqhdr = DJICmdV1Header.from_buffer_copy(pktreq) for pktrpl in pktlist: rplhdr = DJICmdV1Header.from_buffer_copy(pktrpl) if packet_header_is_reply_for_request(rplhdr, reqhdr): return pktrpl if (po.verbose > 2): print("Received unrelated packet:") print(' '.join('{:02x}'.format(x) for x in pktrpl)) return None
def do_send_request_receive_reply(po): # Open serial port ser = serial.Serial(po.port, baudrate=po.baudrate, timeout=0) if (po.verbose > 0): print("Opened {} at {}".format(ser.port, ser.baudrate)) pktreq = do_send_request(po, ser, po) pktrpl = do_receive_reply(po, ser, pktreq, seqnum_check=(not po.loose_response)) if (po.verbose > 0): if pktrpl is not None: print("Received response packet:") else: print("No response received.") if pktrpl is not None: print(' '.join('{:02x}'.format(x) for x in pktrpl)) if (po.verbose > 0): rplhdr = DJICmdV1Header.from_buffer_copy(pktrpl) rplpayload = get_known_payload(rplhdr, pktrpl[sizeof(DJICmdV1Header):-2]) if (rplpayload is not None): print("Parsed response - {:s}:".format( type(rplpayload).__name__)) print(rplpayload) ser.close()
def do_send_request_receive_reply(po): # Open serial port ser = serial.Serial(po.port, baudrate=po.baudrate, timeout=0) if (po.verbose > 0): print("Opened {} at {}".format(ser.port, ser.baudrate)) pktreq = do_send_request(po, ser, po) pktrpl = do_receive_reply(po, ser, pktreq, seqnum_check=(not po.loose_response)) if (po.verbose > 0): if pktrpl is not None: print("Received response packet:") else: print("No response received.") if pktrpl is not None: print(' '.join('{:02x}'.format(x) for x in pktrpl)) if (po.verbose > 0): rplhdr = DJICmdV1Header.from_buffer_copy(pktrpl) rplpayload = get_known_payload(rplhdr, pktrpl[sizeof(DJICmdV1Header):-2]) if (rplpayload is not None): print("Parsed response - {:s}:".format(type(rplpayload).__name__)) print(rplpayload) ser.close()