@oimlsmart/primmel-packages 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +60 -0
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/acme-cgm-200/model/cgm200.prl +284 -0
- package/acme-cgm-200/model/r144-map.prl +337 -0
- package/acme-cgm-200/package.primmel +39 -0
- package/acme-cgm-system/model/cgm-system.prl +125 -0
- package/acme-cgm-system/model/r144-map.prl +75 -0
- package/acme-cgm-system/model/sample-line.prl +42 -0
- package/acme-cgm-system/package.primmel +23 -0
- package/acme-lc500/model/lc500.prl +218 -0
- package/acme-lc500/model/passport.prl +43 -0
- package/acme-lc500/model/r60-map.prl +161 -0
- package/acme-lc500/model/twin-cert-map.prl +114 -0
- package/acme-lc500/package.primmel +35 -0
- package/acme-md3xx/model/md350.prl +317 -0
- package/acme-md3xx/model/r129-map.prl +346 -0
- package/acme-md3xx/package.primmel +49 -0
- package/acme-rs180/model/r91-map.prl +234 -0
- package/acme-rs180/model/rs180.prl +236 -0
- package/acme-rs180/package.primmel +47 -0
- package/ims-demo/model/ims.prl +23 -0
- package/ims-demo/model/isms-map.prl +60 -0
- package/ims-demo/model/qms-map.prl +73 -0
- package/ims-demo/package.primmel +42 -0
- package/isms-ref/model/isms.prl +34 -0
- package/isms-ref/package.primmel +35 -0
- package/iso-iec-17000/package.primmel +8 -0
- package/iso-iec-17000/terminology.prl +268 -0
- package/iso-iec-17025/package.primmel +10 -0
- package/iso-iec-17025/specification/requirements/lab.prl +474 -0
- package/iso-iec-17025/terminology.prl +72 -0
- package/iso-iec-17065/package.primmel +10 -0
- package/iso-iec-17065/specification/requirements/body.prl +446 -0
- package/iso-iec-17065/terminology.prl +103 -0
- package/iso-iec-17067/package.primmel +10 -0
- package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
- package/iso-iec-17067/terminology.prl +24 -0
- package/oiml-cs/package.primmel +10 -0
- package/oiml-cs/specification/discrepancies.prl +26 -0
- package/oiml-cs/specification/requirements/cs.prl +515 -0
- package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
- package/oiml-cs-dataspace/package.primmel +9 -0
- package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
- package/oiml-cs-dataspace/specification/policies.prl +68 -0
- package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
- package/oiml-integrated-ref/package.primmel +10 -0
- package/oiml-r129/.primmel-allowlist.prl +2 -0
- package/oiml-r129/evaluation/processes.prl +152 -0
- package/oiml-r129/evaluation/workflow.prl +48 -0
- package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
- package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
- package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
- package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
- package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
- package/oiml-r129/execution/forms/admin/identification.prl +49 -0
- package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
- package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
- package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
- package/oiml-r129/execution/forms/emc/esd.prl +66 -0
- package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
- package/oiml-r129/execution/forms/emc/surge.prl +61 -0
- package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
- package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
- package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
- package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
- package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
- package/oiml-r129/execution/forms/shared/headers.prl +86 -0
- package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
- package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
- package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
- package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
- package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
- package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
- package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
- package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
- package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
- package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
- package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
- package/oiml-r129/layers.prl +50 -0
- package/oiml-r129/model/attributes.prl +243 -0
- package/oiml-r129/model/behaviors.prl +79 -0
- package/oiml-r129/model/capabilities.prl +29 -0
- package/oiml-r129/model/characteristics.prl +8 -0
- package/oiml-r129/model/conditions.prl +23 -0
- package/oiml-r129/model/instrument.prl +67 -0
- package/oiml-r129/model/state.prl +22 -0
- package/oiml-r129/model/twin.prl +23 -0
- package/oiml-r129/package.primmel +15 -0
- package/oiml-r129/payload/application.yaml +40 -0
- package/oiml-r129/payload/conditions-common-test.yaml +8 -0
- package/oiml-r129/payload/formulas-variants.yaml +33 -0
- package/oiml-r129/payload/promises.yaml +102 -0
- package/oiml-r129/payload/sample-data.yaml +300 -0
- package/oiml-r129/references.prl +306 -0
- package/oiml-r129/sources-prd/coverage.json +59 -0
- package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
- package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
- package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
- package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
- package/oiml-r129/specification/calculations.prl +83 -0
- package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
- package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
- package/oiml-r129/specification/conformance/examinations.prl +83 -0
- package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
- package/oiml-r129/specification/formulas.prl +9 -0
- package/oiml-r129/specification/requirements/electronic.prl +46 -0
- package/oiml-r129/specification/requirements/metrological.prl +83 -0
- package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
- package/oiml-r129/specification/requirements/software.prl +57 -0
- package/oiml-r129/specification/requirements/technical.prl +134 -0
- package/oiml-r129/specification/symbols.prl +187 -0
- package/oiml-r129/specification/tables.prl +74 -0
- package/oiml-r129/terminology.prl +415 -0
- package/oiml-r129/value-types.prl +40 -0
- package/oiml-r144/.primmel-allowlist.prl +2 -0
- package/oiml-r144/entities/instrument.prl +360 -0
- package/oiml-r144/entities/test-execution.prl +228 -0
- package/oiml-r144/entities/workflow.prl +2075 -0
- package/oiml-r144/evaluation/processes.prl +152 -0
- package/oiml-r144/evaluation/workflow.prl +48 -0
- package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
- package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
- package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
- package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
- package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
- package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
- package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
- package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
- package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
- package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
- package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
- package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
- package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
- package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
- package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
- package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
- package/oiml-r144/execution/forms/shared/headers.prl +132 -0
- package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
- package/oiml-r144/layers.prl +44 -0
- package/oiml-r144/model/attributes.prl +679 -0
- package/oiml-r144/model/behaviors.prl +117 -0
- package/oiml-r144/model/capabilities.prl +99 -0
- package/oiml-r144/model/characteristics.prl +27 -0
- package/oiml-r144/model/conditions.prl +46 -0
- package/oiml-r144/model/instrument.prl +85 -0
- package/oiml-r144/model/state.prl +18 -0
- package/oiml-r144/model/twin.prl +25 -0
- package/oiml-r144/package.primmel +15 -0
- package/oiml-r144/payload/application.yaml +80 -0
- package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
- package/oiml-r144/payload/conditions-common-test.yaml +74 -0
- package/oiml-r144/payload/formulas-variants.yaml +32 -0
- package/oiml-r144/payload/promises.yaml +118 -0
- package/oiml-r144/payload/sample-data.yaml +643 -0
- package/oiml-r144/references.prl +594 -0
- package/oiml-r144/sources-prd/coverage.json +114 -0
- package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
- package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
- package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
- package/oiml-r144/specification/calculations.prl +123 -0
- package/oiml-r144/specification/conformance/examination.prl +87 -0
- package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
- package/oiml-r144/specification/formulas.prl +37 -0
- package/oiml-r144/specification/reference-materials.prl +87 -0
- package/oiml-r144/specification/requirements/controls.prl +51 -0
- package/oiml-r144/specification/requirements/metrological.prl +299 -0
- package/oiml-r144/specification/requirements/report.prl +35 -0
- package/oiml-r144/specification/requirements/technical.prl +455 -0
- package/oiml-r144/specification/symbols.prl +357 -0
- package/oiml-r144/specification/tables.prl +95 -0
- package/oiml-r144/specification/test-point-sets.prl +15 -0
- package/oiml-r144/terminology.prl +308 -0
- package/oiml-r144/value-types.prl +49 -0
- package/oiml-r60/.primmel-allowlist.prl +2 -0
- package/oiml-r60/entities/workflow.prl +2079 -0
- package/oiml-r60/evaluation/processes.prl +152 -0
- package/oiml-r60/evaluation/workflow.prl +48 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
- package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
- package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
- package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
- package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
- package/oiml-r60/execution/forms/shared/headers.prl +255 -0
- package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
- package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
- package/oiml-r60/layers.prl +46 -0
- package/oiml-r60/model/attributes.prl +642 -0
- package/oiml-r60/model/behaviors.prl +165 -0
- package/oiml-r60/model/capabilities.prl +57 -0
- package/oiml-r60/model/characteristics.prl +27 -0
- package/oiml-r60/model/conditions.prl +50 -0
- package/oiml-r60/model/instrument.prl +96 -0
- package/oiml-r60/model/processes.prl +54 -0
- package/oiml-r60/model/state.prl +22 -0
- package/oiml-r60/model/twin.prl +16 -0
- package/oiml-r60/package.primmel +16 -0
- package/oiml-r60/payload/annexes-part4.yaml +122 -0
- package/oiml-r60/payload/application.yaml +83 -0
- package/oiml-r60/payload/conditions-common-test.yaml +121 -0
- package/oiml-r60/payload/formulas-variants.yaml +55 -0
- package/oiml-r60/payload/promises.yaml +224 -0
- package/oiml-r60/payload/sample-data.yaml +5025 -0
- package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
- package/oiml-r60/references.prl +549 -0
- package/oiml-r60/sources-prd/coverage.json +740 -0
- package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
- package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
- package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
- package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
- package/oiml-r60/specification/calculations.prl +318 -0
- package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
- package/oiml-r60/specification/conformance/electronic.prl +483 -0
- package/oiml-r60/specification/conformance/examination.prl +183 -0
- package/oiml-r60/specification/conformance/metrological.prl +478 -0
- package/oiml-r60/specification/constraints.prl +58 -0
- package/oiml-r60/specification/formulas-used.prl +43 -0
- package/oiml-r60/specification/formulas.prl +20 -0
- package/oiml-r60/specification/requirements/class-specific.prl +655 -0
- package/oiml-r60/specification/requirements/classification.prl +114 -0
- package/oiml-r60/specification/requirements/electronic.prl +222 -0
- package/oiml-r60/specification/requirements/metrological.prl +381 -0
- package/oiml-r60/specification/requirements/technical.prl +146 -0
- package/oiml-r60/specification/symbols.prl +599 -0
- package/oiml-r60/specification/tables.prl +182 -0
- package/oiml-r60/specification/test-sequences.prl +72 -0
- package/oiml-r60/terminology.prl +920 -0
- package/oiml-r60/value-types.prl +46 -0
- package/oiml-r91/.primmel-allowlist.prl +3 -0
- package/oiml-r91/entities/instrument.prl +359 -0
- package/oiml-r91/entities/workflow.prl +2075 -0
- package/oiml-r91/evaluation/processes.prl +152 -0
- package/oiml-r91/evaluation/workflow.prl +48 -0
- package/oiml-r91/execution/forms/evidence-file.prl +41 -0
- package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
- package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
- package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
- package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
- package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
- package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
- package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
- package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
- package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
- package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
- package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
- package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
- package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
- package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
- package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
- package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
- package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
- package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
- package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
- package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
- package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
- package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
- package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
- package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
- package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
- package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
- package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
- package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
- package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
- package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
- package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
- package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
- package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
- package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
- package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
- package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
- package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
- package/oiml-r91/layers.prl +46 -0
- package/oiml-r91/model/artifacts.prl +29 -0
- package/oiml-r91/model/attributes.prl +698 -0
- package/oiml-r91/model/behaviors.prl +142 -0
- package/oiml-r91/model/capabilities.prl +88 -0
- package/oiml-r91/model/characteristics.prl +27 -0
- package/oiml-r91/model/conditions.prl +37 -0
- package/oiml-r91/model/instrument.prl +147 -0
- package/oiml-r91/model/state.prl +22 -0
- package/oiml-r91/model/twin.prl +17 -0
- package/oiml-r91/package.primmel +14 -0
- package/oiml-r91/payload/application.yaml +201 -0
- package/oiml-r91/payload/conditions-common-test.yaml +19 -0
- package/oiml-r91/payload/promises.yaml +142 -0
- package/oiml-r91/payload/sample-data.yaml +464 -0
- package/oiml-r91/references.prl +72 -0
- package/oiml-r91/sources-prd/coverage.json +106 -0
- package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
- package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
- package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
- package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
- package/oiml-r91/specification/calculations.prl +26 -0
- package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
- package/oiml-r91/specification/conformance/metrological.prl +906 -0
- package/oiml-r91/specification/formulas.prl +10 -0
- package/oiml-r91/specification/requirements/class-specific.prl +308 -0
- package/oiml-r91/specification/requirements/metrological.prl +176 -0
- package/oiml-r91/specification/requirements/technical.prl +173 -0
- package/oiml-r91/specification/symbols.prl +323 -0
- package/oiml-r91/specification/tables.prl +136 -0
- package/oiml-r91/terminology.prl +535 -0
- package/oiml-r91/value-types.prl +26 -0
- package/oiml-smart-core/entities/comments.prl +101 -0
- package/oiml-smart-core/entities/cs-operations.prl +492 -0
- package/oiml-smart-core/entities/cs-participants.prl +470 -0
- package/oiml-smart-core/entities/engagement.prl +323 -0
- package/oiml-smart-core/entities/instrument.prl +359 -0
- package/oiml-smart-core/entities/module-b.prl +214 -0
- package/oiml-smart-core/entities/operated-schemes.prl +141 -0
- package/oiml-smart-core/entities/parties.prl +429 -0
- package/oiml-smart-core/entities/payment-records.prl +92 -0
- package/oiml-smart-core/entities/verification.prl +187 -0
- package/oiml-smart-core/entities/workflow.prl +2075 -0
- package/oiml-smart-core/evaluation/roles.prl +65 -0
- package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
- package/oiml-smart-core/package.primmel +10 -0
- package/oiml-smart-core/specification/competence-kinds.prl +64 -0
- package/oiml-smart-core/specification/constraints.prl +40 -0
- package/oiml-smart-core/specification/invariants.prl +90 -0
- package/oiml-smart-core/specification/predicates.prl +116 -0
- package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
- package/oiml-smart-module-env-iec60068/package.primmel +10 -0
- package/oiml-smart-module-examination-docs/package.primmel +10 -0
- package/oiml-smart-module-reference-materials/package.primmel +10 -0
- package/oiml-smart-module-report-headers/package.primmel +10 -0
- package/oiml-smart-module-software-d31/package.primmel +10 -0
- package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
- package/oiml-smart-module-specimen-governance/package.primmel +10 -0
- package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
- package/oiml-twin-cert/evaluation/roles.prl +15 -0
- package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
- package/oiml-twin-cert/execution/forms/probe.prl +99 -0
- package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
- package/oiml-twin-cert/model/attributes.prl +243 -0
- package/oiml-twin-cert/model/behaviors.prl +8 -0
- package/oiml-twin-cert/model/characteristics.prl +18 -0
- package/oiml-twin-cert/model/monitors.prl +16 -0
- package/oiml-twin-cert/package.primmel +16 -0
- package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
- package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
- package/oiml-twin-cert/specification/symbols.prl +36 -0
- package/oiml-twin-cert/terminology.prl +8 -0
- package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
- package/package.json +17 -0
- package/qms-ref/model/qms.prl +31 -0
- package/qms-ref/package.primmel +38 -0
- package/quarry-belt-scale/model/ops.prl +115 -0
- package/quarry-belt-scale/package.primmel +36 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# AGENTS.md — oimlsmart/primmel-packages
|
|
2
|
+
|
|
3
|
+
Guidance for agent sessions working in this repository.
|
|
4
|
+
|
|
5
|
+
## What this repo is
|
|
6
|
+
|
|
7
|
+
The OIML SMART platform's authoritative model CONTENT (extracted from
|
|
8
|
+
`oimlsmart/smart` in TODO.repos/02, history intact): every OIML
|
|
9
|
+
Recommendation model, the OIML-CS scheme, the ISO/IEC CASCO foundation
|
|
10
|
+
packages, the shared modules, and the product/program reference
|
|
11
|
+
packages — all as Primmel (`.prl`) packages, published as
|
|
12
|
+
`@oimlsmart/primmel-packages` on npm.
|
|
13
|
+
|
|
14
|
+
This repo is the **single source of truth**. The smart monorepo's
|
|
15
|
+
`data/<rec>/` YAML trees and `browser/src/data/generated/**` are
|
|
16
|
+
DOWNSTREAM GENERATED ARTIFACTS of this content at a pinned version.
|
|
17
|
+
Content is authored HERE, never in the consumer.
|
|
18
|
+
|
|
19
|
+
## The doctrines (carried over from smart's AGENTS.d, binding here)
|
|
20
|
+
|
|
21
|
+
- **Authoring discipline.** Edit `.prl` sources; never hand-edit a
|
|
22
|
+
downstream artifact. YAML-side drafts migrate INTO packages via the
|
|
23
|
+
consumer's authoring aid (`browser/scripts/build-prl-package.ts` in
|
|
24
|
+
the smart repo), then the consumer regenerates
|
|
25
|
+
(`npm run gen:data`).
|
|
26
|
+
- **Clause-URN provenance.** Normative content carries
|
|
27
|
+
`source: { doc: urn:oiml:pub:r:60-1:2021, clause: "..." }` — a content
|
|
28
|
+
change without its clause provenance is incomplete.
|
|
29
|
+
- **The freeze cadence.** Releases version on the content's rhythm, not
|
|
30
|
+
the platform's. Land content on `main` with CI green; a release is a
|
|
31
|
+
deliberate act: bump `version` in `package.json`, tag `v*`, the
|
|
32
|
+
release workflow publishes via npm trusted publishing. Consumers move
|
|
33
|
+
ONLY by a deliberate pin bump — never float a range that pulls
|
|
34
|
+
content silently.
|
|
35
|
+
- **The allowlists are content.** Per-package `.primmel-allowlist.prl`
|
|
36
|
+
KNOWN entries travel with the package; an unexplained allowlist entry
|
|
37
|
+
is an error, a stale one equally.
|
|
38
|
+
|
|
39
|
+
## The gates (all must stay green)
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
npm ci && npm test # check-all: primmel check --strict --audit on
|
|
43
|
+
# every package (KNOWN printed, 0 errors)
|
|
44
|
+
# round-trip: every package loads through
|
|
45
|
+
# @primmel/primmel and the serializer fixpoint holds
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The kernel is the published `@primmel/primmel` package (devDependency;
|
|
49
|
+
the language grammar, parser, linter and codecs live in
|
|
50
|
+
`primmel/primmel-ts`). A construct the language does not carry yet is a
|
|
51
|
+
KERNEL wave first — never a content-side workaround.
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
- Do not commit or perform other git mutations unless explicitly asked.
|
|
56
|
+
- A version bump + tag is a release act (the freeze cadence) — never
|
|
57
|
+
tag without the owner.
|
|
58
|
+
- The consumer's pin (`browser/package.json` in oimlsmart/smart) is the
|
|
59
|
+
contract; breaking content changes ride a deliberate major/minor bump
|
|
60
|
+
with the consumer wave staged.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 OIML SMART project contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# oimlsmart/primmel-packages — the single source of truth
|
|
2
|
+
|
|
3
|
+
Every normative model in the OIML SMART platform — standards,
|
|
4
|
+
instruments, products, programs — is a `.prl` package in this
|
|
5
|
+
repository. **Everything downstream regenerates from these files.** You
|
|
6
|
+
never edit a generated artifact; you edit a package here, release a
|
|
7
|
+
version, and the platform regenerates at the new pin
|
|
8
|
+
(`cd browser && npm run gen:data` in `oimlsmart/smart`).
|
|
9
|
+
|
|
10
|
+
This repo carries the authoritative model CONTENT with its own
|
|
11
|
+
governance cadence (the PRL freeze discipline) and its own release
|
|
12
|
+
line (`@oimlsmart/primmel-packages` on npm, tagged `v*` on the
|
|
13
|
+
content's freeze rhythm). The platform consumes it at a pinned version —
|
|
14
|
+
a content change reaches the platform ONLY by a deliberate bump here
|
|
15
|
+
plus a pin bump there (TODO.repos/02, the extraction record).
|
|
16
|
+
|
|
17
|
+
## The packages, in six families
|
|
18
|
+
|
|
19
|
+
- **Recommendations**: `oiml-r60` (load cells), `oiml-r91` (radar speed
|
|
20
|
+
meters), `oiml-r129` (multi-dimensional instruments), `oiml-r144`
|
|
21
|
+
(gas analyzers).
|
|
22
|
+
- **Core**: `oiml-smart-core` — the shared metamodel (workflow
|
|
23
|
+
entities, state machines, process skeletons).
|
|
24
|
+
- **Modules** (`oiml-smart-module-*`): shared test/form skeletons —
|
|
25
|
+
emc-disturbances, env-iec60068, software-d31, reference-materials,
|
|
26
|
+
specimen-governance, report-headers, examination-docs.
|
|
27
|
+
- **CASCO foundations**: `iso-iec-17000`, `-17025`, `-17065`, `-17067`.
|
|
28
|
+
- **OIML-CS**: `oiml-cs` — the B 18:2025 framework + the documents
|
|
29
|
+
corpus; `oiml-cs-dataspace` — the dataspace definition.
|
|
30
|
+
- **Products & programs**: `acme-lc500`, `acme-cgm-200`, `acme-rs180`,
|
|
31
|
+
`acme-md3xx`, `acme-cgm-system` (fictional product reference
|
|
32
|
+
packages), `quarry-belt-scale` (the consumer), `oiml-twin-cert` (the
|
|
33
|
+
certification program), `oiml-integrated-ref` (the multi-standard
|
|
34
|
+
integrated reference), `ims-demo` + `qms-ref` + `isms-ref`
|
|
35
|
+
(view/lens fixtures).
|
|
36
|
+
|
|
37
|
+
## Prove it works
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm ci
|
|
41
|
+
npm test # primmel check --strict --audit over every package
|
|
42
|
+
# (KNOWN allowlists printed) + the serializer-fixpoint
|
|
43
|
+
# codec leg — the content standalone, no app
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The integration proofs live with the consumer: the smart monorepo's
|
|
47
|
+
`npm run test:ssot` (packages ≡ data trees, byte-clean across the repo
|
|
48
|
+
boundary at the pinned version) and `npm run test:from-packages` (the
|
|
49
|
+
release proof — the platform builds from these packages alone).
|
|
50
|
+
|
|
51
|
+
## The conventions that matter
|
|
52
|
+
|
|
53
|
+
- Provenance: normative content carries `source: { doc, clause }` to a
|
|
54
|
+
published OIML clause (the clause-URN rule).
|
|
55
|
+
- Product packages map to their Recommendation (C21 aliases; C82 —
|
|
56
|
+
every block-form promise mapped).
|
|
57
|
+
- The packages are the SSOT; the smart repo's `data/` and
|
|
58
|
+
`browser/src/data/generated/` trees are generated artifacts, guarded
|
|
59
|
+
byte-clean against this repo at the pinned version.
|
|
60
|
+
- Releases follow the content's freeze cadence: land content on `main`,
|
|
61
|
+
bump `version` in `package.json`, tag `v*` — the release workflow
|
|
62
|
+
publishes to npm via trusted publishing.
|
|
63
|
+
|
|
64
|
+
## Read next
|
|
65
|
+
|
|
66
|
+
- The consumer side: `oimlsmart/smart` — `AGENTS.d/05-data-conventions.md`,
|
|
67
|
+
`AGENTS.d/10-primmel-prl-packages.md`,
|
|
68
|
+
[docs/architecture/03-the-packages.md](https://github.com/oimlsmart/smart/blob/v2/docs/architecture/03-the-packages.md)
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
2
|
+
# ACME CGM-200 — the product model (TODO.v2/08's R 144 phase;
|
|
3
|
+
# TODO.roadmap/36; doctrine ch. 15 §15.2). A manufacturer authors their
|
|
4
|
+
# product model exactly as any subject model — the full IS/HAS/DOES
|
|
5
|
+
# anatomy:
|
|
6
|
+
# IS design parameters, promises, the endpoint declaration, metadata,
|
|
7
|
+
# provenance (the type-evaluation certificate — the promises-
|
|
8
|
+
# as-verified provenance, §15.2);
|
|
9
|
+
# HAS exhibited attributes, the characteristics the standard's tests
|
|
10
|
+
# compute, the operational state, the serve bindings;
|
|
11
|
+
# DOES the response behaviors (drift, step response, warm-up, cross-
|
|
12
|
+
# sensitivity), the adjustment procedures and the self-check.
|
|
13
|
+
#
|
|
14
|
+
# FICTIONAL DEMONSTRATION PRODUCT (the acme-lc500 demo spirit): ACME
|
|
15
|
+
# Analytics GmbH is a fictional demo manufacturer; the certificate and
|
|
16
|
+
# report identifiers below are demo values, deliberately marked.
|
|
17
|
+
#
|
|
18
|
+
# The CGM-200 is a continuous gas monitor for stationary source
|
|
19
|
+
# emissions: CO and NOx (the sum channel, NO + NO2), NDIR for CO,
|
|
20
|
+
# chemiluminescence for NO/NOx, extractive sampling, semi-automatic
|
|
21
|
+
# adjustment, AC mains — the manufacturer's OWN model, mapped to R 144's
|
|
22
|
+
# vocabulary in model/r144-map.prl (map, never re-model).
|
|
23
|
+
#
|
|
24
|
+
# Quantity-typed design parameters carry their literal as the qualifier
|
|
25
|
+
# string "<value> <unit>" — the design-time vocabulary a consumer's
|
|
26
|
+
# abstract import validates against (§15.3 mode 1, computed by the
|
|
27
|
+
# platform's product-coverage gate). The parameter ids are R 144's own
|
|
28
|
+
# attribute ids (co_range_max, response_time, warm_up_time, …): "our
|
|
29
|
+
# x is your x" is the mapping's whole point.
|
|
30
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
31
|
+
|
|
32
|
+
quantity_register si {
|
|
33
|
+
kind volume-fraction { si_unit "1" description "Volume fraction (ISO 80000-9, 9.15) — R 144's measurand kind." }
|
|
34
|
+
unit ppm { symbol "ppm" label "part per million (volume fraction)" kind volume-fraction factor 0.000001 }
|
|
35
|
+
kind temperature { dimensions { Θ 1 } si_unit K description "Thermodynamic temperature." }
|
|
36
|
+
unit degC { symbol "°C" label "degree Celsius" kind temperature offset 273.15 }
|
|
37
|
+
kind pressure { dimensions { L -1 M 1 T -2 } si_unit Pa description "Pressure." }
|
|
38
|
+
unit kPa { symbol "kPa" label "kilopascal" kind pressure factor 1000 }
|
|
39
|
+
kind volume-flow-rate { dimensions { L 3 T -1 } si_unit "m³/s" description "Volume flow rate." }
|
|
40
|
+
unit L/min { symbol "L/min" label "litre per minute" kind volume-flow-rate factor 0.0000166667 }
|
|
41
|
+
kind time { dimensions { T 1 } si_unit s description "Time." }
|
|
42
|
+
unit s { symbol "s" label "second" kind time factor 1 }
|
|
43
|
+
unit min { symbol "min" label "minute" kind time factor 60 }
|
|
44
|
+
kind relative-humidity { si_unit "1" }
|
|
45
|
+
unit pctRH { symbol "%RH" label "percent relative humidity" kind relative-humidity factor 0.01 }
|
|
46
|
+
kind voltage { dimensions { I -1 L 2 M 1 T -3 } si_unit V description "Electric voltage." }
|
|
47
|
+
unit V { symbol "V" label "volt" kind voltage factor 1 }
|
|
48
|
+
kind frequency { dimensions { T -1 } si_unit Hz description "Frequency." }
|
|
49
|
+
unit Hz { symbol "Hz" label "hertz" kind frequency factor 1 }
|
|
50
|
+
kind dimensionless { si_unit "1" }
|
|
51
|
+
unit dimensionless { label "dimensionless" kind dimensionless }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
attribute_definition indication_co {
|
|
55
|
+
symbol "x_CO"
|
|
56
|
+
name "CO indication"
|
|
57
|
+
definition "The served live CO volume-fraction reading of the gas analyzer, reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1."
|
|
58
|
+
quantity_kind volume-fraction
|
|
59
|
+
unit "ppm"
|
|
60
|
+
value_type QuantityValue
|
|
61
|
+
origin measured
|
|
62
|
+
scope sample
|
|
63
|
+
category metrological
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
attribute_definition indication_nox {
|
|
67
|
+
symbol "x_NOx"
|
|
68
|
+
name "NOx indication"
|
|
69
|
+
definition "The served live NOx volume-fraction reading of the gas analyzer (the sum channel, NO + NO2), reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1 with the 1.1/2.4 NOTE."
|
|
70
|
+
quantity_kind volume-fraction
|
|
71
|
+
unit "ppm"
|
|
72
|
+
value_type QuantityValue
|
|
73
|
+
origin measured
|
|
74
|
+
scope sample
|
|
75
|
+
category metrological
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
state_machine cgm_operational {
|
|
79
|
+
kind operational
|
|
80
|
+
initial off
|
|
81
|
+
states { off warming_up ready measuring calibrating fault }
|
|
82
|
+
transition off -> warming_up action power_on
|
|
83
|
+
transition warming_up -> ready action warmed
|
|
84
|
+
transition ready -> measuring action start_measurement
|
|
85
|
+
transition measuring -> ready action stop_measurement
|
|
86
|
+
transition ready -> calibrating action start_adjustment
|
|
87
|
+
transition calibrating -> ready action adjustment_done
|
|
88
|
+
transition [off, warming_up, ready, measuring, calibrating] -> fault action fault_detected
|
|
89
|
+
transition fault -> off action power_off
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
behavior drift {
|
|
93
|
+
kind temporal
|
|
94
|
+
stimulus time
|
|
95
|
+
response "Change in the indication over time at a given CGM concentration — the manufacturer's own drift behavior (answers R 144-1, 2.23/4.8)."
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
behavior step_response {
|
|
99
|
+
kind dynamic
|
|
100
|
+
stimulus gas-concentration
|
|
101
|
+
response "Time for the signal to reach 90 % of its stable value after a 0 % to 100 % stepwise concentration change of the measured component (answers R 144-1, 2.12/4.6)."
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
behavior warm_up {
|
|
105
|
+
kind temporal
|
|
106
|
+
stimulus time
|
|
107
|
+
response "Period from applying power to attaining the operating mode at which the instrument operates within the maximum permissible errors (answers R 144-1, 2.11/4.7)."
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
behavior cross_sensitivity {
|
|
111
|
+
kind influence-response
|
|
112
|
+
stimulus interfering-gas-components
|
|
113
|
+
response "Variation of the indication caused by gas components of the emissions other than the measurand, up to their maximum permissible volume fractions (answers R 144-1, 4.5.2)."
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
behavior reference_reduction {
|
|
117
|
+
kind static
|
|
118
|
+
stimulus gas-concentration
|
|
119
|
+
response "Reduction of measurement results to the reference conditions (273.15 K, 101.325 kPa) — every served indication is expressed in ppm, reduced (answers R 144-1, 4.1)."
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
behavior zero_adjustment {
|
|
123
|
+
kind procedural
|
|
124
|
+
stimulus invoke
|
|
125
|
+
response "Zero-setting against zero gas — the reading is brought to zero without affecting the span (R 144-1, 5.6.1 zero-setting adjustment facility); access-protected (R 144-1, 5.7.1)."
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
behavior span_adjustment {
|
|
129
|
+
kind procedural
|
|
130
|
+
stimulus invoke
|
|
131
|
+
response "Span adjustment against a certified calibration gas mixture (CGM) — the readings are brought into conformity with the certified volume fraction of the component (R 144-1, 5.6.1/5.6.2); access-protected (R 144-1, 5.7.1)."
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
behavior self_check {
|
|
135
|
+
kind procedural
|
|
136
|
+
stimulus invoke
|
|
137
|
+
response "The checking facilities run: gas-flow supervision against the declared flow window (R 144-1, 5.5.2), readiness and fault detection (R 144-1, 4.5.4) — a detected significant fault is annunciated: the operational state drives to fault and measurement is refused."
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
subject CGM200 {
|
|
141
|
+
is {
|
|
142
|
+
metadata {
|
|
143
|
+
name "CGM-200 continuous gas monitor model"
|
|
144
|
+
designation "CGM-200 extractive CO + NOx continuous gas monitor (NDIR / chemiluminescence)"
|
|
145
|
+
}
|
|
146
|
+
provenance {
|
|
147
|
+
manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
|
|
148
|
+
certificate "R144/2026-DEMO-0001 (FICTIONAL — demo value)"
|
|
149
|
+
type_evaluation_report "ACME-TE-DEMO-2026-001 (FICTIONAL — demo value)"
|
|
150
|
+
promises_as_verified "CO 10–5000 ppm and NOx (NO 10–2000 ppm + NO2 10–400 ppm) within the R 144 intrinsic MPE over the rated 5…40 °C envelope (the demo certificate's content — the claims as verified, distinct from the claims as declared, §15.2)"
|
|
151
|
+
}
|
|
152
|
+
design_parameters {
|
|
153
|
+
co_range_min : "10 ppm"
|
|
154
|
+
co_range_max : "5000 ppm"
|
|
155
|
+
no_range_min : "10 ppm"
|
|
156
|
+
no_range_max : "2000 ppm"
|
|
157
|
+
no2_range_min : "10 ppm"
|
|
158
|
+
no2_range_max : "400 ppm"
|
|
159
|
+
response_time : "180 s"
|
|
160
|
+
warm_up_time : "30 min"
|
|
161
|
+
gas_flow_rate_nominal : "1.5 L/min"
|
|
162
|
+
gas_flow_rate_min : "0.5 L/min"
|
|
163
|
+
gas_flow_rate_max : "3.0 L/min"
|
|
164
|
+
t_min : "5 degC"
|
|
165
|
+
t_max : "40 degC"
|
|
166
|
+
rh_max : "90 pctRH"
|
|
167
|
+
p_atm_min : "86 kPa"
|
|
168
|
+
p_atm_max : "106 kPa"
|
|
169
|
+
supply_voltage : "230 V"
|
|
170
|
+
supply_frequency : "50 Hz"
|
|
171
|
+
}
|
|
172
|
+
promises {
|
|
173
|
+
mpe_within_co {
|
|
174
|
+
target error_hold_co
|
|
175
|
+
conditions "under the reference conditions (R 144-1, clause 8)"
|
|
176
|
+
statement "The CO channel's intrinsic error stays within max(2 ppm, 5 % of the measured value) across the 10–5000 ppm range."
|
|
177
|
+
verified_by { oiml-r144#/req/metrological/mpe-intrinsic }
|
|
178
|
+
}
|
|
179
|
+
mpe_within_nox {
|
|
180
|
+
target error_hold_nox
|
|
181
|
+
conditions "under the reference conditions (R 144-1, clause 8)"
|
|
182
|
+
statement "The NOx channel's intrinsic error stays within max(2 ppm, 5 % of the measured value) across the 20–2400 ppm sum range (NO 10–2000 ppm + NO2 10–400 ppm)."
|
|
183
|
+
verified_by { oiml-r144#/req/metrological/mpe-intrinsic }
|
|
184
|
+
}
|
|
185
|
+
repeatability_co {
|
|
186
|
+
target error_hold_co
|
|
187
|
+
statement "CO repeatability (the estimated standard deviation of 20 runs) stays within one third of the intrinsic MPE at every test point."
|
|
188
|
+
verified_by { oiml-r144#/req/metrological/repeatability }
|
|
189
|
+
}
|
|
190
|
+
repeatability_nox {
|
|
191
|
+
target error_hold_nox
|
|
192
|
+
statement "NOx repeatability (the estimated standard deviation of 20 runs) stays within one third of the intrinsic MPE at every test point."
|
|
193
|
+
verified_by { oiml-r144#/req/metrological/repeatability }
|
|
194
|
+
}
|
|
195
|
+
response_time_within {
|
|
196
|
+
target step_response
|
|
197
|
+
level range { min 0 max 240 unit s }
|
|
198
|
+
statement "The 0 % to 100 % step response reaches 90 % within four minutes on every measured component (declared t_90 = 180 s)."
|
|
199
|
+
verified_by { oiml-r144#/req/metrological/response-time }
|
|
200
|
+
}
|
|
201
|
+
warm_up_declared {
|
|
202
|
+
target warm_up
|
|
203
|
+
statement "After the manufacturer-specified warm-up time (30 min) the system meets the metrological requirements — the four post-warm-up indications agree within the verification MPE."
|
|
204
|
+
verified_by { oiml-r144#/req/metrological/warm-up-time }
|
|
205
|
+
}
|
|
206
|
+
drift_within {
|
|
207
|
+
target drift
|
|
208
|
+
conditions "semi-automatic adjustment means; stable environmental conditions"
|
|
209
|
+
statement "The error stays within the intrinsic MPE for at least seven days from adjustment on every measured component."
|
|
210
|
+
verified_by { oiml-r144#/req/metrological/drift }
|
|
211
|
+
}
|
|
212
|
+
cross_sensitivity_within {
|
|
213
|
+
target cross_sensitivity
|
|
214
|
+
statement "Interferents up to their declared maximum permissible volume fractions shift the indication by no more than half the intrinsic MPE."
|
|
215
|
+
verified_by { oiml-r144#/req/metrological/cross-sensitivity }
|
|
216
|
+
}
|
|
217
|
+
rated_envelope {
|
|
218
|
+
target error_hold_co
|
|
219
|
+
level range { min 5 max 40 unit degC }
|
|
220
|
+
conditions "over the rated operating conditions (5…40 °C, ≤ 90 %RH at 25 °C, 86–106 kPa, 230 V −15 %/+10 %, 50 Hz ±2 %)"
|
|
221
|
+
statement "Both channels hold the verification MPE across the whole rated operating envelope."
|
|
222
|
+
verified_by { oiml-r144#/req/metrological/rated-conditions }
|
|
223
|
+
}
|
|
224
|
+
fault_annunciation {
|
|
225
|
+
target self_check
|
|
226
|
+
statement "Under a disturbance the error stays within limits or the failure is detected by the checking facilities — a detected significant fault drives the operational state to fault and measurement is refused."
|
|
227
|
+
verified_by { oiml-r144#/req/metrological/disturbances }
|
|
228
|
+
}
|
|
229
|
+
flow_supervision {
|
|
230
|
+
target self_check
|
|
231
|
+
statement "Gas flow outside the declared 0.5–3.0 L/min window (or unavailable) is signalled by the flow monitoring device."
|
|
232
|
+
verified_by { oiml-r144#/req/technical/gas-flow-monitoring }
|
|
233
|
+
}
|
|
234
|
+
adjustment_access {
|
|
235
|
+
target span_adjustment
|
|
236
|
+
statement "Zero-setting and CGM adjustment are provided and are inaccessible to the operator — access by code only; the twin endpoint binds the same protection (the calibration operations are authority-scope)."
|
|
237
|
+
verified_by { oiml-r144#/req/technical/adjustment-security }
|
|
238
|
+
}
|
|
239
|
+
ppm_presentation {
|
|
240
|
+
target reference_reduction
|
|
241
|
+
statement "Every measurement result is expressed in ppm, reduced to the reference conditions 273.15 K / 101.325 kPa — the twin serves ppm only."
|
|
242
|
+
verified_by { oiml-r144#/req/metrological/measurement-units }
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
endpoint cgm_api {
|
|
246
|
+
operation get_indication_co { kind query serves { indication_co } payload { quantity_kind volume-fraction unit ppm timestamp true } }
|
|
247
|
+
operation get_indication_nox { kind query serves { indication_nox } payload { quantity_kind volume-fraction unit ppm timestamp true } }
|
|
248
|
+
operation watch_op_state { kind subscribe serves { state environmental_context } payload { quantity_kind state unit dimensionless timestamp true } }
|
|
249
|
+
operation zero_calibration { kind invoke does { zero_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
|
|
250
|
+
operation span_calibration { kind invoke does { span_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
|
|
251
|
+
operation run_self_check { kind invoke does { self_check } payload { quantity_kind diagnostic_report unit dimensionless timestamp true } }
|
|
252
|
+
access { public { get_indication_co get_indication_nox } registered { watch_op_state } authority { zero_calibration span_calibration run_self_check } }
|
|
253
|
+
profile rest_json
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
has {
|
|
257
|
+
attributes {
|
|
258
|
+
indication_co : volume-fraction test_dependent
|
|
259
|
+
indication_nox : volume-fraction test_dependent
|
|
260
|
+
ref_cgm_co : volume-fraction test_dependent
|
|
261
|
+
ref_cgm_nox : volume-fraction test_dependent
|
|
262
|
+
}
|
|
263
|
+
dimensions { measurand_components in {co,nox} measuring_principle in {ir,chemiluminescence} sampling_approach in {extractive} adjustment_means in {semi-automatic} power_supply in {ac-mains} }
|
|
264
|
+
characteristics {
|
|
265
|
+
error_hold_co e_co = ocl{self.indication_co - self.ref_cgm_co}
|
|
266
|
+
error_hold_nox e_nox = ocl{self.indication_nox - self.ref_cgm_nox}
|
|
267
|
+
}
|
|
268
|
+
state cgm_operational
|
|
269
|
+
serve sample.indication_co via get_indication_co { fresh_within 5s }
|
|
270
|
+
serve sample.indication_nox via get_indication_nox { fresh_within 5s }
|
|
271
|
+
serve sample.state via watch_op_state { fresh_within 1s }
|
|
272
|
+
serve sample.environmental_context via watch_op_state { fresh_within 1s }
|
|
273
|
+
}
|
|
274
|
+
does {
|
|
275
|
+
behavior drift
|
|
276
|
+
behavior step_response
|
|
277
|
+
behavior warm_up
|
|
278
|
+
behavior cross_sensitivity
|
|
279
|
+
behavior reference_reduction
|
|
280
|
+
behavior zero_adjustment
|
|
281
|
+
behavior span_adjustment
|
|
282
|
+
behavior self_check
|
|
283
|
+
}
|
|
284
|
+
}
|