Update server.js

pull/27/head
accius 5 days ago
parent 08f466c172
commit 5b8827e729

@ -210,6 +210,14 @@ async function runPrediction(params) {
const inputPath = path.join(TEMP_DIR, `input_${id}.txt`);
const outputPath = path.join(TEMP_DIR, `output_${id}.txt`);
// Ensure temp dir exists
if (!fs.existsSync(TEMP_DIR)) {
fs.mkdirSync(TEMP_DIR, { recursive: true });
}
let execStdout = '';
let execStderr = '';
try {
// Generate input file
const inputContent = generateInputFile(params);
@ -225,39 +233,21 @@ async function runPrediction(params) {
console.log(`[ITURHFProp] Command: ${cmd}`);
try {
const result = execSync(cmd, {
execStdout = execSync(cmd, {
timeout: 30000, // 30 second timeout
encoding: 'utf8',
env: { ...process.env, LD_LIBRARY_PATH: '/opt/iturhfprop:' + (process.env.LD_LIBRARY_PATH || '') }
});
console.log(`[ITURHFProp] stdout: ${result}`);
console.log(`[ITURHFProp] stdout: ${execStdout}`);
} catch (execError) {
console.error('[ITURHFProp] Execution failed!');
execStderr = execError.stderr?.toString() || '';
execStdout = execError.stdout?.toString() || '';
console.error('[ITURHFProp] Execution error!');
console.error('[ITURHFProp] Exit code:', execError.status);
console.error('[ITURHFProp] stderr:', execError.stderr?.toString() || 'none');
console.error('[ITURHFProp] stdout:', execError.stdout?.toString() || 'none');
console.error('[ITURHFProp] Error:', execError.message);
console.error('[ITURHFProp] stderr:', execStderr);
console.error('[ITURHFProp] stdout:', execStdout);
// Try to get any output that was generated
if (!fs.existsSync(outputPath)) {
// Check if binary exists and is executable
try {
const stats = fs.statSync(ITURHFPROP_PATH);
console.log(`[ITURHFProp] Binary exists, size: ${stats.size}, mode: ${stats.mode.toString(8)}`);
} catch (e) {
console.error(`[ITURHFProp] Binary not found at ${ITURHFPROP_PATH}`);
}
// Check data directory
try {
const dataFiles = fs.readdirSync(ITURHFPROP_DATA + '/Data').slice(0, 5);
console.log(`[ITURHFProp] Data dir contains: ${dataFiles.join(', ')}...`);
} catch (e) {
console.error(`[ITURHFProp] Data dir error: ${e.message}`);
}
throw new Error(`ITURHFProp failed: ${execError.stderr?.toString() || execError.message}`);
}
// Don't throw - try to read output anyway
}
const elapsed = Date.now() - startTime;
@ -279,6 +269,9 @@ async function runPrediction(params) {
// Parse output
const results = parseOutputFile(outputPath);
results.elapsed = elapsed;
results.execStdout = execStdout;
results.execStderr = execStderr;
results.inputContent = inputContent;
results.params = {
txLat: params.txLat,
txLon: params.txLon,
@ -656,7 +649,10 @@ app.get('/api/bands', async (req, res) => {
debug: {
rawOutput: results.raw,
freqCount: results.frequencies.length,
parsedFreqs: results.frequencies
parsedFreqs: results.frequencies,
execStdout: results.execStdout,
execStderr: results.execStderr,
inputContent: results.inputContent?.substring(0, 1000)
},
timestamp: new Date().toISOString()
});

Loading…
Cancel
Save

Powered by TurnKey Linux.