From dcb4b68c4c4dc72f8afcfb11cc21f4dd16abbb30 Mon Sep 17 00:00:00 2001 From: Xinsi Lin Date: Mon, 21 Aug 2023 14:32:54 -0500 Subject: [PATCH 1/4] Murata IoT Device Models --- dtmi/murata/b_u585i_iot02a/control_if-1.json | 97 ++++++ dtmi/murata/b_u585i_iot02a/demo_iot-1.json | 41 +++ dtmi/murata/b_u585i_iot02a/standard_fw-1.json | 19 ++ dtmi/murata/b_u585i_iot02a/standard_fw-3.json | 39 +++ dtmi/murata/b_u585i_iot02a/standard_if-1.json | 201 ++++++++++++ dtmi/murata/b_u585i_iot02a/standard_if-2.json | 310 ++++++++++++++++++ 6 files changed, 707 insertions(+) create mode 100644 dtmi/murata/b_u585i_iot02a/control_if-1.json create mode 100644 dtmi/murata/b_u585i_iot02a/demo_iot-1.json create mode 100644 dtmi/murata/b_u585i_iot02a/standard_fw-1.json create mode 100644 dtmi/murata/b_u585i_iot02a/standard_fw-3.json create mode 100644 dtmi/murata/b_u585i_iot02a/standard_if-1.json create mode 100644 dtmi/murata/b_u585i_iot02a/standard_if-2.json diff --git a/dtmi/murata/b_u585i_iot02a/control_if-1.json b/dtmi/murata/b_u585i_iot02a/control_if-1.json new file mode 100644 index 000000000..f98ad9123 --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/control_if-1.json @@ -0,0 +1,97 @@ +{ + "@context": [ + "dtmi:iotcentral:context;2", + "dtmi:dtdl:context;2" + ], + "@id": "dtmi:murata:b_u585i_iot02a:control_if;1", + "@type": "Interface", + "contents": [ + { + "@id": "dtmi:murata:b_u585i_iot02a:control_if:Pause;1", + "@type": "Command", + "commandType": "synchronous", + "description": { + "en": "This Commands will put in pause the sensors transmission" + }, + "displayName": { + "en": "Pause" + }, + "name": "Pause", + "response": { + "@type": "CommandPayload", + "name": "PauseResponse", + "schema": { + "@type": "Object", + "displayName": { + "en": "Object" + }, + "fields": [ + { + "name": "Result", + "schema": "string" + } + ] + } + } + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:control_if:Play;1", + "@type": "Command", + "commandType": "synchronous", + "description": { + "en": "This Command will Resume the Sensors transmission" + }, + "displayName": { + "en": "Play" + }, + "name": "Play", + "response": { + "@type": "CommandPayload", + "name": "PlayResponse", + "schema": { + "@type": "Object", + "displayName": { + "en": "Object" + }, + "fields": [ + { + "name": "Result", + "schema": "string" + } + ] + } + } + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:control_if:Reset;1", + "@type": "Command", + "commandType": "synchronous", + "description": { + "en": "Reboot the board" + }, + "displayName": { + "en": "Reset" + }, + "name": "Reset", + "response": { + "@type": "CommandPayload", + "name": "ResetResponse", + "schema": { + "@type": "Object", + "displayName": { + "en": "Object" + }, + "fields": [ + { + "name": "Result", + "schema": "string" + } + ] + } + } + } + ], + "displayName": { + "en": "Control interface for B-U585I-IOT02A" + } + } \ No newline at end of file diff --git a/dtmi/murata/b_u585i_iot02a/demo_iot-1.json b/dtmi/murata/b_u585i_iot02a/demo_iot-1.json new file mode 100644 index 000000000..507356e1f --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/demo_iot-1.json @@ -0,0 +1,41 @@ +{ + "@id": "dtmi:murata:b_u585i_iot02a:demo_iot;1", + "@type": "Interface", + "displayName": "Murata Sensors Demo Model on B-U585I-IOT02A", + "description": "Murata Sensors Demo Model lists interfaces, telemetry, and command options", + "contents": [ + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:std_comp;3", + "@type": "Component", + "displayName": { + "en": "Standard component" + }, + "name": "std_comp", + "schema": "dtmi:murata:b_u585i_iot02a:standard_if;2" + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:ctrl_comp;3", + "@type": "Component", + "displayName": { + "en": "Control component" + }, + "name": "ctrl_comp", + "schema": "dtmi:murata:b_u585i_iot02a:control_if;1" + }, + { + "@type": "Component", + "schema": "dtmi:azure:DeviceManagement:DeviceInformation;1", + "name": "deviceInformation", + "displayName": "Device Information", + "description": "Interface with basic device hardware information." + }, + { + "@type": "Component", + "schema": "dtmi:azure:iot:diagnosticInformation;1", + "name": "diagnosticInformation", + "displayName": "Diagnostic Information Interface version 1" + } + ] +} + + \ No newline at end of file diff --git a/dtmi/murata/b_u585i_iot02a/standard_fw-1.json b/dtmi/murata/b_u585i_iot02a/standard_fw-1.json new file mode 100644 index 000000000..8e7947092 --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/standard_fw-1.json @@ -0,0 +1,19 @@ +{ + "@context": "dtmi:dtdl:context;2", + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw;1", + "@type": "Interface", + "displayName": "B-U585I-IOT02A IoT Node 2 discovery kit.", + "contents": [ + { + "@type": "Component", + "name": "deviceinfo", + "schema": "dtmi:azure:DeviceManagement:DeviceInformation;1" + }, + { + "@type": "Component", + "name": "std_comp", + "schema": "dtmi:murata:b_u585i_iot02a:standard_if;1" + } + ] +} + diff --git a/dtmi/murata/b_u585i_iot02a/standard_fw-3.json b/dtmi/murata/b_u585i_iot02a/standard_fw-3.json new file mode 100644 index 000000000..ede86ce9e --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/standard_fw-3.json @@ -0,0 +1,39 @@ +{ + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw;3", + "@type": "Interface", + "contents": [ + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:std_comp;2", + "@type": "Component", + "displayName": { + "en": "Standard component" + }, + "name": "std_comp", + "schema": "dtmi:murata:b_u585i_iot02a:standard_if;2" + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:ctrl_comp;2", + "@type": "Component", + "displayName": { + "en": "Control component" + }, + "name": "ctrl_comp", + "schema": "dtmi:murata:b_u585i_iot02a:control_if;1" + }, + { + "@type": "Component", + "displayName": { + "en": "Device info component" + }, + "name": "deviceinfo", + "schema": "dtmi:azure:DeviceManagement:DeviceInformation;1" + } + ], + "displayName": { + "en": "B-U585I-IOT02A" + }, + "@context": [ + "dtmi:iotcentral:context;2", + "dtmi:dtdl:context;2" + ] + } \ No newline at end of file diff --git a/dtmi/murata/b_u585i_iot02a/standard_if-1.json b/dtmi/murata/b_u585i_iot02a/standard_if-1.json new file mode 100644 index 000000000..b992a7771 --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/standard_if-1.json @@ -0,0 +1,201 @@ +{ + "@context": "dtmi:dtdl:context;2", + "@id": "dtmi:murata:b_u585i_iot02a:standard_if;1", + "@type": "Interface", + "displayName": "Standard interface for B-U585I-IOT02A", + "description": "Reports temperature, relative humidity, pressure, magnetometer, accelerometer and gyroscope.", + "contents": [ + { + "@type": [ + "Telemetry", + "Temperature" + ], + "name": "temperature", + "displayName": { + "en": "Temperature" + }, + "description": "Temperature in degrees Celsius from HTS221 temperature sensor", + "schema": "double", + "unit": "degreeCelsius" + }, + { + "@type": [ + "Telemetry", + "RelativeHumidity" + ], + "name": "humidity", + "displayName": { + "en": "Relative Humidity" + }, + "description": "relative humidity from HTS221 sensor", + "schema": "double", + "unit": "percent" + }, + { + "@type": [ + "Telemetry", + "Pressure" + ], + "name": "pressure", + "displayName": { + "en": "Pressure" + }, + "description": "Pressure from LPS22HB sensor", + "schema": "double", + "unit": "millibar" + }, + { + "@type": "Telemetry", + "name": "acceleration", + "displayName": "LSM6DSL Acc Value [mg]", + "comment": "LSM6DSL Acceleration X/Y/Z components [mg]", + "schema": { + "@type": "Object", + "displayName": "Single acceleration sample.", + "description": "Single acceleration sample. I.e.: {a_x, a_y, a_z}.", + "fields": [ + { + "name": "a_x", + "schema": "double" + }, + { + "name": "a_y", + "schema": "double" + }, + { + "name": "a_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Telemetry", + "name": "gyroscope", + "displayName": "LSM6DSL Gyro Value [mdps]", + "comment": "LSM6DSL Gyroscope X/Y/Z components [mdps]", + "schema": { + "@type": "Object", + "displayName": "Single angular velocity sample.", + "description": "Single angular velocity sample. I.e.: {g_x, g_y, g_z}.", + "fields": [ + { + "name": "g_x", + "schema": "double" + }, + { + "name": "g_y", + "schema": "double" + }, + { + "name": "g_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Telemetry", + "name": "magnetometer", + "displayName": "LIS3MDL Mag Value [mgauss]", + "comment": "LIS3MDL Magnetometer X/Y/Z components [mgauss]", + "schema": { + "@type": "Object", + "displayName": "Single magnetic field sample.", + "description": "Single magnetic field sample. I.e.: {m_x, m_y, m_z}.", + "fields": [ + { + "name": "m_x", + "schema": "double" + }, + { + "name": "m_y", + "schema": "double" + }, + { + "name": "m_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Property", + "name": "telemetry_interval", + "displayName": "Transmission period for telemetry data [in seconds]", + "schema": "double", + "writable": true + }, + { + "@type": "Property", + "name": "acc_fullscale", + "displayName": "Acc FS", + "description": "Accelerometer Full Scale", + "writable": true, + "schema": { + "@type": "Enum", + "valueSchema": "integer", + "enumValues": [ + { + "name": "G2", + "displayName": "2G", + "enumValue": 0 + }, + { + "name": "G4", + "displayName": "4G", + "enumValue": 1 + }, + { + "name": "G8", + "displayName": "8G", + "enumValue": 2 + }, + { + "name": "G16", + "displayName": "16G", + "enumValue": 3 + } + ] + } + }, + { + "@type": "Property", + "name": "gyro_fullscale", + "displayName": "Gyro FS", + "description": "Gyroscope Full Scale", + "writable": true, + "schema": { + "@type": "Enum", + "valueSchema": "integer", + "enumValues": [ + { + "name": "dps125", + "displayName": "125dps", + "enumValue": 0 + }, + { + "name": "dps250", + "displayName": "250dps", + "enumValue": 1 + }, + { + "name": "dps500", + "displayName": "500dps", + "enumValue": 2 + }, + { + "name": "dps1000", + "displayName": "1000dps", + "enumValue": 3 + }, + { + "name": "dps2000", + "displayName": "2000dps", + "enumValue": 4 + } + ] + } + } + ] + } \ No newline at end of file diff --git a/dtmi/murata/b_u585i_iot02a/standard_if-2.json b/dtmi/murata/b_u585i_iot02a/standard_if-2.json new file mode 100644 index 000000000..eacee2fc3 --- /dev/null +++ b/dtmi/murata/b_u585i_iot02a/standard_if-2.json @@ -0,0 +1,310 @@ +{ + "@context": [ + "dtmi:iotcentral:context;2", + "dtmi:dtdl:context;2" + ], + "@id": "dtmi:murata:b_u585i_iot02a:standard_if;2", + "@type": "Interface", + "contents": [ + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_if:control_LED;1", + "@type": "Property", + "description": { + "en": "Led On/Off" + }, + "displayName": { + "en": "Control LED " + }, + "name": "control_LED", + "schema": { + "@id": "dtmi:murata:b_u585i_iot02a:standard_if:control_LED:schema;1", + "@type": "Enum", + "displayName": { + "en": "Enum" + }, + "enumValues": [ + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_if:control_LED:schema:off;1", + "displayName": { + "en": "off" + }, + "enumValue": 0, + "name": "off" + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_if:control_LED:schema:on;1", + "displayName": { + "en": "on" + }, + "enumValue": 1, + "name": "on" + } + ], + "valueSchema": "integer" + }, + "writable": true + }, + { + "@id": "dtmi:murata:b_u585i_iot02a:standard_if:button_counter;1", + "@type": "Telemetry", + "description": { + "en": "How many times the push button is pressed between two telemetries" + }, + "displayName": { + "en": "Button Counter" + }, + "name": "button_counter", + "schema": "integer" + }, + { + "@type": [ + "Telemetry", + "Temperature" + ], + "description": { + "en": "Temperature in degrees Celsius from HTS221 temperature sensor" + }, + "displayName": { + "en": "Temperature" + }, + "name": "temperature", + "schema": "double", + "unit": "degreeCelsius" + }, + { + "@type": [ + "Telemetry", + "RelativeHumidity" + ], + "description": { + "en": "relative humidity from HTS221 sensor" + }, + "displayName": { + "en": "Relative Humidity" + }, + "name": "humidity", + "schema": "double", + "unit": "percent" + }, + { + "@type": [ + "Telemetry", + "Pressure" + ], + "description": { + "en": "Pressure from LPS22HB sensor" + }, + "displayName": { + "en": "Pressure" + }, + "name": "pressure", + "schema": "double", + "unit": "millibar" + }, + { + "@type": "Telemetry", + "comment": "LSM6DSL Acceleration X/Y/Z components [mg]", + "displayName": { + "en": "ISM330DHCX Acc Value [mg]" + }, + "name": "acceleration", + "schema": { + "@type": "Object", + "description": { + "en": "Single acceleration sample. I.e.: {a_x, a_y, a_z}." + }, + "displayName": { + "en": "Single acceleration sample." + }, + "fields": [ + { + "name": "a_x", + "schema": "double" + }, + { + "name": "a_y", + "schema": "double" + }, + { + "name": "a_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Telemetry", + "comment": "LSM6DSL Gyroscope X/Y/Z components [mdps]", + "displayName": { + "en": "ISM330DHCX Gyro Value [mdps]" + }, + "name": "gyroscope", + "schema": { + "@type": "Object", + "description": { + "en": "Single angular velocity sample. I.e.: {g_x, g_y, g_z}." + }, + "displayName": { + "en": "Single angular velocity sample." + }, + "fields": [ + { + "name": "g_x", + "schema": "double" + }, + { + "name": "g_y", + "schema": "double" + }, + { + "name": "g_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Telemetry", + "comment": "LIS3MDL Magnetometer X/Y/Z components [mgauss]", + "displayName": { + "en": "IIS2MDC Mag Value [mgauss]" + }, + "name": "magnetometer", + "schema": { + "@type": "Object", + "description": { + "en": "Single magnetic field sample. I.e.: {m_x, m_y, m_z}." + }, + "displayName": { + "en": "Single magnetic field sample." + }, + "fields": [ + { + "name": "m_x", + "schema": "double" + }, + { + "name": "m_y", + "schema": "double" + }, + { + "name": "m_z", + "schema": "double" + } + ] + } + }, + { + "@type": "Property", + "displayName": { + "en": "Transmission period for telemetry data [in seconds]" + }, + "name": "telemetry_interval", + "schema": "double", + "writable": true + }, + { + "@type": "Property", + "description": { + "en": "Accelerometer Full Scale" + }, + "displayName": { + "en": "Acc FS" + }, + "name": "acc_fullscale", + "writable": true, + "schema": { + "@type": "Enum", + "enumValues": [ + { + "displayName": { + "en": "2G" + }, + "enumValue": 2, + "name": "G2" + }, + { + "displayName": { + "en": "4G" + }, + "enumValue": 4, + "name": "G4" + }, + { + "displayName": { + "en": "8G" + }, + "enumValue": 8, + "name": "G8" + }, + { + "displayName": { + "en": "16G" + }, + "enumValue": 16, + "name": "G16" + } + ], + "valueSchema": "integer" + } + }, + { + "@type": "Property", + "description": { + "en": "Gyroscope Full Scale" + }, + "displayName": { + "en": "Gyro FS" + }, + "name": "gyro_fullscale", + "writable": true, + "schema": { + "@type": "Enum", + "enumValues": [ + { + "displayName": { + "en": "125dps" + }, + "enumValue": 125, + "name": "dps125" + }, + { + "displayName": { + "en": "250dps" + }, + "enumValue": 250, + "name": "dps250" + }, + { + "displayName": { + "en": "500dps" + }, + "enumValue": 500, + "name": "dps500" + }, + { + "displayName": { + "en": "1000dps" + }, + "enumValue": 1000, + "name": "dps1000" + }, + { + "displayName": { + "en": "2000dps" + }, + "enumValue": 2000, + "name": "dps2000" + } + ], + "valueSchema": "integer" + } + } + ], + "description": { + "en": "Reports temperature, relative humidity, pressure, magnetometer, accelerometer and gyroscope." + }, + "displayName": { + "en": "Standard interface for B-U585I-IOT02A" + } + } \ No newline at end of file From 116428a40e22ed31ba9856bc97451c34a7d1a8c9 Mon Sep 17 00:00:00 2001 From: Xinsi Lin Date: Mon, 21 Aug 2023 17:05:15 -0500 Subject: [PATCH 2/4] add @context --- dtmi/murata/b_u585i_iot02a/demo_iot-1.json | 1 + 1 file changed, 1 insertion(+) diff --git a/dtmi/murata/b_u585i_iot02a/demo_iot-1.json b/dtmi/murata/b_u585i_iot02a/demo_iot-1.json index 507356e1f..1676bd0a1 100644 --- a/dtmi/murata/b_u585i_iot02a/demo_iot-1.json +++ b/dtmi/murata/b_u585i_iot02a/demo_iot-1.json @@ -1,4 +1,5 @@ { + "@context": "dtmi:dtdl:context;2", "@id": "dtmi:murata:b_u585i_iot02a:demo_iot;1", "@type": "Interface", "displayName": "Murata Sensors Demo Model on B-U585I-IOT02A", From 90bda42e0550d47dfbb9f5c653c8f947312df6be Mon Sep 17 00:00:00 2001 From: Xinsi Lin Date: Wed, 23 Aug 2023 10:48:01 -0500 Subject: [PATCH 3/4] renamed: dtmi/murata/b_u585i_iot02a/demo_iot-1.json -> dtmi/murata/demo_iot-1.json --- dtmi/murata/{b_u585i_iot02a => }/demo_iot-1.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename dtmi/murata/{b_u585i_iot02a => }/demo_iot-1.json (96%) diff --git a/dtmi/murata/b_u585i_iot02a/demo_iot-1.json b/dtmi/murata/demo_iot-1.json similarity index 96% rename from dtmi/murata/b_u585i_iot02a/demo_iot-1.json rename to dtmi/murata/demo_iot-1.json index 1676bd0a1..a59b3572c 100644 --- a/dtmi/murata/b_u585i_iot02a/demo_iot-1.json +++ b/dtmi/murata/demo_iot-1.json @@ -1,6 +1,6 @@ { "@context": "dtmi:dtdl:context;2", - "@id": "dtmi:murata:b_u585i_iot02a:demo_iot;1", + "@id": "dtmi:murata:demo_iot;1", "@type": "Interface", "displayName": "Murata Sensors Demo Model on B-U585I-IOT02A", "description": "Murata Sensors Demo Model lists interfaces, telemetry, and command options", From bc8e4fe9fb0f95372ff04a73cf36ea71d7913a78 Mon Sep 17 00:00:00 2001 From: Xinsi Lin Date: Wed, 23 Aug 2023 14:37:10 -0500 Subject: [PATCH 4/4] remove unnessessary @id --- dtmi/murata/demo_iot-1.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/dtmi/murata/demo_iot-1.json b/dtmi/murata/demo_iot-1.json index a59b3572c..f537e58a0 100644 --- a/dtmi/murata/demo_iot-1.json +++ b/dtmi/murata/demo_iot-1.json @@ -6,7 +6,6 @@ "description": "Murata Sensors Demo Model lists interfaces, telemetry, and command options", "contents": [ { - "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:std_comp;3", "@type": "Component", "displayName": { "en": "Standard component" @@ -15,7 +14,6 @@ "schema": "dtmi:murata:b_u585i_iot02a:standard_if;2" }, { - "@id": "dtmi:murata:b_u585i_iot02a:standard_fw:ctrl_comp;3", "@type": "Component", "displayName": { "en": "Control component"