Fluxo Interno de Troca
Este e o fluxo que tecnicos usam para trocar um pacote em um veiculo em campo. Esta no operator-app sob o tab Swap Queue.
Objetivo: troca em 90 segundos ou menos, sem entrada manual, com trilha de auditoria e mensagem clara se algo der errado.
Antes de Sair
Garanta que voce tem:
- Um veiculo para trocar - da Swap Queue, com motivo real
- Um pacote carregado - de um slot ou ja no veiculo
- operator-app atualizado com o tab Swap Queue (Configuracoes -> Sobre)
- Conectividade de rede - troca em si tolera offline, mas carga da fila e conclusao precisam de rede
O Tab Swap Queue
Abra operator-app e toque em Swap Queue. Lista ranqueada de veiculos. Cada linha:
- ID do veiculo e modelo
- SoC e SoH atuais (ou "n/a")
- Motivo:
- Low SoC - bateria abaixo do limite
- Peak shortfall - modelo preve queda abaixo de 20% no pico
- SoH rotation - SoH do pacote abaixo de 60
- Distancia
- Botao Start Swap
Lista se reordena conforme localizacao e motor de recompensas.
Passo 1: Iniciar a Troca
Toque Start Swap no veiculo proximo.
App abre evento de troca em servidor e destrava o compartimento via comando IoT (ou chave AXA).
Se falhar, ve erro com motivo - normalmente sinal celular. Aguarde e tente novamente, ou chave manual.
Passo 2: Escanear o Pacote Antigo
Tela seguinte pede para escanear o pacote a remover. O QR e o adesivo branco/preto.
App verifica que QR escaneado bate com pacote atribuido. Se errado, "Pack not in vehicle". Troca nao prossegue, compartimento permanece destravado.
Por Que o Scan do Antigo Importa
Garante que o pacote que estamos aposentando do veiculo e realmente o removido. Sem isso, historico SoH perderia precisao.
Passo 3: Trocar Fisicamente
Puxe o antigo. Coloque o carregado. Mecanismo de trava do veiculo permanece inalterado.
Passo 4: Escanear o Novo Pacote
Escaneie o QR do novo pacote instalado.
App verifica dois itens:
- Estado
charged- se aindachargingoumaintenance, troca rejeita - Nao instalado em outro veiculo - protege contra dupla instalacao
Se ambos passam, botao Complete aparece.
Passo 5: Concluir
Toque Complete.
App escreve linha swap_events, decrementa inventario, atualiza battery_packs.vehicle_id dos dois, recalcula autonomia esperada.
Compartimento retrava. Veiculo volta ao status anterior e some da fila.
Tempo total para troca limpa: cerca de 60-90 segundos.
Comportamento Offline
Se perder celular durante troca:
- Antes de Start Swap - fila do cache local; navegar mas nao iniciar
- Apos Start Swap, antes de Complete - sessao mantida no servidor; tap local entra em fila e replica ao reconectar
- Se outro tecnico trocou enquanto isso - replay falha graciosamente ("Swap superseded")
O Que Acontece com o Pacote Antigo
Apos troca, antigo esta em returned e nao em slot. Opcoes ao voltar:
- Em slot
empty->charging+ plug - Defeito ->
maintenance - SoH caiu abaixo de 40 -> sistema ja roteou para
recycled
Lendo um Evento de Troca
Cada troca escreve swap_events, visivel em:
- Pagina do veiculo -> Historico de Servico
- Pagina do pacote -> Historico de Trocas
- Resumo de performance do tecnico
Contem: quem, quando, onde (GPS), duracao, ambos IDs, station_id.
Problemas Comuns
- "Pack not in vehicle" - QR errado
- "Pack is in use" - pacote ja em outro veiculo
- "Pack not charged" - novo nao em
charged - Comando unlock expirou - celular fraco; espere 60s
- Troca presa em
in_progress- sessao expira em 30 min; inicie nova depois