private void Ligar_Click(object sender, EventArgs e) { if (Ligar.Text == "Ligar") { principal.ParaAtualizacao(); int equipamento = ObterUltimoEquipamento(); SelectEquip selecionaEquip = new SelectEquip(this, equipamento); selecionaEquip.ShowDialog(this); } else if (Ligar.Text == "Desligar") { toggleBotaoLigar(false); toggleBotoesNavegacao(false); para_looping_envios = true; Thread.Sleep(2000); Ligar.Text = "Ligar"; Ligar.Enabled = true; CRGCursor.Enabled = false; InfoCRG.Text = "CRG Nº -- (offline)"; infoPorta.Text = "Porta: -- (offline)"; limpaTela(); Configura_LEDs(0xFF); principal.RetomaAtualizacao(); } }
private void Novo_Click(object sender, EventArgs e) { principal.ParaAtualizacao(); NovoCiclo novoCiclo = new NovoCiclo(); novoCiclo.ShowDialog(this); CarregaCiclos(); principal.RetomaAtualizacao(); }
//private void RecebeSecagemOnline(IAsyncResult ar) //{ // //} private void Novo_Click(object sender, EventArgs e) { principal.ParaAtualizacao(); var seleciona = new frmSelecionarMeioComunicacao(); seleciona.ShowDialog(this); if (!seleciona.Sucesso) { goto Fim; } var tipoCom = seleciona.TipoComunicacao; var crg = seleciona.NumCRG; if (string.IsNullOrWhiteSpace(tipoCom)) { goto Fim; } if (tipoCom == "ONLINE") { if (crg <= 0) { MessageBox.Show("Número do CRG inválido!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var func = new funcaoAssincrona(() => SecagensBO.ReceberSecagem(0, crg, ConfiguracaoDAO.retornaPorta())); this.Enabled = false; frmCarregar = new Carregar(); frmCarregar.Show(this); var asyncResult = func.BeginInvoke((ar) => { }, null); while (asyncResult.IsCompleted == false) { Application.DoEvents(); Thread.Sleep(50); } frmCarregar.Invoke(new MethodInvoker(() => frmCarregar.Close())); var listaRetorno = func.EndInvoke(asyncResult); if (listaRetorno == null || listaRetorno.Count == 0) { MessageBox.Show("Não foi possível comunicar com o equipamento!", "Erro de comunicação", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Enabled = true; return; } var secagem = SecagensBO.DescriptografarSecagem(listaRetorno); if (secagem == null) { MessageBox.Show("Não foi possível carregar este ciclo!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Enabled = true; return; } secagem.ciclo.crg = crg; var status = SecagensBO.SalvarSecagem(false, secagem, this); if (status.Cancelado) { this.Enabled = true; return; } if (!status.Sucesso) { var msgs = string.Empty; foreach (var msg in ErrorHandler.GetAllErrors) { msgs += Environment.NewLine + msg.ErrorMessage; } MessageBox.Show( "Não foi possível salvar o ciclo " + secagem.ciclo.nTrat + "!" + Environment.NewLine + Environment.NewLine + "Detalhes: " + msgs, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); ErrorHandler.ClearErrors(); this.Enabled = true; return; } MessageBox.Show( "Ciclo " + secagem.ciclo.nTrat + " " + (status.Salvo ? "salvo" : "atualizado") + " com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information); CarregaCiclos(); Enabled = true; Activate(); } else { var frmPendrive = new frmPendriveList(crg, -1); frmPendrive.ShowDialog(this); var arquivo = frmPendrive.Arquivo; var ntrat = frmPendrive.NTrat; crg = crg == -1 ? frmPendrive.Crg : crg; if (string.IsNullOrWhiteSpace(arquivo) || ntrat == -1 || crg == -1) { return; } var bytes = File.ReadAllBytes(arquivo); var secagem = SecagensBO.DescriptografarSecagem(bytes.ToList(), 1); if (secagem == null) { var msg = "Não foi possível carregar este ciclo!"; if (ErrorHandler.GetLastError != null) { msg += Environment.NewLine + Environment.NewLine + "Detalhes:" + Environment.NewLine + ErrorHandler.GetLastError.ErrorMessage; ErrorHandler.ClearErrors(); } MessageBox.Show(msg, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); goto Fim; } secagem.ciclo.crg = crg; var status = SecagensBO.SalvarSecagem(false, secagem); if (status.Cancelado) { return; } if (status.Sucesso) { MessageBox.Show("Ciclo " + secagem.ciclo.nTrat + " " + (status.Salvo ? "salvo" : "atualizado") + " com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information); goto Fim; } var ultimoErro = ErrorHandler.GetLastError; if (ultimoErro != null) { MessageBox.Show(ultimoErro.ErrorMessage, ultimoErro.Identifier == 0 ? "Erro" : "Informação", MessageBoxButtons.OK, ultimoErro.Identifier == 0 ? MessageBoxIcon.Error : MessageBoxIcon.Information); goto Fim; } } Fim: CarregaCiclos(); principal.RetomaAtualizacao(); }