예제 #1
0
        public float PassThruSetProgrammingVoltage(PinNumber pinNumber, PinVoltage mv)
        {
            uint milliVolts = (uint)mv;

            if (milliVolts < 5000)
            {
                milliVolts = 5000;
            }
            if (milliVolts > 20000 && mv != PinVoltage.VOLTAGE_OFF && mv != PinVoltage.SHORT_TO_GROUND)
            {
                milliVolts = 20000;
            }

            J2534Status = J2534Interface.PassThruSetProgrammingVoltage(DeviceId, pinNumber, milliVolts);
            if (J2534Status != J2534Err.STATUS_NOERROR)
            {
                throw new J2534Exception(J2534Status);
            }

            Thread.Sleep(10);
            int mvActual = 0;

            J2534Status = J2534Interface.ReadProgrammingVoltage(DeviceId, ref mvActual);
            if (J2534Status != J2534Err.STATUS_NOERROR)
            {
                throw new J2534Exception(J2534Status);
            }
            float voltage = ((float)mvActual);

            return(voltage);
        }
예제 #2
0
        /// <inheritdoc />
        public override IObservable <DeviceState> GetAndObserveState()
        {
            return(Observable
                   .Create <bool>(observer =>
            {
                Controller.RegisterCallbackForPinValueChangedEvent(PinNumber, PinEventTypes.Rising | PinEventTypes.Falling, OnPinChanged);
                observer.OnNext((bool)Controller.Read(PinNumber));

                return Disposable.Create(() => Controller.UnregisterCallbackForPinValueChangedEvent(PinNumber, OnPinChanged));

                void OnPinChanged(object sender, PinValueChangedEventArgs pinValueChangedEventArgs)
                {
                    switch (pinValueChangedEventArgs.ChangeType)
                    {
                    case PinEventTypes.Rising:
                        observer.OnNext(true);
                        break;

                    case PinEventTypes.Falling:
                        observer.OnNext(false);
                        break;

                        // Ignore case None:
                    }
                }
            })
                   .Select(isOn => new DeviceState(PinNumber.ToString(), ImmutableDictionary <string, string> .Empty.SetItem("state", isOn ? "on" : "off"), isPersistedState: true)));
        }
예제 #3
0
 /// <inheritdoc />
 public override IObservable <DeviceState> GetAndObserveState()
 => _state
 .DistinctUntilChanged()
 .Select(isOn => new DeviceState(
             PinNumber.ToString(),
             ImmutableDictionary <string, string> .Empty.SetItem("state", isOn ? "on" : "off"),
             isPersistedState: true));
예제 #4
0
 public J2534Err PassThruSetProgrammingVoltage(int deviceId, PinNumber pinNumber, uint voltage)
 {
     if (!IsLoaded)
     {
         return(J2534Err.ERR_DLL_NOT_LOADED);
     }
     return((J2534Err)_wrapper.SetProgrammingVoltage(deviceId, (uint)pinNumber, voltage));
 }
예제 #5
0
        public static J2534Err PassThruSetProgrammingVoltage(int deviceId, PinNumber pinNumber, uint voltage)
        {
            Log.WriteTimestamp("", "PTSetProgrammingVoltage({0}, {1}, {2})", deviceId, pinNumber, voltage);

            var result = Loader.Lib.PassThruSetProgrammingVoltage(deviceId, pinNumber, voltage);

            Log.WriteTimestamp("  ", "{0}: {1}", (int)result, result);

            return(result);
        }
예제 #6
0
 private void ClearBtn_Click(object sender, EventArgs e)
 {
     if (CcNumber.Visible)
     {
         CcNumber.Clear();
     }
     else
     {
         PinNumber.Clear();
     }
 }
예제 #7
0
        public void Write(PinNumber pin, LedState value)
        {
            if (pin > 15)
            {
                throw new ArgumentException(
                          $"The Mcp23017 device can only handle pin number between 0 and 15. Provided PinNumber was {pin}");
            }

            _logger.LogDebug($"Setting pin {pin:x} to {value}");
            _pinValues = SetBit(_pinValues, (ushort)pin, (bool)value.ToPinValue());
            _device.WriteUInt16(Register.GPIO, _pinValues);
        }
예제 #8
0
        void Init()
        {
            reference               = App.UserDatabase.GetUser(0);
            Title.Text             += " " + reference.Username + "!";
            Input                   = new PinNumber(); // get an instance of a pin number
            BackgroundColor         = Constants.BackgroundColor;
            LoginIcon.HeightRequest = Constants.LoginIconHeight;

            digit1.Color = Constants.EmptyBubble;
            digit2.Color = Constants.EmptyBubble;
            digit3.Color = Constants.EmptyBubble;
            digit4.Color = Constants.EmptyBubble;

            //Entry_Username.Completed += (s, e) => Entry_Password.Focus();    keep as a lambda expression for automatically switching from the username down to the password
            //Entry_Password.Completed += (s, e) => SigninProcedure(s, e);
        }
                public string GetBlockCode()
                {
                    string trueval;

                    if (TrueState == StateType.HIGH)
                    {
                        trueval = "HIGH";
                    }
                    else
                    {
                        trueval = "LOW";
                    }
                    string codetemplate = File.ReadAllText("sensor.inf");
                    string code         = codetemplate;

                    code = code.Replace("@description", Description);
                    code = code.Replace("@name", Name);
                    code = code.Replace("@trueval", trueval);
                    code = code.Replace("@pinNumber", PinNumber.ToString());
                    return(code);
                }
예제 #10
0
 private void Four_Click(object sender, EventArgs e)
 {
     if (CcNumber.Visible)
     {
         if (CcNumber.TextLength < 19)
         {
             if (CcNumber.TextLength == 4 || CcNumber.TextLength == 9 || CcNumber.TextLength == 14)
             {
                 CcNumber.AppendText("-4");
             }
             else
             {
                 CcNumber.AppendText("4");
             }
         }
     }
     else
     {
         if (PinNumber.TextLength < 4)
         {
             PinNumber.AppendText("4");
         }
     }
 }
예제 #11
0
 public void InitPin(PinNumber pin)
 {
     _gpio.OpenPin((int)pin, PinMode.Output);
     _gpio.Write((int)pin, PinValue.Low);
 }
예제 #12
0
 public J2534Err SetProgrammingVoltage(int deviceId, PinNumber pinNumber, int voltage)
 {
     return((J2534Err)m_wrapper.SetProgrammingVoltage(deviceId, (int)pinNumber, voltage));
 }
 public void Write(PinNumber pin, LedState value)
 {
     _logger.LogInformation($"Writing '{value.ToPinValue()}' to pin '{pin:x}'");
 }
 public void InitPin(PinNumber pin)
 {
     _logger.LogDebug($"pin {pin} initialized");
 }
예제 #15
0
        public void ImplementsEqualEqualOperator()
        {
            PinNumber a = 123;

            Assert.True(a == 123);
        }
예제 #16
0
 public void Write(PinNumber pin, LedState value)
 {
     _logger.LogDebug($"Writing {value} to pin {pin}");
     _gpio.Write((int)pin, value.ToPinValue());
 }
예제 #17
0
        public void GivenValidInput_CanCreate(ushort pinNumber)
        {
            PinNumber sut = pinNumber;

            Assert.Equal(sut, pinNumber);
        }
예제 #18
0
        public static J2534Err PassThruSetProgrammingVoltage(int deviceId, PinNumber pinNumber, int voltage)
        {
            Log.WriteTimestamp("", "PTSetProgrammingVoltage({0}, {1}, {2})", deviceId, pinNumber, voltage);

            var result = Loader.Lib.PassThruSetProgrammingVoltage(deviceId, pinNumber, voltage);

            Log.WriteTimestamp("  ", "{0}: {1}", (int)result, result);

            return result;
        }
예제 #19
0
파일: J2534.cs 프로젝트: GeorgyPorgy/VMPT
 public J2534Err SetProgrammingVoltage(int deviceId, PinNumber pinNumber, int voltage)
 {
     return (J2534Err)m_wrapper.SetProgrammingVoltage(deviceId, (int)pinNumber, voltage);
 }
예제 #20
0
 private string getPin()
 {
     return(PinNumber.ToString().Length == 4 ? "****" : "This user has yet to set up a PIN numner");
 }
예제 #21
0
 private void CancelBtn_Click(object sender, EventArgs e)
 {
     PinNumber.Clear();
     CcNumber.Clear();
     RequestCcNumber();
 }
예제 #22
0
 void Init()
 {
     BackgroundColor = Constants.BackgroundColor;
     Input           = new PinNumber(); // get an instance of a pin number
 }
예제 #23
0
 public void InitPin(PinNumber pin)
 {
     // all pins are initialized in constructor for this device
 }