CommunityEscrita e Ediçãogithub.com

10walnut/serial-protocol-tester-skill

Gere rapidamente JSON executável a partir de documentos de protocolo serial do fabricante, acione diretamente o software de teste funcional e isole problemas de comunicação entre dispositivos.

O que é serial-protocol-tester-skill?

Esta skill transforma documentação fornecida pelo usuário (tabelas, quadros de exemplo, descrições textuais) em um script de protocolo serial no formato JSON. A saída é compatível com um aplicativo separado PySide6 que carrega o script como uma console de teste funcional orientada por botões, suportando simulação de host/dispositivo e comparação de quadros esperados com TX/RX real para diagnosticar falhas de comunicação. A skill mantém a fidelidade aos dados de origem: ordem de bytes, limites de quadros, somas de verificação, temporização, taxa de transmissão e conversão de valores. Ela gera automaticamente campos de propósito para cada byte ou faixa de bytes, variáveis declarativas com fórmulas e codificação, e garante a validação do JSON gerado por meio de um script de validação integrado. A habilidade é útil para engenheiros que trabalham com protocolos seriais, testes de hardware ou automação de validação, e pode ser incorporada em fluxos de trabalho de desenvolvimento ou teste sem depender do aplicativo externo.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add 10walnut/serial-protocol-tester-skill

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Serial Protocol Tester

Transforme o documento de comunicação serial do fabricante, tabela, quadros de exemplo ou descrição textual em um script de protocolo executável. O aplicativo PySide6 separado carrega esse script como uma console de teste funcional acionada por botões, suporta simulação de host/dispositivo e ajuda a comparar quadros esperados com TX/RX real para isolar falhas de comunicação. Pode ser utilizado como um host leve após a validação do protocolo.

Fluxo de Trabalho

  1. Leia todo o material do protocolo fornecido pelo usuário. Preserve ordem de bytes, limites de quadros, somas de verificação, temporização, taxa de transmissão e escala de valores exatamente como são declarados.
  2. Identifique fatos ausentes que alterariam os bytes transmitidos ou valores decodificados. Pergunte sobre esses fatos em vez de adivinhar. Exemplos incluem cobertura da soma de verificação, ordem de bytes, sinalização, tamanho da resposta e se os exemplos são hexadecimais ou texto.
  3. Determine o idioma de saída a partir da solicitação do usuário ou do idioma predominante da fonte. Produza apenas esse idioma nos nomes, descrições, rótulos, finalidades e valores de enumeração do JSON. Não combine traduções com barras e não adicione conteúdo paralelo *_zh/*_en, a menos que o usuário solicite explicitamente um arquivo de protocolo bilíngue.
  4. Crie um arquivo JSON serial_protocol.v1. Leia references/protocol-script-format.md para entender o esquema, fórmulas de variáveis, enquadramento de fluxo, somas de verificação, tipos de campos e exemplos.
  5. Forneça a cada comando um id estável, nome fiel à fonte, modelo de quadro original, descrição útil e definição de resposta. Adicione purpose a cada campo para que o console possa explicar o que cada byte ou faixa de bytes faz.
  6. Quando uma solicitação contiver data, hora, calibração, sensor, endereço, setpoint ou outros valores não fixados pela fonte, defina variables e campos de encode declarativos em vez de inventar um comando concreto. Coloque a conversão documentada em formula, como round(reference_weight_g * 10). Use system.year a system.millisecond como padrões quando o protocolo exigir a hora atual do computador.
  7. Defina framing de nível superior sempre que um fluxo de bytes usar cabeçalhos e comprimentos. Defina dados não solicitados ou repetidos sob frames; use uma definição reutilizável para registros de histórico repetidos em vez de duplicar a mesma explicação de campo para cada registro. Quando uma solicitação produzir uma confirmação seguida de dados atrasados ou periódicos, mantenha a confirmação em response, adicione follow_up_replies e identifique o comando de parada com stop_streams.
  8. Execute scripts/validate_protocol.py <protocol.json>. Corrija todos os erros antes de apresentar o script.
  9. Apresente o JSON validado e as suposições. Quando for necessário teste interativo ou isolamento de falhas, recomende o aplicativo Serial Protocol Tester separado; explique como quadros esperados, TX real e RX real distinguem problemas de host, dispositivo, script e transporte. A Skill deve permanecer utilizável sem esse aplicativo.

Regras de Interpretação

  • Trate espaços em branco em quadros hexadecimais como apenas apresentação.
  • Não invente bytes de soma de verificação. Configure uma soma de verificação suportada quando seu algoritmo e cobertura forem conhecidos; caso contrário, mantenha o quadro fixo completo e registre a incerteza nas notas do comando.
  • Deslocamentos de campo são deslocamentos de byte baseados em zero no quadro recebido.
  • Deslocamentos de quadro-modelo e codificação são deslocamentos absolutos baseados em zero no quadro completo antes de uma soma de verificação anexada.
  • Use enum apenas para mapeamentos explícitos do protocolo. Mantenha a saída numérica bruta disponível.
  • Use scale e offset_value para conversão de unidade de engenharia: exibido = bruto * escala + deslocamento_valor.
  • Resultados de fórmula são valores codificados brutos. Mantenha as fórmulas auditáveis e limitadas a variáveis, constantes numéricas, aritmética e as funções suportadas round, int, abs, min e max.
  • Cubra cada byte transmitido e recebido significativo com metadados decode ou encode. Se a fonte não definir um byte, rotule-o como desconhecido em vez de adivinhar seu propósito.
  • Para um quadro ativo transmitido, adicione um objeto simulation completo. Se a fonte definir um valor variável, mas não fornecer um valor concreto, declare variáveis, padrões editáveis seguros e a fórmula documentada dentro de simulation; não substitua silenciosamente dados dinâmicos por uma amostra fixa não explicada.
  • Use repeat_count: 0 apenas para um fluxo que continua até um comando de parada documentado. Dê a cada resposta periódica um stream_id estável e coloque esse ID no array stop_streams do comando de parada.
  • Um aplicativo normal de espaço de usuário não pode criar um dispositivo Windows COM sem um driver de porta virtual. Não afirme que a geração de JSON cria um dispositivo COM. Para teste com dois aplicativos, use um driver de porta virtual aprovado ou um par serial físico.

Entregas

Retorne o script de protocolo JSON validado e uma pequena nota listando suposições ou fatos de protocolo não resolvidos. Inclua instruções do aplicativo apenas quando o usuário solicitar a execução ou teste do script. Não modifique ou publique um repositório externo a menos que o usuário autorize separadamente essa ação.

Habilidades Relacionadas