APLICAÇÃO DE
SHELL SCRIPT PARA
FORMATAÇÃO
DE ARQUIVOS DE
DADOS ORIGINADOS
EM INSTRUMENTOS
DE MEDIÇÃO
Matheus Alemida Silva Oliveira
1Juliano Coêlho Miranda
2PALAVRAS-CHAVE: Shell Script; instrumento; medição;
aquisi-ção de dados.
1. INTRODUÇÃO
O Shell é um interpretador de comandos que possui uma lingua-gem com a finalidade de facilitar a realização de tarefas no Linux. O Script é um arquivo com várias instruções para serem execu-tadas pelo Shell; com isso, é possível automatizar diversas tare-fas (NEVES, 2010; JARGAS, 2008; KUMARI, 2015). Inúmeras vezes, ao coletar dados de instrumentos de medição, são recolhidas informações desnecessárias e que atrapalham sua análise. Eliminar manualmente as informações irrelevantes torna-se inviável devi-do à grande quantidade de informações. Com a utilização devi-do Shell
Script, é possível automatizar a filtragem dos dados, tornando ágil o
processo de separação das informações úteis. O Shell Script realiza alterações no arquivo que contém os dados, por meio de padrões que são informados pelo programador, sendo possível realizar diversas mudanças, como alterar caracteres, apagar linhas, separar colunas e juntar informações. Neste contexto, o objetivo do trabalho é mostrar como o Shell Script pode ser utilizado para auxiliar na separação dos dados adquiridos de um instrumento de medição. Para os testes, foi utilizado um osciloscópio digital para fornecer informações do tempo de processamento de um processo. Os dados das medições foram coletados e, após aplicar um script, as informações relevantes foram organizadas e separadas.
2. METODOLOGIA
O conjunto de procedimentos que se mostraram eficientes para a re-alização da pesquisa envolveram as áreas de Ciência da Computação e Instrumentação Eletrônica. Os processos ou etapas empregados
376
• A escolha de um processo para executar as medições: foi considerado o tempo de transferência entre o acionamento de uma entrada, pertinente a um microcontrolador PIC18F4550 (Banco de Ensaios em Microcontroladores XM118 Exsto), uma lógica de controle, e a atuação de outro pino configurado como saída;
• O dispositivo de medição: os registros dos tempos de trans-ferência ocorreram por meio de um osciloscópio digital DSO7032B (350MHz - 2GSa/s), conforme ilustra a Figura 1; • A análise: a formatação das informações fornecidas pelo os-ciloscópio ocorreu por meio de um script programado em um computador com sistema operacional Linux.
As medições realizadas pelo osciloscópio, com o valor do tempo de transferência, foram obtidas por meio de uma conexão TELNET e comandos SCPI (Standard Commands for Programmable
Instruments). As medições obtidas foram armazenadas em arquivo
texto para posterior avaliação (Figura 2).
Figura 1. Topologia de ensaio para executar as medições
Figura 2. Algumas medições fornecidas pelo osciloscópio Trying 192.168.0.165... Connected to 192.168.0.165. Escape character is ‘^]’. m e d i d a _ 5 , 1 . 6 8 0 E 0 7 , 1 . 6 8 0 E 0 7 , 1 . 6 8 0 E 0 7 , 1 . 6 8 0 E - -07,0.0E+00,1.0000000000E+00,medida_4,8.90E-08,8.90E-08,8.90E- -08,8.90E-08,0.0E+00,1.0000000000E+00,medida_3,8.00E-08,8.00E--08,8.00E-08,8.00E-08,0.0E+00,1.0000000000E+00,medida_2,9.40E-08,9. 40E-08,9.40E-08,9.40E-08,0.0E+00,1.0000000000E+00,medida_1,6.480E- 07,6.480E-07,6.480E-07,6.480E-07,0.0E+00,1.0000000000E+00
3. DISCUSSÃO E RESULTADOS
Os dados fornecidos pelo osciloscópio apresentam o valor corren-te da medição, a média dos valores, os valores mínimo e máximo, o desvio padrão e o número de medições. Para produzir outras análises estatísticas e incorporar gráficos, com base, por exemplo, nos valores correntes, foi elaborado um script, conforme descreve a Figura 3.
Figura 3. Script utilizado para a formatação
1
2
3
4
#!/bin/bash
printf "Insira o local do arquivo " read x
printf "Insira o local onde o arquivo sera salvo " read y mkdir pacote_1 sed -i '/Connected/d;/Trying/d;/Escape/d' $x sed -i 's/medida_5/\na/g' $x sed -i 's/medida_4/\nb/g' $x sed -i 's/medida_3/\nc/g' $x sed -i 's/medida_2/\nd/g' $x sed -i 's/medida_1/\ne/g' $x cat $x > salvaa.txt cat $x > salvab.txt cat $x > salvac.txt cat $x > salvad.txt cat $x > salvae.txt
sed -i '/b/d;/c/d;/d/d;/e/d' salvaa.txt
cut -d',' -f2 salvaa.txt > /home/juliano/pacote_1/a2.csv sed -i '/a/d;/c/d;/d/d;/e/d' salvab.txt
cut -d',' -f2 salvab.txt > /home/juliano/pacote_1/b2.csv sed -i '/a/d;/b/d;/d/d;/e/d' salvac.txt
378
No #item 1, Figura3, o script pede que o usuário insira o diretório do arquivo a ser modificado; o destino após a execução do script; e cria um diretório chamado pacote_1. No #item 2, o script substitui as palavras “medida_5” por “a”, e quebra a linha, sucessivamente, até o termo “medida_1” por “e”.
Na parte #3, cópias dos arquivos são salvas após a modificação, pertinente ao #item 2, e, posteriormente, são modificadas. O #item 4 apaga todas as linhas e mantém apenas a linha “a”; captura a segun-da coluna e salva na pasta temporária, repete o processo até a linha “e” (5ª linha).
A última etapa do script é remover todas as linhas em branco, salvar os arquivos finais na pasta escolhida (#item 1), com os seguintes nomes: corrente X, onde X E N [1,5]; e apaga a pasta pacote_1. Após a execução do script, alguns arquivos serão salvos na pasta indicada pelo usuário, conforme ilustra a Figura 4.
Figura 4. Arquivos após a execução do script
corrente1.csv corrente2.csv corrente3.csv corrente4.csv corrente5.csv
6,480 E-07 9,40 E-08 8,00 E-08 8,90 E-08 1,680 E-07
4. CONCLUSÃO
O Shell Script mostrou-se eficiente para auxiliar na separação dos dados de interesse adquiridos de um instrumento de medição. O script possibilita a automação de processos repetitivos e que possuem uma grande quantidade de dados para serem alterados. Neste contexto, o
sed (Stream Editor) mostrou-se um utilitário poderoso, pois executa a
edição de arquivos dinamicamente dentro de um programa.
5. REFERÊNCIAS BIBLIOGRÁFICAS
JARGAS, A. M. Shell Script Profissional. São Paulo: Novatec,
2008. 480 p.
KUMARI, S. Linux Shell Scripting Essentials. Birmingham:
Packt Publishing, 2015. 282 p.
NEVES, J. C. Programação Shell Linux. 8. ed. Rio de Janeiro:
Brasport, 2010. 534 p.
NOTAS
1 Aluno, Curso Técnico em Mecatrônica/Departamento de
Mecatrônica (DMCVG), CEFET/MG, Varginha/MG, Brasil. [email protected].
2 Matemático. Doutor. Professor/Orientador, Curso Técnico em
Mecatrônica/DMCVG, CEFET/MG, Laboratório de Automação e Sistemas Embarcados (LASE), Varginha/MG, Brasil. [email protected].
AGRADECIMENTOS
Ao CEFET/MG, por meio da Comissão Geral de Organização da 26ª META e ao Departamento de Mecatrônica (DMCVG), Unidade de Varginha, Laboratório de Automação e Sistemas Embarcados (LASE), pelo apoio no desenvolvimento do trabalho.