Skip to content
This repository has been archived by the owner on Oct 27, 2022. It is now read-only.

Criar comunicação do servidor Go com um canal de comunicação serial #97

Closed
1 of 3 tasks
Bumbleblo opened this issue Apr 16, 2019 · 13 comments
Closed
1 of 3 tasks
Assignees
Labels
api Issue de back-end
Milestone

Comments

@Bumbleblo
Copy link
Contributor

Bumbleblo commented Apr 16, 2019

Descrição

Criar uma camada que consiga enviar caracteres via comunicação serial (USB) e extraia uma string com as informações dos sensores.

Tarefas

  • Criar módulo que comunica com a porta serial
  • Implementar comandos da placa nessa camada de comunicação
  • Testar essa camada mocando o sinal serial

Informação adicional

O protocolo de comunicação está definido em um TCC no nosso drive, tome cuidado com as partes que não são públicas.

@Bumbleblo Bumbleblo added this to the Sprint 4 milestone Apr 16, 2019
@Bumbleblo Bumbleblo added the api Issue de back-end label Apr 16, 2019
@Bumbleblo
Copy link
Contributor Author

Vou tentar implementar primeiramente com essa lib

Bumbleblo added a commit that referenced this issue Apr 19, 2019
Signed-off-by: bumbleblo <bumbleblo2013@gmail.com>
@Bumbleblo
Copy link
Contributor Author

Estou com um problema realizando a comunicação serial via tty... o fato de não ter o simulador para testar o código traz vários problemas e dúvidas sobre o funcionamento da aplicação.

Bumbleblo added a commit that referenced this issue Apr 24, 2019
Signed-off-by: bumbleblo <bumbleblo2013@gmail.com>
@Bumbleblo
Copy link
Contributor Author

O arquivo main.go atualmente faz a leitura de um canal serial no linux e o arquivo write.go realiza a escrita no mesmo. Eu e o @icaropires testamos utilizando as tty e as pts porém somente as pts estão se comportando da forma esperada. Meus palpites são que ou o problema é condição de corrida ou permissão ao acessar os arquivos /dev/tty* do linux.

@Bumbleblo
Copy link
Contributor Author

A falta de uma replica do Firmware em um arduino está torando o trabalho x200 mais difícil.

@Bumbleblo
Copy link
Contributor Author

Pesquisando sobre RS232 encontrei uma referência que pode justificar o uso desse protocolo para USB.

https://www.licor.com/documents/ouiyftlgiamcs82rl9y4van95vqncagg

@Bumbleblo
Copy link
Contributor Author

Outra referência que da uma noção de como fazer a comunicação via linux: https://www.youtube.com/watch?v=DXgvaibDJzo

@Bumbleblo
Copy link
Contributor Author

Esse link me faz acreditar que se tivermos ao menos o cabo conseguimos estabelecer uma conexão fiel ao que está implementado no placa.

Bumbleblo added a commit that referenced this issue Apr 26, 2019
Signed-off-by: bumbleblo <bumbleblo2013@gmail.com>
Bumbleblo added a commit that referenced this issue Apr 26, 2019
Signed-off-by: bumbleblo <bumbleblo2013@gmail.com>
@Bumbleblo
Copy link
Contributor Author

Depois de algum tempo voltei a ativa nessa issue!

@Bumbleblo
Copy link
Contributor Author

Primeiramente gostaria de esclarecer qual foi a dificuldade que me deixou fora dessa issue nos últimos dias: Existem várias maneiras de fazer a comunicação serial e também existe vários níveis que eu posso chegar de completude da comunicação serial para a release 1, as duas principais dificuldades eram definir qual seria o escopo desta comunicação na r1 e dai entender o que é a comunicação serial e como implementa-la em Go.

@Bumbleblo
Copy link
Contributor Author

Conversei com professores de sistemas operacionais e redes de computadores da universidade a procura de uma luz sobre como implementar esse MVP. A resposta curta que eu consegui atingir foi:

A implementação com os pts apesar de ser uma solução não tão boa assim é uma ótimo alternativa no caso de querermos implementar um software que comunica de forma serial e não temos nem hardware ou tempo para implementar uma solução mais completa.

@Bumbleblo
Copy link
Contributor Author

Desta forma, decidi escrever o software voltado para implementação da comunicação via pts e estou adaptando para as configurações de sistemas linux.

@Bumbleblo
Copy link
Contributor Author

Não encontrei uma fonte que mostra o baud-rate dos terminais pts do linux, vou utilizar o padrão para o USB que é 9600 para testes.

Bumbleblo added a commit that referenced this issue Apr 29, 2019
Signed-off-by: bumbleblo <bumbleblo2013@gmail.com>
@Bumbleblo
Copy link
Contributor Author

A r1 passou e dessa issue só tenho magoas. Não é mais necessário realizar esse mock.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api Issue de back-end
Projects
None yet
Development

No branches or pull requests

2 participants