Skip to content

SRM JSON Schema

Drew Johnston edited this page Dec 1, 2021 · 1 revision
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "properties": {
        "originIp": {
          "type": "string"
        },
        "srmSource": {
          "type": "string"
        },
        "logFileName": {
          "type": "string"
        },
        "recordType": {
          "type": "string"
        },
        "securityResultCode": {
          "type": "string"
        },
        "receivedMessageDetails": {
          "type": "object",
          "properties": {
            "locationData": {
              "type": "null"
            },
            "rxSource": {
              "type": "string"
            }
          },
          "required": [
            "locationData",
            "rxSource"
          ]
        },
        "encodings": {
          "type": "null"
        },
        "payloadType": {
          "type": "string"
        },
        "serialId": {
          "type": "object",
          "properties": {
            "streamId": {
              "type": "string"
            },
            "bundleSize": {
              "type": "integer"
            },
            "bundleId": {
              "type": "integer"
            },
            "recordId": {
              "type": "integer"
            },
            "serialNumber": {
              "type": "integer"
            }
          },
          "required": [
            "streamId",
            "bundleSize",
            "bundleId",
            "recordId",
            "serialNumber"
          ]
        },
        "odeReceivedAt": {
          "type": "string"
        },
        "schemaVersion": {
          "type": "integer"
        },
        "maxDurationTime": {
          "type": "integer"
        },
        "odePacketID": {
          "type": "string"
        },
        "odeTimStartDateTime": {
          "type": "string"
        },
        "recordGeneratedAt": {
          "type": "string"
        },
        "recordGeneratedBy": {
          "type": "null"
        },
        "sanitized": {
          "type": "boolean"
        }
      },
      "required": [
        "originIp",
        "srmSource",
        "logFileName",
        "recordType",
        "securityResultCode",
        "receivedMessageDetails",
        "encodings",
        "payloadType",
        "serialId",
        "odeReceivedAt",
        "schemaVersion",
        "maxDurationTime",
        "odePacketID",
        "odeTimStartDateTime",
        "recordGeneratedAt",
        "recordGeneratedBy",
        "sanitized"
      ]
    },
    "payload": {
      "type": "object",
      "properties": {
        "dataType": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "properties": {
            "timeStamp": {
              "type": "integer"
            },
            "second": {
              "type": "integer"
            },
            "sequenceNumber": {
              "type": "integer"
            },
            "requests": {
              "type": "object",
              "properties": {
                "signalRequestPackage": {
                  "type": "array",
                  "items": [
                    {
                      "type": "object",
                      "properties": {
                        "request": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "object",
                              "properties": {
                                "region": {
                                  "type": "integer"
                                },
                                "id": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "region",
                                "id"
                              ]
                            },
                            "requestID": {
                              "type": "integer"
                            },
                            "requestType": {
                              "type": "string"
                            },
                            "inBoundLane": {
                              "type": "object",
                              "properties": {
                                "lane": {
                                  "type": "integer"
                                },
                                "approach": {
                                  "type": "integer"
                                },
                                "connection": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "lane",
                                "approach",
                                "connection"
                              ]
                            },
                            "outBoundLane": {
                              "type": "object",
                              "properties": {
                                "lane": {
                                  "type": "integer"
                                },
                                "approach": {
                                  "type": "integer"
                                },
                                "connection": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "lane",
                                "approach",
                                "connection"
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "requestID",
                            "requestType",
                            "inBoundLane"
                          ]
                        },
                        "minute": {
                          "type": "null"
                        },
                        "second": {
                          "type": "null"
                        },
                        "duration": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "request"
                      ]
                    }
                  ]
                }
              },
              "required": [
                "signalRequestPackage"
              ]
            },
            "requestor": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "object",
                  "properties": {
                    "entityID": {
                      "type": "string"
                    },
                    "stationID": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "entityID",
                    "stationID"
                  ]
                },
                "type": {
                  "type": "object",
                  "properties": {
                    "role": {
                      "type": "string"
                    },
                    "subrole": {
                      "type": "string"
                    },
                    "request": {
                      "type": "string"
                    },
                    "iso3883": {
                      "type": "integer"
                    },
                    "hpmsType": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "role"
                  ]
                },
                "position": {
                  "type": "object",
                  "properties": {
                    "position": {
                      "type": "object",
                      "properties": {
                        "lat": {
                          "type": "integer"
                        },
                        "lon": {
                          "type": "integer"
                        },
                        "elevation": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "lat",
                        "lon"
                      ]
                    },
                    "heading": {
                      "type": "integer"
                    },
                    "speed": {
                      "type": "object",
					  "properties": {
					    "transmisson": {
						  "type": "string"
						},
					    "speed": {
					      "type": "integer"
					    }
					  },
					  "required": [
                        "transmisson",
                        "speed"
                      ]
                    }
                  },
                  "required": [
                    "position"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "routeName": {
                  "type": "string"
                },
                "transitStatus": {
                  "type": "string"
                },
                "transitOccupancy": {
                  "type": "string"
                },
                "transitSchedule": {
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "required": [
            "requestor"
          ]
        }
      },
      "required": [
        "dataType",
        "data"
      ]
    }
  },
  "required": [
    "metadata",
    "payload"
  ]
}

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