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: 2021-03-07:
- fixed: high cpu load, sleep function was not working right. If the current - 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. 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) { if ((bl = FindBlock(blname)) != NULL) {
changed = 1; changed = 1;
bl->flags |= BLOCK_F_OFF; 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)); jp.AddObject("block",_GetJSON(bl));
if(network) network->ChangeListPushToAll(jp.ToString()); if(network) network->ChangeListPushToAll(jp.ToString());
@ -213,7 +213,7 @@ int Blocks::SetLockedby (string blname, string lockedby, int lock_onoff) {
int res = -1; int res = -1;
int x, y; 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(); Lock();
if ((bl = FindBlock(blname)) != NULL) { if ((bl = FindBlock(blname)) != NULL) {

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

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

Loading…
Cancel
Save