Ejemplo n.º 1
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void ConnectEvents(wclWeDoIo Device)
        {
            switch (Device.DeviceType)
            {
            case wclWeDoIoDeviceType.iodCurrentSensor:
                (Device as wclWeDoCurrentSensor).OnCurrentChanged += FmMain_OnCurrentChanged;
                break;

            case wclWeDoIoDeviceType.iodVoltageSensor:
                (Device as wclWeDoVoltageSensor).OnVoltageChanged += FmMain_OnVoltageChanged;
                break;

            case wclWeDoIoDeviceType.iodRgb:
                wclWeDoRgbLight Rgb = (Device as wclWeDoRgbLight);
                Rgb.OnColorChanged += FmMain_OnColorChanged;
                Rgb.OnModeChanged  += FmMain_OnModeChanged;
                break;

            case wclWeDoIoDeviceType.iodMotionSensor:
                wclWeDoMotionSensor Motion = (Device as wclWeDoMotionSensor);
                Motion.OnCountChanged    += FmMain_OnCountChanged;
                Motion.OnDistanceChanged += FmMain_OnDistanceChanged;
                Motion.OnModeChanged     += FmMain_OnMotionModeChanged;
                break;

            case wclWeDoIoDeviceType.iodTiltSensor:
                wclWeDoTiltSensor Tilt = (Device as wclWeDoTiltSensor);
                Tilt.OnModeChanged      += Tilt_OnModeChanged;
                Tilt.OnDirectionChanged += Tilt_OnDirectionChanged;
                Tilt.OnCrashChanged     += Tilt_OnCrashChanged;
                Tilt.OnAngleChanged     += Tilt_OnAngleChanged;
                break;
            }
        }
Ejemplo n.º 2
0
 private void FHub_OnDeviceDetached(Object Sender, wclWeDoIo Device)
 {
     if (Device.DeviceType == wclWeDoIoDeviceType.iodTiltSensor && FTilt != null && Device.ConnectionId == FTilt.ConnectionId)
     {
         FTilt = null;
         EnableControl(false);
     }
 }
Ejemplo n.º 3
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void Tilt_OnModeChanged(object sender, EventArgs e)
        {
            wclWeDoHub        Hub    = GetHub();
            wclWeDoTiltSensor Sensor = (sender as wclWeDoTiltSensor);

            if (Hub != null && Hub.Address == Sensor.Hub.Address)
            {
                UpdateTiltMode(Sensor);
            }
        }
Ejemplo n.º 4
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void ResetTilt(Byte Port)
        {
            wclWeDoTiltSensor Tilt = GetTiltSensor(Port);

            if (Tilt != null)
            {
                Int32 Res = Tilt.Reset();
                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Reset failed; 0x" + Res.ToString("X8"));
                }
            }
        }
Ejemplo n.º 5
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void UpdateTiltMode(wclWeDoTiltSensor Sensor)
        {
            switch (Sensor.Mode)
            {
            case wclWeDoTiltSensorMode.tmAngle:
                if (Sensor.PortId == 0)
                {
                    cbTiltMode1.SelectedIndex = 0;
                }
                else
                {
                    cbTiltMode2.SelectedIndex = 0;
                }
                break;

            case wclWeDoTiltSensorMode.tmTilt:
                if (Sensor.PortId == 0)
                {
                    cbTiltMode1.SelectedIndex = 1;
                }
                else
                {
                    cbTiltMode2.SelectedIndex = 1;
                }
                break;

            case wclWeDoTiltSensorMode.tmCrash:
                if (Sensor.PortId == 0)
                {
                    cbTiltMode1.SelectedIndex = 2;
                }
                else
                {
                    cbTiltMode2.SelectedIndex = 2;
                }
                break;

            default:
                if (Sensor.PortId == 0)
                {
                    cbTiltMode1.SelectedIndex = -1;
                }
                else
                {
                    cbTiltMode2.SelectedIndex = -1;
                }
                break;
            }
        }
Ejemplo n.º 6
0
 private void FHub_OnDeviceAttached(Object Sender, wclWeDoIo Device)
 {
     if (FTilt == null)
     {
         if (Device.DeviceType == wclWeDoIoDeviceType.iodTiltSensor)
         {
             FTilt = (wclWeDoTiltSensor)Device;
             FTilt.OnAngleChanged     += FTilt_OnAngleChanged;
             FTilt.OnCrashChanged     += FTilt_OnCrashChanged;
             FTilt.OnDirectionChanged += FTilt_OnDirectionChanged;
             FTilt.OnModeChanged      += FTilt_OnModeChanged;
             EnableControl(true);
         }
     }
 }
Ejemplo n.º 7
0
Archivo: main.cs Proyecto: leuher/WeDo
 private void UpdateTilt(wclWeDoTiltSensor Sensor)
 {
     if (Sensor.PortId == 0)
     {
         UpdateDeviceInfo(laTiltVersion1, laTiltDeviceType1, laTiltConnectionId1, Sensor);
     }
     else
     {
         UpdateDeviceInfo(laTiltVersion2, laTiltDeviceType2, laTiltConnectionId2, Sensor);
     }
     UpdateTiltMode(Sensor);
     UpdateDirection(Sensor);
     UpdateCrash(Sensor);
     UpdateAngle(Sensor);
 }
Ejemplo n.º 8
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void ChangeTiltMode(Byte Port)
        {
            wclWeDoTiltSensor Tilt = GetTiltSensor(Port);

            if (Tilt != null)
            {
                wclWeDoTiltSensorMode Mode;
                Int32 Index;
                if (Port == 0)
                {
                    Index = cbTiltMode1.SelectedIndex;
                }
                else
                {
                    Index = cbTiltMode2.SelectedIndex;
                }
                switch (Index)
                {
                case 0:
                    Mode = wclWeDoTiltSensorMode.tmAngle;
                    break;

                case 1:
                    Mode = wclWeDoTiltSensorMode.tmTilt;
                    break;

                case 2:
                    Mode = wclWeDoTiltSensorMode.tmCrash;
                    break;

                default:
                    Mode = wclWeDoTiltSensorMode.tmUnknown;
                    break;
                }
                if (Mode == wclWeDoTiltSensorMode.tmUnknown)
                {
                    MessageBox.Show("Invalid mode.");
                }
                else
                {
                    Int32 Res = Tilt.SetMode(Mode);
                    if (Res != wclErrors.WCL_E_SUCCESS)
                    {
                        MessageBox.Show("Mode change failed: 0x" + Res.ToString("X8"));
                    }
                }
            }
        }
Ejemplo n.º 9
0
        private void FmMain_Load(Object Sender, EventArgs e)
        {
            cbMode.SelectedIndex = 0;

            FManager = new wclBluetoothManager();

            FWatcher             = new wclWeDoWatcher();
            FWatcher.OnHubFound += FWatcher_OnHubFound;

            FHub                   = new wclWeDoHub();
            FHub.OnConnected      += FHub_OnConnected;
            FHub.OnDisconnected   += FHub_OnDisconnected;
            FHub.OnDeviceAttached += FHub_OnDeviceAttached;
            FHub.OnDeviceDetached += FHub_OnDeviceDetached;

            FTilt = null;
        }
Ejemplo n.º 10
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void UpdateCrash(wclWeDoTiltSensor Sensor)
        {
            wclWeDoTiltSensorCrash Crash = Sensor.Crash;

            if (Sensor.PortId == 0)
            {
                laX1.Text         = Crash.X.ToString();
                laY1.Text         = Crash.Y.ToString();
                laZ1.Text         = Crash.Z.ToString();
                laDirection1.Text = "Unknown";
            }
            else
            {
                laX2.Text         = Crash.X.ToString();
                laY2.Text         = Crash.Y.ToString();
                laZ2.Text         = Crash.Z.ToString();
                laDirection2.Text = "Unknown";
            }
        }
Ejemplo n.º 11
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void UpdateAngle(wclWeDoTiltSensor Sensor)
        {
            wclWeDoTiltSensorAngle Angle = Sensor.Angle;

            if (Sensor.PortId == 0)
            {
                laX1.Text         = Angle.X.ToString();
                laY1.Text         = Angle.Y.ToString();
                laZ1.Text         = "0";
                laDirection1.Text = "Unknown";
            }
            else
            {
                laX2.Text         = Angle.X.ToString();
                laY2.Text         = Angle.Y.ToString();
                laZ2.Text         = "0";
                laDirection2.Text = "Unknown";
            }
        }
Ejemplo n.º 12
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void UpdateDirection(wclWeDoTiltSensor Sensor)
        {
            if (Sensor.PortId == 0)
            {
                switch (Sensor.Direction)
                {
                case wclWeDoTiltSensorDirection.tdBackward:
                    laDirection1.Text = "Backward";
                    break;

                case wclWeDoTiltSensorDirection.tdForward:
                    laDirection1.Text = "Forward";
                    break;

                case wclWeDoTiltSensorDirection.tdLeft:
                    laDirection1.Text = "Left";
                    break;

                case wclWeDoTiltSensorDirection.tdNeutral:
                    laDirection1.Text = "Neutral";
                    break;

                case wclWeDoTiltSensorDirection.tdRight:
                    laDirection1.Text = "Right";
                    break;

                default:
                    laDirection1.Text = "Unknown";
                    break;
                }
                laX1.Text = "0";
                laY1.Text = "0";
                laZ1.Text = "0";
            }
            else
            {
                switch (Sensor.Direction)
                {
                case wclWeDoTiltSensorDirection.tdBackward:
                    laDirection2.Text = "Backward";
                    break;

                case wclWeDoTiltSensorDirection.tdForward:
                    laDirection2.Text = "Forward";
                    break;

                case wclWeDoTiltSensorDirection.tdLeft:
                    laDirection2.Text = "Left";
                    break;

                case wclWeDoTiltSensorDirection.tdNeutral:
                    laDirection2.Text = "Neutral";
                    break;

                case wclWeDoTiltSensorDirection.tdRight:
                    laDirection2.Text = "Right";
                    break;

                default:
                    laDirection2.Text = "Unknown";
                    break;
                }
                laX2.Text = "0";
                laY2.Text = "0";
                laZ2.Text = "0";
            }
        }
Ejemplo n.º 13
0
Archivo: main.cs Proyecto: leuher/WeDo
        private void UpdateTabs()
        {
            wclWeDoHub Hub = GetHub();

            if (Hub == null)
            {
                RemoveTabs();
            }
            else
            {
                AddPage(tsHubInfo);
                UpdateHubInfo(Hub);

                wclWeDoCurrentSensor Current = FRobot.GetCurrentSensor(Hub);
                if (Current != null && Current.Attached)
                {
                    AddPage(tsCurrent);
                    UpdateCurrent(Current);
                }

                wclWeDoVoltageSensor Voltage = FRobot.GetVoltageSensor(Hub);
                if (Voltage != null && Voltage.Attached)
                {
                    AddPage(tsVoltage);
                    UpdateVoltage(Voltage);
                }

                wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);
                if (Rgb != null && Rgb.Attached)
                {
                    AddPage(tsRgb);
                    UpdateRgb(Rgb);
                }

                wclWeDoPiezo Piezo = FRobot.GetPiezoDevice(Hub);
                if (Piezo != null && Piezo.Attached)
                {
                    AddPage(tsPiezo);
                    UpdatePiezo(Piezo);
                }

                wclWeDoMotionSensor Motion = GetMotionSensor(0);
                if (Motion != null && Motion.Attached)
                {
                    AddPage(tsMotion1);
                    UpdateMotion(Motion);
                }

                Motion = GetMotionSensor(1);
                if (Motion != null && Motion.Attached)
                {
                    AddPage(tsMotion2);
                    UpdateMotion(Motion);
                }

                wclWeDoTiltSensor Tilt = GetTiltSensor(0);
                if (Tilt != null && Tilt.Attached)
                {
                    AddPage(tsTilt1);
                    UpdateTilt(Tilt);
                }

                Tilt = GetTiltSensor(1);
                if (Tilt != null && Tilt.Attached)
                {
                    AddPage(tsTilt2);
                    UpdateTilt(Tilt);
                }

                wclWeDoMotor Motor = GetMotor(0);
                if (Motor != null && Motor.Attached)
                {
                    AddPage(tsMotor1);
                    UpdateMotor(Motor);
                }

                Motor = GetMotor(1);
                if (Motor != null && Motor.Attached)
                {
                    AddPage(tsMotor2);
                    UpdateMotor(Motor);
                }
            }
        }