├── .gitignore
├── LICENSE
├── documentacao
├── JSON output.png
├── custom parser registry.png
├── empty custom parser div.png
├── empty custom parser registry.png
├── empty graph tracking item.png
├── empty graph window.png
├── empty payload sequencer item.png
├── empty payload sequencer.png
├── empty standalone exception decoder.png
├── esp exception decoder section.png
├── exception decoder output.png
├── exception decoder parser color.png
├── filled graph tracking item.png
├── filter example.png
├── filtered history example.png
├── graph config ranges.png
├── graph max points.png
├── graph tracking empty.png
├── graph window with test invisible.png
├── graph window with values.png
├── grapher button.png
├── json parser color.png
├── log file empty.png
├── output history example.png
├── parser output entry history.png
├── payload sequencer button.png
├── payload sequencer window.png
├── standalone exception decoder button.png
├── standalone exception decoder decoded.png
├── standalone exception decoder filled in.png
└── text finder.png
├── documentation
├── JSON output.png
├── custom parser registry.png
├── customParserExample.js
├── empty custom parser div.png
├── empty custom parser registry.png
├── empty graph tracking item.png
├── empty graph window.png
├── empty payload sequencer item.png
├── empty payload sequencer.png
├── empty standalone exception decoder.png
├── esp exception decoder section.png
├── exception decoder output.png
├── exception decoder parser color.png
├── filled graph tracking item.png
├── filter example.png
├── filtered history example.png
├── graph config ranges.png
├── graph max points.png
├── graph tracking empty.png
├── graph window with test invisible.png
├── graph window with values.png
├── graph window.png
├── grapher button.png
├── json parser color.png
├── log file empty.png
├── output history example.png
├── parser output entry history.png
├── payload sequencer button.png
├── payload sequencer window.png
├── standalone exception decoder button.png
├── standalone exception decoder decoded.png
├── standalone exception decoder filled in.png
└── text finder.png
├── leia-me.md
├── readme.md
└── src
├── decoders
├── riscv32-esp-elf-addr2line.exe
├── xtensa-esp32-elf-addr2line.exe
├── xtensa-esp32s2-elf-addr2line.exe
├── xtensa-esp32s3-elf-addr2line.exe
└── xtensa-esp8266-elf-addr2line.exe
├── exception_decoder_window
├── decoder_screen.js
└── index.html
├── graph_window
├── graph_handler.js
└── index.html
├── images
├── icon.ico
├── icon.png
├── not-visible-eye.svg
├── settings gear.png
├── trash-2-16.png
├── usb-connected-16.png
├── usb-disconnected-16.png
└── visible-eye.svg
├── language
├── en.json
├── language_handler.js
└── pt-br.json
├── main.js
├── main_window
├── decoder.js
├── graph_parser.js
├── index.html
├── jlink_handler.js
├── parsers.js
├── preferences_handle.js
└── renderer.js
├── package-lock.json
├── package.json
├── sequencer_window
├── index.html
└── sequencer.js
└── style
├── dark_theme_style.css
├── light_theme_style.css
└── shared_style.css
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | builds/
3 | src/preferences.json
4 | src/graph_config.json
5 | src/sequence.json
6 | log.txt
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Benjamim Krug
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/documentacao/JSON output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/JSON output.png
--------------------------------------------------------------------------------
/documentacao/custom parser registry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/custom parser registry.png
--------------------------------------------------------------------------------
/documentacao/empty custom parser div.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty custom parser div.png
--------------------------------------------------------------------------------
/documentacao/empty custom parser registry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty custom parser registry.png
--------------------------------------------------------------------------------
/documentacao/empty graph tracking item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty graph tracking item.png
--------------------------------------------------------------------------------
/documentacao/empty graph window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty graph window.png
--------------------------------------------------------------------------------
/documentacao/empty payload sequencer item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty payload sequencer item.png
--------------------------------------------------------------------------------
/documentacao/empty payload sequencer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty payload sequencer.png
--------------------------------------------------------------------------------
/documentacao/empty standalone exception decoder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/empty standalone exception decoder.png
--------------------------------------------------------------------------------
/documentacao/esp exception decoder section.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/esp exception decoder section.png
--------------------------------------------------------------------------------
/documentacao/exception decoder output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/exception decoder output.png
--------------------------------------------------------------------------------
/documentacao/exception decoder parser color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/exception decoder parser color.png
--------------------------------------------------------------------------------
/documentacao/filled graph tracking item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/filled graph tracking item.png
--------------------------------------------------------------------------------
/documentacao/filter example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/filter example.png
--------------------------------------------------------------------------------
/documentacao/filtered history example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/filtered history example.png
--------------------------------------------------------------------------------
/documentacao/graph config ranges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/graph config ranges.png
--------------------------------------------------------------------------------
/documentacao/graph max points.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/graph max points.png
--------------------------------------------------------------------------------
/documentacao/graph tracking empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/graph tracking empty.png
--------------------------------------------------------------------------------
/documentacao/graph window with test invisible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/graph window with test invisible.png
--------------------------------------------------------------------------------
/documentacao/graph window with values.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/graph window with values.png
--------------------------------------------------------------------------------
/documentacao/grapher button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/grapher button.png
--------------------------------------------------------------------------------
/documentacao/json parser color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/json parser color.png
--------------------------------------------------------------------------------
/documentacao/log file empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/log file empty.png
--------------------------------------------------------------------------------
/documentacao/output history example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/output history example.png
--------------------------------------------------------------------------------
/documentacao/parser output entry history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/parser output entry history.png
--------------------------------------------------------------------------------
/documentacao/payload sequencer button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/payload sequencer button.png
--------------------------------------------------------------------------------
/documentacao/payload sequencer window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/payload sequencer window.png
--------------------------------------------------------------------------------
/documentacao/standalone exception decoder button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/standalone exception decoder button.png
--------------------------------------------------------------------------------
/documentacao/standalone exception decoder decoded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/standalone exception decoder decoded.png
--------------------------------------------------------------------------------
/documentacao/standalone exception decoder filled in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/standalone exception decoder filled in.png
--------------------------------------------------------------------------------
/documentacao/text finder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentacao/text finder.png
--------------------------------------------------------------------------------
/documentation/JSON output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/JSON output.png
--------------------------------------------------------------------------------
/documentation/custom parser registry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/custom parser registry.png
--------------------------------------------------------------------------------
/documentation/customParserExample.js:
--------------------------------------------------------------------------------
1 | function parserFunction(data_line, data_line_index) {
2 | var customResult = document.createElement("pre");//obligatory to work properly, but does not need to be of type pre, can be any type
3 | customResult.setAttribute("id", "p" + data_line_index);//obligatory to work properly
4 | customResult.innerHTML = current_language["results_from_line"] + data_line_index;//just a random example of what can be done with the custom Parser
5 | /*
6 | Inside here you can do anything with the data, be it create a custom way to show the data
7 | or output data, whatever is put into the customResult object will get saved in the output results array
8 | and it must be of node type, an element created by the document.createElement method.
9 | This format gives a lot of flexibility
10 | */
11 | return customResult; //obligatory
12 | }
--------------------------------------------------------------------------------
/documentation/empty custom parser div.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty custom parser div.png
--------------------------------------------------------------------------------
/documentation/empty custom parser registry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty custom parser registry.png
--------------------------------------------------------------------------------
/documentation/empty graph tracking item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty graph tracking item.png
--------------------------------------------------------------------------------
/documentation/empty graph window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty graph window.png
--------------------------------------------------------------------------------
/documentation/empty payload sequencer item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty payload sequencer item.png
--------------------------------------------------------------------------------
/documentation/empty payload sequencer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty payload sequencer.png
--------------------------------------------------------------------------------
/documentation/empty standalone exception decoder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/empty standalone exception decoder.png
--------------------------------------------------------------------------------
/documentation/esp exception decoder section.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/esp exception decoder section.png
--------------------------------------------------------------------------------
/documentation/exception decoder output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/exception decoder output.png
--------------------------------------------------------------------------------
/documentation/exception decoder parser color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/exception decoder parser color.png
--------------------------------------------------------------------------------
/documentation/filled graph tracking item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/filled graph tracking item.png
--------------------------------------------------------------------------------
/documentation/filter example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/filter example.png
--------------------------------------------------------------------------------
/documentation/filtered history example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/filtered history example.png
--------------------------------------------------------------------------------
/documentation/graph config ranges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph config ranges.png
--------------------------------------------------------------------------------
/documentation/graph max points.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph max points.png
--------------------------------------------------------------------------------
/documentation/graph tracking empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph tracking empty.png
--------------------------------------------------------------------------------
/documentation/graph window with test invisible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph window with test invisible.png
--------------------------------------------------------------------------------
/documentation/graph window with values.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph window with values.png
--------------------------------------------------------------------------------
/documentation/graph window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/graph window.png
--------------------------------------------------------------------------------
/documentation/grapher button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/grapher button.png
--------------------------------------------------------------------------------
/documentation/json parser color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/json parser color.png
--------------------------------------------------------------------------------
/documentation/log file empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/log file empty.png
--------------------------------------------------------------------------------
/documentation/output history example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/output history example.png
--------------------------------------------------------------------------------
/documentation/parser output entry history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/parser output entry history.png
--------------------------------------------------------------------------------
/documentation/payload sequencer button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/payload sequencer button.png
--------------------------------------------------------------------------------
/documentation/payload sequencer window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/payload sequencer window.png
--------------------------------------------------------------------------------
/documentation/standalone exception decoder button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/standalone exception decoder button.png
--------------------------------------------------------------------------------
/documentation/standalone exception decoder decoded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/standalone exception decoder decoded.png
--------------------------------------------------------------------------------
/documentation/standalone exception decoder filled in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/standalone exception decoder filled in.png
--------------------------------------------------------------------------------
/documentation/text finder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/documentation/text finder.png
--------------------------------------------------------------------------------
/leia-me.md:
--------------------------------------------------------------------------------
1 | ### Introdução
2 | Esse é um Monitor Serial que eu estou desenvolvendo com todos os recursos que eu encontrei em diversos monitores diferentes ou então que eu pensei em adicionar para serem uteis. Ele é desenvolvido em Javascript com Node e Electron. Eu comecei esse projeto porque depois de usar muitos monitores seriais sempre alguma coisa faltava em algum deles, quando tinha um determinado recurso outro faltava, então decidi fazer o meu próprio monitor serial que tivesse todos os recursos necessários para um monitor serial.
3 |
4 | ### Recursos incluídos
5 | - Todos os recursos básico:
6 | - Seleção da porta COM
7 | - Seleção do Baudrate com uma vasta quantidade de opções
8 | - Auto Rolagem opcional
9 | - Timestamp de cada linha opcional
10 | - Envio de dados com final de linha selecionado e hotkey de envio configuravel entre Enter e Ctrl + Enter
11 | - Tema Claro e tema Escuro
12 | - Suporte multi-idioma, por hora apenas Inglês e Português Brasileiro estão incluídos, porém qualquer um pode fazer sua tradução e simplesmente adicionar na pasta languages(E se quiser pode ajudar por compartilhar ela para adicionar no programa)
13 | - Botão para descartar os dados recebidos no terminal
14 | - Arquivo de log para os dados recebidos, com a opção para escolher se vai sobrescrever ou concatenar ao arquivo da sessão anterior
15 | - Gráfico para os dados recebidos via a porta serial:
16 |
17 |
18 |
19 | - Parsers:
20 | - Decodificador de exceções do ESP: detecção automática de arquivo .elf e arquitetura do processador
21 |
22 |
23 |
24 | - Parser de JSON para payloads JSON recebidos na porta serial
25 |
26 |
27 |
28 | - Parser customizado que podem ser adicionados pelo usuário, também escritos em JS, e ativados por substrings de gatilho.
29 |
30 |
31 |
32 | Uma explicação mais profunda sobre como usar o recurso de parser customizado pode ser encontrado [mais para frente no leia-me](#como-usar-o-recurso-de-parsers-customizados)
33 | - Histórico de entradas dos parsers similar ao histórico de pacotes do MQTT Explorer feito pelo [Thomas Nordquist](https://github.com/thomasnordquist)
34 |
35 |
36 |
37 | - Cores customizáveis para as entradas de parser para facilitar a diferenciação de entradas similar ao [MQTT FX da SoftBlade](https://www.softblade.de/)
38 |
39 |
40 |
41 |
42 |
43 | - Recurso para encontrar texto na página inteira usando o [electron-find feito pelo TheoXiong](https://github.com/TheoXiong/electron-find)
44 |
45 |
46 |
47 | - Identificador opcional de conexão e desconexão no terminal
48 | - Opção para desconectar ao receber a mensagem de Boot dos microcontroladores da série ESP
49 | - Decodificador de Exceções do ESP independente, para decodificar exceções não provenientes do terminal
50 |
51 | ### Recursos planjeados para versões futuras
52 | - Outros parsers embutidos, como ModBus - RTU
53 | - Conexão de porta RTT
54 | - Upload de arquivos via protocolo X, Y, Z MODEM
55 | - Aumentar usabilidada do histórico de parser
56 | - Mais customização para os parsers embutidos
57 | - Recursos úteis que forem sendo sugeridos pelos usuários
58 |
59 | ### Processo de instalação
60 | O processo de instalação é bem simples, você simplesmente pode baixar a versão mais recente na [página de releases](https://github.com/BenjamimKrug/FullSerialMonitor/releases). Uma versão de Windows já está preparada para uso em um arquivo zip, mas se você usa alguma outra plataforma por hora a sua melhor opção é buildar a sua propria versão a partir do código fonte.
61 | Obs.: Por enquanto não tem nenhuma build para Linux ou Mac pois eu não tenho acesso à um computador com esses Sistemas operacionais, então não consigo testar o programa.
62 |
63 | Com o arquivo .zip, simplesmente descompacte ele e coloque a pasta resultante em algum lugar que você conseugir encontrar facilmente. A única coisa que você precisa ter cuidado é de não colocar dentro de uma pasta que precise de acesso especial, pois isso irá causar problemas quando o programa tentar usar arquivos dentro da pasta
64 |
65 | ### Como usar o recurso de Log
66 | Para usar o recurso de log você pode configurar isso no menu de configurações, na primeira vez que você abrir ele deve estar assim:
67 |
68 |
69 |
70 | O arquivo de log pode ser configurado de 3 modos diferentes:
71 | - *Nenhum*: Nenhum arquivo de log será criado e nenhum dado será guardado
72 | - *Sobrescrever*: Os dados recebidos no terminal serial vão sobrescrever os dados guardados na última sessão. Então se você fechar e abrir o programa, quando a porta serial for conectada, o log da última sessão será descartado.
73 | - *Concatenar*: Todos os dados recebidos no terminal serial será concatenado ao arquivo de log, então qualquer log guardado não será descartado mesmo ao fechar e abrir o programa.
74 |
75 | A chave "Ad. Timestamp" pode ser habilitada para adicionar o timestamp no arquivo de log.
76 | Para selecionar onde será criado o arquivo de log, simplesmente clique no botão "Buscar..." e selecione a pasta. Uma observação importante é que a pasta precisa ter no minimo 1 arquivo, não pode estar vazia, quando você estiver selecionando via o botão Buscar, isso se deve a uma limitação do sistema de busca de arquivos. Uma forma de contornar isso para poder usar uma pasta vazia é por digitar o caminho da pasta diretamente no input de texto, mas garanta que ele termina com '\' ou '/'. Esse comportamento será arrumado no futuro.
77 |
78 | Depois de configurado, quando você conectar na porta serial o arquivo "log.txt" será criado na pasta selecionada, e os dados recebidos serão tratados de acordo com o modo configurado.
79 |
80 | ### Como usar o Decodificador de Exceções do ESP embutido
81 | Se você quiser usar o Decodificador de Exceções do ESP embutido para o terminal da porta serial você pode selecionar o arquivo .elf para o código que está rodando atualmente no ESP por clicar no botão "Buscar":
82 |
83 |
84 |
85 | Isso vai abrir um navegador de arquivos para você escolher o arquivo. Alternativamente você pode simplesmente clicar no botão "Auto Detectar" se você estiver usando a Arduino IDE, que normalmente colocar os arquivos de compilação na pasta Temp, então o programa consegue encontrar por pegar a sketch compilada mais recentemente.
86 | Quando for recebida uma linha iniciando com "Backtrace" na porta serial, o parser faz o trabalho de decodificar esse backtrace e coloca o resultado na parte de baixo da tela:
87 |
88 |
89 |
90 | ## Como usar o Decodificador de Exceções do ESP independente
91 | Além do decodificador embutido no terminal, o programa inclui um Decodificador de Exceções do ESP independente, que você pode abrir pelo menu de ferramentas:
92 |
93 |
94 |
95 | Ao abrir a página ela via ser assim como o seguinte:
96 |
97 |
98 |
99 | Então preencha o backtrace que você quer decodificar e selecione o caminho do seu arquivo .elf:
100 |
101 |
102 |
103 | Se você usa a Arduino IDE, você pode simplesmente clicar no botão "Auto Detectar" para encontrar a sketch compilada mais recentemente.
104 |
105 | Com tudo preenchido, é só clicar em "Decodificar" e o backtrace decodificado vai aparecer na div de Saída:
106 |
107 |
108 |
109 | ### Como usar o recurso de Parsers Customizados
110 | Para usar o recurso de parsers customizados, você precisa primeiramente criar um arquivo .js com o código do parser seguindo o padrão especificado no [arquivo de exemplo](/documentacao/customParserExample.js). Com esse arquivo criado, vá para a seção de parsers customizado:
111 |
112 |
113 |
114 | Clique no botão "+" para adicionar um novo parser customizado
115 |
116 |
117 |
118 | Então preencha todos os campos:
119 |
120 |
121 |
122 | Onde cada campo é o seguinte:
123 | - *Nome*: nome do parser, para fácil identificação por parte do usuário
124 | - *Script*: caminho para o arquivo de script, pode ser escrito manualmente ou você pode clicar no botão "Buscar" para encontrar o arquivo
125 | - *Function*: nome da função que irá fazer o parseamento dos dados, importante cuidar para esse nome sempre ser único.
126 | - *Gatilho*: substring que precisar estar presente na linha para que ela seja enviada para o parser, por exemplo no caso do parser JSON o gatilho é "{" e o decodificador de exceções é "Backtrace"
127 | - *Cor*: cor de identificador do parser para as entradas na div de histório de saída
128 |
129 | Obs.: todo o parseamento é feito quando a linha foi recebida por completo, então ele acontece quando o caracter \n é recebido, terminando a linha.
130 |
131 | Com o parser configurado os resultados vão começar à aparecer na div de histórico de resultado para cada linha que contém a substring de gatilho. Para o exemplo dado ficaria assim:
132 |
133 |
134 |
135 | ### Como usar o recurso de Histórico dos resultados de Parser
136 | Conforme os parsers geram seus resultados, eles vão sendo adicionados na div de histórico como botões com o horário de entrada, o payload usado no parser e a cor configurada para esse parser.
137 |
138 |
139 |
140 | No canto direito você pode ver que tem um botão "Filtros"
141 |
142 |
143 |
144 | Nesse dropdown você pode deixar habilitado quais parsers você quer ativamente ver, nesse caso o parser de JSON está escondido então apenas o Decodificador é mostrado:
145 |
146 |
147 |
148 | Ao clicar no entrada de resultado de um parser, a div de resultado é preenchida com o resultado gerado para essa entrada.
149 |
150 | ### Como usar o recurso de Gráfico
151 | Para usar o recurso de gráfico, você precisa primeiramente abrir a janela por ir no botão de ferramentas e então clicar no botão de Gráfico
152 |
153 |
154 |
155 | Ao abrir a página, pelo menos na primeira vez ao abrir ela será assim:
156 |
157 |
158 |
159 | Abrindo o menu de configurações, ele deve ser assim:
160 |
161 |
162 |
163 | Clique no botão "+" para adicionar um novo rastreio de gráfico
164 |
165 |
166 |
167 | Então preencha todos os campos:
168 |
169 |
170 |
171 | Onde cada campo é o seguinte:
172 | - *Nome*: nome da série, para a legenda da série no gráfico
173 | - *Gatilho*: substring no começo da linha para identificar o dado na porta serial, será removida do dado da linha e o valor numérico logo após será passado para o gráfico.
174 | - *Cor*: é a cor que será usada para mostrar a série no gráfico
175 |
176 | Então por exemplo, com o rastreio de gráfico configurado no exemplo, o texto recebido no terminal será o seguinte:
177 | `value15`
178 | Onde 15 é o valor que será adicionado à série do gráfico e o texto "value" é descartado. Assim como nos parsers customizados, um caracter de nova linha('\n') é necessário no final da linha para que o dado seja parseado.
179 |
180 | Quando o dado começar à vir na porta serial, o gráfico será preenchido:
181 |
182 |
183 |
184 | Importante notar que no topo da tela tem uma legenda para cada uma das séries, nesse caso tem duas configuradas, ao clicar na label você pode esconder qualquer uma dar séries que vocês não quiser mais ver e então pode clicar de novo para vê-la novamente:
185 |
186 |
187 |
188 | Você pode configurar o range dos eixos via o menu de configuração:
189 |
190 |
191 |
192 | Se você não quiser configurar manualmente esses valores você pode clicar no slider de auto detectar, assim o gráfico irá identificar automaticamente o mínimo e o máximo valor presente nas séries.
193 |
194 | Por fim você pode configurar quantos pontos de dados do eixo X você quer ter no gráfico. Por exemplo, caso você queira que apenas 100 pontos sejam mostrados, você configura isso no menu:
195 |
196 |
197 |
198 | Com isso configurado, apenas os 100 pontos mais recentes serão mostrados no gráfico, todos os pontos além disso serão descartados.
199 | Se você não quiser que qualquer dado seja descartado, simplesmente configure esse valor como 0, então todos os dados serãp mantidos no gráfico até que eles sejam deletados com o botão no canto da tela.
200 |
201 |
202 | ### Como usar o recurso do Sequenciador de pacotes
203 | O programa inclui um recurso para programar uma sequência de pacotes à ser enviado pela porta serial, para usá-lo é pelo menu de ferramentas:
204 |
205 |
206 |
207 | Ao abrir a janela pela primeira vez, ela estará assim:
208 |
209 |
210 |
211 | Para adicionar um pacote à sequência simplesmente clique em "Ad. Pacote", com isso um campo vazio será criado no final da sequência:
212 |
213 |
214 |
215 | Onde cada campo é o seguinte:
216 | - *Pacote*: é o campo onde você irá preencher o dado de fato que você quer enviar
217 | - *Delay*: é o campo onde você irá configurar o tempo de delay até que o pacote seja enviado. Ele é contabilizado a partir do envio do último pacote, então para o primeiro pacote contabiliza a partir do momento em que você clica no botão "Enviar sequência"
218 |
219 |
220 |
221 | Depois que você salvou a sequência, pode começar a enviá-la, se o slider de "Sequência contínua" estiver habilitado, a sequência vai repetir continuamente, se não ela irá enviar a sequência toda e então parar.
222 |
223 | Obs.: o final de linha de cada pacote será o final de linha configurado no topo do terminal
224 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | ### Introduction
2 | This is a Serial monitor I developing with every feature I ever saw on various other monitors or found useful to have. Fully developed in Javascript with Node and Electron. I made it after using many serial monitors and not finding any of them complete, always missing some feature, so I decided to make my own serial monitor that would have all the features needed for a serial monitor.
3 |
4 | ### Included features
5 | - Every basic feature:
6 | - COM port selection
7 | - BaudRate selection with wide range of options
8 | - Optional autoscroll
9 | - Optional timestamp
10 | - Data sending with line ending options and optional hotkey, either Enter or Ctrl + Enter
11 | - Dark and Light theme
12 | - Multilanguage support, for now English and Brazillian Portuguese are built in, however anyone can make a translation and add it to the languages folder, (and help with adding them to program if they're kind hearted).
13 | - Received data clean button
14 | - Log file for the received data, with the option to choose whether to overwrite or append to the file
15 | - Graph for the data received on the serial port:
16 |
17 |
18 |
19 | - Parsers:
20 | - ESP Exception Decoder: automatic .elf file detection and processor architecture detection
21 |
22 |
23 |
24 | - JSON parser for JSON payloads sent on the serial port
25 |
26 |
27 |
28 | - Custom parsers that can be added by the user, also written in JS, activated on custom trigger substrings.
29 |
30 |
31 |
32 | a deeper explanation on how to use the custom parser feature can be found [later on in this readme file](#how-to-use-the-custom-parsers-feature)
33 | - Parser entries history similar to the packet history in MQTT Explorer by [Thomas Nordquist](https://github.com/thomasnordquist)
34 |
35 |
36 |
37 | - Parser entries with customized colors to help differientiate entries according to the parser similar to [MQTT FX by SoftBlade](https://www.softblade.de/)
38 |
39 |
40 |
41 |
42 |
43 | - Text finder on the whole page from [electron-find from TheoXiong](https://github.com/TheoXiong/electron-find)
44 |
45 |
46 |
47 | - Optional connection status change display
48 | - Optional disconnection on Boot message from ESP series microcontrollers
49 | - Standalone ESP Exception Decoder
50 |
51 | ### Planned features to be added on future versions
52 | - Other useful built in parsers, like ModBus - RTU
53 | - RTT port connection
54 | - X, Y, Z MODEM upload for files
55 | - Increase parser output history usability
56 | - More customization options for the built in parsers
57 | - Useful features suggested by the users
58 |
59 | ### Installation process
60 | The installation process is very simple, you simply download the most recent version on the [releases page](https://github.com/BenjamimKrug/FullSerialMonitor/releases). A Windows version is already built in a zip file, but if you use another platform for now your best option is to build the version yourself.
61 | Note: For now I don't have access to linux or Mac computer to test builds for those platforms.
62 |
63 | With the .zip file, simply unzip it and put the resulting folder somewhere you'll be able to find it. Only thing to be careful is to not put it somewhere where special admnistrative access is needed to access the files, as that will cause some problems with the program.
64 |
65 | ### How to use the Logging feature
66 | To use the logging feature you can configure it on the config menu, at first it will look like the following:
67 |
68 |
69 |
70 | The Log file can be configured into 3 modes:
71 | - *None*: No log file will be created and no data logging.
72 | - *Overwrite*: Data received on the serial terminal will overwrite any existing file from the previous session. So if you close the program and open it again, once the serial port is connected the previous log will be discarded.
73 | - *Append*: All data received on the serial terminal will be appended to the log file, so the log persists between closing and opening the program.
74 |
75 | The "Add Timestamp" switch can be checked to add the timestamp to the log file.
76 | To select where the log file will be created, simply click on the "Browse..." button and select the folder. An important note is that the folder must have at least one file, it cannot be empty, when you're selecting it through the Browse button, that is due to a limitation of the file browser system. A workaround for using an empty folder is to simply write the path of the folder into the text input, make sure that it ends in a '\' or '/' character. In the future this quirk will be fixed.
77 |
78 | Once it is all configured, when you connect to the serial port a file called "log.txt" will be created on the folder you selected, and the data received will be treated according to the mode configured.
79 |
80 | ### How to use the built-in ESP Exception Decoder
81 | If you want to use the built in ESP Exception Decoder for the serial port terminal you can just select the .elf file for the current code you're running on your ESP through the browse button:
82 |
83 |
84 |
85 | Which will then open a file explorer for you to select the file. Alternatively you can simply click the "Auto detect" button if you're using the Arduino IDE, which normally puts all it's compilation files in the Temp folder, so the program can find them by getting the most recently compiled.
86 | When a line starting with "Backtrace" is received on the serial port, the parser does the decoding automatically and outputs it in the lower half:
87 |
88 |
89 |
90 | ### How to use the standalone ESP Exception Decoder
91 | Beyond the built into the terminal Decoder, the program also includes a standalone ESP Exception decoder, you can open it via the tools menu:
92 |
93 |
94 |
95 | Upon opening the window it will look like this:
96 |
97 |
98 |
99 | So just fill in your backtrace and the path to your .elf file:
100 |
101 |
102 |
103 | If you use the Arduino IDE, you can simply click the "Auto Detect" button for it to find the most recently compiled sketch
104 |
105 | Once it is all filled in, just click the "Decode" button and the decoded backtrace will appear in the Output div:
106 |
107 |
108 |
109 | ### How to use the Custom Parsers feature
110 | To use the custom parsers feature, you must first create a .js file with a parser function following the pattern specified in the [example file](/documentation/customParserExample.js). With the created file, go to the config menu on the custom parsers section:
111 |
112 |
113 |
114 | Click on the "+" button to add a new custom parser
115 |
116 |
117 |
118 | Then fill all the fields:
119 |
120 |
121 |
122 | Where each field is the following:
123 | - *Name*: name of the parser, for easier use on the part of the user
124 | - *Script*: path for the script file, can be written manually or found through the browse function
125 | - *Function*: name of the function use to parse the data, it is important to be careful that the function name must always be unique.
126 | - *Trigger*: substring that must be in the line for it to get sent to the parser, for example in the JSON parser the trigger is "{" and for the exception decoder it's "Backtrace"
127 | - *Color*: identification color used on the parser entry in the output history div
128 |
129 | Note: all the parsing is done only when the line is fully sent, so it happens when a \n character is received, ending the line.
130 |
131 | When the parser is configured the results will start appearing on the output history div for every line that contains the string you filled in the trigger field. It should look something like this:
132 |
133 |
134 |
135 | ### How to use the Parser output history feature
136 | As the parsers put out results, they get added to the history div as a button with the time of entry, the payload used in the parser and the color assigned to that parser.
137 |
138 |
139 |
140 | In the right corner you can see there is a "Filters" button
141 |
142 |
143 |
144 | On this dropdown you can check the parsers you actively want to see, in this case the JSON parser is unchecked so only the exception decoder gets show:
145 |
146 |
147 |
148 | When you click on the parser output entry, the output div gets filled with the parser result for that entry.
149 |
150 | ### How to use the Graph Feature
151 | To use the graph feature, you must first open the window by going to the tools button and then clicking the Grapher button
152 |
153 |
154 |
155 | Once you open the window, at least on you first time opening it will look like this:
156 |
157 |
158 |
159 | When you open the config menu it should look something like this:
160 |
161 |
162 |
163 | Click on the "+" button to add a new graph tracking
164 |
165 |
166 |
167 | Then fill all the fields:
168 |
169 |
170 |
171 | Where each field is the following:
172 | - *Name*: name of the series, for labeling the series on the graph
173 | - *Trigger*: substring at the start of the line used to identify the graph data on the serial port, it will be removed from the line data and the numerical value right after it will be sent to the graph.
174 | - *Color*: the color that will be used to display the series
175 |
176 | So for example with the graph tracking configured in the example the text received on the terminal will be the following:
177 | `value15`
178 | Where 15 is the value that get added to the graph series and the string "value" is discarted. As with the custom parsers, a new line('\n') character is needed at the end of the data for it to be parsed.
179 |
180 | When data starts to come in the serial port, the graph will be filled:
181 |
182 |
183 |
184 | Note that on the top of the screen there is a label for each of the series currently being tracked, in this case there are two series, by clicking on the label you can hide any series you want and then click again to show them once more:
185 |
186 |
187 |
188 | You can set the axis ranges on the config menu:
189 |
190 |
191 |
192 | If you do not want to manually set the values you can simply check the auto detect slider, that way the graph will set the ranges based on the minimum and maximum values present in the series'.
193 |
194 | Finally you can configure how many data points in the X axis you wish to have in the graph. For example, In case you only want 100 points to be shown, you can configure it in the menu:
195 |
196 |
197 |
198 | Once that happens, only the most recent 100 points will be shown in the graph, all points beyond that will be discarded.
199 | If you do not want any data to be discarded, simply set the value to 0, then all data will be kept in the graph until you manually delete them with the delete button in the corner of the screen.
200 |
201 |
202 | ### How to use the Payload sequencer feature
203 | The program includes a feature to program a sequence of packets to be sent via the serial port, to use it you can open it via the tools menu:
204 |
205 |
206 |
207 | Upon opening the window for the first time, it will look like this:
208 |
209 |
210 |
211 | To add a packet to the sequence simply click the "Add Packet" button, with that an empty field will be created at the end of the sequence:
212 |
213 |
214 |
215 | Where each field is the following:
216 | - *Packet*: is the field where you will type in the actual data you want to send
217 | - *Delay*: is the field where you will put the delay until that packet is sent. It starts counting from the time it send the previous packet, so for the first packet it start counting from the moment you click the "send sequence" button.
218 |
219 |
220 |
221 | After you've saved the sequence, you can start sending the sequence, if "Continuous sequence" is checked the sequence will repeat continously, if not it will run the whole sequence and then stop.
222 |
223 | Note: the line ending for each of the packets will be the line ending configured at the top of the terminal
224 |
--------------------------------------------------------------------------------
/src/decoders/riscv32-esp-elf-addr2line.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/src/decoders/riscv32-esp-elf-addr2line.exe
--------------------------------------------------------------------------------
/src/decoders/xtensa-esp32-elf-addr2line.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/src/decoders/xtensa-esp32-elf-addr2line.exe
--------------------------------------------------------------------------------
/src/decoders/xtensa-esp32s2-elf-addr2line.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/src/decoders/xtensa-esp32s2-elf-addr2line.exe
--------------------------------------------------------------------------------
/src/decoders/xtensa-esp32s3-elf-addr2line.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/src/decoders/xtensa-esp32s3-elf-addr2line.exe
--------------------------------------------------------------------------------
/src/decoders/xtensa-esp8266-elf-addr2line.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BenjamimKrug/FullSerialMonitor/b9ba980712f3c233f6d6fecbf31b459fbbb24a7b/src/decoders/xtensa-esp8266-elf-addr2line.exe
--------------------------------------------------------------------------------
/src/exception_decoder_window/decoder_screen.js:
--------------------------------------------------------------------------------
1 | //general code that is needed for every window we create
2 | const fs = require('fs');
3 | const { ipcRenderer } = require('electron');
4 | var theme_style = document.getElementById("theme_style");
5 |
6 | ipcRenderer.on('recvChannel', (_event, arg) => {
7 | switch (arg.cmd) {
8 | case "setTheme": {
9 | theme_style.href = arg.theme;
10 | break;
11 | }
12 | case "setLang": {
13 | current_language = arg.lang;
14 | updateContentLang();
15 | break;
16 | }
17 | default:
18 | break;
19 | }
20 | });
21 | ipcRenderer.send('recvMain', { id: 0, cmd: "getTheme", requester: 3 });
22 | ipcRenderer.send('recvMain', { id: 0, cmd: "getLang", requester: 3 });
23 |
24 | // just a dummy variabel to not have a problem with the decoder function
25 | var preferences = { decoderColor:"#00000"};
26 |
27 | var backtrace_data_input = document.getElementById("backtrace_data_input");
28 | var output = document.getElementById("output");
29 |
30 | function runManualDecode() {
31 | var backtrace_data = backtrace_data_input.value.trim();
32 | decodeBacktrace(backtrace_data, 0, Date.now());
33 | }
34 |
35 | function addParserResult(newResult, newResultSource, color, parserName, timestamp) {
36 | output.innerHTML = newResult.innerHTML;
37 | }
--------------------------------------------------------------------------------
/src/exception_decoder_window/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |