GithubHelp home page GithubHelp logo

mnit-rtmc / iris Goto Github PK

View Code? Open in Web Editor NEW
40.0 12.0 17.0 78.9 MB

Intelligent Roadway Information System

License: GNU General Public License v2.0

Java 85.80% Rust 6.89% Batchfile 0.01% Shell 0.07% Python 0.07% HTML 0.18% PLpgSQL 6.77% JavaScript 0.11% CSS 0.11%
traffic-management freeway atms

iris's Introduction

IRIS

IRIS is an advanced traffic management system. For more information, look here.

iris's People

Contributors

ahmct-trav avatar debbehera avatar douglau avatar douglau-mnit avatar ethan-beauc avatar gordonparikh avatar jlstanley-git avatar mdarter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iris's Issues

Comm link creation goes nowhere

Attempting to add a DMS to a new installation, following the step-by-step on the web page I enter a name for the comm link and when I click create it doesn't appear in the table as indicated in the step-by-step it appears to just vanish

Improve incident deployment

  • Exit ramp incidents
  • Add "extend range" button to deploy dialog
  • LCS indications are not associated with incident
  • DMS deployment should not require free-form permissions

Permissions for suggested incident messages

When deploying a DMS message from an incident, Operate permission (DMS/incident) should be sufficient for the suggested message.

Currently, the location (2nd line) must match an existing msg_line in the sign's library.

DMS sign_event owner after scheduled msg cleared

The sign_event table has a msg_owner column, which contains the "owner" of a sign message when activated. After a scheduled message is cleared, the user msg (msg_user) will be activated, with msg_owner set to the user who created that message. This can be confusing if the message is "blank" -- it seems like the user initiated the sign to blank, but in fact, it was just a regular scheduled message expiring with no user interaction.

The fix is to not store blank messages in DMS msg_user

Use hashtags for camera states

  1. Replace streamable flag with "#Streamable" hashtag
  2. Also for "#Publish" ?
  3. Tag for "#IrisOnly" / "#NoVdu" ?
  4. Others?

Add a hashtags field to the "camera" / "camera_pub" JSON files produced by honeybee.

DMS action messages in work zones

The OCC SPIKE and LOCKED ON auto fail conditions can prevent the use of DMS messages with action tags. A flag will be added to action plans to ignore detector auto-fail conditions.

  • Exit ramp backup [exit...]
  • Slow traffic warning [slow...]

Improved text support on DMS

Add a method to send anti-aliased text messages as dynamically generated graphics. Use Red Hat's overpass font. Open questions:

  1. Should a new MULTI-like tag be added to support this?
  2. How should this interact with the message composer?
  3. Font management?

Message Composer Overlapping Text

When a whole-sign text rectangle tag is used in a multi-page message pattern in the message composer, IRIS will insert the text from the composer fields incorrectly, leading to overlapping text on one page of the message, and leaving other page(s) blank. For example, using the following message pattern:

[tr1,1,0,0][np][tr1,1,0,0]

will produce:

TEST 1[nl]TEST 2[nl]TEST 3[tr1,1,0,0]TEST 4[nl]TEST 5[nl]TEST 6[np][nl][nl][tr1,1,0,0]

Looking like this in the preview and on the sign:

Page 1 Page 2
TextOverlap_Pg1 TextOverlap_Pg2

This does not occur without the [tr...] tags, for example:

[np]

produces:

TEST 1[nl]TEST 2[nl]TEST 3[np]TEST 4[nl]TEST 5[nl]TEST 6

Which looks like:

Page 1 Page 2
TextOverlap_Pg1_NoTR TextOverlap_Pg2_NoTR

Interestingly, this behavior also does not appear when using a non-default font tag. For example:

[fo10][tr1,1,0,0][np][tr1,1,0,0]

produces:

[fo10][tr1,1,0,0]TEST 1[nl]TEST 2[nl]TEST 3[np]TEST 4[nl]TEST 5[nl]TEST 6[tr1,1,0,0]

And looks like:

Page 1 Page 2
TextOverlap_Pg1_Font TextOverlap_Pg2_Font

When using the default font in a font tag, however, it produces the issue (like the first pair of images). In that case, this message pattern:

[fo11][tr1,1,0,0][np][tr1,1,0,0]

produces the following MULTI string:

TEST 1[nl]TEST 2[nl]TEST 3[fo11][tr1,1,0,0]TEST 4[nl]TEST 5[nl]TEST 6[np][nl][nl][tr1,1,0,0]

This behavior has been observed in several versions back to at least 5.42.2 and can be replicated in the current version (5.49.0). Hopefully it is just a minor error in handling the input from the composer fields. If you have any questions or would like more testing, just let me know.

Add compound signs

  • Static .png background
  • Rectangle defining location of DMS on sign (x,y,w,h)
  • Add support in honeybee as well as IRIS java

External authentication with LDAPS

Currently, external authentication is only supported using unencrypted connections to an LDAP server, such as Active Directory. LDAPS would improve security of these connections.

Web UI Tracking

This issue tracks tasks needed to finish the MVP (minimum viable product) Web UI.

Mapping

  • Change earthwyrm to use rosewood/loam instead of PostGIS
  • Update to modern version of Leaflet JS library
  • Replace Leaflet.VectorGrid plugin with VectorTileLayer
  • Handle Leaflet events by updating selected items, etc.
  • Add tooltips for devices

DMS

  • Change card background color based linked incident type
  • Generate map layer loam file on configuration changes
  • Allow free-form text entry for users with permissions
  • Find other required features from Java UI

Honeybee / graft

  • Merge into a single service, using axum
  • Generate freeway segment layer (loam) for earthwyrm
  • Implement SSE messages for selected card / resource type
  • Verify user's network domain on login

Can't log in using given credentials to IRIS

image

Hi, I just finished installing and trying to run IRIS, but it errors out after I used the given credentials of admin/atms_242.

Any insight on how to fix this?
----ERROR----
us.mn.state.dot.sonar.SonarException: Login timed out
at us.mn.state.dot.sonar.client.Client.waitLogin(Unknown Source)
at us.mn.state.dot.sonar.client.Client.login(Unknown Source)
at us.mn.state.dot.tms.client.SonarState.login(Unknown Source)
at us.mn.state.dot.tms.client.IrisClient.createSession(Unknown Source)
at us.mn.state.dot.tms.client.IrisClient.access$300(Unknown Source)
at us.mn.state.dot.tms.client.IrisClient$4.doInBackground(Unknown Source)
at us.mn.state.dot.tms.client.IrisClient$4.doInBackground(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Query unknown graphics

If a message is sent by an external NTCIP system, IRIS can't display any included graphics.

Improve ramp meter locks

Ideas:

  • Show name of user who created lock
  • Initial lock rate should match current ramp demand
  • Add duration, defaulted to 15 minutes
  • Automatic queue override to prevent backup
  • Lock reasons: knocked down, indication

Detector label improvement

The label column in detector_view is generated automatically. If the cross-street is NULL, it shows "FUTURE", even if there is a landmark.

Permission/privilege transition

There is some overlap between the old "privilege" system used by the Java client, and the new "permission" system for the web UI. The current migration scripts create permissions for the administrator role, but all other roles are excluded. Since permissions are checked by the server for some operations, this prevents users in the Java client from performing certain actions that they have the appropriate privileges for. Since permissions are (presumably) only configurable via the web UI (and database), this creates some administrative challenges.

Can you add a note to the release notes that administrators need to consider this when upgrading? I presume you have some way that you're dealing with it at MnDOT that may not work for others, but maybe you can recommend an approach. In our case, since we don't currently have the web client running, I added permissions to bypass those checks to leave things working with the old privilege system for now (which we can revisit when we get around to deploying the web stuff).

Let me know your thoughts on this when you have time. Ideally we could come up with some approach to deal with this in the migrate scripts, at least partially (or perhaps there could be another method for enabling/disabling it). I know eventually you plan to move everything over to the new system, but some way to deal with things in the interim (or at least a prominent warning) would be good. Thanks!

User account management

Features:

  • Crack attempt detection
  • Request throttling (minimum 1 second)
  • Forced password reset on login (non-LDAP accounts)
  • Track hashes of compromised passwords and prevent reuse
  • Auto-disable accounts based on inactivity
  • Reduced permission account management
  • Notes field on user (for admin)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.