/// <summary> /// Called in form of event by the Master form when user desires to send data to slave. /// </summary> /// <param name="slaveAddress">Destination address for the data to be delivered to. If equal to 0 - sent to everyone.</param> /// <param name="functionCode">Determines whether user wants to send data to slave or retrieve data from slave. Note that retrieval of data in broadcast is a big no-no.</param> /// <param name="dataToSend">Data to send to slave.</param> public void HandleSendToSlaveEvent(int slaveAddress, FunctionCode functionCode, string dataToSend) { if (functionCode == FunctionCode.RetrieveTextFromSlave && slaveAddress == 0) { MessageBox.Show( "Cannot retrieve data from any slave in broadcast mode. Imagine that avalanche of zeros and ones trying to get through...", "Wrong operation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var messageFrame = new MessageFrame { TargetSlaveAddress = slaveAddress, FunctionCode = functionCode, Data = dataToSend }; switch (functionCode) { case FunctionCode.SendTextFromMaster: SendRequestToSlave(messageFrame); break; case FunctionCode.RetrieveTextFromSlave: MessageFrame responseFrame = _masterService.SendRequest(messageFrame); masterForm.ShowSlaveData(responseFrame.Data); break; } }