tracman-server/config/demo.js

50 lines
1.1 KiB
JavaScript
Executable File

'use strict'
// Imports
const fs = require('fs')
const path = require('path')
const debug = require('debug')('tracman-demo')
module.exports = (io, filename='demo.txt') => {
return new Promise( (resolve, reject) => {
// File is space-seperated: delay, lat, lon, dir, spd
fs.readFile(path.join(__dirname, filename), (err, data) => {
if (err) {
console.error(err.message)
reject()
} else {
const lines = String(data).split('\n');
(function sendLoc (ln) {
if (ln > 20754) {
sendLoc(0)
} else {
let loc = lines[ln].split(' ')
//debug(`Sending demo location: ${loc[1]}, ${loc[2]}`)
io.to('demo').emit('get', {
tim: new Date(),
lat: loc[1],
lon: loc[2],
dir: loc[3],
spd: loc[4]
})
// Repeat after delay in milliseconds
setTimeout(() => {
sendLoc(ln + 1) // next line of file
}, loc[0])
}
})(5667)
console.log(` Demo running from ./${filename}`)
resolve()
}
})
})
}