adding server status messages

origin
steffen 6 years ago
parent 12441ee0fb
commit 3009c38ac9

@ -1,4 +1,4 @@
2020-02-09:
- Reverse funktioniert nicht immer.
- Reverse funktioniert nicht immer?

@ -1,3 +1,6 @@
2020-03-22:
- adding server status messages
2020-03-06:
- fixed: speed and stepcoding

@ -138,7 +138,6 @@ void Network::ChangeListPushToAll(string changes) {
};
int Network::ServerLoop() {
UNIX *u = NULL;
@ -255,11 +254,17 @@ int Network::ClientLoop(UNIX *client) {
je.Clear();
je.Set("success", 1);
jsonout.AddObject(je);
je.Clear();
je.Set("serverstatus", server->GetStatus());
jsonout.AddObject(je);
}
else {
je.Clear();
je.Set("success", 0);
jsonout.AddObject(je);
je.Clear();
je.Set("serverstatus", "ERROR");
jsonout.AddObject(je);
}
s = jsonout.ToString();
client->Write((char*)s.c_str(), strlen(s.c_str()));

@ -44,6 +44,7 @@ Server::Server() {
thread = 0;
thread_running = 0;
railways.SetSize(200, 200);
status_text = "init server";
Load ();
};
@ -66,13 +67,11 @@ void Server::ThreadProcess() {
void Server::LockThread() {
debug(DEBUG_INFO, "%s:%d Server::LockThread", __FILE__, __LINE__);
pthread_mutex_lock (&mtx);
};
void Server::UnLockThread() {
debug (DEBUG_INFO, "%s:%d Server::UnLockThreads", __FILE__, __LINE__);
pthread_mutex_unlock (&mtx);
};
@ -101,4 +100,42 @@ bool Server::IsChanged() {
}
//
// Set Mode Auto
void Server::ModeAuto() {
debug (0, "%s:%d * Mode Auto", __FILE__, __LINE__);
status_text = "Mode Auto";
}
//
// Set Mode Manual
void Server::ModeManual() {
debug (0, "%s:%d * Mode Manual", __FILE__, __LINE__);
status_text = "Mode Manual";
}
//
// Set Mode Error
// FIXME: maybe adding error text as parameter?
void Server::ModeError(string text) {
debug (0, "%s:%d * Mode Error :'%s'", __FILE__, __LINE__, text.c_str());
status_text = "Error:'" + text + "'";
}
//
// Set Mode Reset
void Server::ModeReset() {
debug (0, "%s:%d * Reset Data", __FILE__, __LINE__);
status_text = "Mode Reset";
};
string Server::GetStatus(void) {
string retval;
LockThread();
retval = status_text;
UnLockThread();
return retval;
};

@ -29,7 +29,7 @@
#include "sensor.h"
#include "interface.h"
enum {
enum SSTATUS {
SSTATUS_STARTUP,
SSTATUS_RESET,
SSTATUS_MANUAL,
@ -38,7 +38,7 @@ enum {
SSTATUS_MAX
};
enum {
enum MRESET {
MRESET_STEP_INTERFACES,
MRESET_STEP_LOCOMOTIVES,
MRESET_STEP_TURNOUTS,
@ -47,8 +47,8 @@ enum {
MRESET_STEP_MAX
};
struct {
int mr_step; // current step
struct s_ModeResetData{
int mr_step; // current step
int mr_timestamp; // timestamp ( needed for times )
int mr_idx; // mode index
} typedef ModeResetData;
@ -57,8 +57,8 @@ struct {
class Server {
private:
int status; // holds the current mode
int status_progress; // to return a value from 0-100
int mode; // holds the current mode
int mode_progress; // to return a value from 0-100
string status_text; // some text
ModeResetData data_reset;
@ -119,10 +119,11 @@ public:
// FIXME:
// FIXME:
JSONParse GetJSONServerStatus();
void ModeReset(); // mode Reset if finished will go to Manual
void ModeManual(); // Manual Mode
void ModeAuto(); // only allowed if Manual was set
void ModeError(); // will cut power and keep this mode, until reset or Mode Manual
void ModeReset(); // mode Reset if finished will go to Manual
void ModeManual(); // Manual Mode
void ModeAuto(); // only allowed if Manual was set
void ModeError(string text); // will cut power and keep this mode, until reset or Mode Manual
string GetStatus(); // return status
/////////////////////////////////////////
// Railway
@ -139,7 +140,6 @@ public:
int TurnoutDelete(string name) { return turnouts.Delete(name); };
int TurnoutSet(string name, int active) { return turnouts.Set(name, active); };
/////////////////////////////////////////
// Interface
int InterfaceChange(Interface *i) { return interfaces.Change(i); };

@ -72,7 +72,7 @@ int Session::ProcessData(JSONParse *jin, JSONParse *jout) {
AddJSONTurnout(jin);
}
else if (command.compare("delturnout") == 0) {
debug (0, "* Session del Turnout");
debug (0, "* Session Del Turnout");
DelJSONTurnout(jin);
}
else if (command.compare("addlocomotive") == 0) {
@ -113,8 +113,7 @@ int Session::ProcessData(JSONParse *jin, JSONParse *jout) {
}
else if (command.compare("resetdata") == 0) {
debug (0, "* Reset All Data");
#warning FIXME: continue here
// server->ResetData();
server->ModeReset();
}
else if (command.compare("getall") == 0) {
json.Clear();

@ -43,8 +43,8 @@
<a href="#" onclick="blockdetail_show(this);">Block</a>
</div>
</div>
<div id="infoserverstatus" style="float:right; padding: 8px 8px;">notconnected</div>
<div id="infoline" style="float:right; padding: 8px 8px;">editinfo</div>
<div id="infoclient" style="float:right; padding: 8px 8px;">infoclient</div>
<div id="infoserver" style="float:right; padding: 8px 8px;">infoserver</div>
</div>
<div class="page_side">
@ -100,7 +100,7 @@ $(document).ready(function() {
var client = document.getElementById("page_main");
var canvas = trackCreate(5, 5);
var text = document.getElementById("infoline");
var text = document.getElementById("infoserver");
text.innerHTML = "---";
client.appendChild (canvas);

@ -39,23 +39,23 @@ function serverinout(request, callback) {
jsonData = JSON.parse(response);
if (jsonData.success == "1")
{
var serverstatus = document.getElementById("infoserverstatus");
serverstatus.innerHTML = "connected";
var clientstatus = document.getElementById("infoclient");
clientstatus.innerHTML = "connected";
callback(jsonData);
}
else
{
var serverstatus = document.getElementById("infoserverstatus");
serverstatus.innerHTML = "-trying-";
var clientstatus = document.getElementById("infoclient");
clientstatus.innerHTML = "-trying-";
}
// ENABLE LATER } catch(err) {
// ENABLE LATER var serverstatus = document.getElementById("infoserverstatus");
// ENABLE LATER var serverstatus = document.getElementById("infoserver");
// ENABLE LATER serverstatus.innerHTML = "-error-";
// ENABLE LATER }
},
error: function(error) {
var serverstatus = document.getElementById("infoserverstatus");
serverstatus.innerHTML = "ajax error";
var status = document.getElementById("infoclient");
status.innerHTML = "ajax error";
}
});
};
@ -92,7 +92,7 @@ function serverinout_Save(data) {
function serverinout_defaultCallback(data) {
// if (data.changes) if (data.changes.length > 0) debug ("From Server :" + JSON.stringify(data));
if (data.changes) if (data.changes.length > 0) debug ("From Server :" + JSON.stringify(data));
if (data.info) {
}
if (data.sid && data.rid) {
@ -105,9 +105,10 @@ function serverinout_defaultCallback(data) {
for (var i = 0; i < data.changes.length; i++) {
//
// infoline
if (data.changes[i].infoline) {
var text = document.getElementById("infoline");
text.innerHTML = data.changes[i].infoline;
if (data.serverstatus) {
var text = document.getElementById("infoserver");
debug ("SERVER STATUS");
text.innerHTML = data.serverstatus;
}
//

Loading…
Cancel
Save