This folder documents how to format TIM payloads and deposit them to SDX using the SEMI ASN definitions in SEMI_v2.4.2_050925_j2024.asn.
- SEMI module version: 2.4.2-draft (2025-05-09)
- Important note in this version:
advisoryMessagesupportsOCTET STRING (SIZE(0..7000))for multi-region ASD TIMs. - Note that this SEMI can be found in the asn1_codec repo on GitHub as well.
Use these local documents together with the SEMI ASN file:
TravelerInformation structure for standard TIMs v20260213.docx- Defines use of the J2735
TravelerInformationstructure to build standard TIMs for CTW. - Captures ITWG-aligned TIM construction practices (through Nov 2025 draft guidance).
- Defines use of the J2735
CTW-TIMs-ITIS-v20260218.xlsx- Defines TIM message types and associated ITIS code/phrase sequences.
- Use as the message content reference when building TIM payload semantics.
- SDX service UI: https://sdx-service.trihydro.com
- Single-message deposit endpoint:
/api/deposit - Multi-message deposit endpoint:
/api/deposit-multi
TIM content is carried as an encoded binary message in ASD structures.
When constructing TIM content before encoding into advisoryMessage, follow CTW guidance from the TravelerInformation document:
- Treat
packetID + msgCntas the TIM unique identifier pair. - Manage
msgCntas updates to an existing TIM (0..127, rollover handled with timestamp logic). - Include and update
timeStampwith each TIM update (minute-of-year UTC; ITWG recommends mandatory use). - Build
packetIDas 9 octets with:- first 3 octets = authority identifier (GNIS-based prefix)
- last 6 octets = unique ID within active TIM set
- Use multiple
dataFramesin a single TIM only for tightly coupled messages that should be managed together. - Populate
TravelerDataFrame.contentusing sequences of ITIS codes (J2540 based) to define message meaning.
Additional CTW/ITWG conventions noted in the document:
frameType: useroadSignagefor public road authority generated TIMs.msgId: usefurtherInfoID(default value0); do not useroadSignIDpath.urlB: recommended not used.
These conventions apply to the TIM structure used to generate the encoded bytes carried in SEMI ASD deposit messages.
Use CTW-TIMs-ITIS-v20260218.xlsx as the authoritative mapping for:
- TIM message type definitions
- ITIS code sequences
- ITIS phrase/text sequencing rules used to populate TIM content consistently
During TIM build/validation, verify that each message uses an approved message type and the corresponding ITIS sequence from this spreadsheet before encoding and deposit.
AdvisoryDetails.asdmTypeusesAdvisoryBroadcastTypeAdvisoryBroadcastType.tim=(2)- TIM bytes are sent in:
AdvisoryDetails.advisoryMessage OCTET STRING (SIZE(0..7000))
For TIM deposit to SDX, use AdvisorySituationData:
dialogID:advSitDataDep (156)(0x009C)seqID:data (5)groupID:GroupID(TemporaryID; use00 00 00 00)requestID:TemporaryID(4-byte transfer ID)recordID(optional):TemporaryID(use to overwrite existing record(s))serviceRegion:GeoRegion(NW and SE corners)asdmDetails:AdvisoryDetails
Inside AdvisoryDetails for TIM:
asdmID:TemporaryIDasdmType: set totim (2)startTime(optional):DFullTimestopTime(optional):DFullTimeadvisoryMessage: encoded TIM bytes, max 7000 bytes. Note this is the ASN1 UPER encoded MessageFrame
Use the SDX API at https://sdx-service.trihydro.com for TIM deposits.
- Build and encode the SEMI ASD payload
- Build an
AdvisorySituationDatamessage with TIM content (asdmType = tim (2)). - UPER-encode the ASD message bytes.
- Represent the encoded bytes using one of the supported
encodeTypevalues:hexbase64uper
- Submit a single-message deposit (
POST /api/deposit)
- Endpoint:
https://sdx-service.trihydro.com/api/deposit - Request body schema:
DepositRequest - Required fields:
encodedMsg(string)encodeType(hex,base64, oruper)
- Optional fields:
estimatedRemovalDate(ISO date-time)sharedId(nullable string used for correlation. ignore)
- Success response (
200): integerrecordIdof the deposited advisory message. - Possible error responses:
400invalid request403user org not authorized for deposit region500internal server error
- Submit a multi-message deposit (
POST /api/deposit-multi) when batching
- Endpoint:
https://sdx-service.trihydro.com/api/deposit-multi - Request body schema:
DepositRequestListdepositRequests: array ofDepositRequest
- Success response (
200):DepositMultiSummarydepositedRecordIds: list of successful record IDsfailedDepositRequests: list of failed request payloads/errorsfailedAuthorizedAsds: authorized ASD records that still failed processing
- Verify deposit results
- For single deposit, store the returned
recordId. - For multi deposit, process both successful and failed entries from the summary.
- Optionally query deposited records with:
GET /api/deposited-by-me/{semiDialogId}(use156for Advisory Situation Data Deposit)
- Recommended pre-check
- Before depositing, use
POST /api/decodeto validate encoded payload format and decodeability.
Before deposit:
- TIM payload is properly encoded into bytes.
advisoryMessagelength is<= 7000bytes.asdmTypeis exactly TIM (2).groupIDandrequestIDare present and tracked through the full dialog.serviceRegionmatches intended deployment area.startTimeandstopTime(if used) are UTC and valid for intended broadcast window.
After deposit:
- Confirm
DataConfirmation,DataAcceptance, andDataReceiptwere received with matching IDs/hashes. - If replacing a record, verify overwrite behavior using the same
recordID.
- This README documents ASN message structure and expected exchange sequence.
- Service URL and deposit endpoint paths are documented above but may be subject to change; always refer to the latest SDX API documentation for current endpoints and request/response formats.