There are two separate pieces of software that need to be written, one for the remote module and one for the local module.  

The remote module needs to be able to distinguish between three user requests and transmit the appropriate set of signals to the local module.  When one of the three buttons is pressed the remote module needs to acknowledge to the user that one of the buttons has been pressed, by way of an LED. 

The local module needs to be able to receive the set of signals transmitted from the remote module and handle them appropriately.  The software will control the discrete logic connected to its outputs to respond to the remote module requests.