module.exports = function(app_cfg, waip, sql) { // Module laden var dgram = require('dgram'); var udp_server = dgram.createSocket('udp4'); // Funktion um zu pruefen, ob Nachricht im JSON-Format ist function isValidJSON(text) { try { JSON.parse(text); return true; } catch (error) { return false; } }; // UDP-Server für Schnittstelle starten udp_server.bind(app_cfg.global.udpport); udp_server.on('listening', function() { var address = udp_server.address(); sql.db_log('Anwendung', 'UDP Server auf ' + address.address + ':' + address.port + ' gestartet.'); }); // Warten auf Einsatzdaten udp_server.on('message', function(message, remote) { if (isValidJSON(message)) { sql.db_log('WAIP', 'Neuer Einsatz von ' + remote.address + ':' + remote.port + ': ' + message); waip.einsatz_speichern(message); } else { sql.db_log('Fehler-WAIP', 'Fehler: Einsatz von ' + remote.address + ':' + remote.port + ' Fehlerhaft: ' + message); } }); function send_message(message) { udp_server.send(message, 0, message.length, app_cfg.global.udpport, 'localhost', function(err, bytes) { if (err) throw err; sql.db_log('UDP-Testalarm an localhost Port ' + app_cfg.global.udpport + ' gesendet.'); //client.close(); }); }; return { send_message: send_message }; };