Projeto

Geral

Perfil

Adicionando métodos a uma classe » Histórico » Revisão 3

Revisão 2 (Gabriel Borges da Conceição, 21/05/2019 12:58 h) → Revisão 3/10 (Gabriel Borges da Conceição, 21/05/2019 13:05 h)

# Adicionando métodos a uma classe 

 Vamos criar os métodos "getPos", "setPos", "getVel", "setVel" e "move". 

 Para criar um método, abra o projeto, clique com o botão direito na sua classe, "New" e escolha o tipo de VI adequado ao método: 
 ![](criandometodo.png) 

 Os tipos que mais escolhemos são "VI from Dynamic Dispatch Template", "VI from Static Dispatch Template" e "VI for Data Member Access". 

 VI from Static Dispatch Template: Cria template com o objeto de entrada e saída e tratamento de erros. 

 VI from Dynamic Dispatch Template: Similar à VI from Static Dispatch Template. A diferença é que permite ser reescrito pela classe filha, daí o nome "Dynamic". 

 VI for Data Member Access: Cria template com objeto de entrada e saída já retornando um atributo. Por padrão, ela é do tipo "Dynamic", ou seja, permite reescrita pelas classes filhas. 

 A escolha entre essas 3 é apenas para facilitar e usar algo já pronto para a situação, não fazendo muita diferença. Na dúvida do que escolher, escolha  
 VI from Static Dispatch Template e caso precise futuramente, é permito trocar a VI para "Dynamic". 

 Vamos agora, criar os métodos o método "getPos" e "setPos" que vão vai nos permitir visualizar e setar retornar o atributo x, respectivamente. x. Vamos escolher "VI for Data Member Access": 

 ![](getx.png) 

 Precisamos escolher qual atributo queremos acessar, o tipo de acesso (leitura ou escrita ou ambos) e "dymaic" ou "static". Vamos esolher "dynamic" pois vamos reescrever esse método para a classe filha "RoboBid" que ainda vamos criar. 

 Ao criar utilizando a opção de access "Read and Write", os seguintes templates são gerados criar, o seguinte template é gerado já com todas as entradas e saídas linkadas: 
 ![](templateget.png)  
 e 
 ![](setpos.png) 

  

 Olhando para o painel frontal dessa VI, percebemos o seguinte: 
 ![](olhandodynamic.png) 

 Repare que as conexões da entrada RoboUni in e da saída RoboUni out estão hachuradas, representando o tipo dynamic que escolhemos. Se quisermos trocar para Static, basta clicar com o botão direito na conexão hachurada, "This connection is" e escolher Required. Após isso, a conexão deixa de ser hachurada. 
 E se quiséssemos trocar de dymanic para static, bastava fazer o mesmo e escolher a opção "Dymanic Dispatch Input (Required)". 


 Detalhe MUITO importante é que após adicionar um método ou qualquer outra VI à classe, precisamos salvar a classe, não basta salvar apenas o projeto: 
 ![](salvandoclasse.png). 


 Agora, de maneira similar à criação dos métodos "getPos" e "setPos", do método "getPos", vamos criar os métodos "getVel" e "setVel" que lê ealtera o valor da velocidade do robô, respecitvamente: respecitvamente. A diferença é que ao criar New VI for Data Member Access, vamos escolher a opção "Read and Write" ao invés de "Read". Com isso, já são criados os dois métodos prontos: 
 ![](getvel.png) 
 ![](setvel.png) 


 Lembrando que após isso é importante que salve novamente a classe.