diff --git a/BACKEND/app/ultils/templates/show_env.ts b/BACKEND/app/ultils/templates/show_env.ts index 4f16811..b284a91 100644 --- a/BACKEND/app/ultils/templates/show_env.ts +++ b/BACKEND/app/ultils/templates/show_env.ts @@ -2,18 +2,30 @@ import XRegExp from 'xregexp' const parseShowEnvironment = (data: string) => { const patterns = [ - // 1. Dạng: FAN is OK / POWER is OK / RPS is NOT PRESENT + // 1. Dạng Stack hiện đại: "1 1 OK" (Ưu tiên cao nhất để tránh nhầm với số) + XRegExp( + '^\\s*(?\\d+)\\s+(?\\d+)\\s+(?:\\w+\\s+)?(?OK|Faulty|Normal|Failure).*?$' + ), + + // 2. Dạng Sensor/Table phức tạp (ISR 4k/ASR): "Sensor Value State" + // VD: "Temp: CPU Die Temperature 47 Celsius Normal" + XRegExp( + '^(?Temp|Fan|Voltage|Power|Sensor):?\\s*(?.+?)\\s+(?\\d+(?:\\s+Deg\\s+C|\\s*Celsius|\\s*V|\\s*W)?)\\s+(?Normal|Critical|Shutdown|Warning|OK)$', + 'i' + ), + + // 3. Dạng: FAN is OK / POWER is OK / RPS is NOT PRESENT XRegExp('^(?[A-Z ]+?)\\s+is\\s+(?.+)$'), - // 2. Dạng: FAN 1 is OK / POWER SUPPLY A is NOT PRESENT + // 4. Dạng: FAN 1 is OK / POWER SUPPLY A is NOT PRESENT XRegExp('^(?[A-Z ]+?)\\s+(?[A-Z0-9]+)\\s+is\\s+(?.+)$'), - // 3. Dạng bảng: Temp: Inlet Front Normal + // 5. Dạng bảng: Temp: Inlet Front Normal XRegExp( '^(?Temp|Fan|Voltage|Power):?\\s*(?[^\\s]+)\\s+(?[^\\s]+)\\s+(?.+)$' ), - // 4. Dạng: Inlet Temperature Value: 27 Degree Celsius + // 6. Dạng: Inlet Temperature Value: 27 Degree Celsius XRegExp('^(?.*?Temperature).*?:\\s*(?.+)$'), ]