private void IndicaEnderecoEmUso(ProgramaBasico _pl, TipoEnderecamentoDispositivo _te) { _pl.endereco.LimpaIndicacaoEmUso(); foreach (LinhaCompleta _lc in _pl.linhas) { _lc.simbolos.AddRange(_lc.saida); foreach (SimboloBasico _sb in _lc.simbolos) { switch (_sb.getCI()) { /// pporque disso aqui case CodigosInterpretaveis.CONTATO_NA: case CodigosInterpretaveis.CONTATO_NF: case CodigosInterpretaveis.BOBINA_SAIDA: case CodigosInterpretaveis.TEMPORIZADOR: case CodigosInterpretaveis.CONTADOR: case CodigosInterpretaveis.RESET: if (_sb.getOperandos(0) != null) { EnderecamentoLadder _el = (EnderecamentoLadder)_sb.getOperandos(0); if (_el.TpEnderecamento == _te) { _el.EmUso = true; } } break; } } _lc.simbolos.RemoveRange(_lc.simbolos.Count - _lc.saida.Count, _lc.saida.Count); } }
public void InsereEnderecoNoSimbolo(ControleLivre _cL, EnderecamentoLadder _end) { if (!_cL.IsDisposed) { _cL.setOperando(0, _end); _cL.Refresh(); } }
public void Add(SimboloBasico _sb) { Add(_sb.getCI()); switch (_sb.getCI()) { case CodigosInterpretaveis.CONTADOR: if (_sb.iNumOperandos > 0) { if (_sb.getOperandos(0) != null) { if (_sb.getOperandos(0).GetType().Name == EnderecamentoLadder.ClassName()) { Add(((EnderecamentoLadder)_sb.getOperandos(0)).Indice); Add(((EnderecamentoLadder)_sb.getOperandos(0)).Contador.Tipo); Add(((EnderecamentoLadder)_sb.getOperandos(0)).Contador.Preset); } } } break; case CodigosInterpretaveis.TEMPORIZADOR: if (_sb.iNumOperandos > 0) { if (_sb.getOperandos(0) != null) { if (_sb.getOperandos(0).GetType().Name == EnderecamentoLadder.ClassName()) { Add(((EnderecamentoLadder)_sb.getOperandos(0)).Indice); Add(((EnderecamentoLadder)_sb.getOperandos(0)).Temporizador.Tipo); Add(((EnderecamentoLadder)_sb.getOperandos(0)).Temporizador.BaseTempo); Add(((EnderecamentoLadder)_sb.getOperandos(0)).Temporizador.Preset); } } } break; default: if (_sb.iNumOperandos > 0) { for (int i = 0; i < _sb.iNumOperandos; i++) { if (_sb.getOperandos(i) != null) { if (_sb.getOperandos(i).GetType().Name == EnderecamentoLadder.ClassName()) { Add((EnderecamentoLadder)_sb.getOperandos(i)); } } } } break; } }
void Endereco_MudouComentario(EnderecamentoLadder sender) { TreeNode _NoEnderecamento = ArvoreProjeto.Nodes["NoProjeto"].Nodes["NoEnderecamento"]; int _pos = 0; switch (sender.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_ENTRADA: _pos = _NoEnderecamento.Nodes["NoEntradas"].Nodes.IndexOfKey(sender.Nome); if (_pos >= 0) { _NoEnderecamento.Nodes["NoEntradas"].Nodes[_pos].Text = sender.Nome + (sender.Apelido == "" ? "" : " - " + sender.Apelido); } break; case TipoEnderecamentoDispositivo.DIGITAL_SAIDA: _pos = _NoEnderecamento.Nodes["NoSaidas"].Nodes.IndexOfKey(sender.Nome); if (_pos >= 0) { _NoEnderecamento.Nodes["NoSaidas"].Nodes[_pos].Text = sender.Nome + (sender.Apelido == "" ? "" : " - " + sender.Apelido); } break; case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA: _pos = _NoEnderecamento.Nodes["NoMemoria"].Nodes.IndexOfKey(sender.Nome); if (_pos >= 0) { _NoEnderecamento.Nodes["NoMemoria"].Nodes[_pos].Text = sender.Nome + (sender.Apelido == "" ? "" : " - " + sender.Apelido); } break; case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_CONTADOR: _pos = _NoEnderecamento.Nodes["NoContadores"].Nodes.IndexOfKey(sender.Nome); if (_pos >= 0) { _NoEnderecamento.Nodes["NoContadores"].Nodes[_pos].Text = sender.Nome + (sender.Apelido == "" ? "" : " - " + sender.Apelido); } break; case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_TEMPORIZADOR: _pos = _NoEnderecamento.Nodes["NoTemporizadores"].Nodes.IndexOfKey(sender.Nome); if (_pos >= 0) { _NoEnderecamento.Nodes["NoTemporizadores"].Nodes[_pos].Text = sender.Nome + (sender.Apelido == "" ? "" : " - " + sender.Apelido); } break; } }
private void Add(EnderecamentoLadder _end) { Add((int)_end.TpEnderecamento); Add((int)_end.Indice); }
/// <summary> /// Procura o endereco de parametro nas listas do objeto /// da classe EnderecamentoPrograma /// </summary> /// <param name="_end">Endereco a ser buscado na lista de enderecos da classe</param> /// <returns>Caso encontre o endereco em uma das listas retorna o /// endereco das listas encontrado. caso contrario retorna null</returns> public EnderecamentoLadder Find(EnderecamentoLadder _end) { return(Find(_end.TpEnderecamento, _end.Indice)); }
/// <summary> /// Valida o operando de acordo com o codigo interpretavel /// </summary> /// <param name="_novoOperando">Caso operando ainda nao atribuido verifica antes</param> /// <returns></returns> private bool ValidaEndereco(int _indice, Object _novoOperando) { EnderecamentoLadder _end = null; EnderecamentoLadder _atualOperando = null; bool _bValido = true; bool _bEndereco = false; if (_novoOperando != null) { if (_novoOperando.GetType().Name == "EnderecamentoLadder") { if (_novoOperando == null) { _end = (EnderecamentoLadder)getOperandos(0); } else { _end = (EnderecamentoLadder)_novoOperando; } } else if (_novoOperando.GetType().Name == "Int32") { } } switch (getCI()) { case CodigosInterpretaveis.NENHUM: case CodigosInterpretaveis.FIM_DA_LINHA: _bValido = false; break; case CodigosInterpretaveis.INICIO_DA_LINHA: if (_novoOperando != null) { if (_novoOperando.GetType().ToString() != "System.Int32") { _bValido = false; } } break; case CodigosInterpretaveis.CONTATO_NA: case CodigosInterpretaveis.CONTATO_NF: _bEndereco = true; if (_end != null) { switch (_end.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA: case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_CONTADOR: case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_TEMPORIZADOR: case TipoEnderecamentoDispositivo.DIGITAL_ENTRADA: case TipoEnderecamentoDispositivo.DIGITAL_SAIDA: _bValido = true; break; default: _bValido = false; break; } } else { _bValido = false; } break; case CodigosInterpretaveis.BOBINA_SAIDA: _bEndereco = true; if (_end != null) { switch (_end.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA: case TipoEnderecamentoDispositivo.DIGITAL_SAIDA: _bValido = true; break; default: _bValido = false; break; } } else { _bValido = false; } break; case CodigosInterpretaveis.TEMPORIZADOR: if (_end != null && _indice == 0) { _bEndereco = true; switch (_end.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_TEMPORIZADOR: _bValido = true; break; default: _bValido = false; break; } } else if (_indice > 0) { switch (_indice) { case 1: break; case 2: break; default: break; } } else { _bValido = false; } break; case CodigosInterpretaveis.CONTADOR: if (_end != null && _indice == 0) { _bEndereco = true; switch (_end.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_CONTADOR: _bValido = true; break; default: _bValido = false; break; } } else if (_indice > 0) { switch (_indice) { case 1: break; case 2: break; default: break; } } else { _bValido = false; } break; case CodigosInterpretaveis.PARALELO_INICIAL: case CodigosInterpretaveis.PARALELO_FINAL: case CodigosInterpretaveis.PARALELO_PROXIMO: _bValido = false; break; case CodigosInterpretaveis.RESET: _bEndereco = true; if (_end != null) { switch (_end.TpEnderecamento) { case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_CONTADOR: case TipoEnderecamentoDispositivo.DIGITAL_MEMORIA_TEMPORIZADOR: _bValido = true; break; default: _bValido = false; break; } } else { _bValido = false; } break; default: _bValido = false; break; } if (_bEndereco) { if (getOperandos(0) != null) { _atualOperando = (EnderecamentoLadder)getOperandos(0); } if (_bValido) { if (_atualOperando != null) { _atualOperando.MudouOperando -= new MudouOperandoEventHandler(Ocorreu_MudouOperando); } _end.MudouOperando += new MudouOperandoEventHandler(Ocorreu_MudouOperando); } else if (_novoOperando == null) { if (_atualOperando != null) { _atualOperando.MudouOperando -= new MudouOperandoEventHandler(Ocorreu_MudouOperando); Operandos[0] = null; } } } return(_bValido); }
void Simbolo_Click(object sender, MouseEventArgs e) { ControleLivre _cL = (ControleLivre)sender; CodigosInterpretaveis _cI = _cL.getCI(); ProjetoLadder _frmPL; _frmPL = frmDiag.linkProjeto; if (e.Button == MouseButtons.Right) { if (_cI != CodigosInterpretaveis.INICIO_DA_LINHA) { frmDiag.menuInsereLinha.Enabled = false; frmDiag.menuToggleBit.Enabled = false; if (_cI == CodigosInterpretaveis.PARALELO_INICIAL || _cI == CodigosInterpretaveis.PARALELO_FINAL || _cI == CodigosInterpretaveis.PARALELO_PROXIMO) { frmDiag.menuEnderecamento.Enabled = false; frmDiag.menuEnderecamento.Visible = false; /// Extensao de paralelo - acima/abaixo /// somente sobre simbolos de paralelo frmDiag.menuEstenderParaleloAcima.Enabled = true; frmDiag.menuEstenderParaleloAcima.Visible = true; frmDiag.menuEstenderParaleloAbaixo.Enabled = true; frmDiag.menuEstenderParaleloAbaixo.Visible = true; } else { frmDiag.menuEnderecamento.Enabled = true; frmDiag.menuEnderecamento.Visible = true; if (_cL.getOperandos(0) != null) { frmDiag.menuToggleBit.Enabled = true; } else { frmDiag.menuToggleBit.Enabled = false; } TreeNode _NoEnderecamento = _frmPL.ArvoreProjeto.Nodes["NoProjeto"].Nodes["NoEnderecamento"]; ToolStripMenuItem _mnu = null; //ToolStripMenuItem _mnuSub = null; foreach (TreeNode _NoEnd in _NoEnderecamento.Nodes) { //_mnu = new ToolStripMenuItem(_end.Nome); switch (_NoEnd.Text) { case "Memoria": _mnu = frmDiag.menuMemoria; break; case "Temporizadores": _mnu = frmDiag.menuTemporizador; break; case "Contadores": _mnu = frmDiag.menuContador; break; case "Entradas": _mnu = frmDiag.menuEntrada; break; case "Saidas": _mnu = frmDiag.menuSaida; break; } EnderecamentoLadder _end = null; if (_cL.getOperandos(0) != null) { Object obj = _cL.getOperandos(0); if (obj.GetType().ToString() == "LadderApp1.EnderecamentoLadder") { _end = (LadderApp.EnderecamentoLadder)obj; } } _mnu.DropDownItems.Clear(); foreach (TreeNode _NoEndSub in _NoEnd.Nodes) { _mnu.DropDownItems.Add(_NoEndSub.Text); if (_end != null) { if (_end.Nome == _NoEndSub.Text) { _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Select(); } } _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Name = _NoEndSub.Text; _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Tag = _NoEndSub.Tag; _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Click += new EventHandler(LinhaCompletaLivre_Click); } } } } frmDiag.menuControle.Show(_cL.PointToScreen(e.Location)); } }