In lonscanner I can see a device sends a message of ackd service type to another deivce.
I would expect the acknowledgement to come back and be seen as the next messge from the receiver but it is not. The receiver device sends another message out of ack'd serivce type and receives its acknowledgment back before sending the acknowledgment that I was expecting with the result that there is a delay in receving the first expected acknowledgment. I can see in lonscanner the P attribute being shown for this message. What does this mean?
The following commentry lists the numbered message in lonscanner
I can see message number x965 is a an ackd message from the PC to the device. There are no retries set so the Alternate path bit is set.
However the next messsage x966 seems to be a completely separate transaction initiated from the device, again of ackd service type but using a priority slot. Then in message x968 the acknowledgement from message x965 appears. The message x966 is not the acknowledegment from update x965 as it is a different message altogether. We use the term transaction to indicate types of messages. Lonscanner matches the same messages in the same transaction with the same colour. Messages of the same transaction have the same transaction ID. You will need to enable the Tx ID column in lonscanner to see the numbers which vary from 0 to 15.
The reason why you do not have the outgoing Ack'd message followed by the Acknowledgement (in your case) is that message x966 uses priority and therefore when the device does have this message to send it puts the outgoing message out onto the network ahead of any other messages, including acknowledgements, which are just another message as far as the sender goes. After the priority message is sent the other messages such as the ack back again can be sent.
Since you are using explicitly addressed explicit messages the service type and whether to use a priority slot are hard coded at the device level i.e. this is not configurable except by changing the application codes.