repo split: move projects to their own repos as submodules; bulk data purged to Gitea-Storage (Jupiter)
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
/**
|
||||
* Parser for single-line CSV format (7BLOG)
|
||||
*
|
||||
* Format:
|
||||
* STAGE: MODEL,SERIAL,DATE,VERSION,CODE,VALUE1,VALUE2,...
|
||||
* Example:
|
||||
* FINAL: 7B21,87876-1,05-08-2013,1.984,0651945, 12, 9999, ...
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
/**
|
||||
* Parse a 7BLOG CSV file and extract test records
|
||||
* @param {string} filePath - Path to the DAT file
|
||||
* @param {string} testStation - Test station identifier
|
||||
* @returns {Array} Array of parsed records
|
||||
*/
|
||||
function parseCsvFile(filePath, testStation = null) {
|
||||
const records = [];
|
||||
|
||||
try {
|
||||
const content = fs.readFileSync(filePath, 'utf8');
|
||||
const lines = content.split('\n').map(l => l.trim());
|
||||
|
||||
for (const line of lines) {
|
||||
if (!line) continue;
|
||||
|
||||
// Match pattern: STAGE: MODEL,SERIAL,DATE,...
|
||||
const match = line.match(/^([A-Z-]+):\s*([^,]+),([^,]+),(\d{2}-\d{2}-\d{4}),(.*)$/);
|
||||
|
||||
if (match) {
|
||||
const [, stage, model, serial, dateStr, rest] = match;
|
||||
|
||||
// Parse date from MM-DD-YYYY to YYYY-MM-DD
|
||||
const [month, day, year] = dateStr.split('-');
|
||||
const testDate = `${year}-${month}-${day}`;
|
||||
|
||||
// Model number includes the stage prefix for 7B products
|
||||
const modelNumber = model.trim();
|
||||
|
||||
records.push({
|
||||
log_type: '7BLOG',
|
||||
model_number: modelNumber,
|
||||
serial_number: serial.trim(),
|
||||
test_date: testDate,
|
||||
test_station: testStation,
|
||||
overall_result: 'PASS', // 7BLOG entries are typically passing records
|
||||
raw_data: line,
|
||||
source_file: filePath
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`Error parsing ${filePath}: ${err.message}`);
|
||||
}
|
||||
|
||||
return records;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract test station from file path
|
||||
*/
|
||||
function extractTestStation(filePath) {
|
||||
const match = filePath.match(/TS-\d+[LR]/i);
|
||||
return match ? match[0].toUpperCase() : null;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
parseCsvFile,
|
||||
extractTestStation
|
||||
};
|
||||
Reference in New Issue
Block a user