Exemplo n.º 1
0
        internal void FromBytes(BinaryReader _br)
        {
            int id = _br.ReadInt32();

            sds = CookMain.getDishData(id);

            state = (DishState)_br.ReadByte();

            time = _br.ReadSingle();

            bool b = _br.ReadBoolean();

            if (b)
            {
                if (result == null)
                {
                    result = new DishResult();
                }

                result.FromBytes(_br);
            }
            else
            {
                result = null;
            }
        }
Exemplo n.º 2
0
        //call back for button thread.  Waits for jogEvent to be signalled.  If btEnabled is false exists (allows clean shutdown)
        //if not existing figures out which button was clicked from direction var, jogs appropriate axis with command voltage specified in
        //jog Increment setting for 1/2 second.
        private void buttonThreadHandler()
        {
            while (btEnabled)
            {
                jogEvent.WaitOne();
                if (!btEnabled)
                {
                    return;
                }

                double curvel = this.settings.jogIncrement;
                double dirMul = 1.0;
                if (this.direction == buttonDir.South || this.direction == buttonDir.East)
                {
                    dirMul = -1.0;
                }
                state = DishState.Moving;
                updateStatus();
                if (this.direction == buttonDir.South || this.direction == buttonDir.North)
                {
                    this.setEl(curvel * dirMul);
                    Thread.Sleep(500);
                    this.setEl(0.0);
                }
                else
                {
                    this.setAz(curvel * dirMul);
                    Thread.Sleep(500);
                    this.setAz(0.0);
                }
                state = DishState.Stopped;
                updateStatus();
                jogEvent.Reset();
            }
        }
Exemplo n.º 3
0
 private void Stop()
 {
     azPid.Disable();
     elPid.Disable();
     this.setAz(0.0);
     this.setEl(0.0);
     this.state = DishState.Stopped;
     bUpdating  = false;
 }
Exemplo n.º 4
0
 public void Go()
 {
     azPid.Enable();
     elPid.Enable();
     if (!trackCelestial && !trackMoon)
     {
         this.state = DishState.Moving;
     }
     else
     {
         this.state = DishState.Tracking;
     }
 }
Exemplo n.º 5
0
        public MainForm(Eth32 dev)
        {
            //set up UI control attributes (auto-generated)
            InitializeComponent();

            this.dev = dev;

            //setup for jog button handler thread, triggering event
            jogEvent          = new ManualResetEvent(false);
            this.buttonThread = new Thread(buttonThreadHandler);
            this.buttonThread.Start();

            //try to read config file - open config dialog if not found
            string configFile = Application.StartupPath + "\\dishConfig.xml";

            if (File.Exists(configFile))
            {
                settings      = configFileHandler.readConfig(configFile);
                appConfigured = true;
            }//if config exists
            else
            {
                settings = new configModel();
                Config cfgDialog = new Config(dev, this.settings);
                if (cfgDialog.ShowDialog() == DialogResult.OK)
                {
                    configFileHandler.writeConfig(configFile, cfgDialog.settings);
                    MessageBox.Show("Saved");
                    appConfigured = true;
                }
            }//no config found

            state = DishState.Unknown;

            //set up presets, set up various Motion control objects, logger but only if config exists and is valid.
            if (appConfigured)
            {
                //get presets array
                Presets = settings.getPresetList();
                foreach (presets p in Presets)
                {
                    if (!String.IsNullOrEmpty(p.Text))
                    {
                        presetSelector.Items.Add(p.Text);
                    }
                }
                presetSelector.SelectedIndex = 0;

                RollingLogger.setupRollingLogger(settings.positionFileLog, settings.maxPosLogSizeBytes, settings.maxPosLogFiles);
            }//if config exists
        }
Exemplo n.º 6
0
        private async Task <ActionResult> SetState(Guid id, DishState oldState, DishState newState, CancellationToken ct)
        {
            var dish = await this.db.CookingDishes.FindAsync(id).ConfigureAwait(false);

            if (dish == null)
            {
                return(this.NotFound("Блюдо не найдено!"));
            }

            if (dish.DishState != oldState && oldState != newState)
            {
                return(this.BadRequest(
                           $"Блюдо находится в состоянии {EnumHelper<DishState>.GetDisplayValue(dish.DishState)}, а должен быть {EnumHelper<DishState>.GetDisplayValue(oldState)}"));
            }

            dish.DishState = newState;
            var result = await db.SaveChangesAsync(ct).ConfigureAwait(false);

            return(result > 0
                ? Ok()
                : throw new InvalidOperationException("Не удалось изменить состояние блюда!"));
        }
Exemplo n.º 7
0
        private void SouthPark_Click(object sender, EventArgs e)
        {
            azCommand = settings.azSouthPark;
            elCommand = settings.elSouthPark;
            GeoAngle mAzAngle = GeoAngle.FromDouble(azCommand, true);
            GeoAngle mElAngle = GeoAngle.FromDouble(elCommand);

            this.commandAz.Text = string.Format("{0} : {1}", mAzAngle.Degrees, mAzAngle.Minutes);
            this.commandEl.Text = string.Format("{0} : {1}", mElAngle.Degrees, mElAngle.Minutes);

            RaDec    astro = celestialConversion.CalcualteRaDec(mElAngle.ToDouble(), mAzAngle.ToDouble(), settings.latitude, settings.longitude);
            GeoAngle Dec   = GeoAngle.FromDouble(astro.Dec);
            GeoAngle RA    = GeoAngle.FromDouble(astro.RA, true);

            this.commandRA.Text  = string.Format("{0:D3} : {1:D2}", RA.Degrees, RA.Minutes);
            this.commandDec.Text = string.Format("{0:D2} : {1:D2}", Dec.Degrees, Dec.Minutes);

            this.state = DishState.Parking;;

            azPid.Enable();
            elPid.Enable();
        }