I receive only first frame
Posted: Fri 25. Feb 2022, 14:12
I manage to receive the first frame but the other frames do not arrive. Why?
it's 0x725 which send the first frame and other frame.
Thank you
an extract
it's 0x725 which send the first frame and other frame.
Thank you
an extract
Code: Select all
res = CANTP_MsgDataAlloc_2016(&tx_msgI, PCANTP_MSGTYPE_ISOTP);
//Allocate rx message
res = CANTP_MsgDataAlloc_2016(&rx_msgI, PCANTP_MSGTYPE_NONE);
// Create a simple physical mapping:
// - Source 0xF1 (transmitter), target 0x01 (receiver), CAN id 0x725, CAN ID flow control 0x715
// - Diagnostic message in a classic format
mapping_ISO.can_id = 0x715;
mapping_ISO.can_id_flow_ctrl = 0x725;
mapping_ISO.can_msgtype = PCANTP_CAN_MSGTYPE_STANDARD;
mapping_ISO.netaddrinfo.extension_addr = 0x00;
mapping_ISO.netaddrinfo.format = PCANTP_ISOTP_FORMAT_NORMAL;
mapping_ISO.netaddrinfo.msgtype = PCANTP_ISOTP_MSGTYPE_DIAGNOSTIC;
mapping_ISO.netaddrinfo.source_addr = 0xF1;
mapping_ISO.netaddrinfo.target_addr = 0x01;
mapping_ISO.netaddrinfo.target_type = PCANTP_ISOTP_ADDRESSING_PHYSICAL;
mapping_ISO2.can_id = 0x725;
mapping_ISO2.can_id_flow_ctrl = 0x715;
mapping_ISO2.can_msgtype = PCANTP_CAN_MSGTYPE_STANDARD;
mapping_ISO2.netaddrinfo.extension_addr = 0x00;
mapping_ISO2.netaddrinfo.format = PCANTP_ISOTP_FORMAT_NORMAL;
mapping_ISO2.netaddrinfo.msgtype = PCANTP_ISOTP_MSGTYPE_DIAGNOSTIC;
mapping_ISO2.netaddrinfo.source_addr = 0xF1;
mapping_ISO2.netaddrinfo.target_addr = 0x01;
mapping_ISO2.netaddrinfo.target_type = PCANTP_ISOTP_ADDRESSING_PHYSICAL;
// Add request mapping
res = CANTP_AddMapping_2016(transmitter_handle, &mapping_ISO);
if (!CANTP_StatusIsOk_2016(result, PCANTP_STATUS_OK,false))
{
//printf("Failed to add request mapping. Error");
MessagePopup( "Message free error","error");
}
result = CANTP_AddFiltering_2016(PCANTP_HANDLE_USBBUS1, 0x715, 0x725, true, PCANTP_CAN_MSGTYPE_STANDARD);
res = CANTP_MsgDataInit_2016(&tx_msgI, 0x715, mapping_ISO.can_msgtype, 3, NULL, &mapping_ISO.netaddrinfo);
tx_msgI.msgdata.isotp->data[0] = 0x22;
tx_msgI.msgdata.isotp->data[1] = 0xF1;
tx_msgI.msgdata.isotp->data[2] = 0x95;
// Write "42" message
res = CANTP_Write_2016(transmitter_handle, &tx_msgI);
res = CANTP_MsgDataFree_2016(&tx_msgI);