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);