示例#1
0
        private static void SendDeviceInfo(Esp8266WIFI esp8266Client)
        {
            bool   pin1State = _pin1.Read() == GpioPinValue.High ? true : false;
            string value     = "{\"id\":\"E5363BAF-2C1B-4C6C-A92B-41A8DAFFF870\", " +
                               "\"key\":\"E5363BAF-2C1B-4C6C-A92B-41A8DAFFF870\", " +
                               "\"analogs\":[]," +
                               "\"digitals\":" +
                               "[" +
                               "{\"state\": " + pin1State.ToString().ToLower() + "," +
                               "\"number\":" + _pin1.PinNumber.ToString() + ", " +
                               "\"name\":\"Living Room\"}" +
                               "], \"Pwms\":[]}";

            esp8266Client.Write(value);
        }
示例#2
0
        private static void InitializeButtonComponents(GpioController gpioController)
        {
            var leftButton = gpioController.OpenPin(BrainPad.GpioPin.ButtonLeft);

            leftButton.SetDriveMode(GpioPinDriveMode.InputPullUp);
            leftButton.ValueChanged += (s, e) =>
            {
                _frequency = 50;
                _buzzer.StopBuzzing();
            };
            var rightButton = gpioController.OpenPin(BrainPad.GpioPin.ButtonRight);

            rightButton.SetDriveMode(GpioPinDriveMode.InputPullUp);
            rightButton.DebounceTimeout = TimeSpan.FromMilliseconds(100);
            rightButton.ValueChanged   += (s, e) =>
            {
                if (_frequency == 5000)
                {
                    return;
                }
                _frequency += 50;
                _buzzer.StartBuzzing(_frequency);
            };

            var centerButton = gpioController.OpenPin(BrainPad.GpioPin.ButtonDown);

            centerButton.SetDriveMode(GpioPinDriveMode.InputPullUp);
            //centerButton.DebounceTimeout = TimeSpan.FromMilliseconds(100);
            centerButton.ValueChanged += (s, e) =>
            {
                if (e.Edge == GpioPinEdge.RisingEdge)
                {
                    var read = _pin1.Read() == GpioPinValue.High ? true : false;

                    _pin1.Write(read ? GpioPinValue.Low : GpioPinValue.High);

                    read = _pin1.Read() == GpioPinValue.High ? true : false;
                    if (_esp8266Client != null && _esp8266Client.ConnectionState == ConnectionState.Ready)
                    {
                        _esp8266Client?.Write($"UPDATEDIGITAL={_pin1.PinNumber}:{read.ToString()}");
                    }
                }
            };
        }