Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
feef3bd
Implemented CdotGisConnector
dmccoystephenson Dec 16, 2024
58668ce
Implemented CdotUpstreamPathController
dmccoystephenson Dec 16, 2024
5eed502
Added new method to MilepostService for retrieving a buffer of milepo…
dmccoystephenson Dec 16, 2024
9e474d9
Modified CdotUpstreamPathController to use standardized logger instea…
dmccoystephenson Dec 16, 2024
528e30e
Added standardized logging & exception handling to CdotGisConnector
dmccoystephenson Dec 16, 2024
90bb038
Updated logging upon receiving null body from CDOT GIS service
dmccoystephenson Dec 16, 2024
d09843a
Changed cv-data-controller root log level to INFO in local deployment…
dmccoystephenson Dec 16, 2024
160ce31
Removed `@ApiIgnore` annotation from CdotUpstreamPathController
dmccoystephenson Dec 17, 2024
6b72723
Switched over to using constructors instead of `InjectDependencies()`…
dmccoystephenson Dec 17, 2024
5084a57
Removed unnecessary exception throw in CdotUpstreamPathController.get…
dmccoystephenson Dec 17, 2024
4b93c09
Updated CdotUpstreamPathController to use `@PostMapping` annotation
dmccoystephenson Dec 17, 2024
44c43b2
Removed unused import
dmccoystephenson Dec 17, 2024
ef31ead
Switched over to using `RoundingMode.HALF_UP` in CdotUpstreamPathCont…
dmccoystephenson Dec 17, 2024
dc98fa3
Removed unnecessary initialization test in CdotUpstreamPathController…
dmccoystephenson Dec 17, 2024
5de1c19
Removed unused `getAllRoutes()` method in CdotGisConnector & correspo…
dmccoystephenson Dec 17, 2024
15fec29
Switched over to using `RoundingMode.HALF_UP` in CdotUpstreamPathCont…
dmccoystephenson Dec 17, 2024
5c94e41
Addressed a few more IDE warnings
dmccoystephenson Dec 17, 2024
34a263a
Removed unused import in CdotUpstreamPathController
dmccoystephenson Dec 17, 2024
e105c17
Transitioned to throwing exceptions instead of returning null in Cdot…
dmccoystephenson Dec 17, 2024
6919aff
Removed excess logging from CdotUpstreamPathController
dmccoystephenson Dec 17, 2024
4daaa3c
Refactored traversal logic in CdotUpstreamPathController using strate…
dmccoystephenson Dec 18, 2024
82b5dd7
Reformatted CdotUpstreamPathController and CdotUpstreamPathController…
dmccoystephenson Dec 18, 2024
1a6504e
Introduced AbstractTraverseStrategy to reduce code duplication and im…
dmccoystephenson Dec 18, 2024
d5539b3
Merge pull request #2 from Trihydro/dev
payneBrandon Dec 19, 2024
060ef01
Updated DistanceCalculator to use Milepost.angularDistanceTo() for ca…
dmccoystephenson Dec 19, 2024
d8eb78d
Added JavaDocs for AbstractTraverseStrategy.traverse() and CdotUpstre…
dmccoystephenson Dec 19, 2024
abd68c7
Added JavaDocs for CdotGisConnector.getRouteById() and CdotUpstreamPa…
dmccoystephenson Dec 19, 2024
3bbcba4
Updated CDOT GIS endpoint to use `Routes_withDEC` instead of `Routes`
dmccoystephenson Dec 19, 2024
778b456
Removed `@Autowired` annotation from CdotUpstreamPathController const…
dmccoystephenson Dec 29, 2024
5ccc58c
Removed `@Autowired` annotation from CdotGisConnector constructor
dmccoystephenson Dec 29, 2024
03be886
Used `expectedBaseUrl` instead of hardcoded string in CdotGisConnecto…
dmccoystephenson Dec 29, 2024
212e2eb
Removed initialization test from CdotGisConnectorTest
dmccoystephenson Dec 29, 2024
3394d14
Merge pull request #3 from Trihydro/dev
dmccoystephenson Dec 30, 2024
f294c6e
Merge pull request #4 from Trihydro/dev
dmccoystephenson Jan 7, 2025
3f59545
Update notUsed field naming to doNotUse
mwodahl Jan 10, 2025
501bf61
Update x/y pos, elevation, width fields to comply with J2735 2024
mwodahl Jan 10, 2025
7a469de
Update field names in cv-data-service-library test resources
mwodahl Jan 10, 2025
4f45ff9
Update logger-kafka-consumer testing resource field names
mwodahl Jan 10, 2025
e6eec67
Update sample data field names for J2735 2024
mwodahl Jan 10, 2025
fc5bfd8
Update version from 1.4.0-SNAPSHOT to 2.0.0
mwodahl Jan 10, 2025
3244cae
Uncomment local-deployment services
mwodahl Jan 10, 2025
4451c38
Remove DOCKER_HOST_IP from CONFIG_ODE_URL
mwodahl Jan 10, 2025
2a05ce0
Merge branch 'dev' into Update/J2735-2024-support
mwodahl Jan 10, 2025
164ec8d
Remove unnecessary tables/triggers/etc. from .sql files
mwodahl Jan 23, 2025
8564789
Update outdated references to rsu table to use existing cv-manager rs…
mwodahl Jan 23, 2025
7d938ef
Add geometry, bearing properties to WydotTim
mwodahl Jan 23, 2025
70c638c
Add milepost cache for incoming TIMs with geometry
mwodahl Jan 23, 2025
429576b
Update road work ITIS codes to set properly for TIMs
mwodahl Jan 23, 2025
a28a7f6
Add milepost cache clear call to CleanupActiveTims run method
mwodahl Jan 23, 2025
c7c33d2
Add snmp username/password query instead of using config values
mwodahl Jan 24, 2025
7184555
Unit testing updates
mwodahl Jan 24, 2025
c07cbdb
Remove unnecessary variables from sample.env
mwodahl Jan 24, 2025
6b3b04b
Fix ActiveTimController test with updated query
mwodahl Jan 24, 2025
d3f0218
Update jpo-ode packages to use latest release
mwodahl Jan 30, 2025
2a521d1
Update KafkaFactory to include confluent cloud properties
mwodahl Jan 30, 2025
a4aba6e
Add CDOT deployment docker compose file
mwodahl Jan 30, 2025
be340d7
Update RsuServiceTest to account for getRSU method
mwodahl Jan 30, 2025
71109b4
Update KafkaFactory to use config properties for confluent
mwodahl Jan 31, 2025
1efacb6
Add KafkaFactoryTest
mwodahl Jan 31, 2025
d1ac4a9
Update deployment file with config property variables
mwodahl Jan 31, 2025
88783bf
Update doNotUse values
mwodahl Jan 31, 2025
7b697b9
Update RC TIM set ITIS codes to use ITIS code array, not advisory array
mwodahl Jan 31, 2025
feaf3ba
Merge pull request #1 from CDOT-CV/cdotgis/upstream-path-traversal
payneBrandon Feb 4, 2025
28e1411
Merge branch 'dev' into Update/CDOT-Compatibility
mwodahl Feb 6, 2025
907ba23
Add logging_level_root to CDOT deployment docker-compose file
mwodahl Feb 6, 2025
d261b1c
Merge branch 'dev' into Update/J2735-2024-support
mwodahl Feb 6, 2025
8e27cac
Remove unused geometry string method
mwodahl Feb 6, 2025
c4600a9
Update comments
mwodahl Feb 6, 2025
c261656
Update TimGenerationHelperTest with changes to run locally
mwodahl Feb 6, 2025
deca3b5
Update cache clear logic
mwodahl Feb 6, 2025
c66ec50
Extract UpdateTimModel set properties into a new method, update TimUp…
mwodahl Mar 7, 2025
3816f14
Update ode tags to 2025-q1
mwodahl Mar 7, 2025
df78644
Remove unused resubmit method
mwodahl Mar 12, 2025
11f73c7
Remove unnecessary doNotUse references
mwodahl Mar 12, 2025
6578b21
Update direction calculation, convertTmcTimTopicToJson methods to han…
mwodahl Mar 13, 2025
7c24bfd
Remove unused imports
mwodahl Mar 13, 2025
cf2b871
Update construction test data to match OdeTimJson new format
mwodahl Mar 13, 2025
79f21e8
Updating parking test data to match updated OdeTimJson format
mwodahl Mar 13, 2025
065bf6b
Update VSL testing data to match OdeTimJson new format
mwodahl Mar 13, 2025
328e7d5
Update odeTim testing files to match OdeTimJson new format
mwodahl Mar 13, 2025
2db3924
Remove unnecessary test from TimDataConverterTest
mwodahl Mar 13, 2025
12cec95
Add additional ODE env vars to local-deployment docker-compose.yml
mwodahl Mar 27, 2025
db068a6
Remove equals sign from ode env var
mwodahl Mar 27, 2025
ebbf8f7
Merge pull request #5 from CDOT-CV/Update/J2735-2024-support
mwodahl Mar 27, 2025
b003f04
Merge branch 'dev' into Update/ode-2025-q1-fix
mwodahl Mar 28, 2025
d22ef56
Update getRegion to use StringBuilder, parseBoolean
mwodahl Apr 2, 2025
dbf1b95
Improved frame type value resolution in `ActiveTimController` to defa…
dmccoystephenson Apr 3, 2025
10df33c
Remove outdated comment
mwodahl Apr 8, 2025
a035d8e
Update CDOT compose file to include confluent values
mwodahl Apr 8, 2025
de32dc6
Update MilepostController to use try-with-resources
mwodahl Apr 8, 2025
ce34c55
Rename MilepostCacheBody to SetMilepostCacheRequest to clarify class …
mwodahl Apr 8, 2025
f6d13ff
Update GetRSU method to use parameterized queries and try-with-resources
mwodahl Apr 8, 2025
6b28b1f
Update getRSU tests to reflect parameterized query updates
mwodahl Apr 8, 2025
5435fc8
Move ToMileposts logic to WydotTim class
mwodahl Apr 8, 2025
5404aff
Update getRsusByGeometry to use StringBuilder
mwodahl Apr 8, 2025
cf74b05
Extract getActiveTimIds to a separate method for better readability w…
mwodahl Apr 8, 2025
9dc7473
Add RSU-Specific tables to create_all_tables.sql
mwodahl Apr 8, 2025
d124327
Add RSU-Specific tables from jpo-cvmanager
mwodahl Apr 8, 2025
767ec6e
Update WydotTim geometry property access modifier
mwodahl Apr 8, 2025
fd7535f
Add db env vars to rsu-data-controller, remove duplicate kafka/conflu…
mwodahl Apr 9, 2025
e058545
Add kafka vars, rsu controller db vars
mwodahl Apr 9, 2025
b6f0c8a
Add additional rsu-data-controller db vars to docker compose files
mwodahl Apr 9, 2025
35bbc03
Update UpstreamPathController to find closest milepost with 1 mile st…
mwodahl Apr 16, 2025
fd20d4d
Add Connecting the West ITIS codes to 03-itis_code.sql
mwodahl Apr 16, 2025
e4962fb
Add milepost service, bufferTIMItisCodes list, milepostToGeometry met…
mwodahl Apr 16, 2025
30c9955
Add milepostService to WydotTim controllers
mwodahl Apr 16, 2025
e857ee6
Add milepostService to VSL controller
mwodahl Apr 16, 2025
5c5470f
Add milepost service to Incident Controller
mwodahl Apr 16, 2025
a775177
Remove duplicate code from TIM generation logic, add buffer generation
mwodahl Apr 16, 2025
3fabb80
Remove unnecessary validation from ValidateInputIncident
mwodahl Apr 16, 2025
1c8fb60
Update ITIS code set logic to account for multiple ITIS codes
mwodahl Apr 16, 2025
4af9158
Update buffer query to account for new buffer ID
mwodahl Apr 16, 2025
32a53b1
Add increasing/decreasing and buffer TIM generation logic to incident…
mwodahl Apr 16, 2025
2f9fad3
Remove setItisCodesVsl
mwodahl Apr 17, 2025
4153a0b
Update clientID to include direction
mwodahl Apr 17, 2025
9dbc0fd
Add ITIS code abbreviation method to SetItisCodes
mwodahl Apr 17, 2025
3e2b65d
Update VSL validation to remove unnecessary logic
mwodahl Apr 17, 2025
8816ce8
Add delete method to VSL controller, add increasing/decreasing/buffer…
mwodahl Apr 17, 2025
6eb981d
Update clientID generation to use getItisCodeAbbreviation method
mwodahl Apr 17, 2025
d047e7e
Merge branch 'dev' into Update/CDOT-Compatibility
mwodahl Apr 17, 2025
8190b38
Merge branch 'Update/CDOT-Compatibility' into Update/CTW-Compatibility
mwodahl Apr 17, 2025
9dd1f93
Merge pull request #8 from CDOT-CV/fix/pull-frame-type-fix-from-upstream
payneBrandon Apr 23, 2025
796d74e
Remove unnecessary autowired annotation
mwodahl May 1, 2025
143e70f
Update clearMilepostCache variable naming for clarity
mwodahl May 1, 2025
6b227f3
Add if not exists to table creation
mwodahl May 1, 2025
4ae10bf
Update dbInteractions variable name in RsuService constructor
mwodahl May 1, 2025
cf6707d
Remove unused imports
mwodahl May 8, 2025
36c75ce
Update setMilepostCache to update existing values, rename getActiveTi…
mwodahl May 8, 2025
dfc9cc2
update getTimBearing method name for clarity
mwodahl May 8, 2025
982c037
Merge pull request #6 from CDOT-CV/Update/CDOT-Compatibility
payneBrandon May 29, 2025
5a306da
Merge branch 'dev' into Update/CTW-Compatibility
mwodahl Jun 24, 2025
6ae0622
Add reverted changes to JsonToJavaConverter class
mwodahl Jun 24, 2025
011a6b4
Update WydotTimRcController to use setItisCodes
mwodahl Jun 24, 2025
457416f
Testing updates
mwodahl Jun 24, 2025
900642a
Add missing topic to kafka_init.sh
mwodahl Jun 24, 2025
21d4535
Merge branch 'Update/ode-2025-q1-fix' into Update/CTW-Compatibility
mwodahl Jun 24, 2025
f54d262
chore: add GNIS ID configurable variable for packet id suffix for CTW…
pmonington Sep 19, 2025
2bff6f5
docs: add details for other dots for packetID variable to readme
pmonington Sep 19, 2025
f34fe0f
chore: change default to 000000 and add log for if the default was no…
pmonington Sep 22, 2025
0bb7a7c
Merge pull request #9 from CDOT-CV/Update/CTW-Compatibility
pmonington Sep 24, 2025
b2719a2
Merge pull request #11 from Trihydro/main
dmccoystephenson Sep 29, 2025
69805bf
Merge branch 'dev' into git/resolve-conflicts-between-main-and-dev
dmccoystephenson Sep 29, 2025
8250145
git: resolve compilation errors
dmccoystephenson Sep 29, 2025
acac371
test: fix failing unit tests in TimGenerationHelperTest
dmccoystephenson Sep 29, 2025
5751c9e
Merge remote-tracking branch 'origin/dev' into us/342571-CTW-Add-GNIS…
pmonington Oct 2, 2025
eb221a3
chore: adjust application properties to use spring to load env variable
pmonington Oct 2, 2025
e6671fe
chore: remove log based verification and replace utility with log
pmonington Oct 2, 2025
6c1555d
Merge pull request #13 from CDOT-CV/git/resolve-conflicts-between-mai…
dmccoystephenson Oct 3, 2025
2b84e68
Merge branch 'dev' into us/342571-CTW-Add-GNISID-Suffix-To-PacketID
pmonington Oct 3, 2025
fc49b36
chore: adjust whitespace
pmonington Oct 3, 2025
44553c3
chore: Require GNIS Packet ID to be set in environment variables
pmonington Oct 7, 2025
3e2ba61
chore: Throw exception when GNIS ID not set
pmonington Oct 7, 2025
d489ab0
Merge pull request #10 from CDOT-CV/us/342571-CTW-Add-GNISID-Suffix-T…
dmccoystephenson Oct 9, 2025
3b3f84c
refactor: extract duplicate one way TIM generation logic into BufferT…
pmonington Oct 15, 2025
e880748
fix: add return values to timstosend
pmonington Oct 15, 2025
267d846
test: add unit tests for buffer tim logic refactor
pmonington Oct 16, 2025
5b92eec
refactor: move BufferTimFactory to factory package
pmonington Oct 16, 2025
a0ff889
fix: adjust broken unit tests and address no supported route exceptio…
pmonington Oct 16, 2025
9e5e07b
chore: remove unused method
pmonington Oct 16, 2025
0a91c27
feat: apply CTW content standard to variable speed limit tims
pmonington Oct 17, 2025
c299f80
chore: remove unused import
pmonington Oct 17, 2025
096f0a4
chore: make test name more specific
pmonington Oct 17, 2025
07940bc
refactor: modify geometry validation logic in WydotTim and WydotTimSe…
dmccoystephenson Oct 17, 2025
515ce77
Merge pull request #16 from CDOT-CV/dmccoystephenson/suggestion/updat…
pmonington Oct 17, 2025
a983638
fix: handle unspecified speed values in variable speed limit TIM
pmonington Oct 20, 2025
46f3443
chore: adjust ITIS code method for clarity
pmonington Oct 20, 2025
4bb6c3f
docs: add clarifying comments and add documentation
pmonington Oct 20, 2025
c2df77a
Merge pull request #14 from CDOT-CV/Update/refactor-buffering-tim-logic
dmccoystephenson Oct 20, 2025
e93567e
fix: CTW standard make content sub-element strictly advisory
pmonington Oct 21, 2025
6855bf0
chore: fix constant variable casing
pmonington Oct 21, 2025
e274e9f
fix: move msgID to CTW standard and replace use of roadSignID with fu…
pmonington Oct 22, 2025
9bc1e59
test: add unit tests ensuring RoadSignID is not set
pmonington Oct 23, 2025
553b766
Merge pull request #18 from CDOT-CV/us/342579-CTW-msgid-complience
payneBrandon Oct 24, 2025
75e0ffc
chore: resolve merge conflicts
pmonington Oct 28, 2025
a7e7a4b
refactor: simplify TIM ITIS code handling by removing redundant condi…
pmonington Oct 28, 2025
1c619ca
Merge pull request #17 from CDOT-CV/us/347248-set-content-sub-element…
pmonington Oct 31, 2025
5963a26
feat: apply CTW FrameType requirement setting type to roadSignage
pmonington Nov 3, 2025
3755ffd
test: adjust unit tests for CTW FrameType requirement setting type to…
pmonington Nov 3, 2025
f37283e
chore: remove unused imports
pmonington Nov 3, 2025
3c37925
chore: clean code by preventing unnecessary variable assignments
pmonington Nov 3, 2025
4232a6d
chore: clean code by moving const number to const variable
pmonington Nov 3, 2025
dfbc66b
test: fix dataframe set to roadsignage for DataFrameServiceTest
pmonington Nov 3, 2025
0b3888f
Merge pull request #15 from CDOT-CV/us/394917-ctw-content-compliance-vsl
pmonington Nov 3, 2025
199877d
Merge branch 'origindev' into us/342578-ctw-dataframe-type-set-to-roa…
pmonington Nov 3, 2025
1eab1eb
fix: adjust the itis codes to remove redundant try block
pmonington Nov 3, 2025
6676228
fix: adjust sql RSU query to have proper syntax
pmonington Nov 3, 2025
29a6aee
fix: adjust gnis configuration for local deployments
pmonington Nov 3, 2025
0e1475e
chore: remove unused db configurations from ode wrapper
pmonington Nov 3, 2025
ee2a7f6
fix: adjust sql RSU query to have proper syntax
pmonington Nov 3, 2025
cd4cd82
fix: adjust the itis codes to remove redundant try block
pmonington Nov 3, 2025
cd66f49
fix: update local-deployment compose file to use legacy bitnami image
dmccoystephenson Nov 3, 2025
bae2460
Merge pull request #20 from CDOT-CV/docker/use-bitnami-legacy
pmonington Nov 3, 2025
85ba7b1
Merge branch 'origindev' into bug/404110-adjust-gnis-configuration-fo…
pmonington Nov 3, 2025
7a559e6
fix: remove unused environment variables for ode-wrapper
pmonington Nov 4, 2025
5b464a4
Merge pull request #21 from CDOT-CV/bug/404110-adjust-gnis-configurat…
dmccoystephenson Nov 4, 2025
43e2542
Merge branch 'origindev' into us/342578-ctw-dataframe-type-set-to-roa…
pmonington Nov 4, 2025
6a11519
fix: set furtherInfoID to octet size 2 in hex for asn1 compliance
pmonington Nov 10, 2025
4abacd6
Merge pull request #22 from CDOT-CV/us/342579-asn1-furtherInfoID-comp…
pmonington Nov 11, 2025
a11f836
Merge: resolve merge conflicts
pmonington Nov 11, 2025
a83c1ec
fix: assign frameType based on kafka topic message
pmonington Nov 19, 2025
f888fdd
chore: remove unused import
pmonington Nov 19, 2025
b20bdbf
fix: adjust active TIMs to return frameType from database
pmonington Nov 19, 2025
7fc9114
test: add unit test for ensuring active TIM FrameType is set to value…
pmonington Nov 19, 2025
1714a04
Merge pull request #19 from CDOT-CV/us/342578-ctw-dataframe-type-set-…
pmonington Nov 19, 2025
cb63a5c
Merge remote-tracking branch 'Trihydro/main' into mcook42/chore/sync-…
mcook42 Nov 25, 2025
45b7939
Merge pull request #24 from CDOT-CV/mcook42/chore/sync-trihydro-fork
mcook42 Nov 26, 2025
8cf468a
Merge branch 'main' into mcook42/chore/sync-main-to-dev
mcook42 Nov 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
Expand All @@ -53,7 +52,6 @@
@RequestMapping("active-tim")
@ApiIgnore
@Slf4j
@Import(DateTimeHelperImpl.class)
public class ActiveTimController extends BaseController {

private TimDbTables timDbTables;
Expand All @@ -72,17 +70,17 @@ public void InjectDependencies(TimDbTables _timDbTables, SQLNullHandler _sqlNull
this.dateTimeHelper = dateTimeHelper;
}

/**
* Retrieve active TIMs that are expiring within 24 hours.
* <p>
* Note: TIMs with a start time more than 24 hours in the future
* or an end time less than 24 hours in the future are excluded.
*
* @return List of ActiveTim objects
*/
@RequestMapping(value = "/expiring", method = RequestMethod.GET, produces = "application/json", headers = "Accept=application/json")
public ResponseEntity<List<TimUpdateModel>> GetExpiringActiveTims() {
List<TimUpdateModel> activeTims = new ArrayList<>();
/**
* Retrieve active TIMs that are expiring within 24 hours.
*
* Note: TIMs with a start time more than 24 hours in the future
* or an end time less than 24 hours in the future are excluded.
*
* @return List of ActiveTim objects
*/
@RequestMapping(value = "/expiring", method = RequestMethod.GET, produces = "application/json", headers = "Accept=application/json")
public ResponseEntity<List<TimUpdateModel>> GetExpiringActiveTims() {
List<TimUpdateModel> activeTims = new ArrayList<>();

String selectStatement = "SELECT atim.*, tt.type as tim_type_name, tt.description as tim_type_description";
selectStatement += ", t.msg_cnt, t.url_b, t.is_satellite, t.sat_record_id, t.packet_id";
Expand Down Expand Up @@ -112,24 +110,14 @@ public ResponseEntity<List<TimUpdateModel>> GetExpiringActiveTims() {
if (!rs.wasNull() && frameTypeValue >= 0 && frameTypeValue < TravelerInfoType.values().length) {
activeTim.setFrameType(TravelerInfoType.values()[frameTypeValue]);
}
else {
else {
log.warn("Could not set frame type from value {} for active tim id {}. Assuming Advisory.", frameTypeValue,
activeTim.getActiveTimId());
// assume advisory
activeTim.setFrameType(TravelerInfoType.advisory);
}

// set dataFrame content. it's required for the ODE, so if we didn't record it,
// assume Advisory
String serializedContent = rs.getString("DF_CONTENT");
ContentEnum contentType;
if (serializedContent == null || serializedContent.isEmpty()) {
contentType = ContentEnum.advisory;
} else {
contentType = ContentEnum.fromString(serializedContent);
activeTim.getActiveTimId());
// assume roadSignage
activeTim.setFrameType(TravelerInfoType.roadSignage);
}
activeTim.setDfContent(contentType);

activeTim.setDfContent(ContentEnum.advisory);
activeTims.add(activeTim);
}
} catch (Exception e) {
Expand Down Expand Up @@ -163,28 +151,19 @@ public ResponseEntity<TimUpdateModel> GetUpdateModelFromActiveTimId(@PathVariabl
// convert to ActiveTim object
while (rs.next()) {
// Active_Tim properties
activeTim = buildTimUpdateModelFromResultSet(rs);
activeTim = buildTimUpdateModelFromResultSet(rs);

int frameTypeValue = rs.getInt("FRAME_TYPE");
if (!rs.wasNull() && frameTypeValue >= 0 && frameTypeValue < TravelerInfoType.values().length) {
activeTim.setFrameType(TravelerInfoType.values()[frameTypeValue]);
}
else {
else {
log.warn("Could not set frame type from value {} for active tim id {}. Assuming Advisory.", frameTypeValue, activeTimId);
// assume advisory
activeTim.setFrameType(TravelerInfoType.advisory);
}

// set dataFrame content. it's required for the ODE, so if we didn't record it,
// assume Advisory
String serializedContent = rs.getString("DF_CONTENT");
ContentEnum contentType;
if (serializedContent == null || serializedContent.isEmpty()) {
contentType = ContentEnum.advisory;
} else {
contentType = ContentEnum.fromString(serializedContent);
// assume roadSignage
activeTim.setFrameType(TravelerInfoType.roadSignage);
}
activeTim.setDfContent(contentType);

activeTim.setDfContent(ContentEnum.advisory);
}
} catch (Exception e) {
log.error("Error getting active tim", e);
Expand Down Expand Up @@ -290,12 +269,11 @@ public ResponseEntity<List<Integer>> GetActiveTimIndicesByRsu(@PathVariable Stri

List<Integer> indices = new ArrayList<>();

String selectStatement = "select tim_rsu.rsu_index from active_tim";
selectStatement += " inner join tim on active_tim.tim_id = tim.tim_id";
selectStatement += " inner join tim_rsu on tim_rsu.tim_id = tim.tim_id";
selectStatement += " inner join rsu on rsu.rsu_id = tim_rsu.rsu_id";
selectStatement += " inner join rsu_view on rsu.deviceid = rsu_view.deviceid";
selectStatement += " where rsu_view.ipv4_address = '" + rsuTarget + "'";
String selectStatement = "select tim_rsu.rsu_index from active_tim";
selectStatement += " inner join tim on active_tim.tim_id = tim.tim_id";
selectStatement += " inner join tim_rsu on tim_rsu.tim_id = tim.tim_id";
selectStatement += " inner join rsus on rsus.rsu_id = tim_rsu.rsu_id";
selectStatement += " where rsus.ipv4_address = '" + rsuTarget + "'";

try (Connection connection = dbInteractions.getConnectionPool(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(selectStatement)) {
// convert to ActiveTim object
Expand Down Expand Up @@ -698,12 +676,11 @@ public ResponseEntity<List<ActiveTim>> GetActiveRsuTims() {
List<ActiveTim> results = new ArrayList<ActiveTim>();
ActiveTim activeTim = null;

String query = "select active_tim.*, rsu_view.ipv4_address, tim_rsu.rsu_index from active_tim";
String query = "select active_tim.*, rsus.ipv4_address, tim_rsu.rsu_index from active_tim";
query += " inner join tim_rsu on active_tim.tim_id = tim_rsu.tim_id";
query += " inner join rsu on tim_rsu.rsu_id = rsu.rsu_id";
query += " inner join rsu_view on rsu.deviceid = rsu_view.deviceid";
query += " inner join rsus on tim_rsu.rsu_id = rsus.rsu_id";
query += " where sat_record_id is null";
query += " order by rsu_view.ipv4_address, tim_rsu.rsu_index"; // Required by ValidateRsus
query += " order by rsus.ipv4_address, tim_rsu.rsu_index"; // Required by ValidateRsus

try (Connection connection = dbInteractions.getConnectionPool(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(query)) {
// convert to ActiveTim object
Expand Down Expand Up @@ -755,9 +732,9 @@ public ResponseEntity<ActiveTim> GetActiveRsuTim(@RequestBody ActiveRsuTimQueryM

String query = "select * from active_tim";
query += " inner join tim_rsu on active_tim.tim_id = tim_rsu.tim_id";
query += " inner join rsu on tim_rsu.rsu_id = rsu.rsu_id";
query += " inner join rsu_view on rsu.deviceid = rsu_view.deviceid";
query += " where ipv4_address = '" + artqm.getIpv4() + "' and client_id = '" + artqm.getClientId() + "' and active_tim.direction = '" + artqm.getDirection() + "'";
query += " inner join rsus on tim_rsu.rsu_id = rsus.rsu_id";
query += " where ipv4_address = '" + artqm.getIpv4() + "' and client_id = '" + artqm.getClientId()
+ "' and active_tim.direction = '" + artqm.getDirection() + "'";

try (Connection connection = dbInteractions.getConnectionPool(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(query)) {
List<ActiveTim> activeTims = getActiveTimFromRS(rs, false);
Expand Down Expand Up @@ -1119,6 +1096,65 @@ private TimUpdateModel buildTimUpdateModelFromResultSet(ResultSet rs) throws SQL
timUpdateModel.setDataFrameId(rs.getInt("DATA_FRAME_ID"));
timUpdateModel.setDurationTime(rs.getInt("DURATION_TIME"));
timUpdateModel.setUrl(rs.getString("URL"));

return timUpdateModel;
}

public TimUpdateModel setPropertiesForActiveTim(ResultSet rs, TimUpdateModel activeTim) throws SQLException {
activeTim.setActiveTimId(rs.getLong("ACTIVE_TIM_ID"));
activeTim.setTimId(rs.getLong("TIM_ID"));
activeTim.setDirection(rs.getString("DIRECTION"));
activeTim.setStartDateTime(rs.getString("TIM_START"));
activeTim.setEndDateTime(rs.getString("TIM_END"));
activeTim.setExpirationDateTime(rs.getString("EXPIRATION_DATE"));
activeTim.setSatRecordId(rs.getString("SAT_RECORD_ID"));
activeTim.setClientId(rs.getString("CLIENT_ID"));
activeTim.setRoute(rs.getString("ROUTE"));

Coordinate startPoint = null;
Coordinate endPoint = null;
BigDecimal startLat = rs.getBigDecimal("START_LATITUDE");
BigDecimal startLon = rs.getBigDecimal("START_LONGITUDE");
if (!rs.wasNull()) {
startPoint = new Coordinate(startLat, startLon);
}
activeTim.setStartPoint(startPoint);

BigDecimal endLat = rs.getBigDecimal("END_LATITUDE");
BigDecimal endLon = rs.getBigDecimal("END_LONGITUDE");
if (!rs.wasNull()) {
endPoint = new Coordinate(endLat, endLon);
}
activeTim.setEndPoint(endPoint);

activeTim.setStartDate_Timestamp(rs.getTimestamp("TIM_START", UTCCalendar));
activeTim.setEndDate_Timestamp(rs.getTimestamp("TIM_END", UTCCalendar));

// Tim properties
activeTim.setMsgCnt(rs.getInt("MSG_CNT"));
activeTim.setUrlB(rs.getString("URL_B"));
activeTim.setPacketId(rs.getString("PACKET_ID"));

// Tim Type properties
activeTim.setTimTypeName(rs.getString("TIM_TYPE_NAME"));
activeTim.setTimTypeDescription(rs.getString("TIM_TYPE_DESCRIPTION"));

// Region Properties
activeTim.setRegionId(rs.getInt("REGION_ID"));
activeTim.setAnchorLat(rs.getBigDecimal("ANCHOR_LAT"));
activeTim.setAnchorLong(rs.getBigDecimal("ANCHOR_LONG"));

activeTim.setLaneWidth(rs.getBigDecimal("LANE_WIDTH"));
activeTim.setRegionDirection(rs.getString("REGION_DIRECTION"));
activeTim.setDirectionality(rs.getString("DIRECTIONALITY"));
activeTim.setClosedPath(rs.getBoolean("CLOSED_PATH"));
activeTim.setPathId(rs.getInt("PATH_ID"));
activeTim.setRegionDescription(rs.getString("REGION_DESCRIPTION"));

// DataFrame properties
activeTim.setDataFrameId(rs.getInt("DATA_FRAME_ID"));
activeTim.setDurationTime(rs.getInt("DURATION_TIME"));
activeTim.setUrl(rs.getString("URL"));
return activeTim;
}
}
Loading
Loading