Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

Commit

Permalink
implements #95
Browse files Browse the repository at this point in the history
  • Loading branch information
Christian Benjamin Ries committed Apr 10, 2021
1 parent 2aa42cd commit bc477a3
Show file tree
Hide file tree
Showing 12 changed files with 413 additions and 11 deletions.
5 changes: 4 additions & 1 deletion EcosApp/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -838,7 +838,8 @@ var loadSideBar = (function () {
groupShowHide: true,
nodes: [
{ id: 'cmdHelp', text: 'Help', icon: 'fas fa-question-circle' },
{ id: 'cmdAbout', text: 'About', icon: 'fas fa-address-card' }
{ id: 'cmdAbout', text: 'About', icon: 'fas fa-address-card' },
{ id: 'cmdReport', text: 'Report', icon: 'far fa-newspaper' }
]
}
],
Expand Down Expand Up @@ -954,6 +955,8 @@ var loadSideBar = (function () {
'</table></div>'
});
w2ui['sidebar'].unselect('cmdAbout');
} else if(target === "cmdReport") {
window.open("/report.html", '_blank').focus();
}
}
});
Expand Down
4 changes: 2 additions & 2 deletions EcosApp/railessentials.min.js

Large diffs are not rendered by default.

87 changes: 86 additions & 1 deletion EcosApp/report.html
Original file line number Diff line number Diff line change
@@ -1 +1,86 @@
Hello World!
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>RailEssentials Report</title>
<style type="text/css">
html, body {
font-family: Verdana,Arial,sans-serif;
font-size: 12px;
background: #fcfcfc;
height: 100%;
margin: 10px;
padding: 0;
}

table, th, td {
border: 1px solid black;
}

table {
border-collapse: collapse;
}

th, td {
vertical-align: middle;
padding: 5px;
}

tr:hover {
background-color: #f5f5f5;
}

th {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>

<h1>Locomotives</h1>
<table>
<tr>
<th>Object ID</th>
<th>Name</th>
<th>Protocol</th>
<th>Address</th>
<th>Speedstep (max)</th>
<th>No. of Functions</th>
</tr>
<tr><td>1001</td><td>S 3/6 BR18.4 gr</td><td>MMFKT</td><td>36</td><td>14</td><td>3</td></tr><tr><td>1002</td><td>S 3/6 BR18.4 sw</td><td>MMFKT</td><td>18</td><td>14</td><td>3</td></tr><tr><td>1003</td><td>BR 75 057</td><td>MFX</td><td>0</td><td>128</td><td>4</td></tr><tr><td>1004</td><td>74 854 DB</td><td>MFX</td><td>0</td><td>128</td><td>2</td></tr><tr><td>1005</td><td>V16 101 (blau)</td><td>DCC28</td><td>3</td><td>28</td><td>7</td></tr><tr><td>1006</td><td>V 80</td><td>MMFKT</td><td>24</td><td>14</td><td>1</td></tr><tr><td>1008</td><td>BR10</td><td>MM14</td><td>10</td><td>14</td><td>5</td></tr><tr><td>1009</td><td>BR41 354</td><td>MM14</td><td>20</td><td>14</td><td>5</td></tr><tr><td>1010</td><td>BR52</td><td>MM14</td><td>6</td><td>14</td><td>1</td></tr><tr><td>1012</td><td>BR 86 130</td><td>MM14</td><td>79</td><td>14</td><td>2</td></tr><tr><td>1013</td><td>DIESEL 221</td><td>MM14</td><td>21</td><td>14</td><td>5</td></tr><tr><td>1014</td><td>Emma</td><td>MFX</td><td>0</td><td>128</td><td>4</td></tr>
</table>

<h1>Accessories</h1>
<table>
<tr>
<th>Coord</th>
<th>Type</th>
<th>Name</th>
<th>Ecos Address</th>
<th>Port 1</th>
<th>Address 1</th>
<th>Inverse 1</th>
<th>Port 2</th>
<th>Address 2</th>
<th>Inverse 2</th>
<th>Maintenance</th>
</tr>
<tr><td>15x3</td><td>Switch</td><td>Turnout Right</td><td>1</td><td>1</td><td>1</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>15x2</td><td>Switch</td><td>Turnout Right</td><td>2</td><td>2</td><td>1</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>15x1</td><td>Switch</td><td>Turnout Left</td><td>3</td><td>3</td><td>1</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>15x6</td><td>Switch</td><td>Turnout Left</td><td>4</td><td>4</td><td>1</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>15x7</td><td>Switch</td><td>Turnout Left</td><td>5</td><td>1</td><td>2</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>15x8</td><td>Switch</td><td>Turnout Right</td><td>6</td><td>2</td><td>2</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>1x4</td><td>Switch</td><td>Turnout Right</td><td>7</td><td>3</td><td>2</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>1x3</td><td>Switch</td><td>Turnout Right</td><td>8</td><td>4</td><td>2</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>1x2</td><td>Switch</td><td>Turnout Right</td><td>9</td><td>1</td><td>3</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>2x5</td><td>Switch</td><td>Turnout Right</td><td>10</td><td>2</td><td>3</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>2x6</td><td>Switch</td><td>Turnout Left</td><td>11</td><td>3</td><td>3</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>2x7</td><td>Switch</td><td>Turnout Left</td><td>12</td><td>4</td><td>3</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>7x16</td><td>Switch</td><td>Turnout Right</td><td>20</td><td>4</td><td>5</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>8x15</td><td>Switch</td><td>Turnout Right</td><td>21</td><td>1</td><td>6</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>8x17</td><td>Switch</td><td>Turnout Right</td><td>22</td><td>2</td><td>6</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>8x18</td><td>Switch</td><td>Turnout Left</td><td>23</td><td>3</td><td>6</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>9x13</td><td>Switch</td><td>Crossing Left sr</td><td>25</td><td>1</td><td>7</td><td>False</td><td>4</td><td>6</td><td>False</td><td>False</td></tr><tr><td>21x18</td><td>Switch</td><td>Crossing Left sr</td><td>27</td><td>3</td><td>7</td><td>False</td><td>2</td><td>7</td><td>True</td><td>False</td></tr><tr><td>24x16</td><td>Switch</td><td>Turnout Right</td><td>28</td><td>4</td><td>7</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>24x15</td><td>Switch</td><td>Turnout Left</td><td>29</td><td>1</td><td>8</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>22x13</td><td>Switch</td><td>Turnout Right</td><td>30</td><td>2</td><td>8</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>16x8</td><td>Switch</td><td>Turnout Left</td><td>32</td><td>4</td><td>8</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>16x9</td><td>Switch</td><td>Turnout Left</td><td>33</td><td>1</td><td>9</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>28x2</td><td>Switch</td><td>Turnout Right</td><td>36</td><td>4</td><td>9</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>31x7</td><td>Switch</td><td>Turnout Right</td><td>41</td><td>1</td><td>11</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>29x7</td><td>Switch</td><td>Turnout Left</td><td>42</td><td>2</td><td>11</td><td>False</td><td>0</td><td>0</td><td>False</td><td>True</td></tr><tr><td>29x5</td><td>Switch</td><td>Turnout Left</td><td>43</td><td>3</td><td>11</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>29x8</td><td>Switch</td><td>Turnout Left</td><td>44</td><td>4</td><td>11</td><td>False</td><td>0</td><td>0</td><td>False</td><td>True</td></tr><tr><td>21x1</td><td>Switch</td><td>Turnout Right</td><td>61</td><td>1</td><td>16</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>4x9</td><td>Signal</td><td>Main Semaphore A</td><td>65</td><td>1</td><td>17</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>0x12</td><td>Switch</td><td>Turnout Left</td><td>66</td><td>2</td><td>17</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>3x9</td><td>Switch</td><td>Turnout Left</td><td>67</td><td>3</td><td>17</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>1x5</td><td>Switch</td><td>Turnout Right</td><td>68</td><td>4</td><td>17</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>22x6</td><td>Decoupler</td><td>Decoupler</td><td>69</td><td>1</td><td>18</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>22x7</td><td>Decoupler</td><td>Decoupler</td><td>71</td><td>3</td><td>18</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>22x8</td><td>Decoupler</td><td>Decoupler</td><td>72</td><td>4</td><td>18</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>20x8</td><td>Signal</td><td>Shunting Signal</td><td>73</td><td>1</td><td>19</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>20x7</td><td>Signal</td><td>Shunting Signal</td><td>74</td><td>2</td><td>19</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>20x6</td><td>Signal</td><td>Shunting Signal</td><td>75</td><td>3</td><td>19</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>28x8</td><td>Signal</td><td>Shunting Signal</td><td>77</td><td>1</td><td>20</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>28x7</td><td>Signal</td><td>Shunting Signal</td><td>78</td><td>2</td><td>20</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>28x6</td><td>Signal</td><td>Shunting Signal</td><td>79</td><td>3</td><td>20</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>33x7</td><td>Signal</td><td>Distant Signal</td><td>80</td><td>4</td><td>20</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>23x15</td><td>Signal</td><td>Main Signal A</td><td>81</td><td>1</td><td>21</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>23x16</td><td>Signal</td><td>Main Signal A</td><td>82</td><td>2</td><td>21</td><td>True</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>1x9</td><td>Switch</td><td>Turnout Right</td><td>100</td><td>4</td><td>25</td><td>False</td><td>0</td><td>0</td><td>False</td><td>False</td></tr><tr><td>19x8</td><td>Button</td><td>Output A</td><td>1024</td><td>4</td><td>256</td><td>False</td><td>-1</td><td>-1</td><td>False</td><td>False</td></tr><tr><td>19x7</td><td>Button</td><td>Output A</td><td>1025</td><td>1</td><td>257</td><td>False</td><td>-1</td><td>-1</td><td>False</td><td>False</td></tr><tr><td>19x6</td><td>Button</td><td>Output A</td><td>1026</td><td>2</td><td>257</td><td>False</td><td>-1</td><td>-1</td><td>False</td><td>False</td></tr>
</table>

<h1>Sensors (S88)</h1>
<table>
<tr>
<th>Coord</th>
<th>Name</th>
<th>Address</th>
</tr>
<tr><td>13x1</td><td>Sensor</td><td>1</td></tr><tr><td>11x1</td><td>Sensor</td><td>2</td></tr><tr><td>13x3</td><td>Sensor</td><td>3</td></tr><tr><td>13x4</td><td>Sensor</td><td>4</td></tr><tr><td>13x5</td><td>Sensor</td><td>5</td></tr><tr><td>13x6</td><td>Sensor</td><td>6</td></tr><tr><td>13x7</td><td>Sensor</td><td>7</td></tr><tr><td>13x8</td><td>Sensor</td><td>8</td></tr><tr><td>13x2</td><td>Sensor</td><td>9</td></tr><tr><td>11x2</td><td>Sensor</td><td>10</td></tr><tr><td>11x3</td><td>Sensor</td><td>11</td></tr><tr><td>11x4</td><td>Sensor</td><td>12</td></tr><tr><td>11x7</td><td>Sensor</td><td>13</td></tr><tr><td>11x5</td><td>Sensor</td><td>14</td></tr><tr><td>11x6</td><td>Sensor</td><td>15</td></tr><tr><td>11x8</td><td>Sensor</td><td>16</td></tr><tr><td>4x1</td><td>Sensor</td><td>17</td></tr><tr><td>4x2</td><td>Sensor</td><td>18</td></tr><tr><td>4x3</td><td>Sensor</td><td>19</td></tr><tr><td>4x4</td><td>Sensor</td><td>20</td></tr><tr><td>4x5</td><td>Sensor</td><td>21</td></tr><tr><td>4x6</td><td>Sensor</td><td>22</td></tr><tr><td>4x7</td><td>Sensor</td><td>23</td></tr><tr><td>4x8</td><td>Sensor</td><td>24</td></tr><tr><td>2x9</td><td>Sensor</td><td>27</td></tr><tr><td>3x10</td><td>Sensor</td><td>28</td></tr><tr><td>0x13</td><td>Sensor</td><td>29</td></tr><tr><td>1x17</td><td>Sensor</td><td>30</td></tr><tr><td>0x16</td><td>Sensor</td><td>31</td></tr><tr><td>5x17</td><td>Sensor</td><td>32</td></tr><tr><td>19x12</td><td>Sensor</td><td>33</td></tr><tr><td>14x12</td><td>Sensor</td><td>34</td></tr><tr><td>19x13</td><td>Sensor</td><td>35</td></tr><tr><td>14x13</td><td>Sensor</td><td>36</td></tr><tr><td>19x15</td><td>Sensor</td><td>37</td></tr><tr><td>12x15</td><td>Sensor</td><td>38</td></tr><tr><td>19x16</td><td>Sensor</td><td>39</td></tr><tr><td>12x16</td><td>Sensor</td><td>40</td></tr><tr><td>18x18</td><td>Sensor</td><td>41</td></tr><tr><td>11x18</td><td>Sensor</td><td>42</td></tr><tr><td>18x19</td><td>Sensor</td><td>43</td></tr><tr><td>11x19</td><td>Sensor</td><td>44</td></tr><tr><td>5x9</td><td>Sensor</td><td>45</td></tr><tr><td>7x9</td><td>Sensor</td><td>46</td></tr><tr><td>12x9</td><td>Sensor</td><td>47</td></tr><tr><td>14x9</td><td>Sensor</td><td>48</td></tr><tr><td>17x10</td><td>Sensor</td><td>49</td></tr><tr><td>26x11</td><td>Sensor</td><td>50</td></tr><tr><td>26x14</td><td>Sensor</td><td>51</td></tr><tr><td>25x10</td><td>Sensor</td><td>52</td></tr><tr><td>27x2</td><td>Sensor</td><td>53</td></tr><tr><td>22x2</td><td>Sensor</td><td>54</td></tr><tr><td>22x1</td><td>Sensor</td><td>55</td></tr><tr><td>27x1</td><td>Sensor</td><td>56</td></tr><tr><td>32x7</td><td>Sensor</td><td>57</td></tr><tr><td>26x8</td><td>Sensor</td><td>58</td></tr><tr><td>26x6</td><td>Sensor</td><td>59</td></tr><tr><td>21x6</td><td>Sensor</td><td>60</td></tr><tr><td>21x7</td><td>Sensor</td><td>61</td></tr><tr><td>21x8</td><td>Sensor</td><td>62</td></tr><tr><td>26x7</td><td>Sensor</td><td>63</td></tr>
</table>

<br/>

</body>
</html>
1 change: 1 addition & 0 deletions ecoslibNet48/Entities/Locomotive.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.Diagnostics;
using ecoslib.Statistics;
using ecoslib.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
// ReSharper disable InconsistentNaming

Expand Down
2 changes: 0 additions & 2 deletions railessentials/Metadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Windows.Documents;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using railessentials.Feedbacks;
Expand Down
4 changes: 3 additions & 1 deletion railessentials/Plan/PlanGlobals.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ public enum ThemeIdType
public static readonly List<int> DirectionIds = new() { 14 };
public static readonly List<int> ConnectorIds = new() { 17, 18, 19 };
public static readonly List<int> ButtonIds = new() { 71, 72, 73 };

public static readonly List<int> DecouplerIds = new() { 70 };

public static bool IsTrackItem(int themeId)
{
if (themeId < 0) return false;
Expand All @@ -33,6 +34,7 @@ public static bool IsTrackItem(int themeId)
if (SensorIds.Contains(themeId)) return true;
if (DirectionIds.Contains(themeId)) return true;
if (ConnectorIds.Contains(themeId)) return true;
if (DecouplerIds.Contains(themeId)) return true;
return false;
}

Expand Down
2 changes: 2 additions & 0 deletions railessentials/Plan/PlanItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ public PlanItemCoord EndCoord()
public bool IsConnector => PlanGlobals.ConnectorIds.Contains(editor.themeId);
[JsonIgnore]
public bool IsButton => PlanGlobals.ButtonIds.Contains(editor.themeId);
[JsonIgnore]
public bool IsDecoupler => PlanGlobals.DecouplerIds.Contains(editor.themeId);

public override string ToString()
{
Expand Down
2 changes: 1 addition & 1 deletion railessentials/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ private static void Main(string[] args)
});
}

_webServer = new WebServer(Cfg, _sniffer);
_webServer = new WebServer(Cfg, _sniffer, Metadata);
#if DEBUG
Cfg.WebServer.HttpRoot = Cfg.WebServer.HttpRootDebug;
Cfg.WebServer.HttpRootFallback = Cfg.WebServer.HttpRootDebug;
Expand Down
Loading

0 comments on commit bc477a3

Please sign in to comment.