diagnostico: fix ethernet e Rx Power

Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2026-04-01 07:56:06 -03:00
1 parent 1a9769a2d7
commit c890a38587
2 files changed
+19 -22

No files matched your search

+2 -4
View File
@@ -1105,9 +1105,7 @@ Digite /help para ver todos os comandos disponíveis!
msg += ` 📍 Slot/PON: ${onuResult.slot || '?'}/${onuResult.pon || '?'}\n`;
}
msg += ` 🔌 Estado: ${onuResult.online ? '🟢 Online' : '🔴 Offline'}\n`;
msg += ` ${rxEmoji} Rx Power: *${rxLabel}*`;
if (onuResult.type === 'fiberhome') msg += ` _(compensado)_`;
msg += '\n';
msg += ` ${rxEmoji} Rx Power: *${rxLabel}*\n`;
if (onuResult.portaEthernet) {
const ethOk = /forward|up|active|1gbit|100mbit/i.test(onuResult.portaEthernet);
@@ -2250,7 +2248,7 @@ Digite /help para ver todos os comandos disponíveis!
message += `🔌 *Status:* ${resultado.online ? '🟢 Online' : '🔴 Offline'}\n\n`;
message += `📊 *Informações do Sinal:*\n`;
message += `📡 *RX Power:* ${resultado.rxPower} _(uplink)_\n`;
message += `📡 *RX Power:* ${resultado.rxPower}\n`;
message += `📤 *TX Power:* ${resultado.txPower}\n`;
message += `📏 *Distância:* ${resultado.distance}\n\n`;
+17 -18
View File
@@ -716,23 +716,21 @@ class FiberhomeManager {
const txIdx = colIdx('TxPower');
console.log(`[TL1-DIAG] OMDDM rxIdx=${rxIdx} txIdx=${txIdx}`);
// Nota: no TL1 FiberHome, RxPower = sinal que a OLT recebe (= TX da ONU)
// TxPower = sinal que a OLT envia (= RX da ONU)
// LST-OMDDM — perspectiva da ONU:
// RxPower = sinal que a ONU RECEBE da OLT (downlink)
// TxPower = sinal que a ONU TRANSMITE para a OLT (uplink)
// Posições fixas de fallback: ONUID=0, RxPower=1, TxPower=3
const oltRxRaw = (rxIdx >= 0 ? valores[rxIdx] : valores[1])?.replace(',', '.');
const oltTxRaw = (txIdx >= 0 ? valores[txIdx] : valores[3])?.replace(',', '.');
console.log(`[TL1-DIAG] OMDDM oltRxRaw=${oltRxRaw} oltTxRaw=${oltTxRaw}`);
const rxRaw = (rxIdx >= 0 ? valores[rxIdx] : valores[1])?.replace(',', '.');
const txRaw = (txIdx >= 0 ? valores[txIdx] : valores[3])?.replace(',', '.');
console.log(`[TL1-DIAG] OMDDM rxRaw=${rxRaw} txRaw=${txRaw}`);
const COMP_RX = 2.7;
const COMP_TX = -2.7;
if (oltRxRaw && oltRxRaw !== '--' && !isNaN(parseFloat(oltRxRaw))) {
resultado.txPower = `${(parseFloat(oltRxRaw) + COMP_RX).toFixed(2)} dBm`;
console.log(`[TL1-DIAG] ✅ TxPower ONU ← OLT RxPower ${oltRxRaw} → ${resultado.txPower}`);
if (rxRaw && rxRaw !== '--' && !isNaN(parseFloat(rxRaw))) {
resultado.rxPower = `${parseFloat(rxRaw).toFixed(2)} dBm`;
console.log(`[TL1-DIAG] ✅ RxPower ONU: ${resultado.rxPower}`);
}
if (oltTxRaw && oltTxRaw !== '--' && !isNaN(parseFloat(oltTxRaw))) {
resultado.rxPower = `${(parseFloat(oltTxRaw) + COMP_TX).toFixed(2)} dBm`;
console.log(`[TL1-DIAG] ✅ RxPower ONU ← OLT TxPower ${oltTxRaw} → ${resultado.rxPower}`);
if (txRaw && txRaw !== '--' && !isNaN(parseFloat(txRaw))) {
resultado.txPower = `${parseFloat(txRaw).toFixed(2)} dBm`;
console.log(`[TL1-DIAG] ✅ TxPower ONU: ${resultado.txPower}`);
}
} else {
console.log('[TL1-DIAG] ⚠️ OMDDM: header encontrado mas nenhuma linha com número decimal após ele');
@@ -743,11 +741,12 @@ class FiberhomeManager {
} else {
// Header não encontrado — regex direto no buffer como último recurso
console.log('[TL1-DIAG] ⚠️ OMDDM: header ONUID+RxPower não encontrado, tentando regex');
const rxDireto = dados.match(/(-\d+\.\d+)/);
const rxDireto = dados.match(/(-\d+[.,]\d+)/);
if (rxDireto) {
const v = parseFloat(rxDireto[1]) + 2.7;
resultado.txPower = `${v.toFixed(2)} dBm`;
console.log(`[TL1-DIAG] TxPower ONU via regex último recurso → ${resultado.txPower}`);
// Primeiro número negativo = RxPower da ONU (downlink)
const v = parseFloat(rxDireto[1].replace(',', '.'));
resultado.rxPower = `${v.toFixed(2)} dBm`;
console.log(`[TL1-DIAG] RxPower ONU via regex → ${resultado.rxPower}`);
} else {
console.log('[TL1-DIAG] ⚠️ OMDDM: regex também falhou, rxPower permanece N/A');
}