protected async override Task Initialize(ISocket parentSocket) { this.analog = new ADS7830(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(ADS7830.GetAddress(false, false)))); this.gpio = new CY8C9560A(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(CY8C9560A.GetAddress(false, false, false, false, false, true, false))), null); this.map = this.CreatePinMap(); Socket socket; for (var i = 0; i < 8; i++) { socket = this.CreateSocket(i + 1); socket.AddSupportedTypes(SocketType.Y); if (i < 2) { socket.AddSupportedTypes(SocketType.A); } else if (i > 2) { socket.AddSupportedTypes(SocketType.P); } socket.DigitalIOCreator = (indirectedSocket, indirectedPin) => Task.FromResult<DigitalIO>(new IndirectedDigitalIO(this.GetPin(indirectedSocket, indirectedPin), this.gpio)); socket.AnalogIOCreator = (indirectedSocket, indirectedPin) => Task.FromResult<AnalogIO>(new IndirectedAnalogIO(this.GetChannel(indirectedSocket, indirectedPin), this.GetPin(indirectedSocket, indirectedPin), this.analog, this.gpio)); socket.PwmOutputCreator = (indirectedSocket, indirectedPin) => Task.FromResult<PwmOutput>(new IndirectedPwmOutput(this.GetPin(indirectedSocket, indirectedPin), this.gpio)); } }
public IndirectedAnalogIO(int channel, ADS7830 analog) { this.channel = channel; this.analog = analog; }
protected async override Task Initialize() { this.gpioMap = FEZCream.CreateGpioMap(); this.analogMap = FEZCream.CreateAnalogMap(); this.pwmMap = FEZCream.CreatePwmMap(); this.analogSharedMap = FEZCream.CreateAnalogSharedMap(); this.pwmSharedMap = FEZCream.CreatePwmSharedMap(); this.analog = new ADS7830(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(ADS7830.GetAddress(false, false)))); this.pwm = new PCA9685(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9685.GetAddress(true, true, true, true, true, true)))); this.gpios = new PCA9535[2]; this.gpios[0] = new PCA9535(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, true, false))), await NativeInterfaces.DigitalIO.CreateInterfaceAsync(22)); this.gpios[1] = new PCA9535(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, false, true))), await NativeInterfaces.DigitalIO.CreateInterfaceAsync(26)); for (var i = 2; i <= 7; i++) { this.gpios[0].SetDriveMode(i, GpioPinDriveMode.Output); this.gpios[0].Write(i, true); } Socket socket; socket = this.CreateSocket(1); socket.AddSupportedTypes(SocketType.I); socket.SetNativePin(SocketPinNumber.Three, 18); socket.NativeI2cDeviceId = "I2C1"; socket.DigitalIOCreator = this.DigitalIOCreator; socket = this.CreateSocket(2); socket.AddSupportedTypes(SocketType.U); socket.NativeSerialDeviceId = "COM1"; socket.DigitalIOCreator = this.DigitalIOCreator; socket = this.CreateSocket(3); socket.AddSupportedTypes(SocketType.S, SocketType.X); socket.SetNativePin(SocketPinNumber.Three, 24); socket.SetNativePin(SocketPinNumber.Four, 25); socket.SetNativePin(SocketPinNumber.Five, 13); socket.NativeSpiDeviceId = "SPI0"; socket.NativeSpiChipSelectPin = 0; socket = this.CreateSocket(4); socket.AddSupportedTypes(SocketType.Y); socket.SetNativePin(SocketPinNumber.Three, 6); socket.DigitalIOCreator = this.DigitalIOCreator; socket = this.CreateSocket(5); socket.AddSupportedTypes(SocketType.A); socket.SetNativePin(SocketPinNumber.Three, 12); socket.DigitalIOCreator = this.DigitalIOCreator; socket.AnalogIOCreator = this.AnalogIOCreator; socket = this.CreateSocket(6); socket.AddSupportedTypes(SocketType.A); socket.SetNativePin(SocketPinNumber.Three, 16); socket.DigitalIOCreator = this.DigitalIOCreator; socket.AnalogIOCreator = this.AnalogIOCreator; socket = this.CreateSocket(7); socket.AddSupportedTypes(SocketType.P, SocketType.Y); socket.SetNativePin(SocketPinNumber.Three, 5); socket.DigitalIOCreator = this.DigitalIOCreator; socket.PwmOutputCreator = this.PwmOutputCreator; socket = this.CreateSocket(8); socket.AddSupportedTypes(SocketType.P, SocketType.Y); socket.SetNativePin(SocketPinNumber.Three, 27); socket.DigitalIOCreator = this.DigitalIOCreator; socket.PwmOutputCreator = this.PwmOutputCreator; socket = this.CreateSocket(9); socket.AddSupportedTypes(SocketType.I); socket.SetNativePin(SocketPinNumber.Three, 23); socket.NativeI2cDeviceId = "I2C1"; socket.DigitalIOCreator = this.DigitalIOCreator; }
public IndirectedAnalogIO(byte channel, CY8C9560A.Pin pin, ADS7830 ads, CY8C9560A cy8) { this.ads = ads; this.channel = channel; this.cy8 = cy8; this.cy8.SetInput(pin); }