UNPKG

vda-5050-lib

Version:

Universal VDA 5050 library for Node.js and browsers

738 lines (736 loc) 269 kB
// ----------------------------------------------------------------------------" // This file was generated by a tool, do not modify it directly. // ---------------------------------------------------------------------------- const validateConnection = (function() { 'use strict' const hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty); const format0 = (input) => { if (input.length > 10 + 1 + 9 + 12 + 6) return false const full = /^\d\d\d\d-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])[t\s](?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)$/i const feb = input[5] === '0' && input[6] === '2' if ((feb && input[8] === '3') || !full.test(input)) return false if (input[17] === '6') { const p = input.slice(11).match(/([0-9.]+|[^0-9.])/g) let hm = Number(p[0]) * 60 + Number(p[2]) if (p[5] === '+') hm += 24 * 60 - Number(p[6] || 0) * 60 - Number(p[8] || 0) else if (p[5] === '-') hm += Number(p[6] || 0) * 60 + Number(p[8] || 0) if (hm % (24 * 60) !== 23 * 60 + 59) return false } if (feb) { if (/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)/.test(input)) return true const matches = input.match(/^(\d\d\d\d)-02-29/) if (!matches) return false const year = matches[1] | 0 return year % 16 === 0 || (year % 4 === 0 && year % 25 !== 0) } if (input[8] === '3' && input[9] === '1') return /^\d\d\d\d-(?:0[13578]|1[02])-31/.test(input) return /^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)/.test(input) }; const ref0 = function validate(data) { validate.errors = null if (!(typeof data === "object" && data && !Array.isArray(data))) { validate.errors = [{ keywordLocation: "#/type", instanceLocation: "#" }] return false } if (!("headerId" in data && hasOwn(data, "headerId"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/headerId" }] return false } if (!("timestamp" in data && hasOwn(data, "timestamp"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/timestamp" }] return false } if (!("version" in data && hasOwn(data, "version"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/version" }] return false } if (!("manufacturer" in data && hasOwn(data, "manufacturer"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/manufacturer" }] return false } if (!("serialNumber" in data && hasOwn(data, "serialNumber"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/serialNumber" }] return false } if (!("connectionState" in data && hasOwn(data, "connectionState"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/connectionState" }] return false } if (!Number.isInteger(data.headerId)) { validate.errors = [{ keywordLocation: "#/properties/headerId/type", instanceLocation: "#/headerId" }] return false } if (!(typeof data.timestamp === "string")) { validate.errors = [{ keywordLocation: "#/properties/timestamp/type", instanceLocation: "#/timestamp" }] return false } if (!format0(data.timestamp)) { validate.errors = [{ keywordLocation: "#/properties/timestamp/format", instanceLocation: "#/timestamp" }] return false } if (!(typeof data.version === "string")) { validate.errors = [{ keywordLocation: "#/properties/version/type", instanceLocation: "#/version" }] return false } if (!(typeof data.manufacturer === "string")) { validate.errors = [{ keywordLocation: "#/properties/manufacturer/type", instanceLocation: "#/manufacturer" }] return false } if (!(typeof data.serialNumber === "string")) { validate.errors = [{ keywordLocation: "#/properties/serialNumber/type", instanceLocation: "#/serialNumber" }] return false } if (!(typeof data.connectionState === "string")) { validate.errors = [{ keywordLocation: "#/properties/connectionState/type", instanceLocation: "#/connectionState" }] return false } if (!(data.connectionState === "ONLINE" || data.connectionState === "OFFLINE" || data.connectionState === "HIBERNATING" || data.connectionState === "CONNECTION_BROKEN")) { validate.errors = [{ keywordLocation: "#/properties/connectionState/enum", instanceLocation: "#/connectionState" }] return false } return true }; return ref0})(); const validateFactsheet = (function() { 'use strict' const hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty); const format0 = (input) => { if (input.length > 10 + 1 + 9 + 12 + 6) return false const full = /^\d\d\d\d-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])[t\s](?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)$/i const feb = input[5] === '0' && input[6] === '2' if ((feb && input[8] === '3') || !full.test(input)) return false if (input[17] === '6') { const p = input.slice(11).match(/([0-9.]+|[^0-9.])/g) let hm = Number(p[0]) * 60 + Number(p[2]) if (p[5] === '+') hm += 24 * 60 - Number(p[6] || 0) * 60 - Number(p[8] || 0) else if (p[5] === '-') hm += Number(p[6] || 0) * 60 + Number(p[8] || 0) if (hm % (24 * 60) !== 23 * 60 + 59) return false } if (feb) { if (/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)/.test(input)) return true const matches = input.match(/^(\d\d\d\d)-02-29/) if (!matches) return false const year = matches[1] | 0 return year % 16 === 0 || (year % 4 === 0 && year % 25 !== 0) } if (input[8] === '3' && input[9] === '1') return /^\d\d\d\d-(?:0[13578]|1[02])-31/.test(input) return /^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)/.test(input) }; const ref0 = function validate(data) { validate.errors = null if (!(typeof data === "object" && data && !Array.isArray(data))) { validate.errors = [{ keywordLocation: "#/type", instanceLocation: "#" }] return false } if (!("headerId" in data && hasOwn(data, "headerId"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/headerId" }] return false } if (!("timestamp" in data && hasOwn(data, "timestamp"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/timestamp" }] return false } if (!("version" in data && hasOwn(data, "version"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/version" }] return false } if (!("manufacturer" in data && hasOwn(data, "manufacturer"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/manufacturer" }] return false } if (!("serialNumber" in data && hasOwn(data, "serialNumber"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/serialNumber" }] return false } if (!("typeSpecification" in data && hasOwn(data, "typeSpecification"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/typeSpecification" }] return false } if (!("physicalParameters" in data && hasOwn(data, "physicalParameters"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/physicalParameters" }] return false } if (!("protocolLimits" in data && hasOwn(data, "protocolLimits"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/protocolLimits" }] return false } if (!("protocolFeatures" in data && hasOwn(data, "protocolFeatures"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/protocolFeatures" }] return false } if (!("mobileRobotGeometry" in data && hasOwn(data, "mobileRobotGeometry"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/mobileRobotGeometry" }] return false } if (!("loadSpecification" in data && hasOwn(data, "loadSpecification"))) { validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/loadSpecification" }] return false } if (!Number.isInteger(data.headerId)) { validate.errors = [{ keywordLocation: "#/properties/headerId/type", instanceLocation: "#/headerId" }] return false } if (!(0 <= data.headerId)) { validate.errors = [{ keywordLocation: "#/properties/headerId/minimum", instanceLocation: "#/headerId" }] return false } if (!(typeof data.timestamp === "string")) { validate.errors = [{ keywordLocation: "#/properties/timestamp/type", instanceLocation: "#/timestamp" }] return false } if (!format0(data.timestamp)) { validate.errors = [{ keywordLocation: "#/properties/timestamp/format", instanceLocation: "#/timestamp" }] return false } if (!(typeof data.version === "string")) { validate.errors = [{ keywordLocation: "#/properties/version/type", instanceLocation: "#/version" }] return false } if (!(typeof data.manufacturer === "string")) { validate.errors = [{ keywordLocation: "#/properties/manufacturer/type", instanceLocation: "#/manufacturer" }] return false } if (!(typeof data.serialNumber === "string")) { validate.errors = [{ keywordLocation: "#/properties/serialNumber/type", instanceLocation: "#/serialNumber" }] return false } if (!(typeof data.typeSpecification === "object" && data.typeSpecification && !Array.isArray(data.typeSpecification))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/type", instanceLocation: "#/typeSpecification" }] return false } if (!("seriesName" in data.typeSpecification && hasOwn(data.typeSpecification, "seriesName"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/seriesName" }] return false } if (!("mobileRobotKinematic" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotKinematic"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/mobileRobotKinematic" }] return false } if (!("mobileRobotClass" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotClass"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/mobileRobotClass" }] return false } if (!("maximumLoadMass" in data.typeSpecification && hasOwn(data.typeSpecification, "maximumLoadMass"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/maximumLoadMass" }] return false } if (!("localizationTypes" in data.typeSpecification && hasOwn(data.typeSpecification, "localizationTypes"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/localizationTypes" }] return false } if (!("navigationTypes" in data.typeSpecification && hasOwn(data.typeSpecification, "navigationTypes"))) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/navigationTypes" }] return false } if (!(typeof data.typeSpecification.seriesName === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/seriesName/type", instanceLocation: "#/typeSpecification/seriesName" }] return false } if ("seriesDescription" in data.typeSpecification && hasOwn(data.typeSpecification, "seriesDescription")) { if (!(typeof data.typeSpecification.seriesDescription === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/seriesDescription/type", instanceLocation: "#/typeSpecification/seriesDescription" }] return false } } if ("mobileRobotKinematics" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotKinematics")) { if (!(typeof data.typeSpecification.mobileRobotKinematics === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/mobileRobotKinematics/type", instanceLocation: "#/typeSpecification/mobileRobotKinematics" }] return false } } if (!(typeof data.typeSpecification.mobileRobotClass === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/mobileRobotClass/type", instanceLocation: "#/typeSpecification/mobileRobotClass" }] return false } if (!(typeof data.typeSpecification.maximumLoadMass === "number")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/maximumLoadMass/type", instanceLocation: "#/typeSpecification/maximumLoadMass" }] return false } if (!(0 <= data.typeSpecification.maximumLoadMass)) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/maximumLoadMass/minimum", instanceLocation: "#/typeSpecification/maximumLoadMass" }] return false } if (!Array.isArray(data.typeSpecification.localizationTypes)) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/localizationTypes/type", instanceLocation: "#/typeSpecification/localizationTypes" }] return false } for (let i = 0; i < data.typeSpecification.localizationTypes.length; i++) { if (i in data.typeSpecification.localizationTypes && hasOwn(data.typeSpecification.localizationTypes, i)) { if (!(typeof data.typeSpecification.localizationTypes[i] === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/localizationTypes/items/type", instanceLocation: "#/typeSpecification/localizationTypes/"+i }] return false } } } if (!Array.isArray(data.typeSpecification.navigationTypes)) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/navigationTypes/type", instanceLocation: "#/typeSpecification/navigationTypes" }] return false } for (let j = 0; j < data.typeSpecification.navigationTypes.length; j++) { if (j in data.typeSpecification.navigationTypes && hasOwn(data.typeSpecification.navigationTypes, j)) { if (!(typeof data.typeSpecification.navigationTypes[j] === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/navigationTypes/items/type", instanceLocation: "#/typeSpecification/navigationTypes/"+j }] return false } } } if ("supportedZones" in data.typeSpecification && hasOwn(data.typeSpecification, "supportedZones")) { if (!Array.isArray(data.typeSpecification.supportedZones)) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/type", instanceLocation: "#/typeSpecification/supportedZones" }] return false } for (let k = 0; k < data.typeSpecification.supportedZones.length; k++) { if (k in data.typeSpecification.supportedZones && hasOwn(data.typeSpecification.supportedZones, k)) { if (!(typeof data.typeSpecification.supportedZones[k] === "string")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/items/type", instanceLocation: "#/typeSpecification/supportedZones/"+k }] return false } if (!(data.typeSpecification.supportedZones[k] === "BLOCKED" || data.typeSpecification.supportedZones[k] === "LINE_GUIDED" || data.typeSpecification.supportedZones[k] === "RELEASE" || data.typeSpecification.supportedZones[k] === "COORDINATED_REPLANNING" || data.typeSpecification.supportedZones[k] === "SPEED_LIMIT" || data.typeSpecification.supportedZones[k] === "ACTION" || data.typeSpecification.supportedZones[k] === "PRIORITY" || data.typeSpecification.supportedZones[k] === "PENALTY" || data.typeSpecification.supportedZones[k] === "DIRECTED" || data.typeSpecification.supportedZones[k] === "BIDIRECTED")) { validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/items/enum", instanceLocation: "#/typeSpecification/supportedZones/"+k }] return false } } } } if (!(typeof data.physicalParameters === "object" && data.physicalParameters && !Array.isArray(data.physicalParameters))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/type", instanceLocation: "#/physicalParameters" }] return false } if (!("minimumSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumSpeed"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/minimumSpeed" }] return false } if (!("maximumSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumSpeed"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumSpeed" }] return false } if (!("maximumAcceleration" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumAcceleration"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumAcceleration" }] return false } if (!("maximumDeceleration" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumDeceleration"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumDeceleration" }] return false } if (!("minimumHeight" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumHeight"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/minimumHeight" }] return false } if (!("maximumHeight" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumHeight"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumHeight" }] return false } if (!("width" in data.physicalParameters && hasOwn(data.physicalParameters, "width"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/width" }] return false } if (!("length" in data.physicalParameters && hasOwn(data.physicalParameters, "length"))) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/length" }] return false } if (!(typeof data.physicalParameters.minimumSpeed === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumSpeed/type", instanceLocation: "#/physicalParameters/minimumSpeed" }] return false } if (!(0 <= data.physicalParameters.minimumSpeed)) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumSpeed/minimum", instanceLocation: "#/physicalParameters/minimumSpeed" }] return false } if (!(typeof data.physicalParameters.maximumSpeed === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumSpeed/type", instanceLocation: "#/physicalParameters/maximumSpeed" }] return false } if (!(0 <= data.physicalParameters.maximumSpeed)) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumSpeed/minimum", instanceLocation: "#/physicalParameters/maximumSpeed" }] return false } if ("minimumAngularSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumAngularSpeed")) { if (!(typeof data.physicalParameters.minimumAngularSpeed === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumAngularSpeed/type", instanceLocation: "#/physicalParameters/minimumAngularSpeed" }] return false } if (!(0 <= data.physicalParameters.minimumAngularSpeed)) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumAngularSpeed/minimum", instanceLocation: "#/physicalParameters/minimumAngularSpeed" }] return false } } if ("maximumAngularSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumAngularSpeed")) { if (!(typeof data.physicalParameters.maximumAngularSpeed === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAngularSpeed/type", instanceLocation: "#/physicalParameters/maximumAngularSpeed" }] return false } if (!(0 <= data.physicalParameters.maximumAngularSpeed)) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAngularSpeed/minimum", instanceLocation: "#/physicalParameters/maximumAngularSpeed" }] return false } } if (!(typeof data.physicalParameters.maximumAcceleration === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAcceleration/type", instanceLocation: "#/physicalParameters/maximumAcceleration" }] return false } if (!(0 <= data.physicalParameters.maximumAcceleration)) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAcceleration/minimum", instanceLocation: "#/physicalParameters/maximumAcceleration" }] return false } if (!(typeof data.physicalParameters.maximumDeceleration === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumDeceleration/type", instanceLocation: "#/physicalParameters/maximumDeceleration" }] return false } if (!(typeof data.physicalParameters.minimumHeight === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumHeight/type", instanceLocation: "#/physicalParameters/minimumHeight" }] return false } if (!(typeof data.physicalParameters.maximumHeight === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumHeight/type", instanceLocation: "#/physicalParameters/maximumHeight" }] return false } if (!(typeof data.physicalParameters.width === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/width/type", instanceLocation: "#/physicalParameters/width" }] return false } if (!(typeof data.physicalParameters.length === "number")) { validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/length/type", instanceLocation: "#/physicalParameters/length" }] return false } if (!(typeof data.protocolLimits === "object" && data.protocolLimits && !Array.isArray(data.protocolLimits))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/type", instanceLocation: "#/protocolLimits" }] return false } if (!("maximumStringLengths" in data.protocolLimits && hasOwn(data.protocolLimits, "maximumStringLengths"))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/maximumStringLengths" }] return false } if (!("maximumArrayLengths" in data.protocolLimits && hasOwn(data.protocolLimits, "maximumArrayLengths"))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/maximumArrayLengths" }] return false } if (!("timing" in data.protocolLimits && hasOwn(data.protocolLimits, "timing"))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/timing" }] return false } if (!(typeof data.protocolLimits.maximumStringLengths === "object" && data.protocolLimits.maximumStringLengths && !Array.isArray(data.protocolLimits.maximumStringLengths))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/type", instanceLocation: "#/protocolLimits/maximumStringLengths" }] return false } if ("maximumMessageLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumMessageLength")) { if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumMessageLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumMessageLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumMessageLength" }] return false } if (!(0 <= data.protocolLimits.maximumStringLengths.maximumMessageLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumMessageLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumMessageLength" }] return false } } if ("maximumTopicSerialLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumTopicSerialLength")) { if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumTopicSerialLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicSerialLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicSerialLength" }] return false } if (!(0 <= data.protocolLimits.maximumStringLengths.maximumTopicSerialLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicSerialLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicSerialLength" }] return false } } if ("maximumTopicElementLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumTopicElementLength")) { if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumTopicElementLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicElementLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicElementLength" }] return false } if (!(0 <= data.protocolLimits.maximumStringLengths.maximumTopicElementLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicElementLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicElementLength" }] return false } } if ("maximumIdLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumIdLength")) { if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumIdLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumIdLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumIdLength" }] return false } if (!(0 <= data.protocolLimits.maximumStringLengths.maximumIdLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumIdLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumIdLength" }] return false } } if ("idNumericalOnly" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "idNumericalOnly")) { if (!(typeof data.protocolLimits.maximumStringLengths.idNumericalOnly === "boolean")) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/idNumericalOnly/type", instanceLocation: "#/protocolLimits/maximumStringLengths/idNumericalOnly" }] return false } } if ("maximumLoadIdLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumLoadIdLength")) { if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumLoadIdLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumLoadIdLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumLoadIdLength" }] return false } if (!(0 <= data.protocolLimits.maximumStringLengths.maximumLoadIdLength)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumLoadIdLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumLoadIdLength" }] return false } } if (!(typeof data.protocolLimits.maximumArrayLengths === "object" && data.protocolLimits.maximumArrayLengths && !Array.isArray(data.protocolLimits.maximumArrayLengths))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/type", instanceLocation: "#/protocolLimits/maximumArrayLengths" }] return false } if ("order.nodes" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "order.nodes")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["order.nodes"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.nodes/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.nodes" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["order.nodes"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.nodes/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.nodes" }] return false } } if ("order.edges" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "order.edges")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["order.edges"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.edges/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.edges" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["order.edges"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.edges/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.edges" }] return false } } if ("node.actions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "node.actions")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["node.actions"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/node.actions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/node.actions" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["node.actions"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/node.actions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/node.actions" }] return false } } if ("edge.actions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "edge.actions")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["edge.actions"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/edge.actions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/edge.actions" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["edge.actions"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/edge.actions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/edge.actions" }] return false } } if ("actions.actionsParameters" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "actions.actionsParameters")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["actions.actionsParameters"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/actions.actionsParameters/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/actions.actionsParameters" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["actions.actionsParameters"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/actions.actionsParameters/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/actions.actionsParameters" }] return false } } if ("instantActions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "instantActions")) { if (!Number.isInteger(data.protocolLimits.maximumArrayLengths.instantActions)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/instantActions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/instantActions" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths.instantActions)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/instantActions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/instantActions" }] return false } } if ("trajectory.knotVector" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "trajectory.knotVector")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["trajectory.knotVector"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.knotVector/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.knotVector" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["trajectory.knotVector"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.knotVector/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.knotVector" }] return false } } if ("trajectory.controlPoints" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "trajectory.controlPoints")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["trajectory.controlPoints"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.controlPoints/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.controlPoints" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["trajectory.controlPoints"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.controlPoints/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.controlPoints" }] return false } } if ("zoneSet.zones" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "zoneSet.zones")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["zoneSet.zones"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/zoneSet.zones/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/zoneSet.zones" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["zoneSet.zones"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/zoneSet.zones/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/zoneSet.zones" }] return false } } if ("state.nodeStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.nodeStates")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.nodeStates"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.nodeStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.nodeStates" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.nodeStates"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.nodeStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.nodeStates" }] return false } } if ("state.edgeStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.edgeStates")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.edgeStates"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.edgeStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.edgeStates" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.edgeStates"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.edgeStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.edgeStates" }] return false } } if ("state.loads" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.loads")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.loads"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.loads/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.loads" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.loads"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.loads/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.loads" }] return false } } if ("state.actionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.actionStates")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.actionStates"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.actionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.actionStates" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.actionStates"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.actionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.actionStates" }] return false } } if ("state.instantActionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.instantActionStates")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.instantActionStates"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.instantActionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.instantActionStates" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.instantActionStates"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.instantActionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.instantActionStates" }] return false } } if ("state.zoneActionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.zoneActionStates")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.zoneActionStates"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.zoneActionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.zoneActionStates" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.zoneActionStates"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.zoneActionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.zoneActionStates" }] return false } } if ("state.errors" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.errors")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.errors"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.errors/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.errors" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.errors"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.errors/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.errors" }] return false } } if ("state.information" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.information")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.information"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.information/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.information" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["state.information"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.information/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.information" }] return false } } if ("error.errorReferences" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "error.errorReferences")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["error.errorReferences"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/error.errorReferences/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/error.errorReferences" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["error.errorReferences"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/error.errorReferences/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/error.errorReferences" }] return false } } if ("information.infoReferences" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "information.infoReferences")) { if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["information.infoReferences"]))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/information.infoReferences/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/information.infoReferences" }] return false } if (!(0 <= data.protocolLimits.maximumArrayLengths["information.infoReferences"])) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/information.infoReferences/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/information.infoReferences" }] return false } } if (!(typeof data.protocolLimits.timing === "object" && data.protocolLimits.timing && !Array.isArray(data.protocolLimits.timing))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/type", instanceLocation: "#/protocolLimits/timing" }] return false } if (!("minimumOrderInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "minimumOrderInterval"))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/required", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }] return false } if (!("minimumStateInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "minimumStateInterval"))) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/required", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }] return false } if (!(typeof data.protocolLimits.timing.minimumOrderInterval === "number")) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumOrderInterval/type", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }] return false } if (!(0 <= data.protocolLimits.timing.minimumOrderInterval)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumOrderInterval/minimum", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }] return false } if (!(typeof data.protocolLimits.timing.minimumStateInterval === "number")) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumStateInterval/type", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }] return false } if (!(0 <= data.protocolLimits.timing.minimumStateInterval)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumStateInterval/minimum", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }] return false } if ("defaultStateInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "defaultStateInterval")) { if (!(typeof data.protocolLimits.timing.defaultStateInterval === "number")) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/defaultStateInterval/type", instanceLocation: "#/protocolLimits/timing/defaultStateInterval" }] return false } if (!(0 <= data.protocolLimits.timing.defaultStateInterval)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/defaultStateInterval/minimum", instanceLocation: "#/protocolLimits/timing/defaultStateInterval" }] return false } } if ("visualizationInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "visualizationInterval")) { if (!(typeof data.protocolLimits.timing.visualizationInterval === "number")) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/visualizationInterval/type", instanceLocation: "#/protocolLimits/timing/visualizationInterval" }] return false } if (!(0 <= data.protocolLimits.timing.visualizationInterval)) { validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/visualizationInterval/minimum", instanceLocation: "#/protocolLimits/timing/visualizationInterval" }] return false } } if (!(typeof data.protocolFeatures === "object" && data.protocolFeatures && !Array.isArray(data.protocolFeatures))) { validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/type", instanceLocation: "#/protocolFeatures" }] return false } if (!("optionalParameters" in data.protocolFeatures && hasOwn(data.protocolFeatures, "optionalParameters"))) { validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/required", instanceLocation: "#/protocolFeatures/optionalParameters" }] return false } if (!("mobileRobotActions" in data.protocolFeatures && hasOwn(data.protocolFeatures, "mobileRobotActions"))) { validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/required", instanceLocation: "#/protocolFeatures/mobileRobotActions" }] return false } if (!Array.isArray(data.protocolFeatures.optionalParameters)) { validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/properties/optionalParameters/type", instanceLocation: "#/protocolFeatures/optionalParameters" }] return false } for (let l = 0; l < data.protocolFeatures.optionalParameters.length; l++) { if (l in data.protocolFeatures.optionalParameters && hasOwn(data.protocolFeatures.optionalParameters, l)) { if (!(typeof data.protocolFeatures.optionalParameters[l] === "object" && data.protocolFeatures.optionalParameters[l] && !Array.isArray(data.protocolFeatures.optionalParameters[l]))) { validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/properties/optionalParameters/items/type", instanceLocation: "#/protocolFeatures/optionalParameters/"+l }] return false } if (!("parameter" in data.protocolFeatures.optionalParameters[l] && hasOwn(data.protocolFeatures.optionalParameters[l], "parameter"))) { validate.errors = [{ keywordL