// Five HTML clients are available for testing purposes - httpclient.html // HTTP(S) requests to VISSv2 server - wsclient_uncompressed.html // WS(S) requests to VISSv2 server - wsclient_compressed.html // WS(S) requests to VISSv2 server, using an experimental compression algorithm - agtclient.html // HTTP requests to Access Grant Token server - agclient.html // HTTP requests to Access Token server // Websocket request examples Get request: {"action":"get","path":"Vehicle/Cabin/Door/Row1/DriverSide/IsOpen","requestId":"232"} {"action":"get","path":"Vehicle.Acceleration.Longitudinal","requestId":"233"} Get request for historic data: {"action":"get","path":"Vehicle.Acceleration.Longitudinal","filter":{"type":"history","parameter":"P2DT12H"},"requestId":"234"} Get request with search: {"action":"get","path":"Vehicle/Cabin/Door","filter":{"type":"paths","parameter":"*.*.IsOpen"},"requestId":"235"} {"action":"get","path":"Vehicle.ADAS.ABS","filter":{"type":"paths","parameter":"*"},"requestId":"236"} {"action":"get","path":"Vehicle/ADAS","filter":{"type":"paths","parameter":["ABS/*","CruiseControl/Error"]},"requestId":"237"} Get request with AT token (XXX must be replaced with actual token): {"action":"get","path":"Vehicle/ADAS/CruiseControl/Error","authorization":"XXX","requestId":"241"} {"action":"get","path":"Vehicle.Body.BodyType","authorization":"XXX","requestId":"243"} Metadata request: {"action":"get","path":"Vehicle/ADAS/ABS","filter":{"type":"static-metadata","parameter":""},"requestId":"244"} {"action":"get","path":"Vehicle","filter":{"type":"dynamic-metadata","parameter":"server_capabilities"},"requestId":"244"} {"action":"get","path":"Vehicle/ADAS","filter":[{"type":"paths","parameter":["ABS/*","CruiseControl/Error"]},{"type":"dynamic-metadata","parameter":"availability"}],"requestId":"237"} Set request: {"action":"set", "path":"Vehicle/Cabin/Door/Row1/Right/IsOpen", "value":"999", "requestId":"245"} Subscribe request: {"action":"subscribe","path":"Vehicle/Cabin/Door/Row1/PassengerSide/IsOpen","filter":{"type":"timebased","parameter":{"period":"3000"}},"requestId":"246"} {"action":"subscribe","path":"Vehicle.Cabin.Door.Row1.Right.IsOpen","filter":{"type":"change","parameter":{"logic-op":"ne", "diff":"0"}},"requestId":"247"} {"action":"subscribe","path":"Vehicle/Cabin/Door/Row1/Right/IsOpen","filter":{"type":"range","parameter":{"logic-op":"gt","boundary":"500"}},"requestId":"255"} {"action":"subscribe","path":"Vehicle/Cabin/Door/Row1/Right/IsOpen","filter":{"type":"range","parameter":[{"logic-op":"gt","boundary":"500"},{"logic-op":"lt","boundary":"510"}]},"requestId":"265"} {"action":"subscribe","path":"Vehicle.Powertrain.Transmission.Speed","filter":{"type":"curvelog","parameter":{"maxerr":"2","bufsize":"100"}},"requestId":"275"} {"action":"subscribe","path":"Vehicle","filter":[{"type":"paths","parameter":["CurrentLocation.Latitude", "CurrentLocation.Longitude"]}, {"type":"curvelog","parameter":{"maxerr":"0.00001","bufsize":"100"}}],"requestId":"285"} Unsubscribe request: {"action":"unsubscribe","subscriptionId":"1","requestId":"240"} // HTTP request examples Get request: HTTP GET URL: Vehicle/Cabin/Door/Row1/Right/IsOpen URL: Vehicle.Acceleration.Longitudinal Get request with search: HTTP GET URL: Vehicle/Cabin?filter={"type":"paths", "parameter":["Door/*/*/IsOpen", "Convertible/Status"]} URL: Vehicle.ADAS?filter={"type":"paths", "parameter":["ABS.*", "CruiseControl.Error"]} Get request for historic data: HTTP GET URL: Vehicle.Acceleration.Longitudinal?filter={"type":"history", "parameter":"P2DT12H"} Set request: HTTP POST URL: Vehicle.Acceleration.Longitudinal Payload: 0.123 Service discovery request: HTTP GET URL: Vehicle/ADAS/ABS?filter={"type":"static-metadata", "parameter":""} // ********* Access control testing ************* // requires that a binary VSS file has been generated with "validate" tags added into vspec file(s) for the requested signals. // AGTserver POST input @agtclient.html: agtserver {"action": "agt-request", "vin":"GEO001", "context":"Independent+OEM+Cloud", "proof":"ABC", "key":"DEF"} // ATserver POST input @atclient.html: atserver {"action": "at-request", "agToken":"xyz", "purpose":"fuel-status", "pop":""} {"action": "at-inquiry", "sessionId":"xxx"} //VISSv2 server request for fuel-status use case: wsclient_uncompressed.html: {"action":"get","path":"Vehicle.Powertrain.FuelSystem","filter":{"type":"paths","parameter":["AbsoluteLevel","Range"]},"authorization":"at","requestId":"235"} // where "at" is the Access Token from ATS request http_client.html: URL: Vehicle/Cabin/Door/Row1/Right/IsOpen Access token: from at-request response