Projeto

Geral

Perfil

Adicionando métodos a uma classe » Histórico » Versão 10

Gabriel Borges da Conceição, 06/09/2019 12:53 h

1 1 Gabriel Borges da Conceição
# Adicionando métodos a uma classe
2
3 3 Gabriel Borges da Conceição
Vamos criar os métodos "getPos", "setPos", "getVel", "setVel" e "move".
4 1 Gabriel Borges da Conceição
5
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:
6
![](criandometodo.png)
7
8
Os tipos que mais escolhemos são "VI from Dynamic Dispatch Template", "VI from Static Dispatch Template" e "VI for Data Member Access".
9
10
VI from Static Dispatch Template: Cria template com o objeto de entrada e saída e tratamento de erros.
11
12 9 Gabriel Borges da Conceição
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". Mas lembre-se que a reescrita necessita da criação de mais parâmetros a serem passados.
13 1 Gabriel Borges da Conceição
14
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.
15
16
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 
17 10 Gabriel Borges da Conceição
VI from Dymanic Dispatch Template e caso precise futuramente, é permitido trocar a VI para "Static".
18 1 Gabriel Borges da Conceição
19 3 Gabriel Borges da Conceição
Vamos agora, criar os métodos "getPos" e "setPos" que vão nos permitir visualizar e setar o atributo x, respectivamente. Vamos escolher "VI for Data Member Access":
20 1 Gabriel Borges da Conceição
21
![](getx.png)
22
23 6 Gabriel Borges da Conceição
Precisamos escolher qual atributo queremos acessar, o tipo de acesso (leitura ou escrita ou ambos) e "dymaic" ou "static". Vamos esolher "dynamic" por padrão.
24 1 Gabriel Borges da Conceição
25 3 Gabriel Borges da Conceição
Ao criar utilizando a opção de access "Read and Write", os seguintes templates são gerados já com todas as entradas e saídas linkadas:
26 1 Gabriel Borges da Conceição
![](templateget.png) 
27 4 Gabriel Borges da Conceição
28
E
29
30 3 Gabriel Borges da Conceição
![](setpos.png)
31 1 Gabriel Borges da Conceição
32
Olhando para o painel frontal dessa VI, percebemos o seguinte:
33
![](olhandodynamic.png)
34
35
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.
36 7 Gabriel Borges da Conceição
E se quiséssemos trocar de static para dymanic, bastava fazer o mesmo e escolher a opção "Dymanic Dispatch Input (Required)".
37 1 Gabriel Borges da Conceição
38
39
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:
40
![](salvandoclasse.png).
41
42
43 3 Gabriel Borges da Conceição
Agora, de maneira similar à criação dos métodos "getPos" e "setPos", vamos criar os métodos "getVel" e "setVel" que lê ealtera o valor da velocidade do robô, respecitvamente:
44 1 Gabriel Borges da Conceição
![](getvel.png)
45 4 Gabriel Borges da Conceição
46
E
47
48 1 Gabriel Borges da Conceição
![](setvel.png)
49 2 Gabriel Borges da Conceição
50 8 Gabriel Borges da Conceição
Seja então a criação do método "move":
51
![](move.png)
52 2 Gabriel Borges da Conceição
53
Lembrando que após isso é importante que salve novamente a classe.