Meter Accuracy Data Representation format, abbreviated as MACDR. JSON file structure.
Portable and open repository of various meters accuracy expressed in uncertainty based on range, reading and absolute offset. Intended for machine to machine consumption.
All specified meters data is located in /Meters
folder, for easy M2M consumption index.js
is auto-generated.
org.macdr.v1
All uncertainties values are floating-point numbers (64bit Double) and assumed to be either positive or negative so 0.1
means ±0.1
.
Every unique meter model will be represented by a separate json
file. Filename should be created as follows:
{Manufacturer}_{Model Name}.json
Example:
Keysight_3458A.json
manufacturer
- manufacturer short namemanufacturer_full
- manufacturer namemodel_name
- model full nameuid
- unique product identifier (reverse dns)product_identifier
- manufacturer's product identifiersource
- description of source (usually datasheet)source_url
- link to source (usually to a datasheet)photo_url
- link to meter photo²photo_url_author
- author¹usdz_model_url
- link to meter USDZ 3d model¹usdz_model_url_author
- author¹
¹-optional
Important: All assets must be public domain!
All meter specs are expressed as key-values where key is amount of hours from calibration.
Identifier | Unit | Description |
---|---|---|
absolute.voltage.dc |
Volts | DC Voltage |
absolute.current.dc |
Amperes | DC Current |
absolute.voltage.ac |
Volts | AC Voltage |
absolute.current.ac |
Amperes | AC Current |
absolute.resistance.2w |
Ohms | Resistance 2-Wire |
absolute.resistance.4w |
Ohms | Resistance 4-Wire |
absolute.frequency |
Herz | Frequency |
absolute.capacitance |
Farad | Capacitance at Frequency |
absolute.inductance |
Henres | Inductance at Frequency |
absolute.impedance.phase |
degrees | Phase Angle of Impedance |
This list is NOT part of the MACDRv1 specification, more identifiers will be added along the way.
Identifier | Unit | Description |
---|---|---|
transfer.voltage.dc |
Volts | DC Voltage Transfer |
transfer.voltage.ac |
Volts | AC Voltage Transfer |
transfer.voltage.acdc |
Volts | AC/DC Voltage Transfer |
transfer.resistance.2w |
Ohms | Resistance 2-Wire Transfer |
transfer.resistance.4w |
Ohms | Resistance 4-Wire Transfer |
This list is NOT part of the MACDRv1 specification, more identifiers will be added along the way.
{
"format": "{string}",
"uid": "{string}",
"manufacturer": "{string}",
"model_name": "{string}",
"product_identifier": "{string}",
"source": "{url}",
"source_url": "{url}",
"transfer": {
"{Measurement Identifier}": [ ]
},
"absolute": {
"{Measurement Identifier}": [ ]
}
}
reading
- fraction of readingrange
- fraction of used rangeabsolute
- absolute offset (in relevant unit)
Absolute
hours_from_calibration
- hours limit from meter calibration/adjustmentconfidence
- (optional) some manufacturers specify confidence (0.99 means 99%)aperture_seconds
- (optional) some manufacturers specify minimal aperturenplc
- (optional) some manufacturers specify minimal bumber of power line cycles
{
"hours_from_calibration": 0,
"seconds_between_measurements": 0,
"absolute": 0.0,
"reading": 0.0,
"range": 0.0
}
Transfer
seconds_between_measurements
- used in transfer specs, max time between measurementsrequired_temperature_celsius
- (optional) some manufacturers specify transfer temperaturemaximum_temperature_change
- (optional) maximum temperature change between measurements or from Tref/Tcalconfidence
- (optional) some manufacturers specify confidence (0.99 means 99%)aperture_seconds
- (optional) some manufacturers specify minimal aperturenplc
- (optional) some manufacturers specify minimal bumber of power line cycles
{
"seconds_between_measurements": 0,
"required_temperature_celsius": 0,
"maximum_temperature_change_celsius": 0,
"absolute": 0.0,
"reading": 0.0,
"range": 0.0
}
range
- range in Volts
{
"absolute.voltage.dc": [
{
"range": 0,
"accuracy": []
}
]
}
range
- range in Amperes
{
"absolute.current.dc": [
{
"range": 0,
"accuracy": []
}
]
}
range
- range in Ohmscurrent
- current used in Amperes
{
"absolute.resistance.4w": [
{
"range": 0,
"current": 0,
"specs": []
}
]
}
range
- range in Voltsfrequency_from
- frequency range start, Herzfrequency_to
- frequency range end, Herz
{
"voltage.ac": [
{
"range": 0,
"frequency_from": 0.0,
"frequency_to": 0.0,
"specs": []
}
]
}