Ejemplo n.º 1
0
 /// <summary><see cref="TorXakisConnector.InputReceived"/></summary>
 private void Connector_InputReceived(TorXakisAction action)
 {
     if (action.Type == ActionType.Input && action.Channel == TorXakisModel.InputChannel)
     {
         ModelAction input = ModelAction.Deserialize(action.Data);
         HandleModelInput(input);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Sends the given <see cref="ModelAction"/> output.
        /// </summary>
        public void SendModelOutput(ModelAction modelOutput)
        {
            lock (locker)
            {
                // Pre-filter incompatible types.
                if (modelOutput is null)
                {
                    throw new ArgumentNullException(nameof(modelOutput));
                }
                if (!ModelOutputs.Contains(modelOutput.GetType()))
                {
                    return;
                }

                Log.Debug(this, nameof(SendModelOutput) + ": " + modelOutput);
                string         serialized = modelOutput.Serialize();
                TorXakisAction output     = TorXakisAction.FromOutput(TorXakisModel.OutputChannel, serialized);
                Connector.SendOutput(output);
            }
        }