コード例 #1
0
    private static string UID  = "XYZ";    // Change to your UID

    // Callback function for touch state
    static void TouchStateCB(BrickletMultiTouch sender, int touchState)
    {
        string str = "";

        if ((touchState & (1 << 12)) == (1 << 12))
        {
            str += "In proximity, ";
        }

        if ((touchState & 0xfff) == 0)
        {
            str += "No electrodes touched" + System.Environment.NewLine;
        }
        else
        {
            str += "Electrodes ";
            for (int i = 0; i < 12; i++)
            {
                if ((touchState & (1 << i)) == (1 << i))
                {
                    str += i + " ";
                }
            }
            str += "touched" + System.Environment.NewLine;
        }

        System.Console.WriteLine(str);
    }
コード例 #2
0
    public MultiTouchInput(IPConnection ipcon, BlockingQueue <char> keyQueue)
    {
        this.keyQueue = keyQueue;

        if (Config.UID_MULTI_TOUCH_BRICKLET == null)
        {
            System.Console.WriteLine("Not Configured: Multi Touch");
            return;
        }

        multiTouch = new BrickletMultiTouch(Config.UID_MULTI_TOUCH_BRICKLET, ipcon);

        try
        {
            multiTouch.GetElectrodeSensitivity();
            System.Console.WriteLine("Found: Multi Touch ({0})",
                                     Config.UID_MULTI_TOUCH_BRICKLET);
        }
        catch (TinkerforgeException)
        {
            System.Console.WriteLine("Not Found: Multi Touch ({0})",
                                     Config.UID_MULTI_TOUCH_BRICKLET);
            return;
        }

        multiTouch.SetElectrodeSensitivity(100);
        multiTouch.TouchState += TouchStateCB;

        touchTimer = new Timer(delegate(object state) { TouchTick(); }, null, 100, 100);
    }
コード例 #3
0
ファイル: Component.cs プロジェクト: dntichy/IOT
        public Component()
        {
            client = new HttpClient();
            // Create connection object
            _ipConnection = new IPConnection();

            // Create device objects
            _dualButtonBricklet  = new BrickletDualButton(DualButtonUID, _ipConnection);
            _lcdBricklet         = new BrickletLCD20x4(DisplayUID, _ipConnection);
            _temperatureBricklet = new BrickletTemperature(TemperatureUID, _ipConnection);
            _humidityBricklet    = new BrickletHumidity(HumidityUID, _ipConnection);
            _linearPoti          = new BrickletLinearPoti(LinearPotiUID, _ipConnection);
            _rgbButton           = new BrickletRGBLEDButton(RGBButtonUID, _ipConnection);
            _rotaryPoti          = new BrickletRotaryPoti(RotaryPotiUID, _ipConnection);
            _segmentDisplay      = new BrickletSegmentDisplay4x7(SegmentUID, _ipConnection);
            _motionDetector      = new BrickletMotionDetectorV2(motionDetectorUID, _ipConnection);
            _multiTouch          = new BrickletMultiTouch(multiTouchUID, _ipConnection);

            //register listeners
            _dualButtonBricklet.StateChangedCallback += DualButtonStateChanged;

            //register callback
            _linearPoti.PositionCallback                += PositionCb;
            _rotaryPoti.PositionCallback                += PositionRCB;
            _motionDetector.MotionDetectedCallback      += MotionDetectedCB;
            _motionDetector.DetectionCycleEndedCallback += DetectionCycleEndedCB;
            _multiTouch.TouchStateCallback              += TouchStateCB;
        }
コード例 #4
0
    private static string UID = "XYZ"; // Change XYZ to the UID of your Multi Touch Bricklet

    #endregion Fields

    #region Methods

    static void Main()
    {
        IPConnection ipcon = new IPConnection(); // Create IP connection
        BrickletMultiTouch mt = new BrickletMultiTouch(UID, ipcon); // Create device object

        ipcon.Connect(HOST, PORT); // Connect to brickd
        // Don't use device before ipcon is connected

        // Get current touch state
        int state = mt.GetTouchState();
        string str = "";

        if((state & (1 << 12)) == (1 << 12)) {
            str += "In proximity, ";
        }

        if((state & 0xfff) == 0) {
            str += "No electrodes touched";
        } else {
            str += "Electrodes ";
            for(int i = 0; i < 12; i++) {
                if((state & (1 << i)) == (1 << i)) {
                    str += i + " ";
                }
            }
            str += "touched";
        }

        Console.WriteLine(str);

        Console.WriteLine("Press enter to exit");
        Console.ReadLine();
        ipcon.Disconnect();
    }
コード例 #5
0
    private void TouchStateCB(BrickletMultiTouch sender, int touchState)
    {
        int changedState = currentState ^ touchState;

        currentState = touchState;

        StateToQueue(changedState & currentState);
    }
コード例 #6
0
    private static string UID = "XYZ"; // Change XYZ to the UID of your Multi Touch Bricklet

    #endregion Fields

    #region Methods

    static void Main()
    {
        IPConnection ipcon = new IPConnection(); // Create IP connection
        BrickletMultiTouch mt = new BrickletMultiTouch(UID, ipcon); // Create device object

        ipcon.Connect(HOST, PORT); // Connect to brickd
        // Don't use device before ipcon is connected

        // Register touch state callback to function TouchStateCB
        mt.TouchState += TouchStateCB;

        Console.WriteLine("Press enter to exit");
        Console.ReadLine();
        ipcon.Disconnect();
    }
コード例 #7
0
    static void Main()
    {
        IPConnection       ipcon = new IPConnection();                 // Create IP connection
        BrickletMultiTouch mt    = new BrickletMultiTouch(UID, ipcon); // Create device object

        ipcon.Connect(HOST, PORT);                                     // Connect to brickd
        // Don't use device before ipcon is connected

        // Register touchState callback to function TouchStateCB
        mt.TouchState += TouchStateCB;

        System.Console.WriteLine("Press enter to exit");
        System.Console.ReadLine();
        ipcon.Disconnect();
    }
コード例 #8
0
    private static string UID  = "XYZ";    // Change to your UID

    static void Main()
    {
        IPConnection       ipcon = new IPConnection();                 // Create IP connection
        BrickletMultiTouch mt    = new BrickletMultiTouch(UID, ipcon); // Create device object

        ipcon.Connect(HOST, PORT);                                     // Connect to brickd
        // Don't use device before ipcon is connected

        // Get current touch state
        int touchState = mt.GetTouchState();

        string str = "";

        if ((touchState & (1 << 12)) == (1 << 12))
        {
            str += "In proximity, ";
        }

        if ((touchState & 0xfff) == 0)
        {
            str += "No electrodes touched" + System.Environment.NewLine;
        }
        else
        {
            str += "Electrodes ";
            for (int i = 0; i < 12; i++)
            {
                if ((touchState & (1 << i)) == (1 << i))
                {
                    str += i + " ";
                }
            }
            str += "touched" + System.Environment.NewLine;
        }

        System.Console.WriteLine(str);

        System.Console.WriteLine("Press enter to exit");
        System.Console.ReadLine();
        ipcon.Disconnect();
    }
コード例 #9
0
    // Callback function for touch state callback
    static void TouchStateCB(BrickletMultiTouch sender, int state)
    {
        string str = "";

        if((state & (1 << 12)) == (1 << 12)) {
            str += "In proximity, ";
        }

        if((state & 0xfff) == 0) {
            str += "No electrodes touched";
        } else {
            str += "Electrodes ";
            for(int i = 0; i < 12; i++) {
                if((state & (1 << i)) == (1 << i)) {
                    str += i + " ";
                }
            }
            str += "touched";
        }

        Console.WriteLine(str);
    }
コード例 #10
0
ファイル: KeyPress.cs プロジェクト: Tinkerforge/blinkenlights
    private void TouchStateCB(BrickletMultiTouch sender, int touchState)
    {
        int changedState = currentState ^ touchState;

        currentState = touchState;

        StateToQueue(changedState & currentState);
    }
コード例 #11
0
ファイル: KeyPress.cs プロジェクト: Tinkerforge/blinkenlights
    public MultiTouchInput(IPConnection ipcon, BlockingQueue<char> keyQueue)
    {
        this.keyQueue = keyQueue;

        if (Config.UID_MULTI_TOUCH_BRICKLET == null)
        {
            System.Console.WriteLine("Not Configured: Multi Touch");
            return;
        }

        multiTouch = new BrickletMultiTouch(Config.UID_MULTI_TOUCH_BRICKLET, ipcon);

        try
        {
            multiTouch.GetElectrodeSensitivity();
            System.Console.WriteLine("Found: Multi Touch ({0})",
                                     Config.UID_MULTI_TOUCH_BRICKLET);
        }
        catch (TinkerforgeException)
        {
            System.Console.WriteLine("Not Found: Multi Touch ({0})",
                                     Config.UID_MULTI_TOUCH_BRICKLET);
            return;
        }

        multiTouch.SetElectrodeSensitivity(100);
        multiTouch.TouchState += TouchStateCB;

        touchTimer = new Timer(delegate(object state) { TouchTick(); }, null, 100, 100);
    }
コード例 #12
0
ファイル: Component.cs プロジェクト: dntichy/IOT
        //multi touch
        public void TouchStateCB(BrickletMultiTouch sender, int state)
        {
            Console.WriteLine(_multiTouch.GetTouchState());
            int    key = 0;
            string str = "";

            if ((state & (1 << 12)) == (1 << 12))
            {
                str += "In proximity, ";
            }

            if ((state & 0xfff) == 0)
            {
                str += "No electrodes touched";
            }
            else
            {
                str += "Electrodes ";
                for (int i = 0; i < 12; i++)
                {
                    if ((state & (1 << i)) == (1 << i))
                    {
                        str += i + " ";
                        key  = i;
                    }
                }

                switch (key)
                {
                case 0:
                    while (_multiTouch.GetTouchState() == 4097)
                    {
                        SendKeys.SendWait("{DOWN}");
                    }

                    break;

                case 1:
                    while (_multiTouch.GetTouchState() == 4098)
                    {
                        SendKeys.SendWait("{LEFT}");
                    }

                    break;

                case 2:
                    while (_multiTouch.GetTouchState() == 4100)
                    {
                        SendKeys.SendWait("{RIGHT}");
                    }

                    break;

                case 3:
                    while (_multiTouch.GetTouchState() == 4104)
                    {
                        SendKeys.SendWait("{UP}");
                    }

                    break;

                case 6:
                    while (_multiTouch.GetTouchState() == 4160)
                    {
                        SendKeys.SendWait("{X}");
                    }

                    break;

                case 7:
                    while (_multiTouch.GetTouchState() == 4224)
                    {
                        SendKeys.SendWait("{Z}");
                    }

                    break;

                default:
                    break;
                }


                str += "touched";
            }

            Console.WriteLine(str);
        }