There's many ways to build these, but most of the ones i have found had pretty strong restrictions. Here's the capabilities of this one:
Per radio network channel:
- 31 receiver chest stations
- arbitrary amount of item types
- arbitrary amount of cannons
Each [item=se-delivery-cannon-chest] is assigned an ID, and a request list, the request list entries get multiplied with a bitmask value calculated from the ID, which means they can be summed together without collisions, and then those values are put on the [item=aai-signal-sender] radio channel, but only if [item=se-delivery-cannon-chest] is empty and the requested items are missing in the storage.
The [item=se-delivery-cannon]s each check if the [item=aai-signal-receiver] has the bit for the configured [item=se-delivery-cannon-chest] ID set to on in the number for that item on the radio channel, and only fires if that is given, which means in practive: When the item is missing, and the [item=se-delivery-cannon] is empty.
This completely prohibits over-sending.
Chest-side setup:
- Configure the [item=se-delivery-cannon-chest] ID in the top right [item=constant-combinator].
- Configure the request list in the top left [item=constant-combinator].
- Ensure the [item=se-delivery-cannon-chest] is connected to the top right EMPTY CHEST CHECKER with a green wire.
- Connect [item=aai-warehouse],[item=se-delivery-cannon-chest], [item=roboport] to the bottom left REQUEST COMPARATOR with a red wire.
- Set [item=aai-signal-sender] to the correct channel.
Cannon-side setup:
- Set the [item=aai-signal-receiver] to the correct channel.
- Connect the [item=medium-electric-pole] with a [item=red-wire] to the [item=aai-signal-receiver].
- Set the [item=se-delivery-cannon] item, destination.
- Set the [item=se-delivery-cannon-chest] ID in the top right [item=constant-combinator].
- Set the item in the right BITMASK COMPARATOR [item=decider-combinator].
- Set the [item=se-delivery-cannon] to ON.
- Set the [item=requester-chest]s to the material.
