コード例 #1
0
ファイル: main.cs プロジェクト: 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;
            }
        }
コード例 #2
0
ファイル: main.cs プロジェクト: leuher/WeDo
 private void FHub_OnDeviceDetached(Object Sender, wclWeDoIo Device)
 {
     if (Device.DeviceType == wclWeDoIoDeviceType.iodRgb)
     {
         FRgb = null;
         EnableSetColors(false);
     }
 }
コード例 #3
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void UpdateRgbColors(wclWeDoRgbLight Rgb)
        {
            Color c = Rgb.Color;

            edR.Text = c.R.ToString();
            edG.Text = c.G.ToString();
            edB.Text = c.B.ToString();
        }
コード例 #4
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void UpdateRgb(wclWeDoRgbLight Sensor)
        {
            UpdateDeviceInfo(laRgbVersion, laRgbDeviceType, laRgbConnectionId, Sensor);

            UpdateRgbColors(Sensor);
            UpdateRgbIndex(Sensor);
            UpdateRgbMode(Sensor);
        }
コード例 #5
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void FHub_OnDeviceAttached(Object Sender, wclWeDoIo Device)
        {
            if (Device.DeviceType == wclWeDoIoDeviceType.iodRgb)
            {
                FRgb = (wclWeDoRgbLight)Device;
                FRgb.OnColorChanged += FRgb_OnColorChanged;
                FRgb.OnModeChanged  += FRgb_OnModeChanged;

                EnableSetColors(true);
                EnableColorControls();
            }
        }
コード例 #6
0
ファイル: main.cs プロジェクト: btframework/WeDo
        private void FHub_OnDeviceDetached(object Sender, wclWeDoIo Device)
        {
            if (Device.DeviceType == wclWeDoIoDeviceType.iodColorSensor && FColor != null && Device.ConnectionId == FColor.ConnectionId)
            {
                FColor = null;
                EnableControl(false);
            }

            if (Device.DeviceType == wclWeDoIoDeviceType.iodRgb)
            {
                FRgb = null;
            }
        }
コード例 #7
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void btSetDefault_Click(object sender, EventArgs e)
        {
            wclWeDoHub      Hub = GetHub();
            wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);

            if (Rgb != null)
            {
                Int32 Res = Rgb.SwitchToDefaultColor();
                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Unable to set default color: 0x" + Res.ToString("X8"));
                }
            }
        }
コード例 #8
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void btSetIndex_Click(object sender, EventArgs e)
        {
            wclWeDoHub      Hub = GetHub();
            wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);

            if (Rgb != null)
            {
                Int32 Res = Rgb.SetColorIndex((wclWeDoColor)cbColorIndex.SelectedIndex);
                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Unable to set color index: 0x" + Res.ToString("X8"));
                }
            }
        }
コード例 #9
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void btTurnOff_Click(object sender, EventArgs e)
        {
            wclWeDoHub      Hub = GetHub();
            wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);

            if (Rgb != null)
            {
                Int32 Res = Rgb.SwitchOff();
                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Unable to switch LED off: 0x" + Res.ToString("X8"));
                }
            }
        }
コード例 #10
0
ファイル: main.cs プロジェクト: btframework/WeDo
        private void fmMain_Load(object sender, EventArgs e)
        {
            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;

            FColor = null;
            FRgb   = null;
        }
コード例 #11
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void btSetRgb_Click(object sender, EventArgs e)
        {
            wclWeDoHub      Hub = GetHub();
            wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);

            if (Rgb != null)
            {
                Color c = Color.FromRgb(Convert.ToByte(edR.Text), Convert.ToByte(edG.Text),
                                        Convert.ToByte(edB.Text));
                Int32 Res = Rgb.SetColor(c);
                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Unable to set color: 0x" + Res.ToString("X8"));
                }
            }
        }
コード例 #12
0
ファイル: main.cs プロジェクト: btframework/WeDo
        private void FHub_OnDeviceAttached(object Sender, wclWeDoIo Device)
        {
            if (FColor == null)
            {
                if (Device.DeviceType == wclWeDoIoDeviceType.iodColorSensor)
                {
                    FColor = (wclWeDoColorSensor)Device;
                    FColor.OnColorDetected += FColor_OnColorDetected;
                    EnableControl(true);
                }
            }

            if (Device.DeviceType == wclWeDoIoDeviceType.iodRgb)
            {
                FRgb = (wclWeDoRgbLight)Device;
            }
        }
コード例 #13
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void FmMain_Load(Object Sender, EventArgs e)
        {
            cbColorMode.SelectedIndex = -1;

            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;

            FRgb = null;
        }
コード例 #14
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void UpdateRgbMode(wclWeDoRgbLight Rgb)
        {
            switch (Rgb.Mode)
            {
            case wclWeDoRgbLightMode.lmDiscrete:
                cbColorMode.SelectedIndex = 0;
                break;

            case wclWeDoRgbLightMode.lmAbsolute:
                cbColorMode.SelectedIndex = 1;
                break;

            default:
                cbColorMode.SelectedIndex = -1;
                break;
            }
        }
コード例 #15
0
ファイル: main.cs プロジェクト: leuher/WeDo
        private void btSetMode_Click(object sender, EventArgs e)
        {
            wclWeDoHub      Hub = GetHub();
            wclWeDoRgbLight Rgb = FRobot.GetRgbDevice(Hub);

            if (Rgb != null)
            {
                Boolean RgbEnabled   = (cbColorMode.SelectedIndex == 1);
                Boolean IndexEnabled = (cbColorMode.SelectedIndex == 0);

                Int32 Res = wclErrors.WCL_E_SUCCESS;
                if (RgbEnabled)
                {
                    Res = Rgb.SetMode(wclWeDoRgbLightMode.lmAbsolute);
                }
                else
                {
                    if (IndexEnabled)
                    {
                        Res = Rgb.SetMode(wclWeDoRgbLightMode.lmDiscrete);
                    }
                }

                if (Res != wclErrors.WCL_E_SUCCESS)
                {
                    MessageBox.Show("Unable to change color mode: 0x" + Res.ToString("X8"));
                }
                else
                {
                    if (RgbEnabled)
                    {
                        UpdateRgbColors(Rgb);
                    }
                    else
                    {
                        if (IndexEnabled)
                        {
                            UpdateRgbIndex(Rgb);
                        }
                    }
                }
            }
        }
コード例 #16
0
ファイル: main.cs プロジェクト: leuher/WeDo
 private void UpdateRgbIndex(wclWeDoRgbLight Rgb)
 {
     cbColorIndex.SelectedIndex = (Int32)Rgb.ColorIndex;
 }
コード例 #17
0
ファイル: main.cs プロジェクト: 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);
                }
            }
        }