diff --git a/src/configs/diffuser.json b/src/configs/diffuser.json new file mode 100644 index 0000000..76b6454 --- /dev/null +++ b/src/configs/diffuser.json @@ -0,0 +1,111 @@ +{ + "general": { + "name": { + "default": "Diffuser", + "rules": { + "type": "string", + "description": "A human-readable name for this diffuser zone." + } + }, + "id": { + "default": null, + "rules": { + "type": "string", + "nullable": true, + "description": "Unique identifier for this diffuser node." + } + }, + "unit": { + "default": "Nm3/h", + "rules": { + "type": "string", + "description": "Default airflow unit for this diffuser." + } + }, + "logging": { + "logLevel": { + "default": "info", + "rules": { + "type": "enum", + "values": [ + { "value": "debug", "description": "Verbose diagnostic messages." }, + { "value": "info", "description": "General informational messages." }, + { "value": "warn", "description": "Warning messages." }, + { "value": "error", "description": "Error level messages only." } + ] + } + }, + "enabled": { + "default": true, + "rules": { + "type": "boolean", + "description": "Enable or disable logging." + } + } + } + }, + "functionality": { + "softwareType": { + "default": "diffuser", + "rules": { + "type": "string", + "description": "Software type identifier for parent-child registration." + } + }, + "role": { + "default": "Aeration diffuser", + "rules": { + "type": "string", + "description": "Describes the functional role of this node." + } + }, + "positionVsParent": { + "default": "atEquipment", + "rules": { + "type": "enum", + "values": [ + { "value": "upstream", "description": "Upstream of parent equipment." }, + { "value": "atEquipment", "description": "At equipment level." }, + { "value": "downstream", "description": "Downstream of parent equipment." } + ] + } + } + }, + "diffuser": { + "number": { + "default": 1, + "rules": { + "type": "number", + "description": "Sequential diffuser zone number." + } + }, + "elements": { + "default": 1, + "rules": { + "type": "number", + "description": "Number of diffuser elements in the zone." + } + }, + "density": { + "default": 2.4, + "rules": { + "type": "number", + "description": "Installed diffuser density per square meter." + } + }, + "waterHeight": { + "default": 0, + "rules": { + "type": "number", + "description": "Water column height above the diffuser." + } + }, + "alfaFactor": { + "default": 0.7, + "rules": { + "type": "number", + "description": "Alpha factor used for oxygen transfer correction." + } + } + } +} diff --git a/test/configManager.test.js b/test/configManager.test.js index 1198e4b..63c8995 100644 --- a/test/configManager.test.js +++ b/test/configManager.test.js @@ -56,6 +56,7 @@ describe('ConfigManager', () => { it('should include known config names without .json extension', () => { const configs = cm.getAvailableConfigs(); expect(configs).toContain('baseConfig'); + expect(configs).toContain('diffuser'); expect(configs).toContain('measurement'); });