|
|
|
@ -2,7 +2,10 @@
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
const LOCO_F_REVERSE = 1;
|
|
|
|
|
const LOCO_F_REVERSE = 0x0001;
|
|
|
|
|
const LOCO_F_CARGO = 0x0002;
|
|
|
|
|
const LOCO_F_AUTO = 0x0100;
|
|
|
|
|
const LOCO_F_RANDOM = 0x0200;
|
|
|
|
|
|
|
|
|
|
var locomotives = [];
|
|
|
|
|
|
|
|
|
@ -25,7 +28,10 @@ function locomotive_Update(data) {
|
|
|
|
|
locomotives[i].vfast = data.vfast;
|
|
|
|
|
locomotives[i].vmax = data.vmax;
|
|
|
|
|
locomotives[i].flags = data.flags;
|
|
|
|
|
|
|
|
|
|
locomotives[i].blockassign = data.blockassing;
|
|
|
|
|
locomotives[i].blockpref = data.blockpref;
|
|
|
|
|
locomotives[i].blocknext = data.blocknext;
|
|
|
|
|
locomotives[i].blockdestination = data.blockdestination;
|
|
|
|
|
locodetail_setData(locomotives[i]);
|
|
|
|
|
lococtrl_setData(data);
|
|
|
|
|
return;
|
|
|
|
@ -140,6 +146,14 @@ function locodetail_show(loconame) {
|
|
|
|
|
Flags: <input id=\"locodet_flags\" style=\"width: 50\"> \
|
|
|
|
|
</div> <hr>\
|
|
|
|
|
<div> <table><tr><td> \
|
|
|
|
|
<table><tr><td> \
|
|
|
|
|
<label><input id=\"locodet_reverse\" type=\"checkbox\" value=\"\"> Reverse</label><br> \
|
|
|
|
|
<label><input id=\"locodet_cargo\" type=\"checkbox\" value=\"\"> Cargo</label> \
|
|
|
|
|
</td><td> \
|
|
|
|
|
<label><input id=\"locodet_auto\" type=\"checkbox\" value=\"\" disabled> Auto</label><br> \
|
|
|
|
|
<label><input id=\"locodet_random\" type=\"checkbox\" value=\"\" disabled> Random</label> \
|
|
|
|
|
</td></tr></table> \
|
|
|
|
|
\
|
|
|
|
|
<fieldset><legend>Speed</legend> <table>\
|
|
|
|
|
<tr><td></td><td>Stop</td><td><button id=\"locodet_btnvstop\" type=\"button\" value=\"vstop\">X</button> </td></tr>\
|
|
|
|
|
<tr><td>Vmin:</td><td><input id=\"locodet_vmin\" style=\"width: 50\"></td><td><button id=\"locodet_btnvmin\" type=\"button\" value=\"vmin\">X</button> </td></tr>\
|
|
|
|
@ -147,15 +161,23 @@ function locodetail_show(loconame) {
|
|
|
|
|
<tr><td>Vmid:</td><td><input id=\"locodet_vmid\" style=\"width: 50\"></td><td><button id=\"locodet_btnvmid\" type=\"button\" value=\"vmid\">X</button> </td></tr> \
|
|
|
|
|
<tr><td>Vfast:</td><td><input id=\"locodet_vfast\" style=\"width: 50\"></td><td><button id=\"locodet_btnvfast\" type=\"button\" value=\"vfast\">X</button> </td></tr> \
|
|
|
|
|
<tr><td>Vmax:</td><td><input id=\"locodet_vmax\" style=\"width: 50\"></td><td><button id=\"locodet_btnvmax\" type=\"button\" value=\"vmax\">X</button> </td></tr> \
|
|
|
|
|
</table></td></fieldset> \
|
|
|
|
|
<tr><td>Current:</td><td><input id=\"locodet_speed\" style=\"width: 50\"></td></tr></table> \
|
|
|
|
|
\
|
|
|
|
|
</fieldset></td> \
|
|
|
|
|
<td> \
|
|
|
|
|
<fieldset><legend>Code</legend> \
|
|
|
|
|
<label><input type=\"radio\" id=\"locodet_DCC14\" name=\"STEPCODE\" value=\"1\">DCC14</label><br> \
|
|
|
|
|
<label><input type=\"radio\" id=\"locodet_DCC28\" name=\"STEPCODE\" value=\"2\">DCC28</label><br> \
|
|
|
|
|
<label><input type=\"radio\" id=\"locodet_DCC128\" name=\"STEPCODE\" value=\"3\">DCC128</label><br> \
|
|
|
|
|
</fieldset> \
|
|
|
|
|
Speed: <input id=\"locodet_speed\" style=\"width: 50\"><br> \
|
|
|
|
|
<label><input id=\"locodet_reverse\" type=\"checkbox\" value=\"\"> Reverse</label> \
|
|
|
|
|
\
|
|
|
|
|
<fieldset><legend>Block</legend><table> \
|
|
|
|
|
<tr><td>Destination:</td><td><input id=\"locodet_blockdest\" style=\"width: 50\" disabled></td></tr> \
|
|
|
|
|
<tr><td>Assined:</td><td><input id=\"locodet_blockassign\" style=\"width: 50\" disabled></td></tr> \
|
|
|
|
|
<tr><td>Next:</td><td><input id=\"locodet_blocknext\" style=\"width: 50\" disabled></td></tr> \
|
|
|
|
|
<tr><td>Prev:</td><td><input id=\"locodet_blockprev\" style=\"width: 50\" disabled></td></tr> \
|
|
|
|
|
</table></fileset>\
|
|
|
|
|
\
|
|
|
|
|
</td></tr></table></div> <hr>\
|
|
|
|
|
<div align=right> \
|
|
|
|
|
<button id=\"locodet_SAVE\" type=\"button\">Save</button> \
|
|
|
|
@ -172,6 +194,7 @@ function locodetail_show(loconame) {
|
|
|
|
|
gAddEventListener("locodet_btnvfast", 'click', locodetail_cb_btnmove);
|
|
|
|
|
gAddEventListener("locodet_btnvmax", 'click', locodetail_cb_btnmove);
|
|
|
|
|
gAddEventListener("locodet_reverse", 'click', locodetail_cb_reverse);
|
|
|
|
|
gAddEventListener("locodet_cargo", 'click', locodetail_cb_cargo);
|
|
|
|
|
|
|
|
|
|
// gAddEventListener("locodet_DCC14", 'click', locodetail_cb_stepcode);
|
|
|
|
|
// gAddEventListener("locodet_DCC28", 'click', locodetail_cb_stepcode);
|
|
|
|
@ -206,11 +229,27 @@ function locodetail_cb_reverse () {
|
|
|
|
|
var flags = document.getElementById("locodet_flags");
|
|
|
|
|
|
|
|
|
|
if (cbreverse.checked) {
|
|
|
|
|
flags.value = Number(flags.value) | 1;
|
|
|
|
|
flags.value = Number(flags.value) | LOCO_F_REVERSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
flags.value = Number(flags.value) & (0xFFFF-LOCO_F_REVERSE);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// cargo selected, setup flags
|
|
|
|
|
function locodetail_cb_cargo () {
|
|
|
|
|
var cbcargo = document.getElementById("locodet_cargo");
|
|
|
|
|
var flags = document.getElementById("locodet_flags");
|
|
|
|
|
|
|
|
|
|
if (cbcargo .checked) {
|
|
|
|
|
flags.value = Number(flags.value) | LOCO_F_CARGO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
flags.value = Number(flags.value) & (0xFFFF-1);
|
|
|
|
|
flags.value = Number(flags.value) & (0xFFFF-LOCO_F_CARGO);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -334,6 +373,13 @@ function locodetail_setData(elm) {
|
|
|
|
|
var loco_vfast = document.getElementById("locodet_vfast");
|
|
|
|
|
var loco_vmax = document.getElementById("locodet_vmax");
|
|
|
|
|
var loco_reverse = document.getElementById("locodet_reverse");
|
|
|
|
|
var loco_cargo = document.getElementById("locodet_cargo");
|
|
|
|
|
var loco_auto = document.getElementById("locodet_auto");
|
|
|
|
|
var loco_random = document.getElementById("locodet_random");
|
|
|
|
|
var loco_blockassign = document.getElementById("locodet_blockassign");
|
|
|
|
|
var loco_blockdest = document.getElementById("locodet_blockdest");
|
|
|
|
|
var loco_blocknext = document.getElementById("locodet_blocknext");
|
|
|
|
|
var loco_blockprev = document.getElementById("locodet_blockpev");
|
|
|
|
|
|
|
|
|
|
if (elm) {
|
|
|
|
|
if (loco_name) loco_name.value = elm.name;
|
|
|
|
@ -347,9 +393,25 @@ function locodetail_setData(elm) {
|
|
|
|
|
if (loco_vfast) loco_vfast.value = elm.vfast;
|
|
|
|
|
if (loco_vmax) loco_vmax.value = elm.vmax;
|
|
|
|
|
if (loco_reverse) {
|
|
|
|
|
if (Number(elm.flags) & 1) loco_reverse.checked = true;
|
|
|
|
|
if (Number(elm.flags) & LOCO_F_REVERSE) loco_reverse.checked = true;
|
|
|
|
|
else loco_reverse.checked = false;
|
|
|
|
|
}
|
|
|
|
|
if (loco_cargo) {
|
|
|
|
|
if (Number(elm.flags) & LOCO_F_CARGO) loco_cargo.checked = true;
|
|
|
|
|
else loco_cargo.checked = false;
|
|
|
|
|
}
|
|
|
|
|
if (loco_auto) {
|
|
|
|
|
if (Number(elm.flags) & LOCO_F_AUTO) loco_auto.checked = true;
|
|
|
|
|
else loco_auto.checked = false;
|
|
|
|
|
}
|
|
|
|
|
if (loco_random) {
|
|
|
|
|
if (Number(elm.flags) & LOCO_F_RANDOM) loco_random.checked = true;
|
|
|
|
|
else loco_random.checked = false;
|
|
|
|
|
}
|
|
|
|
|
if (loco_blockassign) loco_blockassign = elm.blockassign;
|
|
|
|
|
if (loco_blockdest) loco_blockdest = elm.blockdest;
|
|
|
|
|
if (loco_blocknext) loco_blocknext= elm.blocknext;
|
|
|
|
|
if (loco_blockprev) loco_blockprev = elm.blockprev;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|