added BLOCK_F_STATION flag to blocks

origin
steffen 5 years ago
parent 11dab29de7
commit 98d1d04207

@ -1,3 +1,7 @@
2021-03-09:
- added station flag to blocks
- fixed: locomotives can not assigned to new block if on mode LOCO_F_AUTO
2021-03-07:
- fixed: high cpu load, sleep function was not working right. If the current
loop took below 1ms we would ot wait for the 25ms to finish.

@ -176,7 +176,7 @@ int Blocks::SetOff(string blname) {
if ((bl = FindBlock(blname)) != NULL) {
changed = 1;
bl->flags |= BLOCK_F_OFF;
printf ("%s:%d set block %s off", __FILE__, __LINE__, bl->name);
debug (0, "Blocks::SetOff block %s", bl->name);
jp.AddObject("block",_GetJSON(bl));
if(network) network->ChangeListPushToAll(jp.ToString());
@ -213,7 +213,7 @@ int Blocks::SetLockedby (string blname, string lockedby, int lock_onoff) {
int res = -1;
int x, y;
debug (0, "Blocks:SetLockedby block:'%s' locked for '%s' locked:%d", blname.c_str(), lockedby.c_str(), lock_onoff);
debug (0, "Blocks::SetLockedby block:'%s' locked for '%s' locked:%d", blname.c_str(), lockedby.c_str(), lock_onoff);
Lock();
if ((bl = FindBlock(blname)) != NULL) {

@ -9,6 +9,7 @@
#define BLOCK_F_SHORT 0x0010
#define BLOCK_F_LONG 0x0020
#define BLOCK_F_ENDSTATION 0x0040
#define BLOCK_F_STATION 0x0080
#define BLOCK_F_SPEEDLIMIT 0x0100

@ -3,10 +3,11 @@
//
var blocks = [];
const BLOCK_F_OFF = 0x0001;
const BLOCK_F_SHORT = 0x0010;
const BLOCK_F_LONG = 0x0020;
const BLOCK_F_OFF = 0x0001;
const BLOCK_F_SHORT = 0x0010;
const BLOCK_F_LONG = 0x0020;
const BLOCK_F_ENDSTATION = 0x0040;
const BLOCK_F_STATION = 0x0080;
const BLOCK_F_SPEEDLIMIT = 0x0100;
@ -203,6 +204,7 @@ function blockdetail_show(name, create) {
<label><input id=\"blockdet_flaglong\" type=\"checkbox\" value=\"\">Long</label> \
</td><td> \
<label><input id=\"blockdet_flagend\" type=\"checkbox\" value=\"\">End</label><br> \
<label><input id=\"blockdet_flagstation\" type=\"checkbox\" value=\"\">Station</label><br> \
<label><input id=\"blockdet_flagspeedlimit\" type=\"checkbox\" value=\"\">Speed Limit</label><br> \
</td></tr></table> \
\
@ -355,6 +357,7 @@ function blockdetail_setData(elm) {
var flagshort = document.getElementById("blockdet_flagshort");
var flaglong = document.getElementById("blockdet_flaglong");
var flagend = document.getElementById("blockdet_flagend");
var flagstation = document.getElementById("blockdet_flagstation");
var flagspeedlimit = document.getElementById("blockdet_flagspeedlimit");
var sensorLU = document.getElementById("blockdet_sensorLU");
var sensorC = document.getElementById("blockdet_sensorC");
@ -367,6 +370,7 @@ function blockdetail_setData(elm) {
if (flagshort) flagshort.checked = Number(elm.flags) & BLOCK_F_SHORT;
if (flaglong) flaglong.checked = Number(elm.flags) & BLOCK_F_LONG;
if (flagend) flagend.checked = Number(elm.flags) & BLOCK_F_ENDSTATION;
if (flagstation) flagstation.checked = Number(elm.flags) & BLOCK_F_STATION;
if (flagspeedlimit) flagspeedlimit.checked = Number(elm.flags) & BLOCK_F_SPEEDLIMIT;
if (sensorLU) sensorLU.value = elm.sensor_pos_1;
if (sensorC) sensorC.value = elm.sensor_center;
@ -387,6 +391,7 @@ function blockdetail_getData() {
var flagshort = document.getElementById("blockdet_flagshort");
var flaglong = document.getElementById("blockdet_flaglong");
var flagend = document.getElementById("blockdet_flagend");
var flagstation = document.getElementById("blockdet_flagstation");
var flagspeedlimit = document.getElementById("blockdet_flagspeedlimit");
var sensorLU = document.getElementById("blockdet_sensorLU");
var sensorC = document.getElementById("blockdet_sensorC");
@ -401,7 +406,10 @@ function blockdetail_getData() {
else res.flags &= ~BLOCK_F_LONG;
if (flagend.checked) res.flags |= BLOCK_F_ENDSTATION;
else res.flags &= ~BLOCK_F_ENDSTATION;
if (flagstation.checked) res.flags |= BLOCK_F_STATION;
else res.flags &= ~BLOCK_F_STATION;
if (flagspeedlimit.checked) res.flags |= BLOCK_F_SPEEDLIMIT;
else res.flags &= ~BLOCK_F_SPEEDLIMIT;
if (sensorLU) res.sensor_pos_1 = sensorLU.value;
if (sensorC) res.sensor_center = sensorC.value;
if (sensorRD) res.sensor_neg_1 = sensorRD.value;

Loading…
Cancel
Save