Пример #1
0
        public MotorViewModel(IMotorModel motorModel)
        {
            this.motorModel = motorModel;

            //// initial values
            StepSizes        = MotorDefaults.StepSizes;
            SelectedStepSize = StepSizes[0];

            Directions        = MotorDefaults.Directions;
            SelectedDirection = Directions[0];

            RegisterAddresses       = MotorDefaults.RegisterAddresses;
            SelectedRegisterAddress = RegisterAddresses[0];

            registerWriteValue = "00000000";
            AbsoluteMoveValue  = 0;
            RelativeMoveValue  = 0;

            //// Initial Update
            InitialUpdate();

            //SetConfigurationCommand = new RelayCommand(param => SetConfiguration());
            HomeCommand              = new RelayCommand(param => Home());
            ResetCommand             = new RelayCommand(param => Reset());
            LimpCommand              = new RelayCommand(param => Limp());
            MoveAbsoluteCommand      = new RelayCommand(param => MoveToAbsolutePosition());
            MoveRelativeCommand      = new RelayCommand(param => MoveToRelativePosition());
            InitializeCommand        = new RelayCommand(param => Initialize());
            CycleRelativeCommand     = new RelayCommand(param => Cycle());
            StopCommand              = new RelayCommand(param => Stop());
            SetRegisterValueCommand  = new RelayCommand(param => SetRegister());
            ReadRegisterValueCommand = new RelayCommand(param => ReadRegister());
            RefreshCommand           = new RelayCommand(param => RefreshMotorStatus());
            RefreshPositionCommand   = new RelayCommand(param => RefreshPosition());

            StartUpdateTask();
        }
Пример #2
0
        public EV3Module()
        {
            Get     ["/ev3"] = parameter =>
            {
                EV3.Update();
                return(Response.AsJson(EV3, HttpStatusCode.OK));
            };

            Get     ["ev3/sensor"] = parameter =>
            {
                EV3.Sensors.Update();
                return(Response.AsJson(EV3.Sensors, HttpStatusCode.OK));
            };

            Get     ["ev3/sensor/{index}"] = parameter =>
            {
                ISensorModel s = EV3.Sensors[(string)parameter.index];
                s.Update();
                return(Response.AsJson(s, HttpStatusCode.OK));
            };


            Get     ["ev3/sensor/{index}/nextmode"] = parameter =>
            {
                ISensorModel s = EV3.Sensors[(string)parameter.index];
                s.NextMode();
                return("Selected next mode on sensor " + s.Port);
            };

            Get     ["ev3/sensor/{index}/previousmode"] = parameter =>
            {
                ISensorModel s = EV3.Sensors[(string)parameter.index];
                s.PreviousMode();
                return("Previous next mode on sensor " + s.Port);
            };

            Get     ["ev3/motor"] = parameter =>
            {
                EV3.Motors.Update();
                return(Response.AsJson(EV3.Motors, HttpStatusCode.OK));
            };

            Get     ["ev3/motor/{index}"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.Update();
                return(Response.AsJson(m, HttpStatusCode.OK));
            };

            Get     ["ev3/motor/{index}/setpower/{power}"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.SetPower((sbyte)parameter.power);
                return("Motor " + m.Port + " power set to " + (string)parameter.power);
            };

            Get     ["ev3/motor/{index}/powerprofile/power={power}&rampup={rampup}&constant={constant}&rampdown={rampdown}&brake={brake}"] = parameter =>
            {
                IMotorModel m     = EV3.Motors[(string)parameter.index];
                bool        brake = ((string)parameter.brake).ToBoolean();
                m.SpeedProfile((sbyte)parameter.power, (uint)parameter.rampup, (uint)parameter.constant, (uint)parameter.rampdown, brake);
                return("Motor " + m.Port + " power profile with power " + (string)parameter.power + " and " + ((uint)parameter.rampup + (uint)parameter.constant + (uint)parameter.rampdown) + " steps. Brake set to " + brake);
            };

            Get["ev3/motor/{index}/setspeed/{speed}"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.SetSpeed((sbyte)parameter.speed);
                return("Motor " + m.Port + " speed set to " + (string)parameter.speed);
            };

            Get     ["ev3/motor/{index}/speedprofile/speed={speed}&rampup={rampup}&constant={constant}&rampdown={rampdown}&brake={brake}"] = parameter =>
            {
                IMotorModel m     = EV3.Motors[(string)parameter.index];
                bool        brake = ((string)parameter.brake).ToBoolean();
                m.SpeedProfile((sbyte)parameter.speed, (uint)parameter.rampup, (uint)parameter.constant, (uint)parameter.rampdown, brake);
                return("Motor " + m.Port + " power profile with speed " + (string)parameter.speed + " and " + ((uint)parameter.rampup + (uint)parameter.constant + (uint)parameter.rampdown) + " steps. Brake set to " + brake);
            };

            Get     ["ev3/motor/{index}/break/"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.Break();
                return("Motor " + m.Port + " was set to break");
            };

            Get ["ev3/motor/{index}/off/"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.Off();
                return("Motor " + m.Port + " was set to off ");
            };

            Get ["ev3/motor/{index}/resettacho"] = parameter =>
            {
                IMotorModel m = EV3.Motors[(string)parameter.index];
                m.ResetTacho();
                return("Motor " + m.Port + " reset it's tachometer");
            };
        }