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; } }
//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(); } }
private void Stop() { azPid.Disable(); elPid.Disable(); this.setAz(0.0); this.setEl(0.0); this.state = DishState.Stopped; bUpdating = false; }
public void Go() { azPid.Enable(); elPid.Enable(); if (!trackCelestial && !trackMoon) { this.state = DishState.Moving; } else { this.state = DishState.Tracking; } }
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 }
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("Не удалось изменить состояние блюда!")); }
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(); }