private void ApplyOutputMapping(ProcessingModule processingModule, TopicOutputMapping outputMapping) { if (!IsValidIOMapping(processingModule, outputMapping)) { Debug.LogError("ProcessingModuleManager: IO-Mapping for module " + processingModule.Name + "->" + outputMapping.OutputName + " is invalid"); } if (outputMapping.TopicDestinationCase == TopicOutputMapping.TopicDestinationOneofCase.Topic) { processingModule.SetOutputSetter(outputMapping.OutputName, (TopicDataRecord record) => { record.Topic = outputMapping.Topic; topicDataProxy.Publish(record); }); } else if (outputMapping.TopicDestinationCase == TopicOutputMapping.TopicDestinationOneofCase.TopicDemux) { //let demultiplexer = undefined; //if (topicDestination.Id) //{ // demultiplexer = this.deviceManager.getTopicDemux(topicDestination.Id); //} //else //{ // let topicDataBuffer = isLockstep ? this.lockstepTopicData : this.topicData; // demultiplexer = this.deviceManager.createTopicDemuxerBySpecs(topicDestination, topicDataBuffer); //} //processingModule.setOutputSetter(outputMapping.outputName, (value) => { // demultiplexer.push(value); //}); } }
private bool IsValidIOMapping(ProcessingModule processingModule, TopicOutputMapping outputMapping) { return(processingModule.Outputs.Any(output => output.InternalName == outputMapping.OutputName)); }