Adicionando métodos a uma classe » Histórico » Versão 1
Gabriel Borges da Conceição, 21/05/2019 12:49 h
1 | 1 | Gabriel Borges da Conceição | # Adicionando métodos a uma classe |
---|---|---|---|
2 | |||
3 | Vamos criar os métodos "getPos", "setVel" e "move". |
||
4 | |||
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 | 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". |
||
13 | |||
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 | VI from Static Dispatch Template e caso precise futuramente, é permito trocar a VI para "Dynamic". |
||
18 | |||
19 | Vamos agora, criar o método "getPos" que vai nos retornar o atributo x. Vamos escolher "VI for Data Member Access": |
||
20 | |||
21 | ![](getx.png) |
||
22 | |||
23 | 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. |
||
24 | |||
25 | Ao criar, o seguinte template é gerado já com todas as entradas e saídas linkadas: |
||
26 | ![](templateget.png) |
||
27 | |||
28 | Olhando para o painel frontal dessa VI, percebemos o seguinte: |
||
29 | ![](olhandodynamic.png) |
||
30 | |||
31 | 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. |
||
32 | E se quiséssemos trocar de dymanic para static, bastava fazer o mesmo e escolher a opção "Dymanic Dispatch Input (Required)". |
||
33 | |||
34 | |||
35 | 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: |
||
36 | ![](salvandoclasse.png). |
||
37 | |||
38 | |||
39 | Agora, de maneira similar à criação do método "getPos", vamos criar o método "setVel" que altera o valor da velocidade do robô, no caso, apenas V_x. A diferença é que ao criar New VI for Data Member Access, vamos escolher a opção "write" ao invés de "read": |
||
40 | ![](setvel.png) |