wire slave sender 4 quickies

Hi.
I'm still in the planning stage and I having a senior moment trying to get my head round the wire library. :o
If anyone could help I'd be very grateful. The answers to some questions may make others irrelevant.

My questions are:

  1. If a master reader poll requests 1 byte from a slave sender, does the slave send the newest or oldest byte written to its wire.onRequest(event) buffer, if the buffer was written to multiple times between polls?
  2. Once requested, does the slave send the byte then delete it and move other bytes to the front of the buffer queue or does it delete all unread bytes in the buffer?
  3. if more than 32 bytes are written to the (full) buffer between polls, does the buffer delete the oldest and keep the newest (I hope so) or disregard the newest ( I suspect it does) ?
  4. Can bytes in the buffer be deleted or overwritten between polls as we would write to a variable
    or function without writing to memory/control registers or bit banging?

Thanks

Steve

Background. Please let me know if you see a better way than this :slight_smile:
I'm using 5 slave Pro Minis each driving up to 8 devices which are a combination of steppers, servos and encoder controlled DC motors, in addition to several position detectors and limit switches. One master Pro Mini sends a sequence of around 200 sequential instructions over I2C to the 6 slaves to tell which pro minis to move which motors to particular positions by sending 5 bytes. 0x13,0x00,0x0F,0x42,0x72 would instruct byte motor = 19 to move to long position = 1,000,050 - or whatever. Whenever a motor has received a new instruction, reached its destination, or a limit switch / presence detector has triggered, the slaves write a single byte to their wire.onrequest event buffer where each bit of the byte reports the present status of up to 8 devices connected to it. EG a byte B10000011 could indicate that motor 1 & 2 and were busy moving , the sensor on bit 8 had triggered, and motors 3,4,5,6 & 7 had reached their destination position and are awaiting a new instruction. Only some instructions are dependent on any particular status, so polling is only carried out on a "I now need to know if motor x has arrived before sending motor y to z " basis rather than regular intervals or before and after sending every sequence instruction. The slaves don't know if any particular status is critical or not. It is possible that the status could change several times between master polls.
Thanks for reading