Example #1
0
        public void SetLevel(EapiGpioId id, GpioLevelEnum levelEnum)
        {
            GpioCapability gpioCapabilities = GetGpioCapabilities();

            if (!gpioCapabilities.IsOutput(id))
            {
                throw new Exception(id + " is not an output");
            }
            uint bitmask = (uint)(gpioCapabilities.OutputCapabilityMask & (1 << (int)id));

            int newLevelVAlues = (int)ReadGpioRegister();

            if (levelEnum == GpioLevelEnum.EapiGpioHigh)
            {
                newLevelVAlues |= 1 << (int)id;
            }
            else
            {
                newLevelVAlues &= ~(1 << (int)id);
            }

            _logger.Information("SetLevel {0} to {1} =>  bitmask={2}, newLevelVAlues={3}", id, levelEnum, Convert.ToString(bitmask, 2), Convert.ToString(newLevelVAlues, 2));


            uint resultCode = EApiGPIOSetLevel(_eapiIdGpioBank00, bitmask, (uint)(0xffff & newLevelVAlues));

            if (!_eApiStatusCodes.IsSuccess(resultCode))
            {
                throw new Exception("EApiGPIOSetLevel: " + _eApiStatusCodes.GetStatusStringFrom(resultCode));
            }
        }
Example #2
0
        public static Guid ToOnCommandGuid(this EapiGpioId gpio)
        {
            switch (gpio)
            {
            case EapiGpioId.EAPI_ID_GPIO_GPIO00:
                return(new Guid("FBAE9476-2BA0-41A3-BE8D-41A34F7CA6A4"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO01:
                return(new Guid("6E52E734-9FBA-42D1-A8B6-4ACB213B71F5"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO02:
                return(new Guid("25380113-F0DA-4ED8-B88E-5D15429C9A3F"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO03:
                return(new Guid("031B98B9-7239-45CD-9628-5D429F6D3CBD"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO04:
                return(new Guid("2BCA4602-AA2D-4FC4-A364-613125706121"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO05:
                return(new Guid("90D4C5B9-D6CA-458F-A0E4-F7F3C51FBE67"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO06:
                return(new Guid("6E14D1A4-A964-44EF-921B-3016ECAA622F"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO07:
                return(new Guid("E77C0D91-8091-45A8-B516-301914C3F2CD"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO08:
                return(new Guid("BC4F788B-6337-4BBC-AFA1-21AEC3D72FEA"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO09:
                return(new Guid("364E5127-DC15-4510-A3F1-510E18D7FCEA"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO10:
                return(new Guid("B072D87B-0A06-481C-987E-99C6EE94134B"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO11:
                return(new Guid("DC529196-9DE7-4E8C-BB5B-E414DC228CED"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO12:
                return(new Guid("8E70D34A-E1A8-46C7-AE05-9D360293BE5B"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO13:
                return(new Guid("F77636C8-C7E9-464F-95C1-9A95A445142C"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO14:
                return(new Guid("0FB944FD-B00B-4E70-BA49-454037A88E40"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO15:
                return(new Guid("20B972B7-B8F5-42FF-9DFF-2E4917799FD8"));

            default:
                throw new ArgumentOutOfRangeException(nameof(gpio), gpio, null);
            }
        }
Example #3
0
        public static Guid ToGuid(this EapiGpioId gpio)
        {
            switch (gpio)
            {
            case EapiGpioId.EAPI_ID_GPIO_GPIO00:
                return(new Guid("{9acd4b65-765c-4d1f-ae85-a81a0d2cafb8}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO01:
                return(new Guid("{8de0628c-da36-4e51-940d-13dc0419f356}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO02:
                return(new Guid("{31fcc6fc-efad-4971-978e-d045e5d2158f}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO03:
                return(new Guid("{da03dad5-2001-4f36-96ac-331b2c1d9a2f}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO04:
                return(new Guid("{f60ba4ad-6a75-448d-9ea8-868d6517f89c}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO05:
                return(new Guid("{3fc88d2c-5c4f-4ce0-8655-30c2e0ea3572}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO06:
                return(new Guid("{3ca34fae-8680-4114-bbff-fbaf83a7e8c9}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO07:
                return(new Guid("{81264ee6-5a13-4605-a3df-31367ca7905e}"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO08:
                return(new Guid("CE01AE44-4D49-4F47-A9B1-37460BECEF6C"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO09:
                return(new Guid("DF00F017-5C8B-48C4-8658-022565D32F2F"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO10:
                return(new Guid("25660E03-4944-4238-9FAD-EA604E6BF7A4"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO11:
                return(new Guid("F4624D52-D4B7-4997-A09E-9E9F848EB77A"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO12:
                return(new Guid("11FD5AD2-4C74-46D4-AED1-27BC442B846B"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO13:
                return(new Guid("290226FA-271F-48ED-8D38-891612C72BBF"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO14:
                return(new Guid("5A80B7D4-98B5-4CB8-A108-7709BBE080EB"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO15:
                return(new Guid("2FAA7922-09F4-40F7-BAA8-345EE5B727DA"));

            default:
                throw new ArgumentOutOfRangeException(nameof(gpio), gpio, null);
            }
        }
Example #4
0
        public static Guid ToOffCommandGuid(this EapiGpioId gpio)
        {
            switch (gpio)
            {
            case EapiGpioId.EAPI_ID_GPIO_GPIO00:
                return(new Guid("AE951D99-6AD0-4566-85A7-25FF50158725"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO01:
                return(new Guid("873C4B9A-265B-4ACA-945E-CE3B38309B72"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO02:
                return(new Guid("EC8D783C-0A89-41EF-8631-99A10FE06BE4"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO03:
                return(new Guid("306C8D86-7DFD-4BC2-97AA-D7B34F07B15A"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO04:
                return(new Guid("98431863-DFA0-4D29-BFFD-5C6CE70B2ED6"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO05:
                return(new Guid("9AC2E14B-CD5C-4BD3-8B96-B19DA8701F70"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO06:
                return(new Guid("115439F5-85FB-4AE4-BF99-345BB4E8ECEC"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO07:
                return(new Guid("B1B71E71-655A-43DB-AA7A-5C8185E528E1"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO08:
                return(new Guid("BEB8C84C-15DA-427D-8C1B-8DB6FEB5CDC3"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO09:
                return(new Guid("6BAB514F-46FB-4C03-885F-D601BD3966C9"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO10:
                return(new Guid("6C18EF9B-D8CB-4994-B055-9EDB00B7A8DE"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO11:
                return(new Guid("04B398C2-B10D-472E-B075-295F82F06222"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO12:
                return(new Guid("ADCE3E28-2325-4A98-8078-E93699CF694E"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO13:
                return(new Guid("97213627-4291-4582-8BB0-B058ABD21BCC"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO14:
                return(new Guid("F56498F3-FAF9-4622-B7BE-035C624DC025"));

            case EapiGpioId.EAPI_ID_GPIO_GPIO15:
                return(new Guid("B3E28AB3-0CE5-4DC9-A885-67F07121110D"));

            default:
                throw new ArgumentOutOfRangeException(nameof(gpio), gpio, null);
            }
        }
Example #5
0
        private void Test(GpioCapability gpioCap)
        {
            if (gpioCap.IsUnsupported)
            {
                _logger.Warning("GPIO is not supported");
                return;
            }

            _logger.Information(gpioCap.ToString());
            GpioLevel level = _gpioDriver.GetLevel();

            _logger.Information(level.ToString());

            _logger.Information("EapiGpioId Value:" + _gpioDriver.GetLevel().GetLevelOf(EapiGpioId.EAPI_ID_GPIO_GPIO14));

            for (int i = 0; i < 16; i++)
            {
                EapiGpioId pin = (EapiGpioId)i;
                if (gpioCap.IsOutput(pin))
                {
                    _gpioDriver.SetLevel(pin, GpioLevelEnum.EapiGpioHigh);
                }
                Thread.Sleep(200);
            }

            for (int i = 0; i < 16; i++)
            {
                EapiGpioId pin = (EapiGpioId)i;
                if (gpioCap.IsOutput(pin))
                {
                    _gpioDriver.SetLevel(pin, GpioLevelEnum.EapiGpioLow);
                }
                Thread.Sleep(200);
            }

            _logger.Information("EapiGpioId Value:" + _gpioDriver.GetLevel().GetLevelOf(EapiGpioId.EAPI_ID_GPIO_GPIO14));
            _gpioDriver.SetAll(GpioLevelEnum.EapiGpioHigh);
        }
Example #6
0
 public bool IsOutput(EapiGpioId id)
 {
     return(pinIsOutputMap[id]);
 }
Example #7
0
 internal void SetDirection(EapiGpioId id, EapiGpioDirectionEnum directionEnum)
 {
     throw new NotImplementedException("SetDirection");
 }
Example #8
0
 public bool GetLevelOf(EapiGpioId pin)
 {
     return((_levelArray & (1 << (int)pin)) > 0);
 }