The I2C transmission expects an Acknowledge bit after every byte. This bit is sent by a slave and by a receiver:
A slave sends an Acknowledge bit after the slave address and direction bit to signal that the device with the specified address is present on the I2C bus;
A receiver sends an Acknowledge bit after a data byte to signal that the byte was successfully received and another byte may be sent.
The Acknowledge signal is LOW on the SDA line that remains stable during the HIGH period of the ninth pulse on the SCL line. If the SDA line remains HIGH during this clock pulse, this is defined as Not Acknowledge signal. In this case, the master has the following options:
Generate a STOP (P) condition to abort the transmission;
Generate a repeated START (Sr) condition to start a new transmission.
DLN-1 and DLN-2 adapters provide one more option for the I2C master:
Generate a STOP (P) condition followed by a START (S) condition to start the same transmission from the very beginning.
This option allows to repeat transmission if acknowledgement was not received. By default, transmissions can repeat 10 times. If all these times acknowledgement was not received, the transmission is supposed to fail. If acknowledgement was received, the transmission is successful.
Using the DlnI2cMasterSetMaxReplyCount() function, you can change the maximum number of attempts to transmit data. The DlnI2cMasterGetMaxReplyCount() function allows to check the currently specified number of attempts.