Skip to content

TIM JSON Schema

Drew Johnston edited this page Dec 1, 2021 · 2 revisions
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "properties": {
    "metadata": {
      "properties": {
        "logFileName": {
          "type": "string"
        },
        "maxDurationTime": {
          "type": "integer"
        },
        "odePacketID": {
          "type": "string"
        },
        "odeReceivedAt": {
          "type": "string"
        },
        "odeTimStartDateTime": {
          "type": "string"
        },
        "originIp": {
          "type": "string"
        },
        "payloadType": {
          "type": "string"
        },
        "receivedMessageDetails": {
          "type": "string"
        },
        "recordGeneratedAt": {
          "type": "string"
        },
        "recordGeneratedBy": {
          "type": "string"
        },
        "recordType": {
          "type": "string"
        },
        "sanitized": {
          "type": "boolean"
        },
        "schemaVersion": {
          "type": "integer"
        },
        "securityResultCode": {
          "type": "string"
        },
        "serialId": {
          "properties": {
            "bundleId": {
              "type": "integer"
            },
            "bundleSize": {
              "type": "integer"
            },
            "recordId": {
              "type": "integer"
            },
            "serialNumber": {
              "type": "integer"
            },
            "streamId": {
              "type": "string"
            }
          },
          "required": [
            "recordId",
            "serialNumber",
            "streamId",
            "bundleSize",
            "bundleId"
          ],
          "type": "object"
        }
      },
      "required": [
        "securityResultCode",
        "recordGeneratedBy",
        "schemaVersion",
        "odePacketID",
        "sanitized",
        "recordGeneratedAt",
        "recordType",
        "maxDurationTime",
        "odeTimStartDateTime",
        "receivedMessageDetails",
        "payloadType",
        "serialId",
        "logFileName",
        "odeReceivedAt",
        "originIp"
      ],
      "type": "object"
    },
    "payload": {
      "properties": {
        "data": {
          "properties": {
            "MessageFrame": {
              "properties": {
                "messageId": {
                  "type": "integer"
                },
                "value": {
                  "properties": {
                    "TravelerInformation": {
                      "properties": {
                        "dataFrames": {
                          "properties": {
                            "TravelerDataFrame": {
                              "properties": {
                                "content": {
                                  "properties": {
                                    "advisory": {
                                      "properties": {
                                        "SEQUENCE": {
                                          "items": [
                                            {
                                              "properties": {
                                                "item": {
                                                  "properties": {
                                                    "itis": {
                                                      "type": "integer"
                                                    }
                                                  },
                                                  "required": [
                                                    "itis"
                                                  ],
                                                  "type": "object"
                                                }
                                              },
                                              "required": [
                                                "item"
                                              ],
                                              "type": "object"
                                            },
                                            {
                                              "properties": {
                                                "item": {
                                                  "properties": {
                                                    "itis": {
                                                      "type": "integer"
                                                    }
                                                  },
                                                  "required": [
                                                    "itis"
                                                  ],
                                                  "type": "object"
                                                }
                                              },
                                              "required": [
                                                "item"
                                              ],
                                              "type": "object"
                                            }
                                          ],
                                          "type": "array"
                                        }
                                      },
                                      "required": [
                                        "SEQUENCE"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "advisory"
                                  ],
                                  "type": "object"
                                },
                                "duratonTime": {
                                  "type": "integer"
                                },
                                "frameType": {
                                  "properties": {
                                    "advisory": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "advisory"
                                  ],
                                  "type": "object"
                                },
                                "msgId": {
                                  "properties": {
                                    "roadSignID": {
                                      "properties": {
                                        "mutcdCode": {
                                          "properties": {
                                            "warning": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "warning"
                                          ],
                                          "type": "object"
                                        },
                                        "position": {
                                          "properties": {
                                            "lat": {
                                              "type": "integer"
                                            },
                                            "long": {
                                              "type": "integer"
                                            }
                                          },
                                          "required": [
                                            "lat",
                                            "long"
                                          ],
                                          "type": "object"
                                        },
                                        "viewAngle": {
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "viewAngle",
                                        "mutcdCode",
                                        "position"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "roadSignID"
                                  ],
                                  "type": "object"
                                },
                                "priority": {
                                  "type": "integer"
                                },
                                "regions": {
                                  "properties": {
                                    "GeographicalPath": {
                                      "properties": {
                                        "anchor": {
                                          "properties": {
                                            "lat": {
                                              "type": "integer"
                                            },
                                            "long": {
                                              "type": "integer"
                                            }
                                          },
                                          "required": [
                                            "lat",
                                            "long"
                                          ],
                                          "type": "object"
                                        },
                                        "closedPath": {
                                          "properties": {
                                            "false": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "false"
                                          ],
                                          "type": "object"
                                        },
                                        "description": {
                                          "properties": {
                                            "path": {
                                              "properties": {
                                                "offset": {
                                                  "properties": {
                                                    "xy": {
                                                      "properties": {
                                                        "nodes": {
                                                          "properties": {
                                                            "NodeXY": {
                                                              "items": [
                                                                {
                                                                  "properties": {
                                                                    "delta": {
                                                                      "properties": {
                                                                        "node-LatLon": {
                                                                          "properties": {
                                                                            "lat": {
                                                                              "type": "integer"
                                                                            },
                                                                            "lon": {
                                                                              "type": "integer"
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "lon",
                                                                            "lat"
                                                                          ],
                                                                          "type": "object"
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "node-LatLon"
                                                                      ],
                                                                      "type": "object"
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "delta"
                                                                  ],
                                                                  "type": "object"
                                                                },
                                                                {
                                                                  "properties": {
                                                                    "delta": {
                                                                      "properties": {
                                                                        "node-LatLon": {
                                                                          "properties": {
                                                                            "lat": {
                                                                              "type": "integer"
                                                                            },
                                                                            "lon": {
                                                                              "type": "integer"
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "lon",
                                                                            "lat"
                                                                          ],
                                                                          "type": "object"
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "node-LatLon"
                                                                      ],
                                                                      "type": "object"
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "delta"
                                                                  ],
                                                                  "type": "object"
                                                                }
                                                              ],
                                                              "type": "array"
                                                            }
                                                          },
                                                          "required": [
                                                            "NodeXY"
                                                          ],
                                                          "type": "object"
                                                        }
                                                      },
                                                      "required": [
                                                        "nodes"
                                                      ],
                                                      "type": "object"
                                                    }
                                                  },
                                                  "required": [
                                                    "xy"
                                                  ],
                                                  "type": "object"
                                                }
                                              },
                                              "required": [
                                                "offset"
                                              ],
                                              "type": "object"
                                            }
                                          },
                                          "required": [
                                            "path"
                                          ],
                                          "type": "object"
                                        },
                                        "direction": {
                                          "type": "integer"
                                        },
                                        "directionality": {
                                          "properties": {
                                            "both": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "both"
                                          ],
                                          "type": "object"
                                        },
                                        "laneWidth": {
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "closedPath",
                                        "anchor",
                                        "laneWidth",
                                        "directionality",
                                        "description",
                                        "direction"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "GeographicalPath"
                                  ],
                                  "type": "object"
                                },
                                "sspLocationRights": {
                                  "type": "integer"
                                },
                                "sspMsgRights1": {
                                  "type": "integer"
                                },
                                "sspMsgRights2": {
                                  "type": "integer"
                                },
                                "sspTimRights": {
                                  "type": "integer"
                                },
                                "startTime": {
                                  "type": "integer"
                                },
                                "startYear": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "regions",
                                "duratonTime",
                                "sspMsgRights1",
                                "sspMsgRights2",
                                "sspTimRights",
                                "startYear",
                                "sspLocationRights",
                                "frameType",
                                "msgId",
                                "startTime",
                                "priority",
                                "content"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "TravelerDataFrame"
                          ],
                          "type": "object"
                        },
                        "msgCnt": {
                          "type": "integer"
                        },
                        "packetID": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "packetID",
                        "dataFrames",
                        "msgCnt"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "TravelerInformation"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "messageId",
                "value"
              ],
              "type": "object"
            }
          },
          "required": [
            "MessageFrame"
          ],
          "type": "object"
        },
        "dataType": {
          "type": "string"
        }
      },
      "required": [
        "data",
        "dataType"
      ],
      "type": "object"
    }
  },
  "required": [
    "metadata",
    "payload"
  ],
  "type": "object"
}

Releases

Change Notices

Informational Reference

  • Decode a file with asn1c
  • Deposit BSM to S3
  • Docker fix for SSL issues due to corporate network
  • Docker management
  • ECDSA Primer
  • Filter BSMs through PPM module
  • Geofence Filtering for PPM
  • Import BSMs from RSU log file
  • Import TIMs from RSU log file
  • jpo security svcs Integration
  • Link host directory to Docker directory
  • Migrating from SDW websocket depositor to SDW Depositor Submodule
  • ODE Release Deployment
  • ODE Release Preparation
  • Prepare a fresh Ubuntu instance for ODE installation
  • Process for Handling Bugs (Code Defects)
  • Run the ODE using the ASN codec module
  • Query RSU for set TIMs
  • Schema Version 6 Change Notice
  • Signed Message File Import
  • TIM REST Endpoint Changes
  • Using the .env configuration file
  • Using the ODE test harness

Test Procedures

  • Delete TIM on RSU test
  • Event Logger Test
  • Import Decode and Deliver BSM Test
  • Manage SNMP Test
  • Sending PDM to RSU Test
  • Sending TIM to RSU Test
  • Submit_TIM_To_SDW Test

Archived

  • Log File Changes (schemaVersion=4)
  • Receive BSMs over UDP
  • Receive ISD via UDP and deposit to SDC
  • Receive VSD via UDP and deposit to SDC
  • Run the crypto test vectors code with ODE team's OSS encoder
  • SchemaVersion 5 Change Notice
Clone this wiki locally