/// <summary>
        /// Initializes a new instance of the <see cref="Pca9685Connection"/> class.
        /// </summary>
        /// <param name="connection">The I2C connection.</param>
        public Pca9685Connection(I2cDeviceConnection connection)
        {
            this.connection = connection;

            log.Info(m => m("Resetting PCA9685"));
            WriteRegister(Register.MODE1, 0x00);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Ssd1306Connection"/> class.
 /// </summary>
 /// <param name="connection">The connection.</param>
 /// <param name="displayWidth">The display displayWidth.</param>
 /// <param name="displayHeight">The display displayHeight.</param>
 public Ssd1306Connection(I2cDeviceConnection connection, int displayWidth = 128, int displayHeight = 64)
 {
     this.connection = connection;
     this.displayWidth = displayWidth;
     this.displayHeight = displayHeight;
     Initialize();
 }
        public AmplifierConnection()
        {
            log.Debug(m => m("Init amplifier connection"));

            // connect volume via i2c
            _i2cDriver = new I2cDriver(ProcessorPin.Pin2, ProcessorPin.Pin3);
            _connection = _i2cDriver.Connect(0x4b);

            // connect shutdown via gpio
            _shutdownPin = ConnectorPin.P1Pin36.Output().Revert();
            _gpioConnection = new GpioConnection(_shutdownPin);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Bmp085I2cConnection"/> class.
 /// </summary>
 /// <param name="connection">The connection.</param>
 public Bmp085I2cConnection(I2cDeviceConnection connection)
 {
     this.connection = connection;
     Initialize();
 }
 /// <summary>
 /// Creates a new instance of the class using the provided I2C Connection.
 /// </summary>
 /// <param name="connection">I2C Connection to the Clock.</param>
 public Ds1307Connection(I2cDeviceConnection connection)
 {
     Connection = connection;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Pcf8563I2cConnection"/> class.
 /// </summary>
 /// <param name="connection">The connection.</param>
 public Pcf8563I2cConnection(I2cDeviceConnection connection)
 {
     this.connection = connection;
 }
예제 #7
0
파일: Display.cs 프로젝트: Equitis/RPiAqua
        public Display()
        {
            driver = new I2cDriver(sdaPin.ToProcessor(), sclPin.ToProcessor());
            //driver.ClockDivider = 400;
            connection = driver.Connect(LCDADRESS);
            //connection.WriteByte();
            this.Write(0x03);
            this.Write(0x03);
            this.Write(0x03);
            this.Write(0x02);

            this.Write(LCD_FUNCTIONSET | LCD_2LINE | LCD_5x8DOTS | LCD_4BITMODE);
            this.Write(LCD_DISPLAYCONTROL | LCD_DISPLAYON);
            this.Write(LCD_CLEARDISPLAY);
            this.Write(LCD_ENTRYMODESET | LCD_ENTRYLEFT);
        }
 /// <summary>
 /// Initializes the connection
 /// </summary>
 /// <param name="addr">I2C address for the matrix.</param>
 private void InitializeConnection(int addr)
 {
     driver = new I2cDriver(Raspberry.IO.GeneralPurpose.ProcessorPin.Pin2, Raspberry.IO.GeneralPurpose.ProcessorPin.Pin3);
     connection = driver.Connect(addr);
 }
 public static Pca9685Connection Create(I2cDeviceConnection connection)
 {
     return new Pca9685Connection(connection);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Pcf8574I2cConnection"/> class.
 /// </summary>
 /// <param name="connection">The connection.</param>
 public Pcf8574I2cConnection(I2cDeviceConnection connection)
 {
     this.connection = connection;
     connection.WriteByte(0);
 }
 public Mcp23017I2cConnection(I2cDeviceConnection connection)
 {
     this.connection = connection;
 }
 public BarometricPressure_BMP180(int deviceAddress, I2cDriver driver)
     : base(false)
 {
     conn = driver.Connect(deviceAddress);
     Initialization();
 }
예제 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Ds1307 Test");
            Console.WriteLine("===========");

            Console.WriteLine("Opening Connection...");

            try
            {
                driver = new I2cDriver(ProcessorPin.Pin02, ProcessorPin.Pin03);
                i2cConnection = driver.Connect(0x68);
                clock = new Ds1307Connection(i2cConnection);
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Unable to open connection.");
                Console.WriteLine(ex);
                Console.WriteLine("Press any key to close.");
                Console.Read();
                Environment.Exit(1);
            }

            Console.WriteLine("Connection open!");

            AskForKey();
        }
예제 #14
0
 public Rtc_PCF8563(int deviceAddress, I2cDriver driver)
 {
     connection = driver.Connect(deviceAddress);
 }
예제 #15
0
        public static void Main()
        {
            Console.Title = "Raspberry-LED Domotica client";
            if (!Helpers.IsLinux)
            {
                Console.WriteLine("Sorry, almost everything in this script can only run on the Raspberry Pi.");
                Console.WriteLine("Press enter to close the script.");
                Console.Read();
                Environment.Exit(0);
            }
            Console.CancelKeyPress += delegate
            {
                Console.WriteLine("Stopping the program");
                HubConnection.Closed -= StartHubConnection;
                HubConnection.Closed += null;
                HubConnection.Stop();
                Console.WriteLine("Stopped SignalR communication");
                for (var i = 0; i == 32;)
                {
                    string str = $"gpio{i}";
                    if (Directory.Exists(Path.Combine("/sys/class/gpio", str)))
                    {
                        driver.Release((ProcessorPin) i);
                    }
                    i++;
                }
                gpio.Close();
                Console.WriteLine("Stopped driver allocating");
                Thread.Sleep(1000);
                Environment.Exit(0);
            };
            // Connection to the signalr hub
            HubConnection = new HubConnection("http://192.168.1.100");
            RaspberryHub = HubConnection.CreateHubProxy("Raspberry");
            // If the server decides to close the connection we need to start it again
            HubConnection.Closed += StartHubConnection;
            // Starts the connection
            StartHubConnection();

            gpio = new GpioConnection();
            driver = new GpioConnectionDriver();
            I2CDriver = new I2cDriver(ConnectorPin.P1Pin3.ToProcessor(), ConnectorPin.P1Pin5.ToProcessor());
            ArduinoConnection = I2CDriver.Connect(0x04);
            var switchButton = ConnectorPin.P1Pin13.Input().Revert().OnStatusChanged(x =>
            {
                Console.WriteLine(x);
                RaspberryHub.Invoke("SendChangedValue", ConnectorPin.P1Pin37, x ? "On" : "Off");
            });
            var doorSensor = ConnectorPin.P1Pin7.Input().PullUp().OnStatusChanged(x =>
            {
                RaspberryHub.Invoke("SendChangedValue", ConnectorPin.P1Pin7, x ? "Open" : "Closed");
            });
            var motionSensor = ConnectorPin.P1Pin13.Input().OnStatusChanged(x =>
            {
                RaspberryHub.Invoke("SendChangedValue", ConnectorPin.P1Pin11, x ? "Detected" : "Not detected");
                Console.WriteLine( DateTime.Now + ":Motion {0}", x ? "Detected" : "Not detected");
            });
            //            gpio.Add(switchButton);
            //            gpio.Add(doorSensor);
            //            gpio.Add(motionSensor);

            RaspberryHub.On<string>("ChangePiLed", pinnumber =>
            {
                int ledid = int.Parse(pinnumber);
                var procpin = ((ConnectorPin) ledid).ToProcessor();

                string str = string.Format("gpio{0}",procpin.ToString().Replace("Pin0","").Replace("Pin",""));
                if (!Directory.Exists(Path.Combine("/sys/class/gpio", str)))
                {
                    Console.WriteLine($"OutputPin {procpin} is not allocated!\nAllocating now.");
                    driver.Allocate(procpin, PinDirection.Output);
                    Console.WriteLine("Pin allocated");
                }
                driver.Write(procpin, !driver.Read(procpin));
                RaspberryHub.Invoke("SendChangedValue", pinnumber, driver.Read(procpin) ? "On" : "Off");
            });

            RaspberryHub.On<string, string>("SetupConfig", (pinnumber, type) =>
            {
                int pin = int.Parse(pinnumber);
                if (pin > 7)
                {
                    Action<bool> onstatusaction =
                        b =>
                        {
                            RaspberryHub.Invoke("SendChangedValue", pin,
                                driver.Read(((ConnectorPin) pin).ToProcessor()) ? "On" : "Off");
                        };
                    string str = string.Format("gpio{0}", ((ConnectorPin)pin).ToProcessor().ToString().Replace("Pin0", "").Replace("Pin", ""));
                    Console.WriteLine(str);
                    if (!Directory.Exists(Path.Combine("/sys/class/gpio", str)))
                    {
                        Console.WriteLine("Adding button");
                        var button = CreatePinConfig.CreateOutputPinConfiguration((ConnectorPin) pin, onstatusaction, "Button");
                        gpio.Add(button);
                    }
                }
            });

            RaspberryHub.On<int, string>("GetPinStatus", (pin, type) =>
            {
                driver.Read(((ConnectorPin) pin).ToProcessor());
                string status = string.Empty;
                if (type.Equals("Button"))
                {
                    status = driver.Read(((ConnectorPin) pin).ToProcessor()) ? "Pressed" : "Not pressed";
                }
                if (type.Equals("LED"))
                {
                    status = driver.Read(((ConnectorPin) pin).ToProcessor()) ? "On" : "Off";
                }
                if (type.Equals("Door sensor"))
                {
                    status = driver.Read(((ConnectorPin)pin).ToProcessor()) ? "Open" : "Closed";
                }

                RaspberryHub.Invoke("SendChangedValue", pin, status);
            });

            ServerWorkThread objThread = new ServerWorkThread();
            SendToArduino(1);
            while (true)
            {
                Thread.Sleep(50);
                ReadFromArduino();
                //objThread.HandleConnection(objThread.mySocket.Accept());
            }
        }