private static int ChannelNumber(OutputChannels outputChannel)
        {
            var lastCharOfChannelName = outputChannel.ToString().Substring(outputChannel.ToString().Length - 1, 1);

            int.TryParse(lastCharOfChannelName, out var channelNumber);
            return(channelNumber > 0 ? channelNumber : 8);
        }
Example #2
0
        public void SetDigitalOutputChannelValue(OutputChannels outputChannel, bool value)
        {
            switch (outputChannel)
            {
            case OutputChannels.DIG_OUT_1:
                SendCommand(CommandSubaddress.DIG_OUT_1, (byte)(value ? 1:0));
                break;

            case OutputChannels.DIG_OUT_2:
                SendCommand(CommandSubaddress.DIG_OUT_2, (byte)(value ? 1 : 0));
                break;

            case OutputChannels.DIG_OUT_3:
                SendCommand(CommandSubaddress.DIG_OUT_3, (byte)(value ? 1 : 0));
                break;

            case OutputChannels.DIG_OUT_4:
                SendCommand(CommandSubaddress.DIG_OUT_4, (byte)(value ? 1 : 0));
                break;

            case OutputChannels.DIG_OUT_5:
                SendCommand(CommandSubaddress.DIG_OUT_5, (byte)(value ? 1 : 0));
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(outputChannel));
            }
        }
Example #3
0
        public override void CreateChannels()
        {
            for (var i = 0; i < StandardInputChannelsCount; i++)
            {
                if (InputChannels.ContainsKey(i))
                {
                    continue;
                }

                var channel = new FyyingInputChannel(i);
                channel.Parent = this;
                //channel.ValueChanged += (obj, args) => { OnChannelValueChanged(args); };

                InputChannels.Add(i, channel);
            }

            for (var i = 0; i < StandardOutputChannelsCount; i++)
            {
                if (OutputChannels.ContainsKey(i))
                {
                    continue;
                }

                var channel = new FyyingOutputChannel(i);
                channel.Parent = this;
                //channel.ValueChanged += (obj, args) => { OnChannelValueChanged(args); };

                OutputChannels.Add(i, channel);
            }
        }
 /**
  *
  */
 public override bool put_next_sample(OutputChannels channels, SynthesisFilter filter1, SynthesisFilter filter2)
 {
     if ((allocation != 0) && (channels != OutputChannels.Right))
     {
         float scaled_sample = (sample * factor + offset) * scalefactor;
         filter1.input_sample(scaled_sample, subbandnumber);
     }
     return(true);
 }
 public void create(Bitstream stream0, Header header0,
                    SynthesisFilter filtera, SynthesisFilter filterb,
                    Obuffer buffer0, OutputChannels which_ch0)
 {
     stream         = stream0;
     header         = header0;
     filter1        = filtera;
     filter2        = filterb;
     buffer         = buffer0;
     which_channels = which_ch0;
 }
Example #6
0
        public string EncodeParameter()
        {
            string res = string.Empty;

            res += InWidth.ToString() + " ";
            res += InHeight.ToString() + " ";
            res += InputChannels.ToString() + " ";
            res += OutWidth.ToString() + " ";
            res += OutHeight.ToString() + " ";
            res += OutputChannels.ToString() + " ";
            EncodeParameterCore(ref res);
            return(res);
        }
        private bool OutputChannelInitialValue(OutputChannels outputChannel)
        {
            switch (outputChannel)
            {
            case OutputChannels.DIG_OUT_1:
                return(_deviceConfig?.OutputChannelsConfig?.DIG_OUT_1?.InitialValue ?? false);

            case OutputChannels.DIG_OUT_2:
                return(_deviceConfig?.OutputChannelsConfig?.DIG_OUT_2?.InitialValue ?? false);

            case OutputChannels.DIG_OUT_3:
                return(_deviceConfig?.OutputChannelsConfig?.DIG_OUT_3?.InitialValue ?? false);
            }
            return(false);
        }
 /**
  *
  */
 public override bool put_next_sample(OutputChannels channels, SynthesisFilter filter1, SynthesisFilter filter2)
 {
     base.put_next_sample(channels, filter1, filter2);
     if ((channel2_allocation != 0) && (channels != OutputChannels.Left))
     {
         float sample2 = (channel2_sample * channel2_factor + channel2_offset) *
                         channel2_scalefactor;
         if (channels == OutputChannels.Both)
         {
             filter2.input_sample(sample2, subbandnumber);
         }
         else
         {
             filter1.input_sample(sample2, subbandnumber);
         }
     }
     return(true);
 }
Example #9
0
        public ScDs3Device(int deviceNum, RootHub rootHub)
        {
            this.rootHub    = rootHub;
            this.deviceNum  = deviceNum;
            this.DeviceName = "Dualshock 3 controller " + deviceNum + 1;
            this.StatusIcon = Properties.Resources._128.ToImageSource();

            InputChannels.Add(deviceClass.Circle);
            InputChannels.Add(deviceClass.Cross);
            InputChannels.Add(deviceClass.Square);
            InputChannels.Add(deviceClass.Triangle);

            InputChannels.Add(deviceClass.vCircle);
            InputChannels.Add(deviceClass.vCross);
            InputChannels.Add(deviceClass.vSquare);
            InputChannels.Add(deviceClass.vTriangle);

            InputChannels.Add(deviceClass.LSx);
            InputChannels.Add(deviceClass.LSy);
            InputChannels.Add(deviceClass.RSx);
            InputChannels.Add(deviceClass.RSy);

            InputChannels.Add(deviceClass.L1);
            InputChannels.Add(deviceClass.L2);
            InputChannels.Add(deviceClass.L3);
            InputChannels.Add(deviceClass.R1);
            InputChannels.Add(deviceClass.R2);
            InputChannels.Add(deviceClass.R3);

            InputChannels.Add(deviceClass.PS);
            InputChannels.Add(deviceClass.Select);
            InputChannels.Add(deviceClass.Start);

            InputChannels.Add(deviceClass.DUp);
            InputChannels.Add(deviceClass.DDown);
            InputChannels.Add(deviceClass.DLeft);
            InputChannels.Add(deviceClass.DRight);

            OutputChannels.Add(deviceClass.BigRumble);
            OutputChannels.Add(deviceClass.SmallRumble);
            OutputChannels.Add(deviceClass.LightBar);

            (rootHub.Pad[deviceNum] as UsbDevice).Report += RootHub_USBReport;
        }
        public override void RemoveSignal(SignalViewModel signal)
        {
            if (_model is Filter)
            {
                InputChannels.Remove(signal);
                OutputChannels.Remove(signal);
            }
            else
            {//need to remove the output signal depends on type of customization
                switch (Name)
                {
                case "Subtraction":
                    break;

                default:
                    break;
                }
            }
        }
Example #11
0
        public void SetOutputChannelValue(OutputChannels outputChannel, byte value)
        {
            switch (outputChannel)
            {
            case OutputChannels.DIG_PWM_1:
                SendCommand(CommandSubaddress.DIG_PWM_1, value);
                break;

            case OutputChannels.DIG_PWM_2:
                SendCommand(CommandSubaddress.DIG_PWM_2, value);
                break;

            case OutputChannels.DIG_PWM_3:
                SendCommand(CommandSubaddress.DIG_PWM_3, value);
                break;

            case OutputChannels.DIG_PWM_4:
                SendCommand(CommandSubaddress.DIG_PWM_4, value);
                break;

            case OutputChannels.DIG_PWM_5:
                SendCommand(CommandSubaddress.DIG_PWM_5, value);
                break;

            case OutputChannels.DIG_PWM_6:
                SendCommand(CommandSubaddress.DIG_PWM_6, value);
                break;

            case OutputChannels.DIG_PWM_7:
                SendCommand(CommandSubaddress.DIG_PWM_7, value);
                break;

            case OutputChannels.PWM_OUT:
                SendCommand(CommandSubaddress.ONBOARD_PWM, value);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(outputChannel));
            }
        }
        protected override int PickOutputChannel(Infrastructure.ChannelMessageEventArgs e)
        {
            for (int i = 0; i < OutputChannels.Count; i++) //TODO: not nice
            {
                if (!mChannelPressure.ContainsKey(OutputChannels[i].Name))
                {
                    mChannelPressure.Add(OutputChannels[i].Name, 0);
                }
            }
            double minPressure = double.MaxValue;
            string minKey      = "";

            foreach (string key in mChannelPressure.Keys)
            {
                if (mChannelPressure[key] <= minPressure)
                {
                    minPressure = mChannelPressure[key];
                    minKey      = key;
                }
            }

            mChannelPressure[minKey] += (double)e.Message.Headers[HeaderName.PressureValue];
            return(OutputChannels.IndexOf(minKey));
        }
 public override void AddSignal(SignalViewModel signal)
 {
     if (_model is Filter)
     {
         InputChannels.Add(signal); // Override baseclass function
         OutputChannels.Add(signal);
     }
     else
     {
         switch (Name)
         {
         //case "Status Flags":
         //case "Zeros":
         //case "Missing":
         //case "Nominal Voltage":
         //case "Nominal Frequency":
         //    break;
         case "Subtraction":
             // Set parameter
             SetFocusedTextBox(signal);     // if step is a customization, need to make up the output signal from input signal depends on type of customizaion
             break;
         }
     }
 }
 public abstract bool put_next_sample(OutputChannels channels, SynthesisFilter filter1, SynthesisFilter filter2);
Example #15
0
 public void setOutputChannels(OutputChannels _out)
 {
     outputChannels = _out;
 }
Example #16
0
        public SC360_Device_Plugin(int device, SettingGroup settings)
        {
            ControllerID    = device;
            this.settings   = settings;
            this.StatusIcon = new BitmapImage(new Uri(@"pack://application:,,,/SC360;component/Resources/360.ico"));
            this.DeviceName = "Controller " + ControllerID;

            x360device myDevice = new x360device();

            InputChannels.Add(myDevice.LSx);
            InputChannels.Add(myDevice.LSy);
            InputChannels.Add(myDevice.RSx);
            InputChannels.Add(myDevice.RSy);

            InputChannels.Add(myDevice.LS);
            InputChannels.Add(myDevice.RS);

            InputChannels.Add(myDevice.LT);
            InputChannels.Add(myDevice.RT);
            InputChannels.Add(myDevice.LB);
            InputChannels.Add(myDevice.RB);

            InputChannels.Add(myDevice.DUp);
            InputChannels.Add(myDevice.DDown);
            InputChannels.Add(myDevice.DLeft);
            InputChannels.Add(myDevice.DRight);

            InputChannels.Add(myDevice.A);
            InputChannels.Add(myDevice.B);
            InputChannels.Add(myDevice.X);
            InputChannels.Add(myDevice.Y);

            InputChannels.Add(myDevice.Start);
            InputChannels.Add(myDevice.Back);
            InputChannels.Add(myDevice.Guide);

            OutputChannels.Add(myDevice.SmallRumble);
            OutputChannels.Add(myDevice.BigRumble);

            if (SC360Globals.scBus.Open() && SC360Globals.scBus.Start())
            {
                SC360Globals.scBus.Plugin(device);

                if (settings.getSetting("Low latency mode"))
                {
                    byte[] Report = new byte[28];
                    byte[] Rumble = new byte[8];

                    foreach (DeviceChannel channel in InputChannels)
                    {
                        channel.PropertyChanged += (s, e) => {
                            SC360Globals.scBus.Parse(myDevice, Report, ControllerID);
                            if (SC360Globals.scBus.Report(Report, Rumble))
                            {
                                //    if (Rumble[1] == 0x08)
                                //    {
                                //        myDevice.SmallRumble.Value = Rumble[3];
                                //        myDevice.BigRumble.Value = Rumble[4];
                                //    }
                            }
                        };
                    }
                }
                else
                {
                    ReportingThread = new Thread(() => ReportingThreadLoop(myDevice));
                    ReportingThread.Start();
                }
            }
        }