Osciloscope

Osciloscope

Servidor (Produtor)

No servidor temos uma função (produce) para produzir valores inteiros aleatórios entre 0 e 1, convertê-los para string e armazená-los num buffer.

Osciloscope

Temos também uma função (send) para enviar os valores produzidos através de um Socket UDP, onde o buffer é consumido.

Osciloscope

Na função principal (logo abaixo da função send), o buffer é alocado para um tamanho de 10.000 unidades e duas threads são alocadas para que as funções send e produce possam executar concorrentemente.

Cliente (Consumidor)

No cliente temos uma função para realizar a animação (animate) em que recebemos os dados do Socket UDP, adicionamos a uma lista e plotamos as informações do gráfico (labels, título, etc...). Para realizar a atualização do gráfico a função animate é chamada periodicamente através da função FuncAnimation, que recebe como parâmetro uma função e um intervalo de tempo, que em nosso caso foi ajustado para o menor possível.

Osciloscope

Como mencionado anteriormente, a comunicacao com o cliente é realizado através de um Socket UDP, como demonstrado abaixo:

Osciloscope

Dependências

Faça o download da Linguagem de programação Go no site oficial, Siga os passos para instalação através deste link.

Siga as instruções para instalação do matplotlib:

$ python -m pip install -U pip
$ python -m pip install -U matplotlib

Instruções para execução

$ python cliente.py
$ go build server.go
$ ./server

Tecnologias utilizadas

Osciloscope

Osciloscope

Contribuidores

Made with contributors-img.