Example #1
0
        public IESP32 esp32_init(PinName en, PinName io0, PinName tx, PinName rx,
                                 bool debug, PinName rts, PinName cts, int baudrate)
        {
            if (esp != null)
            {
                return(esp);
            }

            Gpio gpio_en = null;

            if (en != PinName.NC)
            {
                var en_obj = new gpio_t();
                gpio_en = (Gpio)CreateGpio(ref en_obj, en);
                gpio_en.SetDirection(PinDirection.PIN_OUTPUT);
            }

            Gpio gpio_io0 = null;

            if (io0 != PinName.NC)
            {
                var io0_obj = new gpio_t();
                gpio_io0 = (Gpio)CreateGpio(ref io0_obj, io0);
                gpio_io0.SetDirection(PinDirection.PIN_OUTPUT);
            }

            var serial_obj = new serial_t();
            var serial     = (Serial)CreateSerial(ref serial_obj, tx, rx, rts, cts);

            serial.SetBaudRate(baudrate);

            esp = new ESP32Driver(this, gpio_en, gpio_io0, serial, debug);

            return(esp);
        }
Example #2
0
        private IUnitInterface CreateGpio(ref gpio_t obj, PinName pin)
        {
            if (pin == PinName.NC)
            {
                return(null);
            }

            if (!interfaces.TryGetValue(obj.id, out var uif))
            {
                if (pin_if.ContainsKey(pin))
                {
                    throw new ArgumentException();
                }
                uif    = new Gpio(pin);
                obj.id = uif.GetHashCode();
                interfaces.Add(obj.id, uif);

                if (pin == PinName.P4_5)
                {
                    obj.fthandle = fthandle;
                    obj.ftpin    = 3;
                }
            }
            return(uif);
        }
Example #3
0
        public int gpio_read(ref gpio_t obj)
        {
            if (!interfaces.TryGetValue(obj.id, out var uif))
            {
                throw new ArgumentException();
            }

            return(((Gpio)uif).Read());
        }
Example #4
0
        public void gpio_write(ref gpio_t obj, int value)
        {
            if (!interfaces.TryGetValue(obj.id, out var uif))
            {
                throw new ArgumentException();
            }

            ((Gpio)uif).Write(value);
        }
Example #5
0
        public void gpio_dir(ref gpio_t obj, PinDirection direction)
        {
            if (!interfaces.TryGetValue(obj.id, out var uif))
            {
                throw new ArgumentException();
            }

            ((Gpio)uif).SetDirection(direction);
        }
Example #6
0
        public void gpio_mode(ref gpio_t obj, PinMode mode)
        {
            if (!interfaces.TryGetValue(obj.id, out var uif))
            {
                throw new ArgumentException();
            }

            ((Gpio)uif).SetMode(mode);
        }
Example #7
0
        public void gpio_init_out(ref gpio_t obj, PinName pin)
        {
            var uif = CreateGpio(ref obj, pin);

            ((Gpio)uif).SetDirection(PinDirection.PIN_OUTPUT);
        }
Example #8
0
 public void gpio_init(ref gpio_t obj, PinName pin)
 {
     CreateGpio(ref obj, pin);
 }