var lines;
var subscription;
var ws;
var acts = {};
var transitions = [];
var lastpos;
var sub = 'topic' + '=' + 'activity' + '&' +// {{{
'events' + '=' + 'calling' + '&' +
'topic' + '=' + 'condition' + '&' +
'events' + '=' + 'eval' + '&' +
'topic' + '=' + 'dataelements' + '&' +
'events' + '=' + 'change' + '&' +
'topic' + '=' + 'position' + '&' +
'events' + '=' + 'change';// }}}
function transdraw() {
var buff = [];
while (transitions.length > 0) {
var trans = transitions.shift();
if (acts[trans.unmark] && acts[trans.at]) {
$(lines).each(function(k,val){
if (val['From'] == acts[trans.unmark] && val['To'] == acts[trans.at]) {
changelines('green','red');
drawline(val['From'],val['To'],val['Between'],'green');
}
});
} else {
buff.push(trans);
}
}
transitions = buff;
}
function transdraw2(station) {
if (lastpos) {
$(lines).each(function(k,val){
if (val['From'] == lastpos && val['To'] == station) {
changelines('green','red');
drawline(val['From'],val['To'],val['Between'],'green');
//console.log(lastpos);
}
});
}
lastpos = station;
}
function websocket() { //{{{
var url = $('body').attr('current-instance');
var Socket = "MozWebSocket" in window ? MozWebSocket : WebSocket;
if (ws) ws.close();
ws = new Socket(url.replace(/http/,'ws') + "/notifications/subscriptions/" + subscription + "/ws/");
ws.onopen = function() {
console.log("monitoring", "opened", "");
};
ws.onmessage = function(e) {
data = $.parseXML(e.data);
if ($('event > topic',data).length > 0) {
switch($('event > topic',data).text()) {
case 'condition':
var data = JSON.parse($('event > notification',data).text());
if (data.condition == "true") {
$('#detailcolumn .stations').append($('
' + data.code + '
'));
}
case 'dataelements':
var data = JSON.parse($('event > notification',data).text());
var schrott = data.values.schrott;
console.log(schrott);
console.log(schrott["tatsächlicher Status"]);
console.log(schrott["schrott"]);
//var schrott_value = (JSON.parse(schrott)["schrott"]);
var schrott_value = schrott["schrott"];
var schrott_percent = schrott_value*100;
var schrott_grenze = schrott['Wahrscheinlickeitsgrenze'];
var grenze_percent = schrott_grenze*100
console.log(data);
if (data.label == 'Identifikation 110'){
$('#detailcolumn .instance').append($('
Verschrottungswahrscheinlichkeit: | '
+ schrott_percent.toFixed(2)
+ '% |
Status lt. Daten: | ' + schrott['tatsächlicher Status']
+ ' |
Vorhersage: | ' + schrott['Vorhersage'] + ' (Grenze von ' + grenze_percent.toFixed(2) + '%) '
+' |
'));
}
case 'position':
// var data = JSON.parse($('event > notification',data).text());
// if (data.unmark && data.at) {
// transitions.push({unmark: data.unmark[0], at: data.at[0]});
// transdraw();
// }
break;
case 'activity':
var data = JSON.parse($('event > notification',data).text());
var activity = data.activity;
var label = data.label;
var station = label.match(/ ([\d\/-]+)$/)[1];
if (station.split('/').length > 1) {
station = station.split('/')[0];
$(station.split('/')).each(function(k,val){
acts[activity] = val;
});
} else {
acts[activity] = station;
}
$('g.node[data-id=' + station + ']').addClass('active');
transdraw2(station);
$('#detailcolumn .stations').append($('' + station + '
'));
break;
}
}
if ($('vote > topic',data).length > 0) {
}
};
ws.onclose = function() {
console.log("monitoring", "closed", "server down i assume.");
};
} //}}}
$(document).ready(function(){
// $("#graphcolumn .draw").on('click','g.node',getnode);
// $("#graphcolumn .draw").click('click',getpos);
$.get("nodes.yaml", function(res) {
var nodes = jsyaml.load(res);
$(nodes).each(function(k,val){
drawnode(val['ID'],val['X'],val['Y'],val['Name']);
});
});
$.get("lines.yaml", function(res) {
lines = jsyaml.load(res);
});
$('#run').click(function(){
var value = $('#inumber').val();
var jsonv = {radsatz: value};
var value_json = JSON.stringify(jsonv);
//var endpoint = "http://172.21.0.30/test.php?radsatz=" + value;
//var jsonend = {read_me_out: endpoint};
//var endpoint_json = JSON.stringify(jsonend);
console.log('Here it comes');
console.log(value);
$('#detailcolumn .stations').empty();
$('#graphcolumn .draw .lines').empty();
$('#graphcolumn .draw .texts g.node.active').removeClass('active');
$.ajax({
type: "POST",
//url: "http://localhost:9090/cpee-cockpit/start/instantiation",
// url: "http://localhost:8080/testsets/Concurrent.xml"
//url: "centurio.loc:9090/cpee-cockpit/testsets/Fulltest_3.6.xml"
//Url: "http://172.21.0.30/cpee-cockpit/testsets/Fulltest_3.6.xml"
url: 'http://localhost:9296/url',
data: { info: "OEBB Sim", behavior: "fork_ready", url: "http://172.18.0.30/cpee-cockpit/testsets/Fulltest_3.6.xml", init: value_json},
success: function(url){
console.log(url);
url = url['CPEE-INSTANCE-URL'];
$('#detailcolumn .instance').show();
$('#detailcolumn .instance a').text(url);
$('#detailcolumn .instance a').attr('href','http://localhost:9090/cpee-cockpit/?monitor=' + url);
$('body').attr('current-instance',url);
$.ajax({
type: "POST",
url: url + "/notifications/subscriptions/",
data: sub,
success: function(res){
res = res.unserialize();
$.each(res,function(a,b){
if (b[0] == 'key') {
subscription = b[1];
}
});
websocket();
}
});
}
});
});
});