public override List <Signal> Process(List <Signal> e) { List <Signal> filteredSignal = new List <Signal>(); //do some parameter process //according to the input channels that is selected, call the actual function and process each signal. var groupbyPMU = e.GroupBy(x => x.PMUName).ToDictionary(y => y.Key, y => y.ToList()); foreach (var gr in groupbyPMU) { if (InputSignals.Contains(gr.Key)) { for (int i = 0; i < gr.Value.Count(); i++) { if (i == 0) { Filters.PMUflagFilt(gr.Value[i]); } else { gr.Value[i].Flags = new List <bool>(gr.Value[0].Flags); } filteredSignal.Add(gr.Value[i]); } } } return(filteredSignal); }
protected override void mapBindings() { base.mapBindings(); _uiSignals = injectionBinder.BindCrossContextSingletonSafely <UISignals>(); _gameSignals = injectionBinder.BindCrossContextSingletonSafely <GameSignals>(); _inputSignals = injectionBinder.BindCrossContextSingletonSafely <InputSignals>(); _srSignals = injectionBinder.BindCrossContextSingletonSafely <SRSignals>(); //Injection Bindings injectionBinder.Bind <IPoolModel>().To <PoolModel>().CrossContext().ToSingleton(); injectionBinder.Bind <IGameModel>().To <GameModel>().CrossContext().ToSingleton(); injectionBinder.Bind <ILevelModel>().To <LevelModel>().CrossContext().ToSingleton(); injectionBinder.Bind <IPlayerModel>().To <PlayerModel>().CrossContext().ToSingleton(); injectionBinder.Bind <IInputModel>().To <InputModel>().CrossContext().ToSingleton(); injectionBinder.Bind <ProjectSROptions>().ToSingleton().CrossContext(); //Mediation Bindings mediationBinder.BindView <PlayerView>().ToMediator <PlayerMediator>(); mediationBinder.BindView <EnemyView>().ToMediator <EnemyMediator>(); mediationBinder.BindView <BulletView>().ToMediator <BulletMediator>(); mediationBinder.BindView <InputView>().ToMediator <InputMediator>(); mediationBinder.BindView <CameraView>().ToMediator <CameraMediator>(); mediationBinder.BindView <LevelManager>().ToMediator <LevelMediator>(); //Command Bindings //In-Game commandBinder.Bind(_gameSignals.onDequeuePoolObject).To <OnDequeuePoolObjectCommand>(); commandBinder.Bind(_gameSignals.onEnqueuePooledObject).To <OnEnqueuePooledObjectCommand>(); //Level Behaviour commandBinder.Bind(_gameSignals.onLevelInitialize).InSequence() .To <OnLoadCurrentLevelCommand>() .To <OnNavMeshSceneBakeCommand>() .To <OnGetInputDataCommand>() .To <OnGetPlayerDataCommand>() .To <OnGetEnemyDataCommand>() .To <OnSetCinemachineTargetCommand>() .To <OnStartCountdownCommand>(); commandBinder.Bind(_gameSignals.onLevelStart).InSequence() .To <OnActivateNavMeshAgentsCommand>() .To <OnActivatePlayerMovementCommand>() .To <OnActivateTouchCommand>(); commandBinder.Bind(_gameSignals.onBulletHit).To <OnBulletHitCommand>(); commandBinder.Bind(_gameSignals.onActivateLevelEndPanel).To <OnActivateLevelEndPanelCommand>(); //Game Initalizer commandBinder.Bind(_gameSignals.onGameInitialize).InSequence() .To <OnSRDebuggerInitializerFixCommand>() .To <OnPoolingInitializer>() .To <OnSROptionsInjectionCommand>() .To <OnLevelInitializerCommand>(); }
public override List <Signal> Process(List <Signal> e) { List <Signal> filteredSignal = new List <Signal>(); //do some parameter process //according to the input channels that is selected, call the actual function and process each signal. foreach (var signal in e) { var name = signal.PMUName + "_" + signal.SignalName; if (InputSignals.Contains(name)) { Filters.DropOutMissingFilt(signal); filteredSignal.Add(signal); } } return(filteredSignal); }
private void InitWeightsRandomValues(int inputCountNeuron) { var rand = new Random(); for (int i = 0; i < inputCountNeuron; i++) { if (NeuronType == NeuronType.Input) { Weights.Add(1); } else { Weights.Add((float)rand.NextDouble()); } InputSignals.Add(0); } }
public override List <Signal> Process(List <Signal> e) { List <Signal> filteredSignal = new List <Signal>(); //do some parameter process //according to the input channels that is selected, call the actual function and process each signal. foreach (var signal in e) { var type = signal.TypeAbbreviation; if (type.Length == 1 && type == "F") { var name = signal.PMUName + "_" + signal.SignalName; if (InputSignals.Contains(name)) { Filters.WrappingFailureDQFilt(signal, AngleThresh); filteredSignal.Add(signal); } } } return(filteredSignal); }
//Сравнивает два типа данных без учета ParentParam public bool Equals(CalcType type) { if (ClassType != type.ClassType) { return(false); } if (IndexType != type.IndexType) { return(false); } if (ClassType == ClassType.Single) { if (DataType != type.DataType) { return(false); } if (Text != null && type.Text == null) { return(false); } if (Text == null && type.Text != null) { return(false); } bool e = true; foreach (var sig in type.InputSignals.Dic) { e &= InputSignals.Get(sig.Key, DataType.Error) == sig.Value; } foreach (var sig in InputSignals.Dic) { e &= type.InputSignals.Get(sig.Key, DataType.Error) == sig.Value; } return(e); } return(true); }
public virtual void OnPointerEnter(PointerEventData eventData) { InputSignals.DoUiEnter(); }
public virtual void OnEndDrag(PointerEventData eventData) { InputSignals.DoUiDragEnd(); }
public virtual void OnBeginDrag(PointerEventData eventData) { InputSignals.DoUiDragBegin(); }
public override List <Signal> Process(List <Signal> e) { List <Signal> filteredSignal = new List <Signal>(); //do some parameter process //according to the input channels that is selected, call the actual function and process each signal. var groupbyPMU = e.GroupBy(x => x.TypeAbbreviation).ToDictionary(y => y.Key.Length < 3 ? y.Key : y.Key.Substring(0, 2), y => y.ToList()); List <Signal> vms = null; if (groupbyPMU.ContainsKey("VM")) { vms = groupbyPMU["VM"]; foreach (var signal in vms) { var name = signal.PMUName + "_" + signal.SignalName; if (InputSignals.Contains(name)) { Filters.VoltPhasorFilt(signal, "VM", VoltMax, VoltMin, NomVoltage); filteredSignal.Add(signal); } } } if (groupbyPMU.ContainsKey("VP")) { var vps = groupbyPMU["VP"]; foreach (var signal in vps) { var name = signal.PMUName + "_" + signal.SignalName; if (InputSignals.Contains(name)) { Filters.VoltPhasorFilt(signal, "VP", VoltMax, VoltMin, NomVoltage); filteredSignal.Add(signal); } } } if (groupbyPMU.ContainsKey("VA")) { if (vms != null) { var vas = groupbyPMU["VA"]; //var vpsNames = vps.Select(x => x.SignalName.Substring(0, x.SignalName.LastIndexOf('.'))); foreach (var signal in vas) { var name = signal.PMUName + "_" + signal.SignalName; if (InputSignals.Contains(name)) { var vpFound = false; foreach (var vm in vms) { if (signal.SignalName.Substring(0, signal.SignalName.LastIndexOf('.')) == vm.SignalName.Substring(0, vm.SignalName.LastIndexOf('.'))) { signal.Flags = new List <bool>(vm.Flags); vpFound = true; break; } } //how to find the corresponding magnitude? if (vpFound) { filteredSignal.Add(signal); } else { throw new Exception("Cannot pass voltage angle signal: " + signal.SignalName + " through VoltPhasorFilt as corresponding voltage magnitude signal was not found."); } } } } else { throw new Exception("Cannot pass voltage angle signal through VoltPhasorFilt as corresponding voltage magnitude signal was not found."); } } //foreach (var signal in e) //{ // var type = signal.TypeAbbreviation; // if (type.Length > 1) // { // var tp = type.Substring(0, 2); // var name = signal.PMUName + "_" + signal.SignalName; // if (InputSignals.Contains(name)) // { // if (tp == "VM" || tp == "VP") // { // Filters.VoltPhasorFilt(signal, tp, VoltMax, VoltMin, NomVoltage); // filteredSignal.Add(signal); // } // else if (tp == "VA") // { // } // } // } //} return(filteredSignal); }
public void Calculate() { OutputSignal.Value = Propagate(InputSignals.Select(x => x.Value.Value).ToArray()); }
public void Run() { long pointer = 0; while (pointer <= ProgramCode.Length) { var opCodestring = ProgramCode[pointer].ToString("D5"); var instruction = opCodestring.Substring(opCodestring.Length - 2); long value1; long value2; long value3; long parameter1; long parameter2; //Console.WriteLine(string.Join(",", ProgramCode)); switch (instruction) { case "01": value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; value3 = ProgramCode[pointer + 3]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; ProgramCode[value3] = parameter1 + parameter2; pointer += 4; break; case "02": value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; value3 = ProgramCode[pointer + 3]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; ProgramCode[value3] = parameter1 * parameter2;; pointer += 4; break; case "03": if (InputSignals.Any()) { value1 = ProgramCode[pointer + 1]; ProgramCode[value1] = InputSignals.Dequeue(); pointer += 2; } else { return; } break; case "04": value1 = ProgramCode[pointer + 1]; Outputs.Add(ProgramCode[value1]); pointer += 2; break; case "05": //jump-if-true: if the first parameter is non-zero, it sets the instruction pointer to the value from the second parameter. Otherwise, it does nothing. value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; if (parameter1 != 0) { pointer = parameter2; } else { pointer += 3; } break; case "06": //jump-if-false: if the first parameter is zero, it sets the instruction pointer to the value from the second parameter. Otherwise, it does nothing. value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; if (parameter1 == 0) { pointer = parameter2; } else { pointer += 3; } break; case "07": //less than: if the first parameter is less than the second parameter, it stores 1 in the position given by the third parameter. Otherwise, it stores 0. value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; value3 = ProgramCode[pointer + 3]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; if (parameter1 < parameter2) { ProgramCode[value3] = 1; } else { ProgramCode[value3] = 0; } pointer += 4; break; case "08": //equals: if the first parameter is equal to the second parameter, it stores 1 in the position given by the third parameter. Otherwise, it stores 0. value1 = ProgramCode[pointer + 1]; value2 = ProgramCode[pointer + 2]; value3 = ProgramCode[pointer + 3]; parameter1 = opCodestring.Substring(opCodestring.Length - 3, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value1] : value1; parameter2 = opCodestring.Substring(opCodestring.Length - 4, 1) == Convert.ToInt32(IntCodeMode.Position).ToString() ? ProgramCode[value2] : value2; if (parameter1 == parameter2) { ProgramCode[value3] = 1; } else { ProgramCode[value3] = 0; } pointer += 4; break; case "99": State = ProgramState.Stopped; return; } } }