diff --git a/ChangeLog b/ChangeLog
index accfc55..505a33a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/server/block.cc b/server/block.cc
index b07b5b8..0b94c81 100644
--- a/server/block.cc
+++ b/server/block.cc
@@ -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) {
diff --git a/server/block.h b/server/block.h
index dc3c7ed..ebcdb2e 100644
--- a/server/block.h
+++ b/server/block.h
@@ -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
diff --git a/webinterface/block.js b/webinterface/block.js
index 41b58ec..0a1ebd0 100644
--- a/webinterface/block.js
+++ b/webinterface/block.js
@@ -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) {
\
\
\
+ \
\
| \
\
@@ -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;