257 lines
8.3 KiB
JSON
257 lines
8.3 KiB
JSON
{
|
|
"general": {
|
|
"name": {
|
|
"default": "Monster Configuration",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "A human-readable name or label for this configuration."
|
|
}
|
|
},
|
|
"id": {
|
|
"default": null,
|
|
"rules": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "A unique identifier for this configuration. If not provided, defaults to null."
|
|
}
|
|
},
|
|
"unit": {
|
|
"default": "unitless",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "The unit for this configuration (e.g., 'meters', 'seconds', 'unitless')."
|
|
}
|
|
},
|
|
"logging": {
|
|
"logLevel": {
|
|
"default": "info",
|
|
"rules": {
|
|
"type": "enum",
|
|
"values": [
|
|
{
|
|
"value": "debug",
|
|
"description": "Log messages are printed for debugging purposes."
|
|
},
|
|
{
|
|
"value": "info",
|
|
"description": "Informational messages are printed."
|
|
},
|
|
{
|
|
"value": "warn",
|
|
"description": "Warning messages are printed."
|
|
},
|
|
{
|
|
"value": "error",
|
|
"description": "Error messages are printed."
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"enabled": {
|
|
"default": true,
|
|
"rules": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether logging is active. If true, log messages will be generated."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"functionality": {
|
|
"softwareType": {
|
|
"default": "monster",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "Specified software type for this configuration."
|
|
}
|
|
},
|
|
"role": {
|
|
"default": "samplingCabinet",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "Indicates the role this configuration plays (e.g., sensor, controller, etc.)."
|
|
}
|
|
}
|
|
},
|
|
"asset": {
|
|
"uuid": {
|
|
"default": null,
|
|
"rules": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "Asset tag number which is a universally unique identifier for this asset. May be null if not assigned."
|
|
}
|
|
},
|
|
"geoLocation": {
|
|
"default": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0
|
|
},
|
|
"rules": {
|
|
"type": "object",
|
|
"description": "An object representing the asset's physical coordinates or location.",
|
|
"schema": {
|
|
"x": {
|
|
"default": 0,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "X coordinate of the asset's location."
|
|
}
|
|
},
|
|
"y": {
|
|
"default": 0,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "Y coordinate of the asset's location."
|
|
}
|
|
},
|
|
"z": {
|
|
"default": 0,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "Z coordinate of the asset's location."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"supplier": {
|
|
"default": "Unknown",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "The supplier or manufacturer of the asset."
|
|
}
|
|
},
|
|
"type": {
|
|
"default": "sensor",
|
|
"rules": {
|
|
"type": "enum",
|
|
"values": [
|
|
{
|
|
"value": "sensor",
|
|
"description": "A device that detects or measures a physical property and responds to it (e.g. temperature sensor)."
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"subType": {
|
|
"default": "pressure",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "A more specific classification within 'type'. For example, 'pressure' for a pressure sensor."
|
|
}
|
|
},
|
|
"model": {
|
|
"default": "Unknown",
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "A user-defined or manufacturer-defined model identifier for the asset."
|
|
}
|
|
},
|
|
"emptyWeightBucket": {
|
|
"default": 3,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "The weight of the empty bucket in kilograms."
|
|
}
|
|
}
|
|
},
|
|
"constraints": {
|
|
"samplingtime": {
|
|
"default": 0,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "The time interval between sampling events (in seconds) if not using a flow meter."
|
|
}
|
|
},
|
|
"samplingperiod": {
|
|
"default": 24,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "The fixed period in hours in which a composite sample is collected."
|
|
}
|
|
},
|
|
"minVolume": {
|
|
"default": 5,
|
|
"rules": {
|
|
"type": "number",
|
|
"min": 5,
|
|
"description": "The minimum volume in liters."
|
|
}
|
|
},
|
|
"maxWeight": {
|
|
"default": 23,
|
|
"rules": {
|
|
"type": "number",
|
|
"max": 23,
|
|
"description": "The maximum weight in kilograms."
|
|
}
|
|
},
|
|
"subSampleVolume": {
|
|
"default": 50,
|
|
"rules": {
|
|
"type": "number",
|
|
"min": 50,
|
|
"max": 50,
|
|
"description": "The volume of each sub-sample in milliliters."
|
|
}
|
|
},
|
|
"storageTemperature": {
|
|
"default": {
|
|
"min": 1,
|
|
"max": 5
|
|
},
|
|
"rules": {
|
|
"type": "object",
|
|
"description": "Acceptable storage temperature range for samples in degrees Celsius.",
|
|
"schema": {
|
|
"min": {
|
|
"default": 1,
|
|
"rules": {
|
|
"type": "number",
|
|
"min": 1,
|
|
"description": "Minimum acceptable storage temperature in degrees Celsius."
|
|
}
|
|
},
|
|
"max": {
|
|
"default": 5,
|
|
"rules": {
|
|
"type": "number",
|
|
"max": 5,
|
|
"description": "Maximum acceptable storage temperature in degrees Celsius."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"flowmeter": {
|
|
"default": true,
|
|
"rules": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether a flow meter is used for proportional sampling."
|
|
}
|
|
},
|
|
"closedSystem": {
|
|
"default": false,
|
|
"rules": {
|
|
"type": "boolean",
|
|
"description": "Indicates if the sampling system is closed (true) or open (false)."
|
|
}
|
|
},
|
|
"intakeSpeed": {
|
|
"default": 0.3,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "Minimum intake speed in meters per second."
|
|
}
|
|
},
|
|
"intakeDiameter": {
|
|
"default": 12,
|
|
"rules": {
|
|
"type": "number",
|
|
"description": "Minimum inner diameter of the intake tubing in millimeters."
|
|
}
|
|
}
|
|
}
|
|
}
|