Changeset 237 in tmcsimulator
- Timestamp:
- 12/13/2017 03:02:27 AM (8 years ago)
- Files:
-
- 6 added
- 8 edited
-
branches/unique_lane_types/.ipynb_checkpoints/unique_lane_types-checkpoint.ipynb (modified) (1 diff)
-
branches/unique_lane_types/unique_lane_types.ipynb (modified) (2 diffs)
-
trunk/IDE_metadata/NetBeans/TMCSim/nbproject/project.properties (modified) (1 diff)
-
trunk/src/atmsdriver/ConsoleTrafficDriver.java (modified) (1 diff)
-
trunk/src/atmsdriver/batchbuilder (added)
-
trunk/src/atmsdriver/batchbuilder/BatchBuilderGUI.form (added)
-
trunk/src/atmsdriver/batchbuilder/BatchBuilderGUI.java (added)
-
trunk/src/atmsdriver/batchbuilder/TimeFrame.java (added)
-
trunk/src/atmsdriver/batchbuilder/TimeFrames.java (added)
-
trunk/src/atmsdriver/batchbuilder/TrafficLaneEvent.java (added)
-
trunk/src/atmsdriver/model/Highway.java (modified) (3 diffs)
-
trunk/src/atmsdriver/model/Highways.java (modified) (3 diffs)
-
trunk/src/atmsdriver/model/Station.java (modified) (3 diffs)
-
trunk/src/tmcsim/application.properties (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/unique_lane_types/.ipynb_checkpoints/unique_lane_types-checkpoint.ipynb
r235 r237 1 1 { 2 "cells": [], 3 "metadata": {}, 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 1, 6 "metadata": { 7 "collapsed": true 8 }, 9 "outputs": [], 10 "source": [ 11 "loop_file = open(\"./loop_fullmap.txt\", \"r\")\n", 12 "def get_id_and_desc(line):\n", 13 " split_line = line.split()\n", 14 " loop_id = split_line[6]\n", 15 " loop_desc = split_line[8]\n", 16 " return loop_id, loop_desc\n", 17 "\n", 18 "loop_dict = {}\n", 19 "\n", 20 "for line in loop_file:\n", 21 " loop_id, loop_desc = get_id_and_desc(line)\n", 22 " if loop_id in loop_dict.keys():\n", 23 " if loop_desc not in loop_dict[loop_id].keys():\n", 24 " loop_dict[loop_id][loop_desc] = 1\n", 25 " else:\n", 26 " loop_dict[loop_id][loop_desc] += 1\n", 27 " else:\n", 28 " loop_dict[loop_id] = {}\n", 29 " loop_dict[loop_id][loop_desc] = 1\n", 30 "loop_file.close()" 31 ] 32 }, 33 { 34 "cell_type": "code", 35 "execution_count": 4, 36 "metadata": { 37 "collapsed": true 38 }, 39 "outputs": [], 40 "source": [ 41 "import json\n", 42 "# f = open('unique_lane_types_results.txt','w')\n", 43 "# f.write(json.dumps(loop_dict, indent=1))\n", 44 "# f.close()\n" 45 ] 46 }, 47 { 48 "cell_type": "code", 49 "execution_count": 5, 50 "metadata": {}, 51 "outputs": [ 52 { 53 "name": "stdout", 54 "output_type": "stream", 55 "text": [ 56 "{\n", 57 " \"OR\": {\n", 58 " \"RAMP_ON\": 278,\n", 59 " \"SD_3\": 6,\n", 60 " \"SD_5\": 5,\n", 61 " \"SD_2\": 3,\n", 62 " \"SD_4\": 3,\n", 63 " \"SD_1\": 4\n", 64 " },\n", 65 " \"QU\": {\n", 66 " \"QUEUE\": 317\n", 67 " },\n", 68 " \"DM\": {\n", 69 " \"DEMAND\": 314,\n", 70 " \"PASSAGE\": 4\n", 71 " },\n", 72 " \"PA\": {\n", 73 " \"PASSAGE\": 315,\n", 74 " \"DEMAND\": 4\n", 75 " },\n", 76 " \"RH\": {\n", 77 " \"RAMP_HOV\": 103,\n", 78 " \"SD_1\": 1\n", 79 " },\n", 80 " \"FR\": {\n", 81 " \"RAMP_OFF\": 171,\n", 82 " \"SD_2\": 34,\n", 83 " \"SD_3\": 27,\n", 84 " \"SD_4\": 20,\n", 85 " \"SD_5\": 14,\n", 86 " \"SD_6\": 7,\n", 87 " \"SD_1\": 6,\n", 88 " \"COLL._DIST_2\": 1,\n", 89 " \"COLL._DIST_1\": 1\n", 90 " },\n", 91 " \"ML\": {\n", 92 " \"ML_1\": 546,\n", 93 " \"ML_2\": 548,\n", 94 " \"ML_3\": 500,\n", 95 " \"ML_4\": 375,\n", 96 " \"ML_5\": 136,\n", 97 " \"ML_6\": 25,\n", 98 " \"SD_3\": 1,\n", 99 " \"SD_5\": 1,\n", 100 " \"SD_1\": 3,\n", 101 " \"SD_2\": 3,\n", 102 " \"OS_1\": 2,\n", 103 " \"OS_2\": 2\n", 104 " },\n", 105 " \"HV\": {\n", 106 " \"SD_1\": 288,\n", 107 " \"SD_2\": 24,\n", 108 " \"SD_3\": 11,\n", 109 " \"SD_4\": 10,\n", 110 " \"RAMP_HOV\": 1\n", 111 " },\n", 112 " \"OC\": {\n", 113 " \"COLL._DIST_1\": 3,\n", 114 " \"COLL._DIST_2\": 2,\n", 115 " \"COLL._DIST_ON\": 4,\n", 116 " \"SD_5\": 2\n", 117 " },\n", 118 " \"OS\": {\n", 119 " \"OS_1\": 262,\n", 120 " \"OS_2\": 262,\n", 121 " \"OS_3\": 217,\n", 122 " \"OS_4\": 136,\n", 123 " \"OS_5\": 47,\n", 124 " \"OS_6\": 12,\n", 125 " \"ML_1\": 1,\n", 126 " \"ML_2\": 1,\n", 127 " \"SD_3\": 1,\n", 128 " \"SD_4\": 1,\n", 129 " \"SD_2\": 1\n", 130 " },\n", 131 " \"OH\": {\n", 132 " \"SD_2\": 93,\n", 133 " \"SD_6\": 2,\n", 134 " \"SD_3\": 8,\n", 135 " \"SD_4\": 6,\n", 136 " \"SD_5\": 2,\n", 137 " \"SD_1\": 9\n", 138 " },\n", 139 " \"FF\": {\n", 140 " \"SD_4\": 30,\n", 141 " \"SD_5\": 23,\n", 142 " \"COLL._DIST_ON\": 3,\n", 143 " \"SD_2\": 21,\n", 144 " \"SD_3\": 19,\n", 145 " \"COLL._DIST_1\": 3,\n", 146 " \"COLL._DIST_2\": 4,\n", 147 " \"COLL._DIST_OFF\": 3,\n", 148 " \"SD_1\": 17,\n", 149 " \"SD_6\": 5,\n", 150 " \"DEMAND\": 1,\n", 151 " \"RAMP_ON\": 1,\n", 152 " \"RAMP_OFF\": 1,\n", 153 " \"ML_3\": 1\n", 154 " },\n", 155 " \"FC\": {\n", 156 " \"COLL._DIST_OFF\": 4,\n", 157 " \"SD_6\": 1,\n", 158 " \"COLL._DIST_1\": 1,\n", 159 " \"SD_3\": 2\n", 160 " },\n", 161 " \"FO\": {\n", 162 " \"SD_4\": 12,\n", 163 " \"SD_5\": 10,\n", 164 " \"SD_6\": 6,\n", 165 " \"SD_3\": 10,\n", 166 " \"ML_3\": 1,\n", 167 " \"SD_1\": 2,\n", 168 " \"SD_2\": 5,\n", 169 " \"COLL._DIST_1\": 2,\n", 170 " \"COLL._DIST_2\": 2,\n", 171 " \"RAMP_HOV\": 1\n", 172 " },\n", 173 " \"CD\": {\n", 174 " \"COLL._DIST_1\": 26,\n", 175 " \"COLL._DIST_2\": 9,\n", 176 " \"COLL._DIST_OFF\": 1,\n", 177 " \"SD_5\": 3,\n", 178 " \"SD_6\": 2,\n", 179 " \"SD_3\": 1,\n", 180 " \"SD_2\": 1,\n", 181 " \"SD_1\": 1\n", 182 " },\n", 183 " \"OF\": {\n", 184 " \"SD_3\": 23,\n", 185 " \"RAMP_OFF\": 21,\n", 186 " \"SD_1\": 26,\n", 187 " \"SD_2\": 10,\n", 188 " \"SD_4\": 7,\n", 189 " \"SD_5\": 2,\n", 190 " \"COLL._DIST_1\": 1,\n", 191 " \"RAMP_ON\": 1\n", 192 " },\n", 193 " \"HN\": {\n", 194 " \"RAMP_ON\": 1,\n", 195 " \"SD_5\": 1\n", 196 " },\n", 197 " \"HF\": {\n", 198 " \"RAMP_OFF\": 1,\n", 199 " \"SD_2\": 1\n", 200 " },\n", 201 " \"HB\": {\n", 202 " \"SD_5\": 2,\n", 203 " \"COLL._DIST_1\": 1,\n", 204 " \"SD_6\": 1\n", 205 " },\n", 206 " \"OO\": {\n", 207 " \"SD_1\": 1,\n", 208 " \"SD_2\": 1,\n", 209 " \"SD_3\": 2,\n", 210 " \"RAMP_ON\": 1\n", 211 " }\n", 212 "}\n" 213 ] 214 } 215 ], 216 "source": [ 217 "print(json.dumps(loop_dict, indent=2))" 218 ] 219 }, 220 { 221 "cell_type": "markdown", 222 "metadata": {}, 223 "source": [ 224 "## Known lane types\n", 225 "\n", 226 "- ### ML = MAIN LINE\n", 227 "ML ML_? = main line lane\n", 228 "\n", 229 "- ### HV = HOV LANE\n", 230 "HV SD_? = HOV LANE\n", 231 "\n", 232 "- ### OS = OPP SIDE ?\n", 233 "OS OS_? = opp side lane\n", 234 "\n", 235 "- ### OH = OPP HOV LANE\n", 236 "OH SD_? = opp HOV lane\n", 237 "\n", 238 "- ### FR = OFF RAMP\n", 239 "FR RAMP_OFF = off ramp <br>\n", 240 "FR SD_? = off ramp multiple lanes?\n", 241 "\n", 242 "- ### OR = ON RAMP\n", 243 "OR RAMP_ON = on ramp <br>\n", 244 "OR SD_? = on_ramp multiple lanes?\n", 245 "\n", 246 "- ### QU = QUEUE\n", 247 "QU QUEUE = queue lane (something to do with on ramp)\n", 248 "\n", 249 "- ### DM = DEMAND\n", 250 "DM DEMAND = demand (something to do with on ramp)\n", 251 "\n", 252 "- ### PA = PASSAGE\n", 253 "PA PASSAGE = passage (something to do with on ramp)\n", 254 "\n", 255 "- ### RH = HOV RAMP\n", 256 "RH RAMP_HOV = HOV ramp\n", 257 "\n", 258 "## Confusing but known?\n", 259 "\n", 260 "- ### FF FWY TO FWY\n", 261 "FF < many different lane descriptions >\n", 262 "\n", 263 "- ### CD = COLLECTOR / DISTRIBUTOR\n", 264 "CD COLL._DIST_1 <br>\n", 265 "CD COLL._DIST_2 <br>\n", 266 "CD COLL._DIST_OFF <br>\n", 267 "CD SD_?\n", 268 "\n", 269 "- ### OC = COLLECTOR / DISTRIBUTOR\n", 270 "OC COLL._DIST_? <br>\n", 271 "OC COLL._DIST_ON <br>\n", 272 "OC SD_5\n", 273 "\n", 274 "## Unknown\n", 275 "- ### FC ?\n", 276 "\n", 277 "- ### OO ?\n", 278 "\n", 279 "- ### HB ?\n", 280 "\n", 281 "- ### HF ?\n", 282 "\n", 283 "- ### HN ?\n", 284 "\n", 285 "- ### OF ?\n", 286 "\n", 287 "- ### FO ?" 288 ] 289 }, 290 { 291 "cell_type": "code", 292 "execution_count": null, 293 "metadata": { 294 "collapsed": true 295 }, 296 "outputs": [], 297 "source": [] 298 } 299 ], 300 "metadata": { 301 "kernelspec": { 302 "display_name": "Python 3", 303 "language": "python", 304 "name": "python3" 305 }, 306 "language_info": { 307 "codemirror_mode": { 308 "name": "ipython", 309 "version": 3 310 }, 311 "file_extension": ".py", 312 "mimetype": "text/x-python", 313 "name": "python", 314 "nbconvert_exporter": "python", 315 "pygments_lexer": "ipython3", 316 "version": "3.6.3" 317 } 318 }, 4 319 "nbformat": 4, 5 320 "nbformat_minor": 2 -
branches/unique_lane_types/unique_lane_types.ipynb
r235 r237 4 4 "cell_type": "code", 5 5 "execution_count": 1, 6 "metadata": {}, 6 "metadata": { 7 "collapsed": true 8 }, 7 9 "outputs": [], 8 10 "source": [ … … 31 33 { 32 34 "cell_type": "code", 33 "execution_count": 2, 34 "metadata": {}, 35 "execution_count": 4, 36 "metadata": { 37 "collapsed": true 38 }, 35 39 "outputs": [], 36 40 "source": [ 37 41 "import json\n", 38 " f = open('unique_lane_types_results.txt','w')\n",39 " f.write(json.dumps(loop_dict, indent=1))\n",40 " f.close()\n"42 "# f = open('unique_lane_types_results.txt','w')\n", 43 "# f.write(json.dumps(loop_dict, indent=1))\n", 44 "# f.close()\n" 41 45 ] 46 }, 47 { 48 "cell_type": "code", 49 "execution_count": 5, 50 "metadata": {}, 51 "outputs": [ 52 { 53 "name": "stdout", 54 "output_type": "stream", 55 "text": [ 56 "{\n", 57 " \"OR\": {\n", 58 " \"RAMP_ON\": 278,\n", 59 " \"SD_3\": 6,\n", 60 " \"SD_5\": 5,\n", 61 " \"SD_2\": 3,\n", 62 " \"SD_4\": 3,\n", 63 " \"SD_1\": 4\n", 64 " },\n", 65 " \"QU\": {\n", 66 " \"QUEUE\": 317\n", 67 " },\n", 68 " \"DM\": {\n", 69 " \"DEMAND\": 314,\n", 70 " \"PASSAGE\": 4\n", 71 " },\n", 72 " \"PA\": {\n", 73 " \"PASSAGE\": 315,\n", 74 " \"DEMAND\": 4\n", 75 " },\n", 76 " \"RH\": {\n", 77 " \"RAMP_HOV\": 103,\n", 78 " \"SD_1\": 1\n", 79 " },\n", 80 " \"FR\": {\n", 81 " \"RAMP_OFF\": 171,\n", 82 " \"SD_2\": 34,\n", 83 " \"SD_3\": 27,\n", 84 " \"SD_4\": 20,\n", 85 " \"SD_5\": 14,\n", 86 " \"SD_6\": 7,\n", 87 " \"SD_1\": 6,\n", 88 " \"COLL._DIST_2\": 1,\n", 89 " \"COLL._DIST_1\": 1\n", 90 " },\n", 91 " \"ML\": {\n", 92 " \"ML_1\": 546,\n", 93 " \"ML_2\": 548,\n", 94 " \"ML_3\": 500,\n", 95 " \"ML_4\": 375,\n", 96 " \"ML_5\": 136,\n", 97 " \"ML_6\": 25,\n", 98 " \"SD_3\": 1,\n", 99 " \"SD_5\": 1,\n", 100 " \"SD_1\": 3,\n", 101 " \"SD_2\": 3,\n", 102 " \"OS_1\": 2,\n", 103 " \"OS_2\": 2\n", 104 " },\n", 105 " \"HV\": {\n", 106 " \"SD_1\": 288,\n", 107 " \"SD_2\": 24,\n", 108 " \"SD_3\": 11,\n", 109 " \"SD_4\": 10,\n", 110 " \"RAMP_HOV\": 1\n", 111 " },\n", 112 " \"OC\": {\n", 113 " \"COLL._DIST_1\": 3,\n", 114 " \"COLL._DIST_2\": 2,\n", 115 " \"COLL._DIST_ON\": 4,\n", 116 " \"SD_5\": 2\n", 117 " },\n", 118 " \"OS\": {\n", 119 " \"OS_1\": 262,\n", 120 " \"OS_2\": 262,\n", 121 " \"OS_3\": 217,\n", 122 " \"OS_4\": 136,\n", 123 " \"OS_5\": 47,\n", 124 " \"OS_6\": 12,\n", 125 " \"ML_1\": 1,\n", 126 " \"ML_2\": 1,\n", 127 " \"SD_3\": 1,\n", 128 " \"SD_4\": 1,\n", 129 " \"SD_2\": 1\n", 130 " },\n", 131 " \"OH\": {\n", 132 " \"SD_2\": 93,\n", 133 " \"SD_6\": 2,\n", 134 " \"SD_3\": 8,\n", 135 " \"SD_4\": 6,\n", 136 " \"SD_5\": 2,\n", 137 " \"SD_1\": 9\n", 138 " },\n", 139 " \"FF\": {\n", 140 " \"SD_4\": 30,\n", 141 " \"SD_5\": 23,\n", 142 " \"COLL._DIST_ON\": 3,\n", 143 " \"SD_2\": 21,\n", 144 " \"SD_3\": 19,\n", 145 " \"COLL._DIST_1\": 3,\n", 146 " \"COLL._DIST_2\": 4,\n", 147 " \"COLL._DIST_OFF\": 3,\n", 148 " \"SD_1\": 17,\n", 149 " \"SD_6\": 5,\n", 150 " \"DEMAND\": 1,\n", 151 " \"RAMP_ON\": 1,\n", 152 " \"RAMP_OFF\": 1,\n", 153 " \"ML_3\": 1\n", 154 " },\n", 155 " \"FC\": {\n", 156 " \"COLL._DIST_OFF\": 4,\n", 157 " \"SD_6\": 1,\n", 158 " \"COLL._DIST_1\": 1,\n", 159 " \"SD_3\": 2\n", 160 " },\n", 161 " \"FO\": {\n", 162 " \"SD_4\": 12,\n", 163 " \"SD_5\": 10,\n", 164 " \"SD_6\": 6,\n", 165 " \"SD_3\": 10,\n", 166 " \"ML_3\": 1,\n", 167 " \"SD_1\": 2,\n", 168 " \"SD_2\": 5,\n", 169 " \"COLL._DIST_1\": 2,\n", 170 " \"COLL._DIST_2\": 2,\n", 171 " \"RAMP_HOV\": 1\n", 172 " },\n", 173 " \"CD\": {\n", 174 " \"COLL._DIST_1\": 26,\n", 175 " \"COLL._DIST_2\": 9,\n", 176 " \"COLL._DIST_OFF\": 1,\n", 177 " \"SD_5\": 3,\n", 178 " \"SD_6\": 2,\n", 179 " \"SD_3\": 1,\n", 180 " \"SD_2\": 1,\n", 181 " \"SD_1\": 1\n", 182 " },\n", 183 " \"OF\": {\n", 184 " \"SD_3\": 23,\n", 185 " \"RAMP_OFF\": 21,\n", 186 " \"SD_1\": 26,\n", 187 " \"SD_2\": 10,\n", 188 " \"SD_4\": 7,\n", 189 " \"SD_5\": 2,\n", 190 " \"COLL._DIST_1\": 1,\n", 191 " \"RAMP_ON\": 1\n", 192 " },\n", 193 " \"HN\": {\n", 194 " \"RAMP_ON\": 1,\n", 195 " \"SD_5\": 1\n", 196 " },\n", 197 " \"HF\": {\n", 198 " \"RAMP_OFF\": 1,\n", 199 " \"SD_2\": 1\n", 200 " },\n", 201 " \"HB\": {\n", 202 " \"SD_5\": 2,\n", 203 " \"COLL._DIST_1\": 1,\n", 204 " \"SD_6\": 1\n", 205 " },\n", 206 " \"OO\": {\n", 207 " \"SD_1\": 1,\n", 208 " \"SD_2\": 1,\n", 209 " \"SD_3\": 2,\n", 210 " \"RAMP_ON\": 1\n", 211 " }\n", 212 "}\n" 213 ] 214 } 215 ], 216 "source": [ 217 "print(json.dumps(loop_dict, indent=2))" 218 ] 219 }, 220 { 221 "cell_type": "markdown", 222 "metadata": {}, 223 "source": [ 224 "## Known lane types\n", 225 "\n", 226 "- ### ML = MAIN LINE\n", 227 "ML ML_? = main line lane\n", 228 "\n", 229 "- ### HV = HOV LANE\n", 230 "HV SD_? = HOV LANE\n", 231 "\n", 232 "- ### OS = OPP SIDE ?\n", 233 "OS OS_? = opp side lane\n", 234 "\n", 235 "- ### OH = OPP HOV LANE\n", 236 "OH SD_? = opp HOV lane\n", 237 "\n", 238 "- ### FR = OFF RAMP\n", 239 "FR RAMP_OFF = off ramp <br>\n", 240 "FR SD_? = off ramp multiple lanes?\n", 241 "\n", 242 "- ### OR = ON RAMP\n", 243 "OR RAMP_ON = on ramp <br>\n", 244 "OR SD_? = on_ramp multiple lanes?\n", 245 "\n", 246 "- ### QU = QUEUE\n", 247 "QU QUEUE = queue lane (something to do with on ramp)\n", 248 "\n", 249 "- ### DM = DEMAND\n", 250 "DM DEMAND = demand (something to do with on ramp)\n", 251 "\n", 252 "- ### PA = PASSAGE\n", 253 "PA PASSAGE = passage (something to do with on ramp)\n", 254 "\n", 255 "- ### RH = HOV RAMP\n", 256 "RH RAMP_HOV = HOV ramp\n", 257 "\n", 258 "## Confusing but known?\n", 259 "\n", 260 "- ### FF FWY TO FWY\n", 261 "FF < many different lane descriptions >\n", 262 "\n", 263 "- ### CD = COLLECTOR / DISTRIBUTOR\n", 264 "CD COLL._DIST_1 <br>\n", 265 "CD COLL._DIST_2 <br>\n", 266 "CD COLL._DIST_OFF <br>\n", 267 "CD SD_?\n", 268 "\n", 269 "- ### OC = COLLECTOR / DISTRIBUTOR\n", 270 "OC COLL._DIST_? <br>\n", 271 "OC COLL._DIST_ON <br>\n", 272 "OC SD_5\n", 273 "\n", 274 "## Unknown\n", 275 "- ### FC ?\n", 276 "\n", 277 "- ### OO ?\n", 278 "\n", 279 "- ### HB ?\n", 280 "\n", 281 "- ### HF ?\n", 282 "\n", 283 "- ### HN ?\n", 284 "\n", 285 "- ### OF ?\n", 286 "\n", 287 "- ### FO ?" 288 ] 289 }, 290 { 291 "cell_type": "code", 292 "execution_count": null, 293 "metadata": { 294 "collapsed": true 295 }, 296 "outputs": [], 297 "source": [] 42 298 } 43 299 ], -
trunk/IDE_metadata/NetBeans/TMCSim/nbproject/project.properties
r133 r237 70 70 ${file.reference.mockito-1.10.19.jar}:\ 71 71 ${file.reference.commons-lang-2.4.jar}:\ 72 ${libs.junit_4.classpath} 72 ${libs.junit_4.classpath}:\ 73 ${libs.absolutelayout.classpath} 73 74 annotation.processing.enabled.in.editor=false 74 75 build.generated.sources.dir=${build.dir}/generated-sources -
trunk/src/atmsdriver/ConsoleTrafficDriver.java
r234 r237 79 79 ConsoleDriverProperties.load(new FileInputStream(System.getProperty("ATMSDRIVER_PROPERTIES"))); 80 80 } catch (Exception e) { 81 Logger.getLogger("Co soleDriver").logp(Level.SEVERE, "ConsoleDriver",81 Logger.getLogger("ConsoleDriver").logp(Level.SEVERE, "ConsoleDriver", 82 82 "Constructor", "Exception in reading properties file.", e); 83 83 } -
trunk/src/atmsdriver/model/Highway.java
r212 r237 1 1 package atmsdriver.model; 2 2 3 import atmsdriver.model.Station.DIRECTION; 3 4 import java.util.ArrayList; 4 5 import java.util.List; … … 17 18 /** The ordered list of stations (lane detector stations) on this highway */ 18 19 public final List<Station> stations; 19 20 20 21 /** Construct a highway 21 22 * … … 28 29 this.stations = stations; 29 30 } 31 32 /** 33 * 34 */ 35 public List<DIRECTION> getDirections() 36 { 37 // Get available directions for route 38 ArrayList<DIRECTION> availDirs = new ArrayList<>(); 39 for(Station stn : stations) 40 { 41 if(!availDirs.contains(stn.direction)) 42 { 43 availDirs.add(stn.direction); 44 } 45 } 46 return availDirs; 47 } 48 49 @Override 50 public String toString() 51 { 52 return Integer.toString(this.routeNumber); 53 } 30 54 } -
trunk/src/atmsdriver/model/Highways.java
r234 r237 1 1 package atmsdriver.model; 2 2 3 import atmsdriver.batchbuilder.TrafficLaneEvent; 4 import atmsdriver.model.LoopDetector.DOTCOLOR; 3 5 import atmsdriver.model.Station.DIRECTION; 4 6 import java.io.File; … … 520 522 return result.toString(); 521 523 } 524 525 /** 526 * Generates the route number list, used for user input validation. 527 * @return list of route numbers. 528 */ 529 public List<Integer> getAllRouteNums() 530 { 531 ArrayList<Integer> routeNums = new ArrayList<>(); 532 // add the route number for each highway to the list 533 for(Highway hwy : highways) 534 { 535 routeNums.add(hwy.routeNumber); 536 } 537 return routeNums; 538 } 539 522 540 /** 523 541 * XML tags used in writeToXML() … … 535 553 } 536 554 } 555 556 public void reset() 557 { 558 for(FEPLine line : lines) 559 { 560 for(Station stn : line.stations) 561 { 562 for(LoopDetector ld : stn.loops) 563 { 564 ld.occ = 0; 565 ld.vol = 0; 566 } 567 } 568 } 569 } 570 571 public void applyTrafficLaneEvent(TrafficLaneEvent event) 572 { 573 Integer routeNum = event.routeNum; 574 Highway hwy = getHighwayByRouteNumber(routeNum); 575 for(Station stn: hwy.stations) 576 { 577 if(stn.equals(event.station)) 578 { 579 for(LoopDetector ld : stn.loops) 580 { 581 if(ld.equals(event.loopDetector)) 582 { 583 ld.occ = event.color.occupancy(); 584 ld.vol = event.color.volume(); 585 break; 586 } 587 } 588 break; 589 } 590 } 591 } 537 592 } -
trunk/src/atmsdriver/model/Station.java
r234 r237 2 2 3 3 import atmsdriver.model.LoopDetector.DOTCOLOR; 4 import java.util.ArrayList; 4 5 import java.util.List; 5 6 import org.w3c.dom.Document; … … 366 367 return this.toString().substring(0, 1); 367 368 } 368 369 369 370 public DIRECTION getOpposite() 370 371 { … … 392 393 public static DIRECTION toDirection(String letter) 393 394 { 395 if(letter.indexOf(letter.charAt(0)) == -1) 396 { 397 return null; 398 } 394 399 return values()[allLetters.indexOf(letter.charAt(0))]; 395 400 } 396 401 } 402 403 @Override 404 public String toString() 405 { 406 return Integer.toString(this.ldsID); 397 407 } 398 408 } -
trunk/src/tmcsim/application.properties
r234 r237 1 # Thu, 23 Nov 2017 17:06:06-08001 #Wed, 13 Dec 2017 04:11:31 -0800 2 2 3 Application.revision=23 23 Application.revision=234 4 4 5 5 Application.buildnumber=88
Note: See TracChangeset
for help on using the changeset viewer.
