예제 #1
0
        private OscChannel selectedChannel; //< Channel to get messages

        public void SelectChannel(OscChannel.Name channelName)
        {
            oscilloscope.trigger.ledSelected.State = false;
            if (selectedChannel != null)
            {
                selectedChannel.ledSelected.State = false;
            }
            selectedChannel = oscilloscope.GetChannel(channelName);
            selectedChannel.ledSelected.State = true;
            updateHelp = true;
        }
예제 #2
0
    // =================================================================================================================
    // Mono behaviour
    // =================================================================================================================

    private void Start()
    {
        oscilloscope.Initialize();

        // -- Setup heart beat synchronization probe input --
        oscHeartBeatProbe            = new OscProbe("HeartBeat");
        oscHeartBeatProbe.readSample = (OscProbe probe) =>
        {
            probe.Log(heartBeat ? 1f : 0f);
        };
        oscHeartBeatProbe.autoGain          = true;
        oscHeartBeatProbe.autoGainDivisions = 2;
        oscHeartBeatProbe.position          = 2;
        oscHeartBeatProbe.Mode         = OscTrigger.TriggerMode.Normal;
        oscHeartBeatProbe.Edge         = OscTrigger.TriggerEdge.Rising;
        oscHeartBeatProbe.triggerLevel = 0.5f;
        oscilloscope.GetChannel(OscChannel.Name.C1).Plug(oscHeartBeatProbe);
        oscilloscope.trigger.SetChannel(OscChannel.Name.C1);

        // -- Setup simple sine wave form probe input --
        oscSinwaveProbe            = new OscProbe("Sinus+1V");
        oscSinwaveProbe.readSample = (OscProbe probe) =>
        {
            probe.Log(Mathf.Sin(Time.time * 3f) + 1f);             // 1V DC
        };
        oscSinwaveProbe.autoGain          = true;
        oscSinwaveProbe.autoGainDivisions = 2;
        oscSinwaveProbe.decoupling        = true;
        oscSinwaveProbe.position          = -2;
        oscSinwaveProbe.renderLabels      = (OscChannel channel) =>
        {
            channel.AddValueLabel("-1", -1f);
            channel.AddValueLabel("0", 0f);
            channel.AddValueLabel(" 1", 1f);
        };
        oscilloscope.GetChannel(OscChannel.Name.C2).Plug(oscSinwaveProbe);

        // -- Setup vector 3 probe input --
        var oscVecProbe = new OscProbe("Vector3");

        oscVecProbe.readSample = (OscProbe probe) =>
        {
            probe.Log(Mathf.Sin((Time.time) * 3f),
                      Mathf.Sin((Time.time + 0.5f) * 3f),
                      Mathf.Sin((Time.time + 1.0f) * 3f));
        };
        oscVecProbe.autoGain          = true;
        oscVecProbe.Gain              = 2f;
        oscVecProbe.autoGainDivisions = 2;
        oscVecProbe.position          = 0;
        oscVecProbe.format            = OscProbe.Format.Vector3;
        oscVecProbe.Mode              = OscTrigger.TriggerMode.Normal;
        oscVecProbe.Edge              = OscTrigger.TriggerEdge.Rising;
        oscVecProbe.triggerLevel      = 0.5f;
        oscilloscope.GetChannel(OscChannel.Name.C3).Plug(oscVecProbe);

        // -- Setup vector 4 probe input --
        var oscLogicProbe = new OscProbe("LogicProbe");

        oscLogicProbe.readSample = (OscProbe probe) =>
        {
            probe.Log((int)Time.time);
        };
        oscLogicProbe.autoGain          = true;
        oscLogicProbe.Gain              = 2f;
        oscLogicProbe.autoGainDivisions = 2;
        oscLogicProbe.position          = -5;
        oscLogicProbe.style             = OscProbe.Style.Logic;
        oscLogicProbe.Mode              = OscTrigger.TriggerMode.Normal;
        oscLogicProbe.Edge              = OscTrigger.TriggerEdge.Rising;
        oscLogicProbe.triggerLevel      = 0.5f;
        oscilloscope.GetChannel(OscChannel.Name.C4).Plug(oscLogicProbe);

        // -- Plug them to scope --
        oscilloscope.trigger.SecondsDivision = 0.5f;

        SetEnabledInternal(true);
    }