Giter Site home page Giter Site logo

mnit-rtmc / iris Goto Github PK

View Code? Open in Web Editor NEW
43.0 14.0 17.0 78.82 MB

Intelligent Roadway Information System

License: GNU General Public License v2.0

Java 85.27% Rust 7.21% Batchfile 0.01% Shell 0.07% Python 0.07% HTML 0.18% PLpgSQL 6.97% JavaScript 0.12% CSS 0.11%
traffic-management freeway atms

iris's Issues

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

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

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)

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.

Cache password hash for LDAP users

Currently, a user_id can have a password and dn assigned, independently. This change would update the password hash upon successful authentication with the LDAP server. For users with no dn assigned, operation would remain the same.

This change would mitigate downtime due to LDAP servers being offline, as happened with the CrowdStrike event. If LDAP login fails due to server issues, the cached password would be checked, allowing users to still log in.

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...]

Use hashtags for camera states

  1. Replace streamable flag with "#LiveStream" hashtag
  2. Also for "#Publish"?
  3. Add "#Recorded" tag (for external recording system)
  4. Tag for "#IrisOnly" / "#NoVdu" ?
  5. Others?

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

Web UI Tracking

This issue tracks tasks needed for the Web UI.

Mapping

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

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

DMS

  • Generate map layer loam file on configuration changes
  • Use substitute message patterns (for extra-wide signs)
  • Allow free-form text entry for users with permissions
  • Add UI for message duration / expiration
  • Selecting a card should select map marker, and center map
  • Default to deployed item state (not all)
  • Add sign location to compact card
  • Pixel errors UI
  • Setup card: add notes, beacon, preset, gps
  • Request card w/ TAMS work request link, query msg, config, status, settings, send settings, reset
  • Status card w/ brightness, power, temp
  • Sign config / details cards
  • Add emojis based on linked incident type (πŸ’₯πŸš—, πŸ”§πŸš—β›½, πŸ•³οΈ, πŸš§πŸ¦ΊπŸ‘·)

Incidents

  • Add resource type 🚨

Cameras

  • Add to map
  • Allow unpublish / publish
  • View properties, like IP addresses
  • Reboot button
  • Recall / set presets

LCS Arrays

  • Status card showing current indications
  • Deploying indications
  • Default to deployed item state, not all

Detector label improvement

The label generated by the detector_label SQL function does not always match the label generated by DetectorHelper.getLabel

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.

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)

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!

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

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.

Query unknown graphics

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

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

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?

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.