IM STUCK >:(. Cannot figure anything out
This commit is contained in:
@ -38,18 +38,9 @@
|
||||
|
||||
// Function to handle form submission
|
||||
document.getElementById('search-form').addEventListener('submit', function(event) {
|
||||
//event.preventDefault(); // Prevent the form from submitting normally
|
||||
var tak = document.getElementById('bus-id').value.trim();
|
||||
socket.emit('takSearch', tak);
|
||||
});
|
||||
socket.on('takSearch', function(data) {
|
||||
// Process the received data and update the map accordingly
|
||||
// For example:
|
||||
data.forEach(function(item) {
|
||||
var marker = L.marker([item.latitude, item.longitude]).addTo(map);
|
||||
marker.bindPopup(`Transport Type: ${item.transportType}<br>Line Number: ${item.lineNumber}<br>TAK: ${item.tak}`);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
44
main.js
44
main.js
@ -23,27 +23,20 @@ app.get('/', (req, res) => {
|
||||
server.listen(serverPort, () => {
|
||||
console.log("Apache server initalized...");
|
||||
console.log('Server started on port', serverPort);
|
||||
//triggerDataFetch();
|
||||
triggerDataFetch();
|
||||
});
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
console.log("Got connection from user! Waiting for taksearch...")
|
||||
socket.on('takSearch', (tak) => {
|
||||
console.log(triggerDataFetch(tak));
|
||||
});
|
||||
io.on('takSearch', (socket) => {
|
||||
|
||||
});
|
||||
|
||||
async function triggerDataFetch(tak) {
|
||||
console.log("Fetching new data...");
|
||||
const data = await fetchData();
|
||||
const filteredData = data.filter(item => item.tak === tak);
|
||||
io.emit('takSearch', filteredData);
|
||||
console.log("Data fetch completed.");
|
||||
// this part is only for when it is continuous
|
||||
//console.log("Data fetch completed. Wait 5 seconds before next fetch!");
|
||||
//await sleep.usleep(5000000);
|
||||
// also add while true cycle
|
||||
async function triggerDataFetch() {
|
||||
while (true) {
|
||||
console.log("Fetching new data...");
|
||||
await fetchData();
|
||||
console.log("Data fetch completed. Wait 5 seconds before next fetch!");
|
||||
await sleep.usleep(5000000);
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchData() {
|
||||
@ -51,7 +44,6 @@ async function fetchData() {
|
||||
const response = await axios.get(url);
|
||||
if (response.status === 200) {
|
||||
const lines = response.data.split('\n');
|
||||
const result = [];
|
||||
lines.forEach(line => {
|
||||
if (line) {
|
||||
const data = line.split(',');
|
||||
@ -78,27 +70,23 @@ async function fetchData() {
|
||||
transportTypeDecoded = "Unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
result.push({
|
||||
transportType: transportTypeDecoded,
|
||||
lineNumber,
|
||||
longitude,
|
||||
latitude,
|
||||
tak
|
||||
});
|
||||
console.log("Transport Type:", transportTypeDecoded);
|
||||
console.log("Line Number:", lineNumber);
|
||||
console.log("Latitude:", latitude);
|
||||
console.log("Longitude:", longitude);
|
||||
console.log("Decoded address:");
|
||||
console.log("TAK:", tak);
|
||||
console.log();
|
||||
} catch (error) {
|
||||
console.log("Invalid data format!", line);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
} else {
|
||||
console.log("Data fetch fail! Got status:", response.status);
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching data:", error);
|
||||
return [];
|
||||
}
|
||||
}
|
125
rollback
125
rollback
@ -158,3 +158,128 @@ async function fetchData() {
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
let serverPort = 3000;
|
||||
const url = "http://transport.tallinn.ee/gps.txt";
|
||||
|
||||
const express = require('express');
|
||||
const { fstat } = require('fs');
|
||||
const app = express();
|
||||
const http = require('http');
|
||||
const server = http.createServer(app);
|
||||
const { Server } = require("socket.io");
|
||||
const io = new Server(server);
|
||||
const axios = require('axios');
|
||||
const fs = require('node:fs');
|
||||
var sleep = require('sleep');
|
||||
|
||||
console.log("Server initalize!");
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
console.log("Init root /");
|
||||
//index.html
|
||||
res.sendFile(__dirname + '/client/index.html');
|
||||
});
|
||||
|
||||
server.listen(serverPort, () => {
|
||||
console.log("Apache server initalized...");
|
||||
console.log('Server started on port', serverPort);
|
||||
//triggerDataFetch();
|
||||
});
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
console.log("Got connection from user! Waiting for taksearch...")
|
||||
socket.on('takSearch', (tak) => {
|
||||
console.log(tak);
|
||||
console.log(triggerDataFetch(tak));
|
||||
});
|
||||
});
|
||||
|
||||
function triggerDataFetch(tak) {
|
||||
console.log("Fetching new data...");
|
||||
const data = fetchData();
|
||||
console.log("Data fetch completed.");
|
||||
const filteredData = data.filter(item => item.tak === tak);
|
||||
return filteredData;
|
||||
//await io.emit('takSearch', filteredData);
|
||||
// this part is only for when it is continuous
|
||||
//console.log("Data fetch completed. Wait 5 seconds before next fetch!");
|
||||
//await sleep.usleep(5000000);
|
||||
// also add while true cycle
|
||||
}
|
||||
|
||||
function fetchData() {
|
||||
try {
|
||||
const response = axios.get(url);
|
||||
if (response.status == 200) {
|
||||
const lines = response.data.split('\n');
|
||||
const result = [];
|
||||
lines.forEach(line => {
|
||||
if (line) {
|
||||
const data = line.split(',');
|
||||
if (data.length >= 9) {
|
||||
try {
|
||||
const transportType = parseInt(data[0]);
|
||||
const lineNumber = parseInt(data[1]);
|
||||
const longitude = parseInt(data[2]) / 1000000;
|
||||
const latitude = parseInt(data[3]) / 1000000;
|
||||
const tak = data[6];
|
||||
|
||||
let transportTypeDecoded;
|
||||
switch (transportType) {
|
||||
case 1:
|
||||
transportTypeDecoded = "TROLL";
|
||||
break;
|
||||
case 2:
|
||||
transportTypeDecoded = "BUS";
|
||||
break;
|
||||
case 3:
|
||||
transportTypeDecoded = "TRAM";
|
||||
break;
|
||||
default:
|
||||
transportTypeDecoded = "Unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
result.push({
|
||||
transportType: transportTypeDecoded,
|
||||
lineNumber,
|
||||
longitude,
|
||||
latitude,
|
||||
tak
|
||||
});
|
||||
} catch (error) {
|
||||
console.log("Invalid data format!", line);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
} else {
|
||||
console.log("Data fetch fail! Got status:", response.status);
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching data:", error);
|
||||
return [];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user