A free API for the communication with control devices according to UDS (ISO 14229-1)
-
CarrocciaGiulia
- Posts: 2
- Joined: Mon 9. May 2016, 17:10
Post
by CarrocciaGiulia » Fri 10. Jun 2016, 14:41
Hi,
I'm trying to send a ReadDataByIdentifier request with RDI 0x1006, can data message as below:
03 22 10 06(hex)
but the CAN output message is :
03 22 90 06(hex)
why the Record Data Identifier ID is 0x
9006 instead of 0x
1006
My code below:
Code: Select all
request.NETADDRINFO.SA = (byte)TPUDSAddress.PUDS_ISO_15765_4_ADDR_TEST_EQUIPMENT;
request.NETADDRINFO.TA = (byte)TPUDSAddress.PUDS_ISO_15765_4_ADDR_ECU_NDP;
request.NETADDRINFO.TA_TYPE = TPUDSAddressingType.PUDS_ADDRESSING_PHYSICAL;
request.NETADDRINFO.RA = 0x00;
request.NETADDRINFO.PROTOCOL = TPUDSProtocol.PUDS_PROTOCOL_ISO_15765_2_29B;
ushort[] buffer = new ushort[1];
buffer[0] = (ushort)0x1006;
result = UDSApi.SvcReadDataByIdentifier(UDSApi.PUDS_USBBUS1, ref request, buffer, (ushort)buffer.Length);
-
F.Vergnaud
- Software Development

- Posts: 305
- Joined: Mon 9. Sep 2013, 12:21
Post
by F.Vergnaud » Fri 10. Jun 2016, 15:32
Hello CarrocciaGiulia,
Well it should not... Are you using the latest version of UDS API (v1.2.1) ?
Here is your tested code:
Code: Select all
TPUDSMsg request = default(TPUDSMsg);
TPUDSStatus result;
request.NETADDRINFO.SA = (byte)TPUDSAddress.PUDS_ISO_15765_4_ADDR_TEST_EQUIPMENT;
request.NETADDRINFO.TA = (byte)TPUDSAddress.PUDS_ISO_15765_4_ADDR_ECU_1;
request.NETADDRINFO.TA_TYPE = TPUDSAddressingType.PUDS_ADDRESSING_PHYSICAL;
request.NETADDRINFO.RA = 0x00;
request.NETADDRINFO.PROTOCOL = TPUDSProtocol.PUDS_PROTOCOL_ISO_15765_2_29B;
ushort[] buffer = new ushort[1];
buffer[0] = (ushort)0x1006;
result = UDSApi.SvcReadDataByIdentifier(UDSApi.PUDS_USBBUS1, ref request, buffer, (ushort)buffer.Length);
[...]
And the trace of received frame (with 0x1006 as data):
Code: Select all
ID (hex)
| Data Length
| | Data Bytes (hex) ...
| | |
----+--- + -+ -- -- -- -- -- -- --
18DA01F1 8 03 22 10 06 55 55 55 55
Best regards,
Fabrice